LPFNLRESULTFROMOBJECT
コールバックシグネチャ
LRESULT LPFNLRESULTFROMOBJECT(
GUID* riid,
WPARAM wParam,
IUnknown* punk
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| riid | GUID* | クライアントに提供されるインターフェイスの参照識別子です。このパラメーターは IID_IAccessible です。 |
| wParam | WPARAM | 対応する WM_GETOBJECT メッセージが wParam パラメーターで送信した値です。 |
| punk | IUnknown* | WM_GETOBJECT メッセージに対応するオブジェクトの IAccessible インターフェイスのアドレスです。 |
公式ドキュメント
指定されたオブジェクトへの、ハンドルに似た参照を返します。サーバーは WM_GETOBJECT を処理するときに、この参照を返します。
戻り値
型: LRESULT
成功した場合は、オブジェクトへの参照を表す正の値を返します。
失敗した場合は、次の表に示すいずれかの値、またはその他の標準的な COM エラーコード を返します。
| 戻り値 | 説明 |
|---|---|
| 1 つ以上の引数が無効です。 | |
| pAcc パラメーターで指定されたオブジェクトが、riid パラメーターで指定されたインターフェイスをサポートしていません。 | |
| オブジェクトの参照を格納するためのメモリが不足しています。 | |
| 予期しないエラーが発生しました。 |
解説(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 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)