module Fzeet::Windows::COM::Instance

Public Class Methods

[](iface) click to toggle source
# File lib/fzeet/windows/com/Common.rb, line 158
def self.[](iface)
        Class.new(iface) {
                send(:include, Helpers)

                def initialize(pointer)
                        super(pointer)

                        @vtbl = self.class::VTBL.new(self[:lpVtbl])
                end

                attr_reader :vtbl

                self::VTBL.members.each { |name|
                        define_method(name) { |*args|
                                raise "#{self}.#{name} failed." if Windows.FAILED(result = @vtbl[name].call(self, *args)); result
                        }
                }
        }
end
new(pointer) click to toggle source
Calls superclass method
# File lib/fzeet/windows/com/Common.rb, line 162
def initialize(pointer)
        super(pointer)

        @vtbl = self.class::VTBL.new(self[:lpVtbl])
end