ホーム › Media.Speech › ISpObjectToken
ISpObjectToken
COMメソッド 10
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| pszCategoryId | LPWSTR | inoptional | トークンが属するカテゴリのID。NULL可。 |
| pszTokenId | LPWSTR | in | 設定するトークンのID文字列。 |
| fCreateIfNotExist | BOOL | in | トークンが存在しない場合に作成するか。 |
| ppszCoMemTokenId | LPWSTR* | out | このトークンのIDを受け取るポインタ。CoTaskMemFreeで解放する。 |
vtbl 17 HRESULT GetCategory(ISpObjectTokenCategory** ppTokenCategory)
| ppTokenCategory | ISpObjectTokenCategory** | out | このトークンが属するカテゴリのISpObjectTokenCategoryを受け取るポインタ。 |
vtbl 18 HRESULT CreateInstance(IUnknown* pUnkOuter, DWORD dwClsContext, GUID* riid, void** ppvObject)
| pUnkOuter | IUnknown* | in | アグリゲーション用の制御IUnknown。通常はNULLを指定する。 |
| dwClsContext | DWORD | in | 実行コンテキストを示すCLSCTX値。CLSCTX_ALL等を指定する。 |
| riid | GUID* | in | 要求するインターフェイスのIID。 |
| ppvObject | void** | inout | 生成したオブジェクトのインターフェイスポインタを受け取る。 |
vtbl 19 HRESULT GetStorageFileName(GUID* clsidCaller, LPWSTR pszValueName, LPWSTR pszFileNameSpecifier, DWORD nFolder, LPWSTR* ppszFilePath)
| clsidCaller | GUID* | in | 呼び出し元コンポーネントを識別するCLSID。 |
| pszValueName | LPWSTR | in | ファイル名が格納されている値の名前。 |
| pszFileNameSpecifier | LPWSTR | inoptional | ファイル名生成に用いる指定子。NULL可。 |
| nFolder | DWORD | in | 基準フォルダを示すCSIDL値。 |
| ppszFilePath | LPWSTR* | out | 解決された完全ファイルパスを受け取るポインタ。CoTaskMemFreeで解放する。 |
| clsidCaller | GUID* | in | 呼び出し元コンポーネントを識別するCLSID。 |
| pszKeyName | LPWSTR | in | 削除対象のファイル名を保持する値名。 |
| fDeleteFile | BOOL | in | 実ファイルも削除するか。TRUEで物理削除する。 |
vtbl 21 HRESULT Remove(GUID* pclsidCaller)
| pclsidCaller | GUID* | inoptional | 削除を要求する呼び出し元のCLSID。NULLでトークン全体を削除する。 |
vtbl 22 HRESULT IsUISupported(LPWSTR pszTypeOfUI, void* pvExtraData, DWORD cbExtraData, IUnknown* punkObject, BOOL* pfSupported)
| pszTypeOfUI | LPWSTR | in | サポート確認するUIの種類を示す文字列。 |
| pvExtraData | void* | inout | UIに渡す追加データ。NULL可。 |
| cbExtraData | DWORD | in | pvExtraDataのバイト数。 |
| punkObject | IUnknown* | in | UI対象オブジェクトのIUnknown。NULL可。 |
| pfSupported | BOOL* | inout | 指定UIがサポートされるかを受け取るBOOLポインタ。 |
vtbl 23 HRESULT DisplayUI(HWND hwndParent, LPWSTR pszTitle, LPWSTR pszTypeOfUI, void* pvExtraData, DWORD cbExtraData, IUnknown* punkObject)
| hwndParent | HWND | in | UIの親ウィンドウハンドル。 |
| pszTitle | LPWSTR | in | UIウィンドウのタイトル文字列。NULL可。 |
| pszTypeOfUI | LPWSTR | in | 表示するUIの種類を示す文字列。 |
| pvExtraData | void* | inout | UIに渡す追加データ。NULL可。 |
| cbExtraData | DWORD | in | pvExtraDataのバイト数。 |
| punkObject | IUnknown* | in | UI対象オブジェクトのIUnknown。NULL可。 |
| pszAttributes | LPWSTR | in | 照合する属性条件を示すセミコロン区切り文字列。 |
| pfMatches | BOOL* | inout | 属性が一致したかを受け取るBOOLポインタ。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ISpObjectToken "{14056589-E16C-11D2-BB90-00C04F8EE6C0}" #usecom global ISpObjectToken IID_ISpObjectToken "{EF411752-3736-4CB4-9C8C-8EF4CCB58EFE}" #comfunc global ISpObjectToken_SetId 15 wstr,wstr,int #comfunc global ISpObjectToken_GetId 16 var #comfunc global ISpObjectToken_GetCategory 17 sptr #comfunc global ISpObjectToken_CreateInstance 18 sptr,int,var,sptr #comfunc global ISpObjectToken_GetStorageFileName 19 var,wstr,wstr,int,var #comfunc global ISpObjectToken_RemoveStorageFileName 20 var,wstr,int #comfunc global ISpObjectToken_Remove 21 var #comfunc global ISpObjectToken_IsUISupported 22 wstr,sptr,int,sptr,var #comfunc global ISpObjectToken_DisplayUI 23 sptr,wstr,wstr,sptr,int,sptr #comfunc global ISpObjectToken_MatchesAttributes 24 wstr,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ISpObjectToken "{14056589-E16C-11D2-BB90-00C04F8EE6C0}" #usecom global ISpObjectToken IID_ISpObjectToken "{EF411752-3736-4CB4-9C8C-8EF4CCB58EFE}" #comfunc global ISpObjectToken_SetId 15 wstr,wstr,int #comfunc global ISpObjectToken_GetId 16 sptr #comfunc global ISpObjectToken_GetCategory 17 sptr #comfunc global ISpObjectToken_CreateInstance 18 sptr,int,sptr,sptr #comfunc global ISpObjectToken_GetStorageFileName 19 sptr,wstr,wstr,int,sptr #comfunc global ISpObjectToken_RemoveStorageFileName 20 sptr,wstr,int #comfunc global ISpObjectToken_Remove 21 sptr #comfunc global ISpObjectToken_IsUISupported 22 wstr,sptr,int,sptr,sptr #comfunc global ISpObjectToken_DisplayUI 23 sptr,wstr,wstr,sptr,int,sptr #comfunc global ISpObjectToken_MatchesAttributes 24 wstr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。