IWICMetadataHandlerInfo
COM公式ドキュメント
登録されたメタデータハンドラーに関する基本的な情報を提供するメソッドを公開します。
メソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
メタデータハンドラーのメタデータ形式を取得します。
| pguidMetadataFormat | GUID* | out | メタデータ形式の GUID を受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
メタデータハンドラーがサポートするコンテナー形式を取得します。
| cContainerFormats | DWORD | in | pguidContainerFormats 配列のサイズ。 |
| pguidContainerFormats | GUID* | inout | メタデータハンドラーがサポートするコンテナー形式を受け取る配列へのポインター。 |
| pcchActual | DWORD* | out | 配列に追加された GUID の実際の数。 サポートされているコンテナー形式の数を取得するには、pguidContainerFormats に |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
メタデータハンドラーのデバイス製造元を取得します。
| cchDeviceManufacturer | DWORD | in | wzDeviceManufacturer バッファーのサイズ。 |
| wzDeviceManufacturer | LPWSTR | inout | デバイス製造元の名前を受け取るバッファーへのポインター。 |
| pcchActual | DWORD* | out | デバイス製造元の名前全体を取得するために必要な実際の文字列バッファー長。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
メタデータハンドラーをサポートするデバイスモデルを取得します。
| cchDeviceModels | DWORD | in | wzDeviceModels バッファーの長さ。 |
| wzDeviceModels | LPWSTR | inout | メタデータハンドラーがサポートするデバイスモデルを受け取るポインター。 |
| pcchActual | DWORD* | out | デバイスモデルを取得するために必要な実際の長さ。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ハンドラーが完全なストリームを必要とするかどうかを判定します。
| pfRequiresFullStream | BOOL* | out | 完全なストリームが必要な場合は TRUE を、それ以外の場合は FALSE を受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
メタデータハンドラーがパディングをサポートするかどうかを判定します。
| pfSupportsPadding | BOOL* | out | パディングがサポートされている場合は TRUE を、それ以外の場合は FALSE を受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
メタデータハンドラーが固定サイズを必要とするかどうかを判定します。
| pfFixedSize | BOOL* | out | 固定サイズが必要な場合は TRUE を、それ以外の場合は FALSE を受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWICMetadataHandlerInfo "{ABA958BF-C672-44D1-8D61-CE6DF2E682C2}" #usecom global IWICMetadataHandlerInfo IID_IWICMetadataHandlerInfo "{}" #comfunc global IWICMetadataHandlerInfo_GetMetadataFormat 11 var #comfunc global IWICMetadataHandlerInfo_GetContainerFormats 12 int,var,var #comfunc global IWICMetadataHandlerInfo_GetDeviceManufacturer 13 int,var,var #comfunc global IWICMetadataHandlerInfo_GetDeviceModels 14 int,var,var #comfunc global IWICMetadataHandlerInfo_DoesRequireFullStream 15 var #comfunc global IWICMetadataHandlerInfo_DoesSupportPadding 16 var #comfunc global IWICMetadataHandlerInfo_DoesRequireFixedSize 17 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IWICMetadataHandlerInfo "{ABA958BF-C672-44D1-8D61-CE6DF2E682C2}" #usecom global IWICMetadataHandlerInfo IID_IWICMetadataHandlerInfo "{}" #comfunc global IWICMetadataHandlerInfo_GetMetadataFormat 11 sptr #comfunc global IWICMetadataHandlerInfo_GetContainerFormats 12 int,sptr,sptr #comfunc global IWICMetadataHandlerInfo_GetDeviceManufacturer 13 int,sptr,sptr #comfunc global IWICMetadataHandlerInfo_GetDeviceModels 14 int,sptr,sptr #comfunc global IWICMetadataHandlerInfo_DoesRequireFullStream 15 sptr #comfunc global IWICMetadataHandlerInfo_DoesSupportPadding 16 sptr #comfunc global IWICMetadataHandlerInfo_DoesRequireFixedSize 17 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。