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