第4,5ボタンクリック

5ボタンマウス設定を追加しようとして、SetWindowsHookExや
WndProcのoverrideを試していたのだが上手くいかず(※)。
そのまま放置してたんだが、TApplicationEventsを使えば楽に出来ることが判明。
Application.OnMessageでも可。

const
  WM_XBUTTONDOWN = $020B;
  WM_XBUTTONUP = $020C;
  WM_XBUTTONDBLCLK = $020D;
  XBUTTON1 = $0001;
  XBUTTON2 = $0002;

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  case Msg.message of
    WM_XBUTTONUP:
      begin
        if ( HIWORD(Msg.wParam) = XBUTTON1 ) then
        begin
          s_DebugMsg('ApplicationEvents1Message:XBUTTON1');
        end else if ( HIWORD(Msg.wParam) = XBUTTON2 ) then
        begin
          s_DebugMsg('ApplicationEvents1Message:XBUTTON2');
        end;
      end;
  end;
end;


SetWindowsHookExはLPMSLLHOOKSTRUCTのmouseDataでXBUTTON1,2が正常に取れず。
WndProcの方はXBUTTON1,2は正常にとれるが、他のオブジェクト(パネル等)の上だと、サブクラス化しないとダメ。