ホーム › Graphics.DirectManipulation › IDirectManipulationManager
IDirectManipulationManager
COMメソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| window | HWND | in | DirectManipulation処理を有効化する対象ウィンドウのハンドル。 |
| window | HWND | in | DirectManipulation処理を無効化する対象ウィンドウのハンドル。 |
vtbl 5 HRESULT RegisterHitTestTarget(HWND window, HWND hitTestWindow, DIRECTMANIPULATION_HITTEST_TYPE type)
| window | HWND | in | ヒットテストを登録する対象ウィンドウのハンドル。 |
| hitTestWindow | HWND | inoptional | ヒットテスト結果の送信先ウィンドウのハンドル。NULL可。 |
| type | DIRECTMANIPULATION_HITTEST_TYPE | in | ヒットテストの扱い方を示す DIRECTMANIPULATION_HITTEST_TYPE 列挙値。 |
| message | MSG* | in | DirectManipulationへ供給するウィンドウメッセージを格納した MSG 構造体ポインタ。 |
| handled | BOOL* | out | メッセージが処理されたか否かを受け取るBOOL出力ポインタ。 |
vtbl 7 HRESULT GetUpdateManager(GUID* riid, void** object)
| riid | GUID* | in | 取得したいインターフェイスのIID(GUID)を指すポインタ。 |
| object | void** | out | 取得した更新マネージャインターフェイスを受け取る出力ポインタの格納先。 |
vtbl 8 HRESULT CreateViewport(IDirectManipulationFrameInfoProvider* frameInfo, HWND window, GUID* riid, void** object)
| frameInfo | IDirectManipulationFrameInfoProvider* | inoptional | フレームタイミングを提供するフレーム情報プロバイダのポインタ。NULL可。 |
| window | HWND | in | ビューポートを関連付ける対象ウィンドウのハンドル。 |
| riid | GUID* | in | 取得したいビューポートインターフェイスのIID(GUID)を指すポインタ。 |
| object | void** | out | 生成したビューポートインターフェイスを受け取る出力ポインタの格納先。 |
vtbl 9 HRESULT CreateContent(IDirectManipulationFrameInfoProvider* frameInfo, GUID* clsid, GUID* riid, void** object)
| frameInfo | IDirectManipulationFrameInfoProvider* | inoptional | フレームタイミングを提供するフレーム情報プロバイダのポインタ。NULL可。 |
| clsid | GUID* | in | 生成するコンテンツの種類を示すCLSID(GUID)を指すポインタ。 |
| riid | GUID* | in | 取得したいコンテンツインターフェイスのIID(GUID)を指すポインタ。 |
| object | void** | out | 生成したコンテンツインターフェイスを受け取る出力ポインタの格納先。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDirectManipulationManager "{FBF5D3B4-70C7-4163-9322-5A6F660D6FBC}" #usecom global IDirectManipulationManager IID_IDirectManipulationManager "{54E211B6-3650-4F75-8334-FA359598E1C5}" #comfunc global IDirectManipulationManager_Activate 3 sptr #comfunc global IDirectManipulationManager_Deactivate 4 sptr #comfunc global IDirectManipulationManager_RegisterHitTestTarget 5 sptr,sptr,int #comfunc global IDirectManipulationManager_ProcessInput 6 var,var #comfunc global IDirectManipulationManager_GetUpdateManager 7 var,sptr #comfunc global IDirectManipulationManager_CreateViewport 8 sptr,sptr,var,sptr #comfunc global IDirectManipulationManager_CreateContent 9 sptr,var,var,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDirectManipulationManager "{FBF5D3B4-70C7-4163-9322-5A6F660D6FBC}" #usecom global IDirectManipulationManager IID_IDirectManipulationManager "{54E211B6-3650-4F75-8334-FA359598E1C5}" #comfunc global IDirectManipulationManager_Activate 3 sptr #comfunc global IDirectManipulationManager_Deactivate 4 sptr #comfunc global IDirectManipulationManager_RegisterHitTestTarget 5 sptr,sptr,int #comfunc global IDirectManipulationManager_ProcessInput 6 sptr,sptr #comfunc global IDirectManipulationManager_GetUpdateManager 7 sptr,sptr #comfunc global IDirectManipulationManager_CreateViewport 8 sptr,sptr,sptr,sptr #comfunc global IDirectManipulationManager_CreateContent 9 sptr,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。