class Fzeet::CommonDialog

Constants

HookProc

Attributes

struct[R]

Public Class Methods

crackMessage(hwnd, uMsg, wParam, lParam) click to toggle source
# File lib/fzeet/windows/comdlg/Common.rb, line 107
def self.crackMessage(hwnd, uMsg, wParam, lParam)
        window = @@instances[hwnd.to_i]

        args = {
                hwnd: hwnd,
                uMsg: uMsg,
                wParam: wParam,
                lParam: lParam,
                result: 0,
                window: window,
                sender: window
        }

        args
end
new() click to toggle source
# File lib/fzeet/windows/comdlg/Common.rb, line 123
def initialize
        @messages = {}
end

Public Instance Methods

hookProc(hwnd, uMsg, wParam, lParam) click to toggle source
# File lib/fzeet/windows/comdlg/Common.rb, line 129
def hookProc(hwnd, uMsg, wParam, lParam)
        args, result = nil, nil

        if (handlers = @messages[uMsg])
                args ||= self.class.crackMessage(hwnd, uMsg, wParam, lParam)

                handlers.each { |handler|
                        (handler.arity == 0) ? handler.call : handler.call(args)

                        result = args[:result]
                }
        end

        result
end
on(msg, &block) click to toggle source
# File lib/fzeet/windows/comdlg/Common.rb, line 145
def on(msg, &block)
        (@messages[Fzeet.constant(msg, :wm_)] ||= []) << block

        self
end