private static IntPtr WndProc(IntPtr hWnd, int Msg, int wParam, int lParam)
        {
            Registration reg = null;

            if (!orig_winproc_dict.TryGetValue(hWnd, out reg))
            {
                return(IntPtr.Zero);
            }

            if (Msg == toolbar_created_msg)
            {
                ThumbnailToolbar tb = new ThumbnailToolbar(hWnd);
                toolbars[hWnd] = tb;
                reg.CreationCallback(tb);
            }
            else if (Msg == WM_COMMAND && HiWord(wParam) == THBN_CLICKED)
            {
                int button_id = LoWord(wParam);
                ThumbnailToolbar tb;

                if (toolbars.TryGetValue(hWnd, out tb))
                {
                    ThumbnailToolbarButton button = tb.Buttons.SingleOrDefault(b => b.Id == button_id);
                    if (button != null)
                    {
                        button.FireClicked();
                    }
                }
            }

            return(CallWindowProcW(reg.OrigWinProc, hWnd, Msg, wParam, lParam));
        }
コード例 #2
0
        private static IntPtr WndProc (IntPtr hWnd, int Msg, int wParam, int lParam)
        {
            Registration reg = null;

            if (!orig_winproc_dict.TryGetValue (hWnd, out reg))
                return IntPtr.Zero;

            if (Msg == toolbar_created_msg) {

                ThumbnailToolbar tb = new ThumbnailToolbar (hWnd);
                toolbars[hWnd] = tb;
                reg.CreationCallback (tb);

            } else if (Msg == WM_COMMAND && HiWord (wParam) == THBN_CLICKED) {
                int button_id = LoWord (wParam);
                ThumbnailToolbar tb;

                if (toolbars.TryGetValue (hWnd, out tb)) {
                    ThumbnailToolbarButton button = tb.Buttons.SingleOrDefault (b => b.Id == button_id);
                    if (button != null)
                        button.FireClicked ();
                }
            }

            return CallWindowProcW (reg.OrigWinProc, hWnd, Msg, wParam, lParam);
        }