IWICComponentInfo
COM公式ドキュメント
コンポーネント情報を提供するメソッドを公開します。
メソッド 8
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
コンポーネントの WICComponentType を取得します。
| pType | WICComponentType* | out | WICComponentType を受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
コンポーネントのクラス識別子 (CLSID) を取得します。
| pclsid | GUID* | out | コンポーネントの CLSID を受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
コンポーネントの署名状態を取得します。
| pStatus | DWORD* | out | コンポーネントの WICComponentSigning 状態を受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
署名は WIC では使用されません。したがって、すべてのコンポーネントは WICComponentSigned となります。
この関数は、コンポーネントにバイナリコンポーネントが存在しないか、またはレジストリの無効化コンポーネント一覧に追加されているかどうかを判定するために使用できます。
コンポーネントの作成者名を取得します。
| cchAuthor | DWORD | in | wzAuthor バッファーのサイズ。 |
| wzAuthor | LPWSTR | inout | コンポーネントの作成者名を受け取るポインター。 文字列のロケールは、コーデックがインストール時にレジストリに書き込んだ値によって異なります。組み込みコンポーネントの場合、これらの文字列は常に英語です。 |
| pcchActual | DWORD* | out | コンポーネントの作成者名の実際の長さを受け取るポインター。作成者名は省略可能です。コンポーネントによって作成者名が指定されていない場合、返される長さは 0 です。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
cchAuthor が 0 で wzAuthor が NULL の場合、必要なバッファーサイズが pccchActual に返されます。
ベンダー GUID を取得します。
| pguidVendor | GUID* | out | コンポーネントのベンダー GUID を受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
コンポーネントのバージョンを取得します。
| cchVersion | DWORD | in | wzVersion バッファーのサイズ。 |
| wzVersion | LPWSTR | inout | コンポーネントのバージョンを表すカルチャに依存しない文字列を受け取るポインター。 |
| pcchActual | DWORD* | out | コンポーネントのバージョンの実際の長さを受け取るポインター。バージョンは省略可能です。コンポーネントによって値が指定されていない場合、返される長さは 0 です。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
すべての組み込みコンポーネントは "1.0.0.0" を返します。ただし、ピクセルフォーマットはバージョンを持たないため例外です。
cchAuthor が 0 で wzAuthor が NULL の場合、必要なバッファーサイズが pccchActual に返されます。
コンポーネントの仕様バージョンを取得します。
| cchSpecVersion | DWORD | in | wzSpecVersion バッファーのサイズ。 |
| wzSpecVersion | LPWSTR | inout | このメソッドが返るとき、コンポーネントの仕様バージョンを表すカルチャに依存しない文字列を格納します。バージョンの形式は NN.NN.NN.NN です。 |
| pcchActual | DWORD* | out | コンポーネントの仕様バージョンの実際の長さを受け取るポインター。仕様バージョンは省略可能です。コンポーネントによって値が指定されていない場合、返される長さは 0 です。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
すべての組み込みコンポーネントは "1.0.0.0" を返します。ただし、ピクセルフォーマットは仕様バージョンを持たないため例外です。
cchAuthor が 0 で wzAuthor が NULL の場合、必要なバッファーサイズが pccchActual に返されます。
コンポーネントのフレンドリ名を取得します。これはコンポーネントの人間が読める表示名です。
| cchFriendlyName | DWORD | in | wzFriendlyName バッファーのサイズ。 |
| wzFriendlyName | LPWSTR | inout | コンポーネントのフレンドリ名を受け取るポインター。 文字列のロケールは、コーデックがインストール時にレジストリに書き込んだ値によって異なります。組み込みコンポーネントの場合、これらの文字列は常に英語です。 |
| pcchActual | DWORD* | out | コンポーネントのフレンドリ名の実際の長さを受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
cchFriendlyName が 0 で wzFriendlyName が NULL の場合、必要なバッファーサイズが pccchActual に返されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWICComponentInfo "{23BC3F0A-698B-4357-886B-F24D50671334}" #usecom global IWICComponentInfo IID_IWICComponentInfo "{}" #comfunc global IWICComponentInfo_GetComponentType 3 var #comfunc global IWICComponentInfo_GetCLSID 4 var #comfunc global IWICComponentInfo_GetSigningStatus 5 var #comfunc global IWICComponentInfo_GetAuthor 6 int,var,var #comfunc global IWICComponentInfo_GetVendorGUID 7 var #comfunc global IWICComponentInfo_GetVersion 8 int,var,var #comfunc global IWICComponentInfo_GetSpecVersion 9 int,var,var #comfunc global IWICComponentInfo_GetFriendlyName 10 int,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IWICComponentInfo "{23BC3F0A-698B-4357-886B-F24D50671334}" #usecom global IWICComponentInfo IID_IWICComponentInfo "{}" #comfunc global IWICComponentInfo_GetComponentType 3 sptr #comfunc global IWICComponentInfo_GetCLSID 4 sptr #comfunc global IWICComponentInfo_GetSigningStatus 5 sptr #comfunc global IWICComponentInfo_GetAuthor 6 int,sptr,sptr #comfunc global IWICComponentInfo_GetVendorGUID 7 sptr #comfunc global IWICComponentInfo_GetVersion 8 int,sptr,sptr #comfunc global IWICComponentInfo_GetSpecVersion 9 int,sptr,sptr #comfunc global IWICComponentInfo_GetFriendlyName 10 int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。