def notify_change(&block)
unless block_given?
raise Error, 'block missing for notify_change()'
end
@handle = OpenEventLog(@server, @source)
if @handle == 0
error = "OpenEventLog() failed: " + get_last_error
raise Error, error
end
event = CreateEvent(0, 0, 0, 0)
unless NotifyChangeEventLog(@handle, event)
error = 'NotifyChangeEventLog() failed: ' + get_last_error
raise Error, error
end
wait_result = WaitForSingleObject(event, INFINITE)
if wait_result == WAIT_FAILED
error = 'WaitForSingleObject() failed: ' + get_last_error
CloseHandle(event)
raise Error, error
else
last = read_last_event
block.call(last)
end
CloseHandle(event)
self
end