IAccClientDocMgr
COM公式ドキュメント
クライアントアプリケーションがドキュメントを取得するためのメソッドを公開します。
メソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
クライアントは IAccClientDocMgr::GetDocuments を呼び出して、Microsoft Active Accessibility ランタイムに登録されているすべてのドキュメントの一覧を取得します。
| enumUnknown | IEnumUnknown** | out | ドキュメントのインターフェイスポインターの一覧です。 |
戻り値
解説(Remarks)
サーバーがドキュメントを受け取るまでに、このメソッドを複数回ポーリングする必要がある場合があります。ドキュメントがシステム上に現れてから、ドキュメントサービスに登録されるまでには、わずかな時間差(およそ 1 秒)が生じることがあります。
クライアントは IAccClientDocMgr::LookupByHWND を呼び出し、ドキュメントの HWND を指定することでそのドキュメントを取得します。
| hWnd | HWND | in | 返されるドキュメントの HWND です。 |
| riid | GUID* | in | 要求するドキュメントの IID です。通常は IID_ITextStoreAnchor です。 |
| ppunk | IUnknown** | out | 要求したドキュメントへのインターフェイスポインターです。 |
戻り値
型: HRESULT
成功した場合は S_OK を返します。
失敗した場合は、次の値または他の標準的な COM エラーコードを返します。
| エラー | 説明 |
|---|---|
| 指定した HWND がアクティブなドキュメントに対応していない場合、ppunk は NULL になります。 |
解説(Remarks)
サーバーがドキュメントを受け取るまでに、このメソッドを複数回ポーリングする必要がある場合があります。ドキュメントがシステム上に現れてから、ドキュメントサービスに登録されるまでには、わずかな時間差(およそ 1 秒)が生じることがあります。
クライアントは IAccClientDocMgr::LookupByPoint を呼び出し、ドキュメント内の座標からドキュメントオブジェクトを取得します。
| pt | POINT | in | 返されるドキュメントの境界矩形の内側にある座標です。 |
| riid | GUID* | in | 要求するドキュメントの IID です。通常は IID_ITextStoreAnchor です。 |
| ppunk | IUnknown** | out | 要求したドキュメントへのインターフェイスポインターです。 |
戻り値
型: HRESULT
成功した場合は S_OK を返します。
失敗した場合は、次の値または他の標準的な COM エラーコードを返します。
| エラー | 説明 |
|---|---|
| pt の値がアクティブなドキュメントの境界矩形の内側に収まらない場合、ppunk は NULL になります。 |
解説(Remarks)
サーバーがドキュメントを受け取るまでに、このメソッドを複数回ポーリングする必要がある場合があります。ドキュメントがシステム上に現れてから、ドキュメントサービスに登録されるまでには、わずかな時間差(およそ 1 秒)が生じることがあります。
クライアントは IAccClientDocMgr::GetFocused メソッドを呼び出して、フォーカスを持つドキュメントへのポインターを取得します。
| riid | GUID* | in | 要求するドキュメントの IID です。通常は IID_ITextStoreAnchor です。 |
| ppunk | IUnknown** | out | 要求したドキュメントへのインターフェイスポインターです。 |
戻り値
解説(Remarks)
フォーカスを持つウィンドウが ITextStoreACP インターフェイスを実装したドキュメントでない場合、ppunk は NULL になります。
サーバーがドキュメントを受け取るまでに、このメソッドを複数回ポーリングする必要がある場合があります。ドキュメントがシステム上に現れてから、ドキュメントサービスに登録されるまでには、わずかな時間差(およそ 1 秒)が生じることがあります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IAccClientDocMgr "{4C896039-7B6D-49E6-A8C1-45116A98292B}" #usecom global IAccClientDocMgr IID_IAccClientDocMgr "{FC48CC30-4F3E-4FA1-803B-AD0E196A83B1}" #comfunc global IAccClientDocMgr_GetDocuments 3 sptr #comfunc global IAccClientDocMgr_LookupByHWND 4 sptr,var,sptr #comfunc global IAccClientDocMgr_LookupByPoint 5 int,var,sptr #comfunc global IAccClientDocMgr_GetFocused 6 var,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IAccClientDocMgr "{4C896039-7B6D-49E6-A8C1-45116A98292B}" #usecom global IAccClientDocMgr IID_IAccClientDocMgr "{FC48CC30-4F3E-4FA1-803B-AD0E196A83B1}" #comfunc global IAccClientDocMgr_GetDocuments 3 sptr #comfunc global IAccClientDocMgr_LookupByHWND 4 sptr,sptr,sptr #comfunc global IAccClientDocMgr_LookupByPoint 5 int,sptr,sptr #comfunc global IAccClientDocMgr_GetFocused 6 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。