ITypeInfo2
COM公式ドキュメント
オブジェクトに関する情報を読み取るために使用します。(ITypeInfo2)
メソッド 15
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
アロケーションを行わずに、TYPEKIND 列挙値を高速に返します。
| pTypeKind | TYPEKIND* | out | TYPEKIND 値。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 | |
| 1 つ以上の引数が有効ではありません。 | |
| 操作を完了するためのメモリが不足しています。 |
アロケーションを行わずに型フラグを返します。これは、TYPEATTR(型属性)を拡張することなく型フラグを展開したフラグを返します。
| pTypeFlags | DWORD* | out | TYPEFLAG 値。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 | |
| 1 つ以上の引数が有効ではありません。 | |
| 操作を完了するためのメモリが不足しています。 |
メンバー名が不明な場合(たとえば既定のメンバーにバインドする場合)に、既知の DISPID に基づいて特定のメンバーにバインドします。(ITypeInfo2.GetFuncIndexOfMemId)
| memid | INT | in | メンバー識別子。 |
| invKind | INVOKEKIND | in | 呼び出しの種類。 |
| pFuncIndex | DWORD* | out | 関数へのインデックス。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 | |
| 1 つ以上の引数が有効ではありません。 | |
| 操作を完了するためのメモリが不足しています。 |
メンバー名が不明な場合(たとえば既定のメンバーにバインドする場合)に、既知の DISPID に基づいて特定のメンバーにバインドします。(ITypeInfo2.GetVarIndexOfMemId)
| memid | INT | in | メンバー識別子。 |
| pVarIndex | DWORD* | out | インデックス。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 | |
| 1 つ以上の引数が有効ではありません。 | |
| 操作を完了するためのメモリが不足しています。 |
カスタムデータを取得します。(ITypeInfo2.GetCustData)
| guid | GUID* | in | データを識別するために使用される GUID。 |
| pVarVal | VARIANT* | out | カスタムデータ。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 | |
| 1 つ以上の引数が有効ではありません。 | |
| 操作を完了するためのメモリが不足しています。 |
指定された関数からカスタムデータを取得します。
| index | DWORD | in | カスタムデータを取得する対象の関数のインデックス。 |
| guid | GUID* | in | データを識別するために使用される GUID。 |
| pVarVal | VARIANT* | out | カスタムデータ。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 | |
| 1 つ以上の引数が有効ではありません。 | |
| 操作を完了するためのメモリが不足しています。 |
指定されたパラメーターのカスタムデータを取得します。
| indexFunc | DWORD | in | カスタムデータを取得する対象の関数のインデックス。 |
| indexParam | DWORD | in | カスタムデータを取得する対象の、この関数のパラメーターのインデックス。 |
| guid | GUID* | in | データを識別するために使用される GUID。 |
| pVarVal | VARIANT* | out | 取得されたデータ。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 | |
| 1 つ以上の引数が有効ではありません。 | |
| 操作を完了するためのメモリが不足しています。 |
指定された変数のカスタムデータを取得します。
| index | DWORD | in | カスタムデータを取得する対象の変数のインデックス。 |
| guid | GUID* | in | データを識別するために使用される GUID。 |
| pVarVal | VARIANT* | out | 取得されたデータ。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 | |
| 1 つ以上の引数が有効ではありません。 | |
| 操作を完了するためのメモリが不足しています。 |
実装型のカスタムデータを取得します。
| index | DWORD | in | カスタムデータを取得する対象の実装型のインデックス。 |
| guid | GUID* | in | データを識別するために使用される GUID。 |
| pVarVal | VARIANT* | out | 取得されたデータ。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 | |
| 1 つ以上の引数が有効ではありません。 | |
| 操作を完了するためのメモリが不足しています。 |
ドキュメント文字列、Help ファイルの完全な名前とパス、使用するローカライズコンテキスト、および Help ファイル内のライブラリ Help トピックのコンテキスト ID を取得します。
| memid | INT | in | 型記述のメンバー識別子。 |
| lcid | DWORD | in | ロケール識別子。 |
| pbstrHelpString | LPWSTR* | outoptional | 指定された項目の名前。呼び出し元が項目名を必要としない場合、pbstrHelpString は null にできます。 |
| pdwHelpStringContext | DWORD* | out | Help のローカライズコンテキスト。呼び出し元が Help コンテキストを必要としない場合は、null にできます。 |
| pbstrHelpStringDll | LPWSTR* | outoptional | Help ファイルに使用される DLL を含むファイルの完全修飾名。呼び出し元がファイル名を必要としない場合は、null にできます。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 | |
| 1 つ以上の引数が有効ではありません。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
型情報レベルの情報(型情報およびそのメンバーに関する情報)を取得します。呼び出し元は BSTR パラメーターを解放する必要があります。
この関数は、この項目に対する Help 文字列コンテキストが存在する場合、目的の Help 文字列を取得するために、指定された DLL 内の _DLLGetDocumentation を呼び出します。Help 文字列コンテキストが存在しない場合やエラーが発生した場合は、GetDocumentation メソッドに委ね、関連付けられたドキュメント文字列を返します。
ライブラリのすべてのカスタムデータ項目を取得します。(ITypeInfo2.GetAllCustData)
| pCustData | CUSTDATA* | out | カスタムデータ項目。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 | |
| 1 つ以上の引数が有効ではありません。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
呼び出し後、呼び出し元は ClearCustData を呼び出して、カスタムデータ項目を保持するために使用されたメモリを解放する必要があります。
指定された関数からすべてのカスタムデータを取得します。
| index | DWORD | in | カスタムデータを取得する対象の関数のインデックス。 |
| pCustData | CUSTDATA* | out | カスタムデータ項目。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 | |
| 1 つ以上の引数が有効ではありません。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
呼び出し後、呼び出し元は ClearCustData を呼び出して、カスタムデータ項目を保持するために使用されたメモリを解放する必要があります。
指定された関数パラメーターのすべてのカスタムデータを取得します。
| indexFunc | DWORD | in | カスタムデータを取得する対象の関数のインデックス。 |
| indexParam | DWORD | in | カスタムデータを取得する対象の、この関数のパラメーターのインデックス。 |
| pCustData | CUSTDATA* | out | カスタムデータ項目。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 | |
| 1 つ以上の引数が有効ではありません。 | |
| 操作を完了するためのメモリが不足しています。 |
カスタムデータの変数を取得します。
| index | DWORD | in | カスタムデータを取得する対象の変数のインデックス。 |
| pCustData | CUSTDATA* | out | カスタムデータ項目。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 | |
| 1 つ以上の引数が有効ではありません。 | |
| 操作を完了するためのメモリが不足しています。 |
指定された実装型のすべてのカスタムデータを取得します。
| index | DWORD | in | カスタムデータを取得する対象の実装型のインデックス。 |
| pCustData | CUSTDATA* | out | カスタムデータ項目。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 | |
| 1 つ以上の引数が有効ではありません。 | |
| 操作を完了するためのメモリが不足しています。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ITypeInfo2 "{00020412-0000-0000-C000-000000000046}" #usecom global ITypeInfo2 IID_ITypeInfo2 "{}" #comfunc global ITypeInfo2_GetTypeKind 22 var #comfunc global ITypeInfo2_GetTypeFlags 23 var #comfunc global ITypeInfo2_GetFuncIndexOfMemId 24 int,int,var #comfunc global ITypeInfo2_GetVarIndexOfMemId 25 int,var #comfunc global ITypeInfo2_GetCustData 26 var,var #comfunc global ITypeInfo2_GetFuncCustData 27 int,var,var #comfunc global ITypeInfo2_GetParamCustData 28 int,int,var,var #comfunc global ITypeInfo2_GetVarCustData 29 int,var,var #comfunc global ITypeInfo2_GetImplTypeCustData 30 int,var,var #comfunc global ITypeInfo2_GetDocumentation2 31 int,int,var,var,var #comfunc global ITypeInfo2_GetAllCustData 32 var #comfunc global ITypeInfo2_GetAllFuncCustData 33 int,var #comfunc global ITypeInfo2_GetAllParamCustData 34 int,int,var #comfunc global ITypeInfo2_GetAllVarCustData 35 int,var #comfunc global ITypeInfo2_GetAllImplTypeCustData 36 int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_ITypeInfo2 "{00020412-0000-0000-C000-000000000046}" #usecom global ITypeInfo2 IID_ITypeInfo2 "{}" #comfunc global ITypeInfo2_GetTypeKind 22 sptr #comfunc global ITypeInfo2_GetTypeFlags 23 sptr #comfunc global ITypeInfo2_GetFuncIndexOfMemId 24 int,int,sptr #comfunc global ITypeInfo2_GetVarIndexOfMemId 25 int,sptr #comfunc global ITypeInfo2_GetCustData 26 sptr,sptr #comfunc global ITypeInfo2_GetFuncCustData 27 int,sptr,sptr #comfunc global ITypeInfo2_GetParamCustData 28 int,int,sptr,sptr #comfunc global ITypeInfo2_GetVarCustData 29 int,sptr,sptr #comfunc global ITypeInfo2_GetImplTypeCustData 30 int,sptr,sptr #comfunc global ITypeInfo2_GetDocumentation2 31 int,int,sptr,sptr,sptr #comfunc global ITypeInfo2_GetAllCustData 32 sptr #comfunc global ITypeInfo2_GetAllFuncCustData 33 int,sptr #comfunc global ITypeInfo2_GetAllParamCustData 34 int,int,sptr #comfunc global ITypeInfo2_GetAllVarCustData 35 int,sptr #comfunc global ITypeInfo2_GetAllImplTypeCustData 36 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。