module Unknownr::Windows::COM::Helpers
Public Instance Methods
QueryInstance(klass) { |instance;| ... }
click to toggle source
# File lib/unknownr.rb, line 127 def QueryInstance(klass) instance = nil FFI::MemoryPointer.new(:pointer) { |ppv| QueryInterface(klass::IID, ppv) instance = klass.new(ppv.read_pointer) } begin yield instance; return self ensure instance.Release end if block_given? instance end
UseInstance(klass, name, *args) { |instance = klass| ... }
click to toggle source
# File lib/unknownr.rb, line 145 def UseInstance(klass, name, *args) instance = nil FFI::MemoryPointer.new(:pointer) { |ppv| send(name, *args, klass::IID, ppv) yield instance = klass.new(ppv.read_pointer) } self ensure instance.Release if instance end