module Puppet::Util::Windows::COM::Instance
Public Class Methods
[](iface)
click to toggle source
# File lib/puppet/util/windows/com.rb 128 def self.[](iface) 129 Class.new(iface) do 130 send(:include, Helpers) 131 132 def initialize(pointer) 133 self.pointer = pointer 134 135 @vtbl = self.class::VTBL.new(self[:lpVtbl]) 136 end 137 138 attr_reader :vtbl 139 140 self::VTBL.members.each do |name| 141 define_method(name) do |*args| 142 if Puppet::Util::Windows::COM.FAILED(result = @vtbl[name].call(self, *args)) 143 raise Puppet::Util::Windows::Error.new(_("Failed to call %{klass}::%{name} with HRESULT: %{result}.") % { klass: self, name: name, result: result }, result) 144 end 145 result 146 end 147 end 148 149 layout \ 150 :lpVtbl, :pointer 151 end 152 end
new(pointer)
click to toggle source
# File lib/puppet/util/windows/com.rb 132 def initialize(pointer) 133 self.pointer = pointer 134 135 @vtbl = self.class::VTBL.new(self[:lpVtbl]) 136 end