CommonDialog.HookProc メソッド
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)

Protected Overridable Function HookProc ( _ hWnd As IntPtr, _ msg As Integer, _ wparam As IntPtr, _ lparam As IntPtr _ ) As IntPtr
Dim hWnd As IntPtr Dim msg As Integer Dim wparam As IntPtr Dim lparam As IntPtr Dim returnValue As IntPtr returnValue = Me.HookProc(hWnd, msg, wparam, lparam)
- hWnd
既定のダイアログ ボックス プロシージャでメッセージを処理する場合は 0。既定のダイアログ ボックス プロシージャではメッセージを無視する場合は 0 以外。

フック プロシージャにより、イベントがアプリケーションに到達する前に関数がイベントを認識できます。CommonDialog クラスの HookProc メソッドをオーバーライドすると、オペレーティング システムは関数のオーバーライドを呼び出して、オペレーティング システム メッセージをウィンドウにポストします。
既定では、フック プロシージャは、WM_INITDIALOG メッセージに応答してダイアログ ボックスを画面の中央に配置します。
![]() |
---|
このメソッドは SecurityAction.LinkDemand を使用して、信頼関係のないコードからの呼び出しを防ぎます。SecurityPermissionAttribute.UnmanagedCode アクセス許可は、直前の呼び出し元にのみ要求されます。信頼性が一部しか確認されていないコードから呼び出すことができるコードの場合、ユーザー入力を検証せずに Marshal クラスに渡すことは避けてください。LinkDemand メンバの使用に関する重要な制約事項については、「Demand と LinkDemand」を参照してください。 |
このプロパティはまた、SecurityAction.InheritanceDemand セキュリティ属性も使用します。このメンバをオーバーライドするには、派生クラスが CustomPermission アクセス許可を持っている必要があります。
継承時の注意 継承クラスでは、コモン ダイアログ ボックスに特定の機能を追加するために、このメソッドをオーバーライドできます。派生クラスで HookProc をオーバーライドする場合は、基本クラスの HookProc メソッドを呼び出してください。
HookProc メソッドをオーバーライドする方法を次のコード例に示します。この例は CommonDialog クラスを継承するクラスから構成されています。また、クラスの HookProc オーバーライドで、msg パラメータを Windows メッセージの定数値に対して評価しています。msg パラメータが指定した定数と等しい場合、HookProc メソッドに渡された Windows メッセージを識別するトレース出力を書き込みます。また、この例は、HookProc メソッドが宣言されているクラスが CommonDialog クラスを継承することを前提にしています。
' Defines the constants for Windows messages. Const WM_SETFOCUS = &H7 Const WM_INITDIALOG = &H110 Const WM_LBUTTONDOWN = &H201 Const WM_RBUTTONDOWN = &H204 Const WM_MOVE = &H3 <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _ Protected Overrides Function HookProc(ByVal hWnd As IntPtr, ByVal msg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr ' Evaluates the message parameter to determine the user action. Select Case msg Case WM_INITDIALOG System.Diagnostics.Trace.Write("The WM_INITDIALOG message was received.") Case WM_SETFOCUS System.Diagnostics.Trace.Write("The WM_SETFOCUS message was received.") Case WM_LBUTTONDOWN System.Diagnostics.Trace.Write("The WM_LBUTTONDOWN message was received.") Case WM_RBUTTONDOWN System.Diagnostics.Trace.Write("The WM_RBUTTONDOWN message was received.") Case WM_MOVE System.Diagnostics.Trace.Write("The WM_MOVE message was received.") End Select ' Always call the base class hook procedure. Return MyBase.HookProc(hWnd, msg, wParam, lParam) End Function
// Defines the constants for Windows messages. const int WM_SETFOCUS = 0x0007; const int WM_INITDIALOG = 0x0110; const int WM_LBUTTONDOWN = 0x0201; const int WM_RBUTTONDOWN = 0x0204; const int WM_MOVE = 0x0003; // Overrides the base class hook procedure... [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] protected override IntPtr HookProc(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam) { // Evaluates the message parameter to determine the user action. switch(msg) { case WM_INITDIALOG: System.Diagnostics.Trace.Write("The WM_INITDIALOG message was received."); break; case WM_SETFOCUS: System.Diagnostics.Trace.Write("The WM_SETFOCUS message was received."); break; case WM_LBUTTONDOWN: System.Diagnostics.Trace.Write("The WM_LBUTTONDOWN message was received."); break; case WM_RBUTTONDOWN: System.Diagnostics.Trace.Write("The WM_RBUTTONDOWN message was received."); break; case WM_MOVE: System.Diagnostics.Trace.Write("The WM_MOVE message was received."); break; } // Always call the base class hook procedure. return base.HookProc(hWnd, msg, wParam, lParam); }
private: // Defines the constants for Windows messages. literal int WM_SETFOCUS = 0x0007; literal int WM_INITDIALOG = 0x0110; literal int WM_LBUTTONDOWN = 0x0201; literal int WM_RBUTTONDOWN = 0x0204; literal int WM_MOVE = 0x0003; protected: // Overrides the base class hook procedure... // [System::Security::Permissions::SecurityPermission(System::Security::Permissions::SecurityAction::Demand, Flags=SecurityPermissionFlag::UnmanagedCode)] [SecurityPermission(SecurityAction::Demand, Flags=SecurityPermissionFlag::UnmanagedCode)] virtual IntPtr HookProc( IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam ) override { // Evaluates the message parameter to determine the user action. switch ( msg ) { case WM_INITDIALOG: System::Diagnostics::Trace::Write( "The WM_INITDIALOG message was received." ); break; case WM_SETFOCUS: System::Diagnostics::Trace::Write( "The WM_SETFOCUS message was received." ); break; case WM_LBUTTONDOWN: System::Diagnostics::Trace::Write( "The WM_LBUTTONDOWN message was received." ); break; case WM_RBUTTONDOWN: System::Diagnostics::Trace::Write( "The WM_RBUTTONDOWN message was received." ); break; case WM_MOVE: System::Diagnostics::Trace::Write( "The WM_MOVE message was received." ); break; } // Always call the base class hook procedure. return FontDialog::HookProc( hWnd, msg, wParam, lParam ); }
// Defines the constants for Windows messages. final int WM_SETFOCUS = 0x7; final int WM_INITDIALOG = 0x110; final int WM_LBUTTONDOWN = 0x201; final int WM_RBUTTONDOWN = 0x204; final int WM_MOVE = 0x3; // Overrides the base class hook procedure... // /** @attribute System.Security.Permissions.PermissionSet(System.Security. // Permissions.SecurityAction.Demand, Name = "FullTrust") // */ /** @attribute SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode) */ protected IntPtr HookProc(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam) { // Evaluates the message parameter to determine the user action. switch (msg) { case WM_INITDIALOG : System.Diagnostics.Trace.Write( "The WM_INITDIALOG message was received."); break; case WM_SETFOCUS : System.Diagnostics.Trace.Write( "The WM_SETFOCUS message was received."); break; case WM_LBUTTONDOWN : System.Diagnostics.Trace.Write( "The WM_LBUTTONDOWN message was received."); break; case WM_RBUTTONDOWN : System.Diagnostics.Trace.Write( "The WM_RBUTTONDOWN message was received."); break; case WM_MOVE : System.Diagnostics.Trace.Write( "The WM_MOVE message was received."); break; } // Always call the base class hook procedure. return super.HookProc(hWnd, msg, wParam, lParam);


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からCommonDialog.HookProc メソッドを検索する場合は、下記のリンクをクリックしてください。

- CommonDialog.HookProc メソッドのページへのリンク