ホーム › System.Ole › ISimpleFrameSite
ISimpleFrameSite
COM公式ドキュメント
他のネストされたコントロールのための単純なコンテナーとして機能する、単純なフレームコントロールを提供します。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT PreMessageFilter(HWND hWnd, DWORD msg, WPARAM wp, LPARAM lp, LRESULT* plResult, DWORD* pdwCookie)
コントロール自身が処理を行う前に、コントロール自身のウィンドウが受信したメッセージをサイトが処理する機会を提供します。
| hWnd | HWND | in | メッセージを受信するコントロールウィンドウのハンドル。 |
| msg | DWORD | in | 単純フレームサイトが受信したメッセージ。 |
| wp | WPARAM | in | メッセージの WPARAM。 |
| lp | LPARAM | in | メッセージの LPARAM。 |
| plResult | LRESULT* | out | メッセージ処理の結果を受け取る変数へのポインター。 |
| pdwCookie | DWORD* | out | 後で ISimpleFrameSite::PostMessageFilter が呼び出される場合に渡される変数へのポインター。このパラメーターに割り当てたデータを格納するのは、このメソッドが S_OK を返す場合のみにしてください。そうすれば、割り当てを解放できる PostMessageFilter の呼び出しも受け取ることができます。呼び出し元は、このパラメーターで返される内容について一切の責任を負いません。 |
戻り値
このメソッドは次の値を返す場合があります。
| 戻り値 | 説明 |
|---|---|
| 単純フレームサイトはこのフィルターでメッセージを使用しないため、さらに処理を行うことができます。 | |
| サイトはメッセージを処理済みであり、これ以上の処理は行わないでください。 | |
| サイトはメッセージフィルタリングを一切行わず、後で PostMessageFilter を呼び出す必要がないことを示します。 | |
| plResult または pdwCookie のアドレスが有効ではありません。 |
解説(Remarks)
正常な戻り値は、サイトがさらなる処理を許可するかどうかを示します。S_OK はさらなる処理を行うことを示し、S_FALSE はこれ以上処理しないことを意味します。また、S_OK は、コントロールが後で PostMessageFilter を呼び出す必要があることも示します。
vtbl 4 HRESULT PostMessageFilter(HWND hWnd, DWORD msg, WPARAM wp, LPARAM lp, LRESULT* plResult, DWORD dwCookie)
コントロールがメッセージを処理した後に、コントロール自身のウィンドウが受信したメッセージを単純フレームサイトに送信します。
| hWnd | HWND | in | メッセージを受信するコントロールウィンドウのハンドル。 |
| msg | DWORD | in | 単純フレームサイトが受信したメッセージ。 |
| wp | WPARAM | in | メッセージの WPARAM。 |
| lp | LPARAM | in | メッセージの LPARAM。 |
| plResult | LRESULT* | out | メッセージ処理の結果を受け取る変数へのポインター。 |
| dwCookie | DWORD | in | ISimpleFrameSite::PreMessageFilter がその pdwCookie パラメーターを通じて返した値。 |
戻り値
このメソッドは次の値を返す場合があります。
| 戻り値 | 説明 |
|---|---|
| サイトはメッセージを処理しました。 | |
| サイトはメッセージを処理しませんでした。 | |
| サイトはメッセージを一切フィルタリングしません。 |
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ISimpleFrameSite "{742B0E01-14E6-101B-914E-00AA00300CAB}" #usecom global ISimpleFrameSite IID_ISimpleFrameSite "{}" #comfunc global ISimpleFrameSite_PreMessageFilter 3 sptr,int,sptr,sptr,var,var #comfunc global ISimpleFrameSite_PostMessageFilter 4 sptr,int,sptr,sptr,var,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ISimpleFrameSite "{742B0E01-14E6-101B-914E-00AA00300CAB}" #usecom global ISimpleFrameSite IID_ISimpleFrameSite "{}" #comfunc global ISimpleFrameSite_PreMessageFilter 3 sptr,int,sptr,sptr,sptr,sptr #comfunc global ISimpleFrameSite_PostMessageFilter 4 sptr,int,sptr,sptr,sptr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。