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