module Puppet::Util::Windows::COM::Helpers
Public Instance Methods
QueryInstance(klass) { |instance| ... }
click to toggle source
# File lib/puppet/util/windows/com.rb 94 def QueryInstance(klass) 95 instance = nil 96 97 FFI::MemoryPointer.new(:pointer) do |ppv| 98 QueryInterface(klass::IID, ppv) 99 100 instance = klass.new(ppv.read_pointer) 101 end 102 103 begin 104 yield instance 105 return self 106 ensure 107 instance.Release 108 end if block_given? 109 110 instance 111 end
UseInstance(klass, name, *args) { |instance = klass| ... }
click to toggle source
# File lib/puppet/util/windows/com.rb 113 def UseInstance(klass, name, *args) 114 instance = nil 115 116 FFI::MemoryPointer.new(:pointer) do |ppv| 117 send(name, *args, ppv) 118 119 yield instance = klass.new(ppv.read_pointer) 120 end 121 122 self 123 ensure 124 instance.Release if instance && ! instance.null? 125 end