Win32 API 日本語リファレンス
ホームGraphics.DirectManipulation › IDirectManipulationManager

IDirectManipulationManager

COM
IIDfbf5d3b4-70c7-4163-9322-5a6f660d6fbc継承元IUnknown自前メソッド開始 vtbl3

メソッド 7

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT Activate(HWND window)
windowHWNDinDirectManipulation処理を有効化する対象ウィンドウのハンドル。
vtbl 4 HRESULT Deactivate(HWND window)
windowHWNDinDirectManipulation処理を無効化する対象ウィンドウのハンドル。
vtbl 5 HRESULT RegisterHitTestTarget(HWND window, HWND hitTestWindow, DIRECTMANIPULATION_HITTEST_TYPE type)
windowHWNDinヒットテストを登録する対象ウィンドウのハンドル。
hitTestWindowHWNDinoptionalヒットテスト結果の送信先ウィンドウのハンドル。NULL可。
typeDIRECTMANIPULATION_HITTEST_TYPEinヒットテストの扱い方を示す DIRECTMANIPULATION_HITTEST_TYPE 列挙値。
vtbl 6 HRESULT ProcessInput(MSG* message, BOOL* handled)
messageMSG*inDirectManipulationへ供給するウィンドウメッセージを格納した MSG 構造体ポインタ。
handledBOOL*outメッセージが処理されたか否かを受け取るBOOL出力ポインタ。
vtbl 7 HRESULT GetUpdateManager(GUID* riid, void** object)
riidGUID*in取得したいインターフェイスのIID(GUID)を指すポインタ。
objectvoid**out取得した更新マネージャインターフェイスを受け取る出力ポインタの格納先。
vtbl 8 HRESULT CreateViewport(IDirectManipulationFrameInfoProvider* frameInfo, HWND window, GUID* riid, void** object)
frameInfoIDirectManipulationFrameInfoProvider*inoptionalフレームタイミングを提供するフレーム情報プロバイダのポインタ。NULL可。
windowHWNDinビューポートを関連付ける対象ウィンドウのハンドル。
riidGUID*in取得したいビューポートインターフェイスのIID(GUID)を指すポインタ。
objectvoid**out生成したビューポートインターフェイスを受け取る出力ポインタの格納先。
vtbl 9 HRESULT CreateContent(IDirectManipulationFrameInfoProvider* frameInfo, GUID* clsid, GUID* riid, void** object)
frameInfoIDirectManipulationFrameInfoProvider*inoptionalフレームタイミングを提供するフレーム情報プロバイダのポインタ。NULL可。
clsidGUID*in生成するコンテンツの種類を示すCLSID(GUID)を指すポインタ。
riidGUID*in取得したいコンテンツインターフェイスのIID(GUID)を指すポインタ。
objectvoid**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 指定が可能。