WIN32OLE_EVENT causes cpu running 100%

M

Michael Dichtl

Hello!

I have some code do catch some events from MS Outlook.
Especially TastItem events.

But my problem is, when catching the events, the CPU is running at 100%.
Is there any chance to do it in an other way?

My code is here:
*******************************************

class OutlookEvents

include Singleton

OL_FOLDER_TASKS = 13

OL_TASK_NOT_STARTET = 0
OL_TASK_IN_PROGRESS = 1
OL_TASK_COMPLETE = 2
OL_TASK_WAITING = 3
OL_TASK_DEFERRED = 4


def initialize()
begin
@ol = WIN32OLE.connect("Outlook.Application")
rescue
@ol = WIN32OLE.new("Outlook.Application")
end
end

def default_handler(event, *args)
puts event
puts args
end

def handle_task_events()
appNS = @ol.Application.GetNamespace("MAPI")
appTasks = appNS.GetDefaultFolder(OL_FOLDER_TASKS)
appItems = appTasks.Items

appEvents = WIN32OLE_EVENT.new(@ol, "ApplicationEvents")

appItems.each do |item|
if(item.Status != OL_TASK_DEFERRED) && (item.Status !=
OL_TASK_COMPLETE)
events = WIN32OLE_EVENT.new(item, "ItemEvents")

#event = events.on_event() do |*args|
event = events.on_event("Open") do |*args|
puts " ... got item events!"
sleep 0.5
default_handler(event, *args)
#sleep 3
# stop_listening = true
end
end
end

stop_listening = false

appEvent = appEvents.on_event("Quit") do |*args|
puts " ... got application events!"
sleep 0.5
default_handler(appEvent, *args)
stop_listening = true
end

WIN32OLE_EVENT.message_loop until stop_listening
End

outlook = OutlookEvents.instance
outlook.handle_task_events()
*******************************************************************+

Thnx, Michael
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,020
Latest member
GenesisGai

Latest Threads

Top