Module: Win32::TaskScheduler::Helper
- Extended by:
- FFI::Library
- Included in:
- Win32::TaskScheduler, SID
- Defined in:
- lib/win32/taskscheduler/helper.rb
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
38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/win32/taskscheduler/helper.rb', line 38 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}" end end |
#win_error(function, err = FFI.errno) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/win32/taskscheduler/helper.rb', line 21 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 |