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

ICreateTypeLib

COM
IID00020406-0000-0000-c000-000000000046継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

型情報を格納するコンポーネントまたはファイルを作成および管理するためのメソッドを提供します。(ICreateTypeLib)

メソッド 10

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

vtbl 3 HRESULT CreateTypeInfo(LPWSTR szName, TYPEKIND tkind, ICreateTypeInfo** ppCTInfo)

型ライブラリ内に新しい型記述インスタンスを作成します。

szNameLPWSTRin新しい型の名前。
tkindTYPEKINDin作成する型記述の TYPEKIND。
ppCTInfoICreateTypeInfo**out型記述。

戻り値

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

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_INVALIDSTATE
型ライブラリの状態がこの操作に対して有効ではありません。
TYPE_E_NAMECONFLICT
指定された名前が一意ではありません。
TYPE_E_WRONGTYPEKIND
型が一致しません。

解説(Remarks)

ライブラリ内に新しい型記述インスタンスを作成するには、ICreateTypeLib を使用します。指定した名前が既にライブラリ内に存在する場合は、エラーが返されます。有効な tkind の値は TYPEKIND に記載されています。作成中の型記述の型情報を取得するには、返された ICreateTypeLib に対して IUnknown::QueryInterface(IID_ITypeInfo, ...) を呼び出します。この型情報は、ICreateTypeInfo::AddRefTypeInfo を使用してこれを参照する他の型記述で利用できます。

vtbl 4 HRESULT SetName(LPWSTR szName)

型ライブラリの名前を設定します。

szNameLPWSTRinライブラリに割り当てる名前。

戻り値

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

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_INVALIDSTATE
型ライブラリの状態がこの操作に対して有効ではありません。
vtbl 5 HRESULT SetVersion(WORD wMajorVerNum, WORD wMinorVerNum)

型ライブラリのメジャーおよびマイナーバージョン番号を設定します。

wMajorVerNumWORDinライブラリのメジャーバージョン番号。
wMinorVerNumWORDinライブラリのマイナーバージョン番号。

戻り値

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

戻り値 説明
S_OK
成功しました。
TYPE_E_INVALIDSTATE
型ライブラリの状態がこの操作に対して有効ではありません。
vtbl 6 HRESULT SetGuid(GUID* guid)

型ライブラリに関連付けられる汎用一意識別子 (UUID) を設定します。

guidGUID*inライブラリに割り当てるグローバル一意識別子。

戻り値

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

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_INVALIDSTATE
型ライブラリの状態がこの操作に対して有効ではありません。
vtbl 7 HRESULT SetDocString(LPWSTR szDoc)

ライブラリに関連付けられるドキュメント文字列を設定します。

szDocLPWSTRin型ライブラリの簡単な説明。

戻り値

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

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

解説(Remarks)

ドキュメント文字列は、型情報の参照ツールで使用することを目的としたライブラリの簡単な説明です。

vtbl 8 HRESULT SetHelpFileName(LPWSTR szHelpFileName)

ヘルプファイルの名前を設定します。

szHelpFileNameLPWSTRinライブラリのヘルプファイルの名前。

戻り値

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

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

解説(Remarks)

各型ライブラリは、単一のヘルプファイルを参照できます。

作成された ITypeLibGetDocumentation メソッドは、ヘルプファイルの完全修飾パスを返します。このパスは、szHelpFileName に渡された名前を、型ライブラリに登録されたヘルプディレクトリに付加することによって作成されます。ヘルプディレクトリは次の場所に登録されます。

\TYPELIB<ライブラリの guid><メジャー.マイナー バージョン>\HELPDIR

vtbl 9 HRESULT SetHelpContext(DWORD dwHelpContext)

型ライブラリの一般的なヘルプ情報を取得するためのヘルプコンテキスト ID を設定します。

dwHelpContextDWORDinヘルプコンテキスト ID。

戻り値

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

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

解説(Remarks)

ヘルプコンテキストに 0 を指定して SetHelpContext を呼び出すことは、まったく呼び出さないことと同じです。0 は null のヘルプコンテキストを示すためです。

vtbl 10 HRESULT SetLcid(DWORD lcid)

ライブラリに関連付けられるバイナリ形式の Microsoft 各国語 ID を設定します。

lcidDWORDin型ライブラリのロケール ID。

戻り値

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

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

解説(Remarks)

各国語 ID の詳細については、Supporting Multiple National Languages および National Language Support (NLS) API を参照してください。

vtbl 11 HRESULT SetLibFlags(DWORD uLibFlags)

ライブラリフラグを設定します。

uLibFlagsDWORDin設定するフラグ。

戻り値

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

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

解説(Remarks)

有効な uLibFlags の値は LIBFLAGS に列挙されています。

vtbl 12 HRESULT SaveAllChanges()

型情報のレイアウトに従って ICreateTypeLib インスタンスを保存します。

戻り値

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

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が有効ではありません。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_IOERROR
関数がファイルに書き込むことができません。
TYPE_E_INVALIDSTATE
型ライブラリの状態がこの操作に対して有効ではありません。

解説(Remarks)

SaveAllChanges を呼び出した後は、他の ICreateTypeLib メソッドを呼び出さないでください。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ICreateTypeLib "{00020406-0000-0000-C000-000000000046}"
#usecom global ICreateTypeLib IID_ICreateTypeLib "{}"
#comfunc global ICreateTypeLib_CreateTypeInfo   3 wstr,int,sptr
#comfunc global ICreateTypeLib_SetName          4 wstr
#comfunc global ICreateTypeLib_SetVersion       5 int,int
#comfunc global ICreateTypeLib_SetGuid          6 var
#comfunc global ICreateTypeLib_SetDocString     7 wstr
#comfunc global ICreateTypeLib_SetHelpFileName  8 wstr
#comfunc global ICreateTypeLib_SetHelpContext   9 int
#comfunc global ICreateTypeLib_SetLcid          10 int
#comfunc global ICreateTypeLib_SetLibFlags      11 int
#comfunc global ICreateTypeLib_SaveAllChanges   12
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。