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

ICreateTypeInfo

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

公式ドキュメント

型定義を通じて定義される型情報の作成と管理のためのツールを提供します。(ICreateTypeInfo)

メソッド 23

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

vtbl 3 HRESULT SetGuid(GUID* guid)

型定義に関連付けられるグローバル一意識別子 (GUID) を設定します。

guidGUID*in型定義に関連付けるグローバル一意 ID。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。

解説(Remarks)

インターフェイスの場合、これはインターフェイス ID (IID) です。coclass の場合、これはクラス ID (CLSID) です。GUID の詳細については、型ライブラリとオブジェクト記述言語 を参照してください。

vtbl 4 HRESULT SetTypeFlags(DWORD uTypeFlags)

作成中の型定義の型フラグを設定します。

uTypeFlagsDWORDin型フラグの設定値。詳細については、TYPEFLAGS を参照してください。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_WRONGTYPEKIND
型が一致しません。
vtbl 5 HRESULT SetDocString(LPWSTR pStrDoc)

型ブラウザーによって表示されるドキュメント文字列を設定します。

pStrDocLPWSTRin型定義の簡単な説明。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_INVALIDSTATE
型ライブラリの状態がこの操作に対して無効です。
vtbl 6 HRESULT SetHelpContext(DWORD dwHelpContext)

型情報のヘルプコンテキスト ID を設定します。

dwHelpContextDWORDinヘルプコンテキストへのハンドル。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
vtbl 7 HRESULT SetVersion(WORD wMajorVerNum, WORD wMinorVerNum)

型情報のメジャーバージョン番号とマイナーバージョン番号を設定します。

wMajorVerNumWORDinメジャーバージョン番号。
wMinorVerNumWORDinマイナーバージョン番号。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_ACCESSDENIED
出力先に書き込めません。
TYPE_E_INVALIDSTATE
型ライブラリの状態がこの操作に対して無効です。
vtbl 8 HRESULT AddRefTypeInfo(ITypeInfo* pTInfo, DWORD* phRefType)

作成中の型定義から参照される型定義に、型定義を追加します。

pTInfoITypeInfo*in参照される型定義。
phRefTypeDWORD*inこの型定義が参照先の型情報に関連付けるハンドル。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_WRONGTYPEKIND
型が一致しません。

解説(Remarks)

2 番目のパラメーターは、追加された型情報のハンドルへのポインターを返します。同じ型情報に対して以前に AddRefTypeInfo が呼び出されている場合、前回の呼び出しで返されたインデックスが phRefType に返されます。参照先の型定義が作成中の型ライブラリ内にある場合、その型定義の ICreateTypeInfo インターフェイスに対して IUnknown::QueryInterface(IID_ITypeInfo, ...) を呼び出すことで、その型情報を取得できます。

vtbl 9 HRESULT AddFuncDesc(DWORD index, FUNCDESC* pFuncDesc)

型定義に関数の記述を追加します。

indexDWORDin型情報における新しい FUNCDESC のインデックス。
pFuncDescFUNCDESC*in関数を記述する FUNCDESC 構造体。FUNCDESC 内の bstrIDLInfo フィールドは null にする必要があります。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_WRONGTYPEKIND
型が一致しません。

解説(Remarks)

インデックスは、型情報内での関数の順序を指定します。最初の関数のインデックスは 0 です。型情報内の関数の数から 1 を引いた値を超えるインデックスを指定すると、エラーが返されます。この関数を呼び出しても、FUNCDESC 構造体の所有権が ICreateTypeInfo に渡されることはありません。したがって、呼び出し元は引き続き FUNCDESC 構造体を解放する必要があります。

TYPEKIND が TKIND_MODULE の場合、または oVft が -1 もしくは 0 の場合、渡された FUNCDESC の仮想関数テーブル (VTBL) フィールド (oVft) は無視されます。この属性は ICreateTypeInfo::LayOut が呼び出されたときに設定されます。TYPEKIND が TKIND_DISPATCH でデュアルインターフェイスの場合、または TYPEKIND が TKIND_INTERFACE の場合には、oVft の値が使用されます。oVft が使用される場合、マシン上の sizeof(VOID *) の倍数である必要があります。そうでない場合、関数は失敗し、HRESULT として E_INVALIDARG が返されます。

関数 AddFuncDesc は、TYPEKIND = TKIND_DISPATCH または TKIND_INTERFACE のクラスについて、各 FUNCDESC 内に渡されたメンバー識別子 (memid) フィールドを使用します。メンバー ID が MEMBERID_NIL に設定されている場合、AddFuncDesc は関数にメンバー ID を割り当てます。それ以外の場合、各 FUNCDESC 内のメンバー ID フィールドは無視されます。

FUNCDESC 構造体内の HREFTYPE フィールドはすべて、AddFuncDesc が呼び出される対象と同じ ITypeInfo インスタンスによって生成されたものでなければなりません。

同じプロパティの get アクセサー関数と put アクセサー関数は、同じディスパッチ識別子 (DISPID) を持つ必要があります。

vtbl 10 HRESULT AddImplType(DWORD index, DWORD hRefType)

継承されるインターフェイス、またはコンポーネントオブジェクトクラス (coclass) によって実装されるインターフェイスを指定します。

indexDWORDin追加する実装クラスのインデックス。他の型に対する相対的な型の順序を指定します。
hRefTypeDWORDinAddRefType の記述から取得した、参照先の型定義へのハンドル。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_WRONGTYPEKIND
型が一致しません。

解説(Remarks)

継承されるインターフェイスを指定するには、index = 0 を使用します。構文 2 の dispinterface の場合、ICreateTypeInfo::AddImplType を 2 回呼び出します。1 回目は継承される IDispatch に対して index = 0 で、2 回目はラップされるインターフェイスに対して index = 1 で呼び出します。デュアルインターフェイスの場合、そのデュアルインターフェイスの TKIND_INTERFACE 型情報コンポーネントに対して index = -1 で ICreateTypeInfo::AddImplType を呼び出します。

vtbl 11 HRESULT SetImplTypeFlags(DWORD index, IMPLTYPEFLAGS implTypeFlags)

型の実装インターフェイスまたは継承インターフェイスの属性を設定します。

indexDWORDin型フラグを設定するインターフェイスのインデックス。
implTypeFlagsIMPLTYPEFLAGSin設定する IMPLTYPE フラグ。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
vtbl 12 HRESULT SetAlignment(WORD cbAlignment)

TYPEKIND=TKIND_RECORD の項目に対するデータの配置境界 (アラインメント) を指定します。

cbAlignmentWORDin型のアラインメント方式。値 0 は 64K 境界での配置を示し、1 は特別なアラインメントを行わないことを示します。その他の値の場合、n は n バイト境界での配置を示します。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_INVALIDSTATE
型ライブラリの状態がこの操作に対して無効です。

解説(Remarks)

アラインメントは、自然なアラインメント (例: バイトデータはバイト境界、ワードデータはワード境界など) と、cbAlignment で示されるアラインメントの、いずれか小さい方になります。

vtbl 13 HRESULT SetSchema(LPWSTR pStrSchema)
pStrSchemaLPWSTRin型情報に設定するスキーマ文字列を指定する。
vtbl 14 HRESULT AddVarDesc(DWORD index, VARDESC* pVarDesc)

型定義に変数またはデータメンバーの記述を追加します。

indexDWORDin型定義に追加する変数またはデータメンバーのインデックス。
pVarDescVARDESC*in追加する変数またはデータメンバーの記述へのポインター。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_WRONGTYPEKIND
型が一致しません。

解説(Remarks)

インデックスは変数の順序を指定します。最初の変数のインデックスは 0 です。指定したインデックスが現在型情報に含まれる変数の数より大きい場合、ICreateTypeInfo::AddVarDesc はエラーを返します。この関数を呼び出しても、VARDESC 構造体の所有権が ICreateTypeInfo に渡されることはありません。VARDESC 構造体のインスタンスフィールド (oInst) は無視されます。この属性は ICreateTypeInfo::LayOut が呼び出されたときにのみ設定されます。また、クラスの TYPEKIND が TKIND_DISPATCH でない限り、各 VARDESC 内のメンバー ID フィールドは無視されます。

VARDESC 構造体内の HREFTYPE フィールドはすべて、AddVarDesc が呼び出される対象と同じ ITypeInfo インスタンスによって生成されたものでなければなりません。

AddVarDesc は ELEMDESC の idldesc フィールドの内容を無視します。

vtbl 15 HRESULT SetFuncAndParamNames(DWORD index, LPWSTR* rgszNames, DWORD cNames)

関数の名前とそのパラメーターの名前を、指定した名前に設定します。

indexDWORDin関数名とパラメーター名を設定する対象の関数のインデックス。
rgszNamesLPWSTR*in名前へのポインターの配列。最初の要素は関数名です。以降の要素はパラメーター名です。
cNamesDWORDinrgszNames 配列内の要素数。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_ELEMENTNOTFOUND
要素が見つかりません。

解説(Remarks)

このメソッドは各プロパティに対して 1 回使用する必要があります。put および putref アクセサー関数の最後のパラメーターには名前が付きません。

vtbl 16 HRESULT SetVarName(DWORD index, LPWSTR szName)

変数の名前を設定します。

indexDWORDin変数のインデックス。
szNameLPWSTRin名前。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_ELEMENTNOTFOUND
要素が見つかりません。
vtbl 17 HRESULT SetTypeDescAlias(TYPEDESC* pTDescAlias)

TYPEKIND=TKIND_ALIAS の場合に、この型定義がエイリアスとなる対象の型定義を設定します。

pTDescAliasTYPEDESC*in型定義。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_WRONGTYPEKIND
型が一致しません。

解説(Remarks)

エイリアスの型を設定するには、TYPEKIND が TKIND_ALIAS である型定義に対して SetTypeDescAlias を呼び出します。

vtbl 18 HRESULT DefineFuncAsDllEntry(DWORD index, LPWSTR szDllName, LPWSTR szProcName)

指定したインデックスを持つ関数に DLL のエントリポイントを関連付けます。

indexDWORDin関数のインデックス。
szDllNameLPWSTRinエントリポイントを含む DLL の名前。
szProcNameLPWSTRinエントリポイントの名前、または序数 (上位ワードが 0 の場合)。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_ELEMENTNOTFOUND
要素が見つかりません。
TYPE_E_WRONGTYPEKIND
型が一致しません。

解説(Remarks)

szProcName の上位ワードが 0 の場合、下位ワードにはエントリポイントの序数が含まれている必要があります。そうでない場合、szProcName はエントリポイントの名前を表す、null で終了する文字列を指します。

vtbl 19 HRESULT SetFuncDocString(DWORD index, LPWSTR szDocString)

指定したインデックスを持つ関数のドキュメント文字列を設定します。

indexDWORDin関数のインデックス。
szDocStringLPWSTRinドキュメント文字列。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_ELEMENTNOTFOUND
要素が見つかりません。

解説(Remarks)

ドキュメント文字列は、型ブラウザーなどのツールで使用することを目的とした、関数の簡単な説明です。すべてのプロパティアクセサー関数は 1 つの名前で識別されるため、SetFuncDocString は各プロパティに対して 1 回使用するだけで済みます。

vtbl 20 HRESULT SetVarDocString(DWORD index, LPWSTR szDocString)

指定したインデックスを持つ変数のドキュメント文字列を設定します。

indexDWORDin変数のインデックス。
szDocStringLPWSTRinドキュメント文字列。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_ELEMENTNOTFOUND
要素が見つかりません。
vtbl 21 HRESULT SetFuncHelpContext(DWORD index, DWORD dwHelpContext)

指定したインデックスを持つ関数のヘルプコンテキスト ID を設定します。

indexDWORDin関数のインデックス。
dwHelpContextDWORDinヘルプトピックのヘルプコンテキスト ID。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_ELEMENTNOTFOUND
要素が見つかりません。

解説(Remarks)

すべてのプロパティアクセサー関数は 1 つの名前で識別されるため、SetFuncHelpContext は各プロパティに対して 1 回設定するだけで済みます。

vtbl 22 HRESULT SetVarHelpContext(DWORD index, DWORD dwHelpContext)

指定したインデックスを持つ変数のヘルプコンテキスト ID を設定します。

indexDWORDin変数のインデックス。
dwHelpContextDWORDin変数に関するヘルプトピックのヘルプコンテキスト ID へのハンドル。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_ELEMENTNOTFOUND
要素が見つかりません。
vtbl 23 HRESULT SetMops(DWORD index, LPWSTR bstrMops)

型定義または関数に関連付けられたマーシャリングオペコード文字列を設定します。

indexDWORDinオペコード文字列を設定する対象のメンバーのインデックス。index が -1 の場合、型定義に対してオペコード文字列を設定します。
bstrMopsLPWSTRinマーシャリングオペコード文字列。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
vtbl 24 HRESULT SetTypeIdldesc(IDLDESC* pIdlDesc)
pIdlDescIDLDESC*in型に関連付ける IDL 属性を記述する IDLDESC 構造体へのポインタを指定する。
vtbl 25 HRESULT LayOut()

仮想関数に VTBL オフセットを、インスタンスごとのデータメンバーにインスタンスオフセットを割り当て、デュアルインターフェイス用の 2 つの型定義を作成します。

戻り値

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

戻り値コード 説明
S_OK
成功しました。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_ACCESSDENIED
出力先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するためのメモリが不足しています。
TYPE_E_UNDEFINEDTYPE
認識されない型にバインドされています。
TYPE_E_INVALIDSTATE
型ライブラリの状態がこの操作に対して無効です。
TYPE_E_WRONGTYPEKIND
型が一致しません。
TYPE_E_ELEMENTNOTFOUND
要素が見つかりません。
TYPE_E_AMBIGUOUSNAME
この名前を持つ項目が複数存在します。
TYPE_E_SIZETOOBIG
型情報が長すぎます。
TYPE_E_TYPEMISMATCH
型が一致しません。

解説(Remarks)

クラスの TYPEKIND が TKIND_DISPATCH でない限り、LayOut は関数と変数にメンバー ID 番号も割り当てます。型情報のすべてのメンバーを定義した後、かつ型ライブラリを保存する前に LayOut を呼び出してください。

LayOut を呼び出した後、型情報を保存するには ICreateTypeLib::SaveAllChanges を使用します。ICreateTypeInfo インターフェイスの他のメンバーは、LayOut を呼び出した後に呼び出さないでください。

ICreateTypeLib::SaveAllChanges のさまざまな実装、または型情報を作成する他のインターフェイスは、すべてのメンバー (継承されたメンバーを含む) が一意の ID を持つ限り、任意のメンバー ID 番号を自由に割り当てることができます。例については、ICreateTypeInfo2 を参照してください。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ICreateTypeInfo "{00020405-0000-0000-C000-000000000046}"
#usecom global ICreateTypeInfo IID_ICreateTypeInfo "{}"
#comfunc global ICreateTypeInfo_SetGuid               3 var
#comfunc global ICreateTypeInfo_SetTypeFlags          4 int
#comfunc global ICreateTypeInfo_SetDocString          5 wstr
#comfunc global ICreateTypeInfo_SetHelpContext        6 int
#comfunc global ICreateTypeInfo_SetVersion            7 int,int
#comfunc global ICreateTypeInfo_AddRefTypeInfo        8 sptr,var
#comfunc global ICreateTypeInfo_AddFuncDesc           9 int,var
#comfunc global ICreateTypeInfo_AddImplType           10 int,int
#comfunc global ICreateTypeInfo_SetImplTypeFlags      11 int,int
#comfunc global ICreateTypeInfo_SetAlignment          12 int
#comfunc global ICreateTypeInfo_SetSchema             13 wstr
#comfunc global ICreateTypeInfo_AddVarDesc            14 int,var
#comfunc global ICreateTypeInfo_SetFuncAndParamNames  15 int,var,int
#comfunc global ICreateTypeInfo_SetVarName            16 int,wstr
#comfunc global ICreateTypeInfo_SetTypeDescAlias      17 var
#comfunc global ICreateTypeInfo_DefineFuncAsDllEntry  18 int,wstr,wstr
#comfunc global ICreateTypeInfo_SetFuncDocString      19 int,wstr
#comfunc global ICreateTypeInfo_SetVarDocString       20 int,wstr
#comfunc global ICreateTypeInfo_SetFuncHelpContext    21 int,int
#comfunc global ICreateTypeInfo_SetVarHelpContext     22 int,int
#comfunc global ICreateTypeInfo_SetMops               23 int,wstr
#comfunc global ICreateTypeInfo_SetTypeIdldesc        24 var
#comfunc global ICreateTypeInfo_LayOut                25
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。