Module: WindowsCOM::COMFactory

Defined in:
lib/windows_com/common.rb

Class Method Summary collapse

Class Method Details

.[](iface, sclsid) ⇒ Object



210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
# File 'lib/windows_com/common.rb', line 210

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