module Puppet::Util::Windows::COM

Constants

CLSCTX_ACTIVATE_32_BIT_SERVER
CLSCTX_ACTIVATE_64_BIT_SERVER
CLSCTX_ALL
CLSCTX_DISABLE_AAA
CLSCTX_ENABLE_AAA
CLSCTX_ENABLE_CLOAKING
CLSCTX_ENABLE_CODE_DOWNLOAD
CLSCTX_FROM_DEFAULT_CONTEXT
CLSCTX_INPROC
CLSCTX_INPROC_HANDLER
CLSCTX_INPROC_HANDLER16
CLSCTX_INPROC_SERVER
CLSCTX_INPROC_SERVER16
CLSCTX_LOCAL_SERVER
CLSCTX_NO_CODE_DOWNLOAD
CLSCTX_NO_CUSTOM_MARSHAL
CLSCTX_NO_FAILURE_LOG
CLSCTX_PS_DLL
CLSCTX_REMOTE_SERVER
CLSCTX_RESERVED1
CLSCTX_RESERVED2
CLSCTX_RESERVED3
CLSCTX_RESERVED4
CLSCTX_RESERVED5
CLSCTX_SERVER
IUnknown
S_FALSE
S_OK
Unknown

Public Class Methods

FAILED(hr) click to toggle source
# File lib/puppet/util/windows/com.rb, line 12
def FAILED(hr) hr < 0 end
InitializeCom() click to toggle source
# File lib/puppet/util/windows/com.rb, line 217
def InitializeCom
  raise_if_hresult_failed(:CoInitialize, FFI::Pointer::NULL)

  at_exit { CoUninitialize() }
end
SUCCEEDED(hr) click to toggle source
# File lib/puppet/util/windows/com.rb, line 11
def SUCCEEDED(hr) hr >= 0 end
raise_if_hresult_failed(name, *args) { |failed| ... } click to toggle source
# File lib/puppet/util/windows/com.rb, line 16
def raise_if_hresult_failed(name, *args)
  failed = FAILED(result = send(name, *args)) and raise "#{name} failed (hresult #{format('%#08x', result)})."

  result
ensure
  yield failed if block_given?
end