Win32 API 日本語リファレンス
ホーム › UI.Accessibility › LPFNLRESULTFROMOBJECT

LPFNLRESULTFROMOBJECT

コールバック

シグネチャ

LRESULT LPFNLRESULTFROMOBJECT(
    GUID* riid,
    WPARAM wParam,
    IUnknown* punk
);

パラメーター

フィールド型説明
riidGUID*クライアントに提供されるインターフェイスの参照識別子です。このパラメーターは IID_IAccessible です。
wParamWPARAM対応する WM_GETOBJECT メッセージが wParam パラメーターで送信した値です。
punkIUnknown*WM_GETOBJECT メッセージに対応するオブジェクトの IAccessible インターフェイスのアドレスです。

公式ドキュメント

指定されたオブジェクトへの、ハンドルに似た参照を返します。サーバーは WM_GETOBJECT を処理するときに、この参照を返します。

戻り値

型: LRESULT

成功した場合は、オブジェクトへの参照を表す正の値を返します。

失敗した場合は、次の表に示すいずれかの値、またはその他の標準的な COM エラーコード を返します。

戻り値 説明
E_INVALIDARG
1 つ以上の引数が無効です。
E_NOINTERFACE
pAcc パラメーターで指定されたオブジェクトが、riid パラメーターで指定されたインターフェイスをサポートしていません。
E_OUTOFMEMORY
オブジェクトの参照を格納するためのメモリが不足しています。
E_UNEXPECTED
予期しないエラーが発生しました。

解説(Remarks)

サーバーがこの関数を呼び出すのは、WM_GETOBJECT メッセージを処理するときだけです。LresultFromObject と WM_GETOBJECT の関係の概要については、「How WM_GETOBJECT Works」を参照してください。

LresultFromObject は、オブジェクトの参照カウントをインクリメントします。関数に渡したインターフェイスポインターを保持しない場合(つまり、WM_GETOBJECT を受け取るたびにオブジェクトのインターフェイスポインターを新しく作成する場合)は、オブジェクトの Release メソッドを呼び出して、参照カウントを 1 に戻してください。その後、クライアントが Release を呼び出すと、オブジェクトは破棄されます。詳細については、「How to Handle WM_GETOBJECT」を参照してください。

サーバーは、特定のオブジェクトに対する WM_GETOBJECT を処理するたびに LresultFromObject を呼び出して、そのオブジェクトへの新しい参照を取得します。サーバーは、ある WM_GETOBJECT の処理で LresultFromObject から返された参照を保存しておき、同じオブジェクトに対する以降の WM_GETOBJECT メッセージを処理する際の戻り値として使い回してはいけません。そのようにすると、クライアントはエラーを受け取ることになります。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)