Win32 API 日本語リファレンス
ホームSystem.WinRT.Metadata › IMetaDataEmit

IMetaDataEmit

COM
IIDba3fee4c-ecb9-4e41-83b7-183fa41cd859継承元IUnknown自前メソッド開始 vtbl3

メソッド 49

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

vtbl 3 HRESULT SetModuleProps(LPWSTR szName)
szNameLPWSTRinモジュールに設定する名前を指定する文字列である。
vtbl 4 HRESULT Save(LPWSTR szFile, DWORD dwSaveFlags)
szFileLPWSTRinメタデータの保存先ファイル名を指定する。NULL の場合は元のファイルに保存される。
dwSaveFlagsDWORDin保存時のオプションを示すフラグを指定する。予約済みで 0 を指定する。
vtbl 5 HRESULT SaveToStream(IStream* pIStream, DWORD dwSaveFlags)
pIStreamIStream*inメタデータの書き込み先となる IStream へのポインタを指定する。
dwSaveFlagsDWORDin保存時のオプションを示すフラグを指定する。予約済みで 0 を指定する。
vtbl 6 HRESULT GetSaveSize(CorSaveSize fSave, DWORD* pdwSaveSize)
fSaveCorSaveSizein保存方法を示す CorSaveSize 列挙値を指定する。
pdwSaveSizeDWORD*inout保存に必要なバイト数を受け取る。
vtbl 7 HRESULT DefineTypeDef(LPWSTR szTypeDef, DWORD dwTypeDefFlags, DWORD tkExtends, DWORD* rtkImplements, DWORD* ptd)
szTypeDefLPWSTRin定義する型の名前を指定する文字列である。
dwTypeDefFlagsDWORDin型の属性を示すフラグを指定する。
tkExtendsDWORDin基底クラスのトークンを指定する。なければ mdTypeDefNil を指定する。
rtkImplementsDWORD*inout実装するインターフェイスのトークン配列へのポインタである。mdTokenNil で終端する。
ptdDWORD*inout定義された型を表す TypeDef トークンを受け取る。
vtbl 8 HRESULT DefineNestedType(LPWSTR szTypeDef, DWORD dwTypeDefFlags, DWORD tkExtends, DWORD* rtkImplements, DWORD tdEncloser, DWORD* ptd)
szTypeDefLPWSTRin定義する入れ子型の名前を指定する文字列である。
dwTypeDefFlagsDWORDin型の属性を示すフラグを指定する。
tkExtendsDWORDin基底クラスのトークンを指定する。なければ mdTypeDefNil を指定する。
rtkImplementsDWORD*inout実装するインターフェイスのトークン配列へのポインタである。mdTokenNil で終端する。
tdEncloserDWORDinこの入れ子型を内包する外側の型のトークンを指定する。
ptdDWORD*inout定義された入れ子型を表す TypeDef トークンを受け取る。
vtbl 9 HRESULT SetHandler(IUnknown* pUnk)
pUnkIUnknown*inトークンの再マップ通知を受け取るハンドラーの IUnknown ポインタを指定する。
vtbl 10 HRESULT DefineMethod(DWORD td, LPWSTR szName, DWORD dwMethodFlags, BYTE* pvSigBlob, DWORD cbSigBlob, DWORD ulCodeRVA, DWORD dwImplFlags, DWORD* pmd)
tdDWORDinメソッドを定義する対象の型 (TypeDef) のトークンを指定する。
szNameLPWSTRinメソッドの名前を指定する文字列である。
dwMethodFlagsDWORDinメソッドの属性を示すフラグを指定する。
pvSigBlobBYTE*inoutメソッドのシグネチャを表すバイナリ blob へのポインタである。
cbSigBlobDWORDinシグネチャ blob のサイズをバイト数で指定する。
ulCodeRVADWORDinメソッド本体コードの相対仮想アドレス (RVA) を指定する。
dwImplFlagsDWORDinメソッド実装の属性を示すフラグを指定する。
pmdDWORD*inout定義されたメソッドの MethodDef トークンを受け取る。
vtbl 11 HRESULT DefineMethodImpl(DWORD td, DWORD tkBody, DWORD tkDecl)
tdDWORDinメソッド実装を定義する対象の型 (TypeDef) のトークンを指定する。
tkBodyDWORDin実装本体となるメソッドのトークンを指定する。
tkDeclDWORDinオーバーライドされる宣言側メソッドのトークンを指定する。
vtbl 12 HRESULT DefineTypeRefByName(DWORD tkResolutionScope, LPWSTR szName, DWORD* ptr)
tkResolutionScopeDWORDin型参照の解決スコープ (モジュール参照やアセンブリ参照) のトークンを指定する。
szNameLPWSTRin参照する型の名前を指定する文字列である。
ptrDWORD*inout定義された TypeRef トークンを受け取る。
vtbl 13 HRESULT DefineImportType(IMetaDataAssemblyImport* pAssemImport, void* pbHashValue, DWORD cbHashValue, IMetaDataImport* pImport, DWORD tdImport, IMetaDataAssemblyEmit* pAssemEmit, DWORD* ptr)
pAssemImportIMetaDataAssemblyImport*inインポート元のアセンブリメタデータを操作する IMetaDataAssemblyImport へのポインタである。NULL を指定できる。
pbHashValuevoid*inアセンブリのハッシュ値へのポインタである。
cbHashValueDWORDinハッシュ値のサイズをバイト数で指定する。
pImportIMetaDataImport*inインポート元の型を保持する IMetaDataImport へのポインタである。
tdImportDWORDinインポートする型 (TypeDef) のトークンを指定する。
pAssemEmitIMetaDataAssemblyEmit*in出力先のアセンブリメタデータを操作する IMetaDataAssemblyEmit へのポインタである。NULL を指定できる。
ptrDWORD*inout作成された TypeRef トークンを受け取る。
vtbl 14 HRESULT DefineMemberRef(DWORD tkImport, LPWSTR szName, BYTE* pvSigBlob, DWORD cbSigBlob, DWORD* pmr)
tkImportDWORDinメンバー参照の対象となる型または親のトークンを指定する。
szNameLPWSTRin参照するメンバーの名前を指定する文字列である。
pvSigBlobBYTE*inoutメンバーのシグネチャを表すバイナリ blob へのポインタである。
cbSigBlobDWORDinシグネチャ blob のサイズをバイト数で指定する。
pmrDWORD*inout定義された MemberRef トークンを受け取る。
vtbl 15 HRESULT DefineImportMember(IMetaDataAssemblyImport* pAssemImport, void* pbHashValue, DWORD cbHashValue, IMetaDataImport* pImport, DWORD mbMember, IMetaDataAssemblyEmit* pAssemEmit, DWORD tkParent, DWORD* pmr)
pAssemImportIMetaDataAssemblyImport*inインポート元のアセンブリメタデータを操作する IMetaDataAssemblyImport へのポインタである。NULL を指定できる。
pbHashValuevoid*inアセンブリのハッシュ値へのポインタである。
cbHashValueDWORDinハッシュ値のサイズをバイト数で指定する。
pImportIMetaDataImport*inインポート元のメンバーを保持する IMetaDataImport へのポインタである。
mbMemberDWORDinインポートするメンバーのトークンを指定する。
pAssemEmitIMetaDataAssemblyEmit*in出力先のアセンブリメタデータを操作する IMetaDataAssemblyEmit へのポインタである。NULL を指定できる。
tkParentDWORDin出力先でのメンバーの親トークンを指定する。
pmrDWORD*inout作成された MemberRef トークンを受け取る。
vtbl 16 HRESULT DefineEvent(DWORD td, LPWSTR szEvent, DWORD dwEventFlags, DWORD tkEventType, DWORD mdAddOn, DWORD mdRemoveOn, DWORD mdFire, DWORD* rmdOtherMethods, DWORD* pmdEvent)
tdDWORDinイベントを定義する対象の型 (TypeDef) のトークンを指定する。
szEventLPWSTRinイベントの名前を指定する文字列である。
dwEventFlagsDWORDinイベントの属性を示すフラグを指定する。
tkEventTypeDWORDinイベントのデリゲート型を示すトークンを指定する。
mdAddOnDWORDinイベントの追加 (add) アクセサーメソッドのトークンを指定する。
mdRemoveOnDWORDinイベントの削除 (remove) アクセサーメソッドのトークンを指定する。
mdFireDWORDinイベントの発火 (fire) メソッドのトークンを指定する。なければ mdMethodDefNil を指定する。
rmdOtherMethodsDWORD*inoutイベントに関連するその他のメソッドのトークン配列へのポインタである。mdTokenNil で終端する。
pmdEventDWORD*inout定義された Event トークンを受け取る。
vtbl 17 HRESULT SetClassLayout(DWORD td, DWORD dwPackSize, COR_FIELD_OFFSET* rFieldOffsets, DWORD ulClassSize)
tdDWORDinレイアウトを設定する対象の型 (TypeDef) のトークンを指定する。
dwPackSizeDWORDinフィールドのパッキングサイズ (アラインメント) を指定する。
rFieldOffsetsCOR_FIELD_OFFSET*inout各フィールドのオフセットを示す COR_FIELD_OFFSET 配列へのポインタである。
ulClassSizeDWORDinクラス全体のサイズをバイト数で指定する。
vtbl 18 HRESULT DeleteClassLayout(DWORD td)
tdDWORDinクラスレイアウト情報を削除する対象の型 (TypeDef) のトークンを指定する。
vtbl 19 HRESULT SetFieldMarshal(DWORD tk, BYTE* pvNativeType, DWORD cbNativeType)
tkDWORDinマーシャリング情報を設定する対象のフィールドまたはパラメーターのトークンを指定する。
pvNativeTypeBYTE*inoutネイティブ型のマーシャリング記述子へのポインタである。
cbNativeTypeDWORDinネイティブ型記述子のサイズをバイト数で指定する。
vtbl 20 HRESULT DeleteFieldMarshal(DWORD tk)
tkDWORDinマーシャリング情報を削除する対象のフィールドまたはパラメーターのトークンを指定する。
vtbl 21 HRESULT DefinePermissionSet(DWORD tk, DWORD dwAction, void* pvPermission, DWORD cbPermission, DWORD* ppm)
tkDWORDinアクセス許可セットを関連付ける対象のトークンを指定する。
dwActionDWORDinセキュリティアクションの種別を指定する。
pvPermissionvoid*inアクセス許可セットのバイナリデータへのポインタである。
cbPermissionDWORDinアクセス許可セットデータのサイズをバイト数で指定する。
ppmDWORD*inout定義された Permission トークンを受け取る。
vtbl 22 HRESULT SetRVA(DWORD md, DWORD ulRVA)
mdDWORDinRVA を設定する対象のメソッド (MethodDef) のトークンを指定する。
ulRVADWORDinメソッド本体の相対仮想アドレス (RVA) を指定する。
vtbl 23 HRESULT GetTokenFromSig(BYTE* pvSig, DWORD cbSig, DWORD* pmsig)
pvSigBYTE*inoutスタンドアロンシグネチャを表すバイナリ blob へのポインタである。
cbSigDWORDinシグネチャ blob のサイズをバイト数で指定する。
pmsigDWORD*inoutシグネチャに対応する StandAloneSig トークンを受け取る。
vtbl 24 HRESULT DefineModuleRef(LPWSTR szName, DWORD* pmur)
szNameLPWSTRin参照するモジュールの名前を指定する文字列である。
pmurDWORD*inout定義された ModuleRef トークンを受け取る。
vtbl 25 HRESULT SetParent(DWORD mr, DWORD tk)
mrDWORDin親を設定する対象のメンバー参照 (MemberRef) のトークンを指定する。
tkDWORDin新しい親のトークンを指定する。
vtbl 26 HRESULT GetTokenFromTypeSpec(BYTE* pvSig, DWORD cbSig, DWORD* ptypespec)
pvSigBYTE*inout型仕様 (TypeSpec) を表すシグネチャ blob へのポインタである。
cbSigDWORDinシグネチャ blob のサイズをバイト数で指定する。
ptypespecDWORD*inout対応する TypeSpec トークンを受け取る。
vtbl 27 HRESULT SaveToMemory(void* pbData, DWORD cbData)
pbDatavoid*inoutメタデータを書き込むメモリ領域へのポインタを指定する。
cbDataDWORDin書き込み先メモリ領域のサイズをバイト数で指定する。
vtbl 28 HRESULT DefineUserString(LPWSTR szString, DWORD cchString, DWORD* pstk)
szStringLPWSTRin定義するユーザー文字列を指定する。
cchStringDWORDin文字列の長さを文字数で指定する。
pstkDWORD*inout定義された String トークンを受け取る。
vtbl 29 HRESULT DeleteToken(DWORD tkObj)
tkObjDWORDin削除する対象のメタデータトークンを指定する。
vtbl 30 HRESULT SetMethodProps(DWORD md, DWORD dwMethodFlags, DWORD ulCodeRVA, DWORD dwImplFlags)
mdDWORDinプロパティを更新する対象のメソッド (MethodDef) のトークンを指定する。
dwMethodFlagsDWORDinメソッドの属性を示すフラグを指定する。変更しない場合は無効値を指定する。
ulCodeRVADWORDinメソッド本体コードの相対仮想アドレス (RVA) を指定する。
dwImplFlagsDWORDinメソッド実装の属性を示すフラグを指定する。
vtbl 31 HRESULT SetTypeDefProps(DWORD td, DWORD dwTypeDefFlags, DWORD tkExtends, DWORD* rtkImplements)
tdDWORDinプロパティを更新する対象の型 (TypeDef) のトークンを指定する。
dwTypeDefFlagsDWORDin型の属性を示すフラグを指定する。
tkExtendsDWORDin基底クラスのトークンを指定する。
rtkImplementsDWORD*inout実装するインターフェイスのトークン配列へのポインタである。mdTokenNil で終端する。
vtbl 32 HRESULT SetEventProps(DWORD ev, DWORD dwEventFlags, DWORD tkEventType, DWORD mdAddOn, DWORD mdRemoveOn, DWORD mdFire, DWORD* rmdOtherMethods)
evDWORDinプロパティを更新する対象のイベント (Event) のトークンを指定する。
dwEventFlagsDWORDinイベントの属性を示すフラグを指定する。
tkEventTypeDWORDinイベントのデリゲート型を示すトークンを指定する。
mdAddOnDWORDinイベントの追加 (add) アクセサーメソッドのトークンを指定する。
mdRemoveOnDWORDinイベントの削除 (remove) アクセサーメソッドのトークンを指定する。
mdFireDWORDinイベントの発火 (fire) メソッドのトークンを指定する。
rmdOtherMethodsDWORD*inoutイベントに関連するその他のメソッドのトークン配列へのポインタである。mdTokenNil で終端する。
vtbl 33 HRESULT SetPermissionSetProps(DWORD tk, DWORD dwAction, void* pvPermission, DWORD cbPermission, DWORD* ppm)
tkDWORDinプロパティを更新する対象のトークンを指定する。
dwActionDWORDinセキュリティアクションの種別を指定する。
pvPermissionvoid*inアクセス許可セットのバイナリデータへのポインタである。
cbPermissionDWORDinアクセス許可セットデータのサイズをバイト数で指定する。
ppmDWORD*inoutPermission トークンを受け取る。
vtbl 34 HRESULT DefinePinvokeMap(DWORD tk, DWORD dwMappingFlags, LPWSTR szImportName, DWORD mrImportDLL)
tkDWORDinP/Invoke マップを定義する対象のフィールドまたはメソッドのトークンを指定する。
dwMappingFlagsDWORDinP/Invoke のマッピング属性を示すフラグを指定する。
szImportNameLPWSTRinインポートするネイティブ関数の名前を指定する文字列である。
mrImportDLLDWORDin対象 DLL を示す ModuleRef トークンを指定する。
vtbl 35 HRESULT SetPinvokeMap(DWORD tk, DWORD dwMappingFlags, LPWSTR szImportName, DWORD mrImportDLL)
tkDWORDinP/Invoke マップを更新する対象のフィールドまたはメソッドのトークンを指定する。
dwMappingFlagsDWORDinP/Invoke のマッピング属性を示すフラグを指定する。
szImportNameLPWSTRinインポートするネイティブ関数の名前を指定する文字列である。
mrImportDLLDWORDin対象 DLL を示す ModuleRef トークンを指定する。
vtbl 36 HRESULT DeletePinvokeMap(DWORD tk)
tkDWORDinP/Invoke マップ情報を削除する対象のフィールドまたはメソッドのトークンを指定する。
vtbl 37 HRESULT DefineCustomAttribute(DWORD tkOwner, DWORD tkCtor, void* pCustomAttribute, DWORD cbCustomAttribute, DWORD* pcv)
tkOwnerDWORDinカスタム属性を付与する対象のトークンを指定する。
tkCtorDWORDinカスタム属性のコンストラクターを示すトークンを指定する。
pCustomAttributevoid*inカスタム属性のバイナリ値 (blob) へのポインタである。
cbCustomAttributeDWORDinカスタム属性 blob のサイズをバイト数で指定する。
pcvDWORD*inout定義された CustomAttribute トークンを受け取る。
vtbl 38 HRESULT SetCustomAttributeValue(DWORD pcv, void* pCustomAttribute, DWORD cbCustomAttribute)
pcvDWORDin値を更新する対象のカスタム属性 (CustomAttribute) のトークンを指定する。
pCustomAttributevoid*inカスタム属性のバイナリ値 (blob) へのポインタである。
cbCustomAttributeDWORDinカスタム属性 blob のサイズをバイト数で指定する。
vtbl 39 HRESULT DefineField(DWORD td, LPWSTR szName, DWORD dwFieldFlags, BYTE* pvSigBlob, DWORD cbSigBlob, DWORD dwCPlusTypeFlag, void* pValue, DWORD cchValue, DWORD* pmd)
tdDWORDinフィールドを定義する対象の型 (TypeDef) のトークンを指定する。
szNameLPWSTRinフィールドの名前を指定する文字列である。
dwFieldFlagsDWORDinフィールドの属性を示すフラグを指定する。
pvSigBlobBYTE*inoutフィールドのシグネチャを表すバイナリ blob へのポインタである。
cbSigBlobDWORDinシグネチャ blob のサイズをバイト数で指定する。
dwCPlusTypeFlagDWORDin既定値の要素型を示す ELEMENT_TYPE 値を指定する。
pValuevoid*inフィールドの既定値へのポインタである。なければ NULL を指定する。
cchValueDWORDin既定値が文字列の場合の文字数を指定する。
pmdDWORD*inout定義された FieldDef トークンを受け取る。
vtbl 40 HRESULT DefineProperty(DWORD td, LPWSTR szProperty, DWORD dwPropFlags, BYTE* pvSig, DWORD cbSig, DWORD dwCPlusTypeFlag, void* pValue, DWORD cchValue, DWORD mdSetter, DWORD mdGetter, DWORD* rmdOtherMethods, DWORD* pmdProp)
tdDWORDinプロパティを定義する対象の型 (TypeDef) のトークンを指定する。
szPropertyLPWSTRinプロパティの名前を指定する文字列である。
dwPropFlagsDWORDinプロパティの属性を示すフラグを指定する。
pvSigBYTE*inoutプロパティのシグネチャを表すバイナリ blob へのポインタである。
cbSigDWORDinシグネチャ blob のサイズをバイト数で指定する。
dwCPlusTypeFlagDWORDin既定値の要素型を示す ELEMENT_TYPE 値を指定する。
pValuevoid*inプロパティの既定値へのポインタである。なければ NULL を指定する。
cchValueDWORDin既定値が文字列の場合の文字数を指定する。
mdSetterDWORDinプロパティの設定 (set) アクセサーメソッドのトークンを指定する。
mdGetterDWORDinプロパティの取得 (get) アクセサーメソッドのトークンを指定する。
rmdOtherMethodsDWORD*inoutプロパティに関連するその他のメソッドのトークン配列へのポインタである。mdTokenNil で終端する。
pmdPropDWORD*inout定義された Property トークンを受け取る。
vtbl 41 HRESULT DefineParam(DWORD md, DWORD ulParamSeq, LPWSTR szName, DWORD dwParamFlags, DWORD dwCPlusTypeFlag, void* pValue, DWORD cchValue, DWORD* ppd)
mdDWORDinパラメーターを定義する対象のメソッド (MethodDef) のトークンを指定する。
ulParamSeqDWORDinパラメーターの順序位置を指定する。0 は戻り値を表す。
szNameLPWSTRinパラメーターの名前を指定する文字列である。
dwParamFlagsDWORDinパラメーターの属性を示すフラグを指定する。
dwCPlusTypeFlagDWORDin既定値の要素型を示す ELEMENT_TYPE 値を指定する。
pValuevoid*inパラメーターの既定値へのポインタである。なければ NULL を指定する。
cchValueDWORDin既定値が文字列の場合の文字数を指定する。
ppdDWORD*inout定義された Param トークンを受け取る。
vtbl 42 HRESULT SetFieldProps(DWORD fd, DWORD dwFieldFlags, DWORD dwCPlusTypeFlag, void* pValue, DWORD cchValue)
fdDWORDinプロパティを更新する対象のフィールド (FieldDef) のトークンを指定する。
dwFieldFlagsDWORDinフィールドの属性を示すフラグを指定する。
dwCPlusTypeFlagDWORDin既定値の要素型を示す ELEMENT_TYPE 値を指定する。
pValuevoid*inフィールドの既定値へのポインタである。なければ NULL を指定する。
cchValueDWORDin既定値が文字列の場合の文字数を指定する。
vtbl 43 HRESULT SetPropertyProps(DWORD pr, DWORD dwPropFlags, DWORD dwCPlusTypeFlag, void* pValue, DWORD cchValue, DWORD mdSetter, DWORD mdGetter, DWORD* rmdOtherMethods)
prDWORDinプロパティを更新する対象のプロパティ (Property) のトークンを指定する。
dwPropFlagsDWORDinプロパティの属性を示すフラグを指定する。
dwCPlusTypeFlagDWORDin既定値の要素型を示す ELEMENT_TYPE 値を指定する。
pValuevoid*inプロパティの既定値へのポインタである。なければ NULL を指定する。
cchValueDWORDin既定値が文字列の場合の文字数を指定する。
mdSetterDWORDinプロパティの設定 (set) アクセサーメソッドのトークンを指定する。
mdGetterDWORDinプロパティの取得 (get) アクセサーメソッドのトークンを指定する。
rmdOtherMethodsDWORD*inoutプロパティに関連するその他のメソッドのトークン配列へのポインタである。mdTokenNil で終端する。
vtbl 44 HRESULT SetParamProps(DWORD pd, LPWSTR szName, DWORD dwParamFlags, DWORD dwCPlusTypeFlag, void* pValue, DWORD cchValue)
pdDWORDinプロパティを更新する対象のパラメーター (Param) のトークンを指定する。
szNameLPWSTRinパラメーターの名前を指定する文字列である。
dwParamFlagsDWORDinパラメーターの属性を示すフラグを指定する。
dwCPlusTypeFlagDWORDin既定値の要素型を示す ELEMENT_TYPE 値を指定する。
pValuevoid*inパラメーターの既定値へのポインタである。なければ NULL を指定する。
cchValueDWORDin既定値が文字列の場合の文字数を指定する。
vtbl 45 HRESULT DefineSecurityAttributeSet(DWORD tkObj, COR_SECATTR* rSecAttrs, DWORD cSecAttrs, DWORD* pulErrorAttr)
tkObjDWORDinセキュリティ属性を関連付ける対象のトークンを指定する。
rSecAttrsCOR_SECATTR*inoutセキュリティ属性を示す COR_SECATTR 配列へのポインタである。
cSecAttrsDWORDinセキュリティ属性配列の要素数を指定する。
pulErrorAttrDWORD*inoutエラーが発生した属性のインデックスを受け取る。
vtbl 46 HRESULT ApplyEditAndContinue(IUnknown* pImport)
pImportIUnknown*in差分 (デルタ) メタデータを保持するインポーターの IUnknown ポインタを指定する。
vtbl 47 HRESULT TranslateSigWithScope(IMetaDataAssemblyImport* pAssemImport, void* pbHashValue, DWORD cbHashValue, IMetaDataImport* import, BYTE* pbSigBlob, DWORD cbSigBlob, IMetaDataAssemblyEmit* pAssemEmit, IMetaDataEmit* emit, BYTE* pvTranslatedSig, DWORD cbTranslatedSigMax, DWORD* pcbTranslatedSig)
pAssemImportIMetaDataAssemblyImport*inインポート元のアセンブリメタデータを操作する IMetaDataAssemblyImport へのポインタである。NULL を指定できる。
pbHashValuevoid*inアセンブリのハッシュ値へのポインタである。
cbHashValueDWORDinハッシュ値のサイズをバイト数で指定する。
importIMetaDataImport*inシグネチャの元となるスコープの IMetaDataImport へのポインタである。
pbSigBlobBYTE*inout変換対象のシグネチャ blob へのポインタである。
cbSigBlobDWORDinシグネチャ blob のサイズをバイト数で指定する。
pAssemEmitIMetaDataAssemblyEmit*in出力先のアセンブリメタデータを操作する IMetaDataAssemblyEmit へのポインタである。NULL を指定できる。
emitIMetaDataEmit*in出力先スコープの IMetaDataEmit へのポインタである。
pvTranslatedSigBYTE*inout変換後のシグネチャを格納するバッファへのポインタである。
cbTranslatedSigMaxDWORDin変換後シグネチャ用バッファの最大サイズをバイト数で指定する。
pcbTranslatedSigDWORD*inout変換後シグネチャの実際のサイズをバイト数で受け取る。
vtbl 48 HRESULT SetMethodImplFlags(DWORD md, DWORD dwImplFlags)
mdDWORDin実装フラグを設定する対象のメソッド (MethodDef) のトークンを指定する。
dwImplFlagsDWORDinメソッド実装の属性を示すフラグを指定する。
vtbl 49 HRESULT SetFieldRVA(DWORD fd, DWORD ulRVA)
fdDWORDinRVA を設定する対象のフィールド (FieldDef) のトークンを指定する。
ulRVADWORDinフィールドデータの相対仮想アドレス (RVA) を指定する。
vtbl 50 HRESULT Merge(IMetaDataImport* pImport, IMapToken* pHostMapToken, IUnknown* pHandler)
pImportIMetaDataImport*inマージ元のメタデータを保持する IMetaDataImport へのポインタである。
pHostMapTokenIMapToken*inトークンの再マップを行う IMapToken へのポインタである。NULL を指定できる。
pHandlerIUnknown*inマージ時のエラー通知を受け取るハンドラーの IUnknown ポインタである。NULL を指定できる。
vtbl 51 HRESULT MergeEnd()

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IMetaDataEmit "{BA3FEE4C-ECB9-4E41-83B7-183FA41CD859}"
#usecom global IMetaDataEmit IID_IMetaDataEmit "{}"
#comfunc global IMetaDataEmit_SetModuleProps              3 wstr
#comfunc global IMetaDataEmit_Save                        4 wstr,int
#comfunc global IMetaDataEmit_SaveToStream                5 sptr,int
#comfunc global IMetaDataEmit_GetSaveSize                 6 int,var
#comfunc global IMetaDataEmit_DefineTypeDef               7 wstr,int,int,var,var
#comfunc global IMetaDataEmit_DefineNestedType            8 wstr,int,int,var,int,var
#comfunc global IMetaDataEmit_SetHandler                  9 sptr
#comfunc global IMetaDataEmit_DefineMethod                10 int,wstr,int,var,int,int,int,var
#comfunc global IMetaDataEmit_DefineMethodImpl            11 int,int,int
#comfunc global IMetaDataEmit_DefineTypeRefByName         12 int,wstr,var
#comfunc global IMetaDataEmit_DefineImportType            13 sptr,sptr,int,sptr,int,sptr,var
#comfunc global IMetaDataEmit_DefineMemberRef             14 int,wstr,var,int,var
#comfunc global IMetaDataEmit_DefineImportMember          15 sptr,sptr,int,sptr,int,sptr,int,var
#comfunc global IMetaDataEmit_DefineEvent                 16 int,wstr,int,int,int,int,int,var,var
#comfunc global IMetaDataEmit_SetClassLayout              17 int,int,var,int
#comfunc global IMetaDataEmit_DeleteClassLayout           18 int
#comfunc global IMetaDataEmit_SetFieldMarshal             19 int,var,int
#comfunc global IMetaDataEmit_DeleteFieldMarshal          20 int
#comfunc global IMetaDataEmit_DefinePermissionSet         21 int,int,sptr,int,var
#comfunc global IMetaDataEmit_SetRVA                      22 int,int
#comfunc global IMetaDataEmit_GetTokenFromSig             23 var,int,var
#comfunc global IMetaDataEmit_DefineModuleRef             24 wstr,var
#comfunc global IMetaDataEmit_SetParent                   25 int,int
#comfunc global IMetaDataEmit_GetTokenFromTypeSpec        26 var,int,var
#comfunc global IMetaDataEmit_SaveToMemory                27 sptr,int
#comfunc global IMetaDataEmit_DefineUserString            28 wstr,int,var
#comfunc global IMetaDataEmit_DeleteToken                 29 int
#comfunc global IMetaDataEmit_SetMethodProps              30 int,int,int,int
#comfunc global IMetaDataEmit_SetTypeDefProps             31 int,int,int,var
#comfunc global IMetaDataEmit_SetEventProps               32 int,int,int,int,int,int,var
#comfunc global IMetaDataEmit_SetPermissionSetProps       33 int,int,sptr,int,var
#comfunc global IMetaDataEmit_DefinePinvokeMap            34 int,int,wstr,int
#comfunc global IMetaDataEmit_SetPinvokeMap               35 int,int,wstr,int
#comfunc global IMetaDataEmit_DeletePinvokeMap            36 int
#comfunc global IMetaDataEmit_DefineCustomAttribute       37 int,int,sptr,int,var
#comfunc global IMetaDataEmit_SetCustomAttributeValue     38 int,sptr,int
#comfunc global IMetaDataEmit_DefineField                 39 int,wstr,int,var,int,int,sptr,int,var
#comfunc global IMetaDataEmit_DefineProperty              40 int,wstr,int,var,int,int,sptr,int,int,int,var,var
#comfunc global IMetaDataEmit_DefineParam                 41 int,int,wstr,int,int,sptr,int,var
#comfunc global IMetaDataEmit_SetFieldProps               42 int,int,int,sptr,int
#comfunc global IMetaDataEmit_SetPropertyProps            43 int,int,int,sptr,int,int,int,var
#comfunc global IMetaDataEmit_SetParamProps               44 int,wstr,int,int,sptr,int
#comfunc global IMetaDataEmit_DefineSecurityAttributeSet  45 int,var,int,var
#comfunc global IMetaDataEmit_ApplyEditAndContinue        46 sptr
#comfunc global IMetaDataEmit_TranslateSigWithScope       47 sptr,sptr,int,sptr,var,int,sptr,sptr,var,int,var
#comfunc global IMetaDataEmit_SetMethodImplFlags          48 int,int
#comfunc global IMetaDataEmit_SetFieldRVA                 49 int,int
#comfunc global IMetaDataEmit_Merge                       50 sptr,sptr,sptr
#comfunc global IMetaDataEmit_MergeEnd                    51
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。