Win32 API 日本語リファレンス
ホームSystem.Com › ITypeInfo2

ITypeInfo2

COM
IID00020412-0000-0000-c000-000000000046継承元ITypeInfo自前メソッド開始 vtbl22

公式ドキュメント

オブジェクトに関する情報を読み取るために使用します。(ITypeInfo2)

メソッド 15

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

vtbl 22 HRESULT GetTypeKind(TYPEKIND* pTypeKind)

アロケーションを行わずに、TYPEKIND 列挙値を高速に返します。

pTypeKindTYPEKIND*outTYPEKIND 値。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
vtbl 23 HRESULT GetTypeFlags(DWORD* pTypeFlags)

アロケーションを行わずに型フラグを返します。これは、TYPEATTR(型属性)を拡張することなく型フラグを展開したフラグを返します。

pTypeFlagsDWORD*outTYPEFLAG 値。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
vtbl 24 HRESULT GetFuncIndexOfMemId(INT memid, INVOKEKIND invKind, DWORD* pFuncIndex)

メンバー名が不明な場合(たとえば既定のメンバーにバインドする場合)に、既知の DISPID に基づいて特定のメンバーにバインドします。(ITypeInfo2.GetFuncIndexOfMemId)

memidINTinメンバー識別子。
invKindINVOKEKINDin呼び出しの種類。
pFuncIndexDWORD*out関数へのインデックス。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
vtbl 25 HRESULT GetVarIndexOfMemId(INT memid, DWORD* pVarIndex)

メンバー名が不明な場合(たとえば既定のメンバーにバインドする場合)に、既知の DISPID に基づいて特定のメンバーにバインドします。(ITypeInfo2.GetVarIndexOfMemId)

memidINTinメンバー識別子。
pVarIndexDWORD*outインデックス。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
vtbl 26 HRESULT GetCustData(GUID* guid, VARIANT* pVarVal)

カスタムデータを取得します。(ITypeInfo2.GetCustData)

guidGUID*inデータを識別するために使用される GUID。
pVarValVARIANT*outカスタムデータ。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
vtbl 27 HRESULT GetFuncCustData(DWORD index, GUID* guid, VARIANT* pVarVal)

指定された関数からカスタムデータを取得します。

indexDWORDinカスタムデータを取得する対象の関数のインデックス。
guidGUID*inデータを識別するために使用される GUID。
pVarValVARIANT*outカスタムデータ。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
vtbl 28 HRESULT GetParamCustData(DWORD indexFunc, DWORD indexParam, GUID* guid, VARIANT* pVarVal)

指定されたパラメーターのカスタムデータを取得します。

indexFuncDWORDinカスタムデータを取得する対象の関数のインデックス。
indexParamDWORDinカスタムデータを取得する対象の、この関数のパラメーターのインデックス。
guidGUID*inデータを識別するために使用される GUID。
pVarValVARIANT*out取得されたデータ。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
vtbl 29 HRESULT GetVarCustData(DWORD index, GUID* guid, VARIANT* pVarVal)

指定された変数のカスタムデータを取得します。

indexDWORDinカスタムデータを取得する対象の変数のインデックス。
guidGUID*inデータを識別するために使用される GUID。
pVarValVARIANT*out取得されたデータ。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
vtbl 30 HRESULT GetImplTypeCustData(DWORD index, GUID* guid, VARIANT* pVarVal)

実装型のカスタムデータを取得します。

indexDWORDinカスタムデータを取得する対象の実装型のインデックス。
guidGUID*inデータを識別するために使用される GUID。
pVarValVARIANT*out取得されたデータ。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
vtbl 31 HRESULT GetDocumentation2(INT memid, DWORD lcid, LPWSTR* pbstrHelpString, DWORD* pdwHelpStringContext, LPWSTR* pbstrHelpStringDll)

ドキュメント文字列、Help ファイルの完全な名前とパス、使用するローカライズコンテキスト、および Help ファイル内のライブラリ Help トピックのコンテキスト ID を取得します。

memidINTin型記述のメンバー識別子。
lcidDWORDinロケール識別子。
pbstrHelpStringLPWSTR*outoptional指定された項目の名前。呼び出し元が項目名を必要としない場合、pbstrHelpString は null にできます。
pdwHelpStringContextDWORD*outHelp のローカライズコンテキスト。呼び出し元が Help コンテキストを必要としない場合は、null にできます。
pbstrHelpStringDllLPWSTR*outoptionalHelp ファイルに使用される DLL を含むファイルの完全修飾名。呼び出し元がファイル名を必要としない場合は、null にできます。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。

解説(Remarks)

型情報レベルの情報(型情報およびそのメンバーに関する情報)を取得します。呼び出し元は BSTR パラメーターを解放する必要があります。

この関数は、この項目に対する Help 文字列コンテキストが存在する場合、目的の Help 文字列を取得するために、指定された DLL 内の _DLLGetDocumentation を呼び出します。Help 文字列コンテキストが存在しない場合やエラーが発生した場合は、GetDocumentation メソッドに委ね、関連付けられたドキュメント文字列を返します。

vtbl 32 HRESULT GetAllCustData(CUSTDATA* pCustData)

ライブラリのすべてのカスタムデータ項目を取得します。(ITypeInfo2.GetAllCustData)

pCustDataCUSTDATA*outカスタムデータ項目。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。

解説(Remarks)

呼び出し後、呼び出し元は ClearCustData を呼び出して、カスタムデータ項目を保持するために使用されたメモリを解放する必要があります。

vtbl 33 HRESULT GetAllFuncCustData(DWORD index, CUSTDATA* pCustData)

指定された関数からすべてのカスタムデータを取得します。

indexDWORDinカスタムデータを取得する対象の関数のインデックス。
pCustDataCUSTDATA*outカスタムデータ項目。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。

解説(Remarks)

呼び出し後、呼び出し元は ClearCustData を呼び出して、カスタムデータ項目を保持するために使用されたメモリを解放する必要があります。

vtbl 34 HRESULT GetAllParamCustData(DWORD indexFunc, DWORD indexParam, CUSTDATA* pCustData)

指定された関数パラメーターのすべてのカスタムデータを取得します。

indexFuncDWORDinカスタムデータを取得する対象の関数のインデックス。
indexParamDWORDinカスタムデータを取得する対象の、この関数のパラメーターのインデックス。
pCustDataCUSTDATA*outカスタムデータ項目。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
vtbl 35 HRESULT GetAllVarCustData(DWORD index, CUSTDATA* pCustData)

カスタムデータの変数を取得します。

indexDWORDinカスタムデータを取得する対象の変数のインデックス。
pCustDataCUSTDATA*outカスタムデータ項目。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
vtbl 36 HRESULT GetAllImplTypeCustData(DWORD index, CUSTDATA* pCustData)

指定された実装型のすべてのカスタムデータを取得します。

indexDWORDinカスタムデータを取得する対象の実装型のインデックス。
pCustDataCUSTDATA*outカスタムデータ項目。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_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 方式にも切替可。