Win32 API 日本語リファレンス
ホームAI.MachineLearning.DirectML › IDMLObject

IDMLObject

COM
IIDc8263aac-9e0c-4a2d-9b8e-007521a3317c継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IDMLDevice および IDMLDeviceChild が直接継承する(そして他のすべてのインターフェースが間接的に継承する)インターフェースです。

メソッド 4

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

vtbl 3 HRESULT GetPrivateData(GUID* guid, DWORD* dataSize, void* data)

DirectML デバイスオブジェクトから、アプリケーション定義のデータを取得します。

guidGUID*inデータに関連付けられている GUID です。
dataSizeDWORD*inout変数へのポインターです。入力時には data が指すバッファのサイズ(バイト単位)を格納し、出力時には GetPrivateData が取得したデータ量のサイズ(バイト単位)を格納します。
datavoid*outoptionaldataSize がデータを保持できる十分な大きさのバッファを示す値を指している場合に、デバイスオブジェクトからデータを受け取るメモリブロックへのポインターです。

戻り値

Type: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

返されるデータが、以前に SetPrivateDataInterface によって設定された IUnknown(またはその派生インターフェース)へのポインターである場合、プライベートデータが返される前に、そのインターフェースの参照カウントがインクリメントされます。

vtbl 4 HRESULT SetPrivateData(GUID* guid, DWORD dataSize, void* data)

DirectML デバイスオブジェクトにアプリケーション定義のデータを設定し、そのデータをアプリケーション定義の GUID に関連付けます。

guidGUID*inデータに関連付ける GUID です。
dataSizeDWORDinデータのサイズ(バイト単位)です。
datavoid*inoptionalこの DirectML デバイスオブジェクトとともに格納するデータを含むメモリブロックへのポインターです。dataNULL の場合、dataSize は 0 でなければならず、guid で指定された GUID に以前関連付けられていたデータはすべて破棄されます。

戻り値

Type: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 5 HRESULT SetPrivateDataInterface(GUID* guid, IUnknown* data)

IUnknown から派生したインターフェースを DirectML デバイスオブジェクトに関連付け、そのインターフェースをアプリケーション定義の GUID に関連付けます。

guidGUID*inインターフェースに関連付ける GUID です。
dataIUnknown*inoptionalデバイスオブジェクトに関連付ける IUnknown 派生インターフェースへのポインターです。

戻り値

Type: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 6 HRESULT SetName(LPWSTR name)

DirectML デバイスオブジェクトに名前を関連付けます。この名前は、デバッグ診断やツールで使用するためのものです。

nameLPWSTRinDirectML デバイスオブジェクトに関連付ける名前を含む NULL 終端の UNICODE 文字列です。

戻り値

Type: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDMLObject "{C8263AAC-9E0C-4A2D-9B8E-007521A3317C}"
#usecom global IDMLObject IID_IDMLObject "{}"
#comfunc global IDMLObject_GetPrivateData           3 var,var,sptr
#comfunc global IDMLObject_SetPrivateData           4 var,int,sptr
#comfunc global IDMLObject_SetPrivateDataInterface  5 var,sptr
#comfunc global IDMLObject_SetName                  6 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。