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

ITypeLib2

COM
IID00020411-0000-0000-c000-000000000046継承元ITypeLib自前メソッド開始 vtbl13

公式ドキュメント

オブジェクトの集合を記述するデータであるタイプライブラリを表します。(ITypeLib2)

メソッド 4

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

vtbl 13 HRESULT GetCustData(GUID* guid, VARIANT* pVarVal)

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

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

戻り値

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

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

ハッシュテーブルのサイズを効率的に決定するために必要となる、タイプライブラリに関する統計情報を返します。

pcUniqueNamesDWORD*out一意な名前の数。呼び出し側がこの情報を必要としない場合は NULL を設定します。
pcchUniqueNamesDWORD*out一意な名前の数の変化量。

戻り値

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

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

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

indexINTinドキュメントを返す対象となるタイプ記述のインデックス。index が -1 の場合は、ライブラリのドキュメントが返されます。
lcidDWORDinロケール識別子。
pbstrHelpStringLPWSTR*outoptional指定した項目の名前。呼び出し側が項目名を必要としない場合は、pbstrHelpString を null にできます。
pdwHelpStringContextDWORD*outHelp のローカライズコンテキスト。呼び出し側が Help コンテキストを必要としない場合は null にできます。
pbstrHelpStringDllLPWSTR*outoptionalHelp ファイルに使用する DLL を含むファイルの完全修飾名。呼び出し側がファイル名を必要としない場合は null にできます。

戻り値

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

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

解説(Remarks)

タイプライブラリレベルの情報を取得します。呼び出し側は BSTR パラメーターを解放する必要があります。

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

vtbl 16 HRESULT GetAllCustData(CUSTDATA* pCustData)

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

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

戻り値

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

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

解説(Remarks)

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

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ITypeLib2 "{00020411-0000-0000-C000-000000000046}"
#usecom global ITypeLib2 IID_ITypeLib2 "{}"
#comfunc global ITypeLib2_GetCustData        13 var,var
#comfunc global ITypeLib2_GetLibStatistics   14 var,var
#comfunc global ITypeLib2_GetDocumentation2  15 int,int,var,var,var
#comfunc global ITypeLib2_GetAllCustData     16 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。