ホーム › Graphics.DXCore › IDXCoreAdapterFactory
IDXCoreAdapterFactory
COMメソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT CreateAdapterList(DWORD numAttributes, GUID* filterAttributes, GUID* riid, void** ppvAdapterList)
| numAttributes | DWORD | in | filterAttributes配列の要素数である。 |
| filterAttributes | GUID* | in | 対象を絞り込む属性GUIDの配列である。 |
| riid | GUID* | in | 取得するアダプターリストインターフェイスを示すIIDである。 |
| ppvAdapterList | void** | out | 生成されたアダプターリストを受け取る出力先である。 |
| adapterLUID | LUID* | in | 取得対象アダプターを識別するLUIDである。 |
| riid | GUID* | in | 取得するアダプターインターフェイスを示すIIDである。 |
| ppvAdapter | void** | out | 取得したアダプターを受け取る出力先である。 |
vtbl 5 BOOLEAN IsNotificationTypeSupported(DXCoreNotificationType notificationType)
| notificationType | DXCoreNotificationType | in | サポート有無を問い合わせる通知種別を示すDXCoreNotificationTypeである。 |
vtbl 6 HRESULT RegisterEventNotification(IUnknown* dxCoreObject, DXCoreNotificationType notificationType, PFN_DXCORE_NOTIFICATION_CALLBACK callbackFunction, void* callbackContext, DWORD* eventCookie)
| dxCoreObject | IUnknown* | in | 通知の監視対象となるDXCoreオブジェクトである。 |
| notificationType | DXCoreNotificationType | in | 登録する通知種別を示すDXCoreNotificationTypeである。 |
| callbackFunction | PFN_DXCORE_NOTIFICATION_CALLBACK | in | 通知発生時に呼ばれるコールバック関数ポインタである。 |
| callbackContext | void* | inoptional | コールバックへ渡されるアプリ定義のコンテキストである。NULL可。 |
| eventCookie | DWORD* | out | 登録解除に用いる識別クッキーを受け取る出力先である。 |
| eventCookie | DWORD | in | RegisterEventNotificationで取得したクッキー。対応する通知登録を解除する。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDXCoreAdapterFactory "{78EE5945-C36E-4B13-A669-005DD11C0F06}" #usecom global IDXCoreAdapterFactory IID_IDXCoreAdapterFactory "{}" #comfunc global IDXCoreAdapterFactory_CreateAdapterList 3 int,var,var,sptr #comfunc global IDXCoreAdapterFactory_GetAdapterByLuid 4 var,var,sptr #comfunc global IDXCoreAdapterFactory_IsNotificationTypeSupported 5 int #comfunc global IDXCoreAdapterFactory_RegisterEventNotification 6 sptr,int,sptr,sptr,var #comfunc global IDXCoreAdapterFactory_UnregisterEventNotification 7 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDXCoreAdapterFactory "{78EE5945-C36E-4B13-A669-005DD11C0F06}" #usecom global IDXCoreAdapterFactory IID_IDXCoreAdapterFactory "{}" #comfunc global IDXCoreAdapterFactory_CreateAdapterList 3 int,sptr,sptr,sptr #comfunc global IDXCoreAdapterFactory_GetAdapterByLuid 4 sptr,sptr,sptr #comfunc global IDXCoreAdapterFactory_IsNotificationTypeSupported 5 int #comfunc global IDXCoreAdapterFactory_RegisterEventNotification 6 sptr,int,sptr,sptr,sptr #comfunc global IDXCoreAdapterFactory_UnregisterEventNotification 7 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。