Module: Windows::TaskSchedulerHelper
Constant Summary collapse
- FORMAT_MESSAGE_IGNORE_INSERTS =
0x00000200- FORMAT_MESSAGE_FROM_SYSTEM =
0x00001000- FORMAT_MESSAGE_MAX_WIDTH_MASK =
0x000000FF
Instance Method Summary collapse
Instance Method Details
#ole_error(function, err) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/win32/windows/helper.rb', line 33 def ole_error(function, err) regex = /OLE error code:(.*?)\sin/ match = regex.match(err.to_s) if match error = match.captures.first.hex win_error(function, error) else "#{function}: #{err.to_s}" end end |
#win_error(function, err = FFI.errno) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/win32/windows/helper.rb', line 16 def win_error(function, err=FFI.errno) err_msg = '' flags = FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_MAX_WIDTH_MASK # 0x0409 == MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US) # We use English for errors because Ruby uses English for errors. FFI::MemoryPointer.new(:char, 1024) do |buf| len = FormatMessage(flags, nil, err , 0x0409, buf, buf.size, nil) err_msg = function + ': ' + buf.read_string(len).strip end err_msg end |