module WindowsCOM::COMFactory

Public Class Methods

[](iface, sclsid) click to toggle source
# File lib/windows_com/common.rb, line 223
def self.[](iface, sclsid)
        Class.new(iface) {
                const_set :CLSID, WindowsCOM::GUID[sclsid]

                def initialize(clsctx = WindowsCOM::CLSCTX_INPROC)
                        FFI::MemoryPointer.new(:pointer) { |ppv|
                                WindowsCOM::DetonateHresult(:CoCreateInstance,
                                        self.class::CLSID, nil, clsctx, self.class::IID, ppv
                                )

                                super(ppv.read_pointer)
                        }
                end
        }
end
new(clsctx = WindowsCOM::CLSCTX_INPROC) click to toggle source
Calls superclass method
# File lib/windows_com/common.rb, line 227
def initialize(clsctx = WindowsCOM::CLSCTX_INPROC)
        FFI::MemoryPointer.new(:pointer) { |ppv|
                WindowsCOM::DetonateHresult(:CoCreateInstance,
                        self.class::CLSID, nil, clsctx, self.class::IID, ppv
                )

                super(ppv.read_pointer)
        }
end