Win32 API 日本語リファレンス
ホームSystem.Ole › ISimpleFrameSite

ISimpleFrameSite

COM
IID742b0e01-14e6-101b-914e-00aa00300cab継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

他のネストされたコントロールのための単純なコンテナーとして機能する、単純なフレームコントロールを提供します。

メソッド 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)

コントロール自身が処理を行う前に、コントロール自身のウィンドウが受信したメッセージをサイトが処理する機会を提供します。

hWndHWNDinメッセージを受信するコントロールウィンドウのハンドル。
msgDWORDin単純フレームサイトが受信したメッセージ。
wpWPARAMinメッセージの WPARAM
lpLPARAMinメッセージの LPARAM
plResultLRESULT*outメッセージ処理の結果を受け取る変数へのポインター。
pdwCookieDWORD*out後で ISimpleFrameSite::PostMessageFilter が呼び出される場合に渡される変数へのポインター。このパラメーターに割り当てたデータを格納するのは、このメソッドが S_OK を返す場合のみにしてください。そうすれば、割り当てを解放できる PostMessageFilter の呼び出しも受け取ることができます。呼び出し元は、このパラメーターで返される内容について一切の責任を負いません。

戻り値

このメソッドは次の値を返す場合があります。

戻り値 説明
S_OK
単純フレームサイトはこのフィルターでメッセージを使用しないため、さらに処理を行うことができます。
S_FALSE
サイトはメッセージを処理済みであり、これ以上の処理は行わないでください。
E_NOTIMPL
サイトはメッセージフィルタリングを一切行わず、後で PostMessageFilter を呼び出す必要がないことを示します。
E_POINTER
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)

コントロールがメッセージを処理した後に、コントロール自身のウィンドウが受信したメッセージを単純フレームサイトに送信します。

hWndHWNDinメッセージを受信するコントロールウィンドウのハンドル。
msgDWORDin単純フレームサイトが受信したメッセージ。
wpWPARAMinメッセージの WPARAM
lpLPARAMinメッセージの LPARAM
plResultLRESULT*outメッセージ処理の結果を受け取る変数へのポインター。
dwCookieDWORDinISimpleFrameSite::PreMessageFilter がその pdwCookie パラメーターを通じて返した値。

戻り値

このメソッドは次の値を返す場合があります。

戻り値 説明
S_OK
サイトはメッセージを処理しました。
S_FALSE
サイトはメッセージを処理しませんでした。
E_NOTIMPL
サイトはメッセージを一切フィルタリングしません。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 指定が可能。