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

IMetaDataEmit2

COM
IIDf5dd9950-f693-42e6-830e-7b833e8146a9継承元IMetaDataEmit自前メソッド開始 vtbl52

メソッド 8

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

vtbl 52 HRESULT DefineMethodSpec(DWORD tkParent, BYTE* pvSigBlob, DWORD cbSigBlob, DWORD* pmi)
tkParentDWORDinインスタンス化するジェネリックメソッドのトークンを指定する。
pvSigBlobBYTE*inoutメソッドの型引数を示すシグネチャ blob へのポインタである。
cbSigBlobDWORDinシグネチャ blob のサイズをバイト数で指定する。
pmiDWORD*inout定義された MethodSpec トークンを受け取る。
vtbl 53 HRESULT GetDeltaSaveSize(CorSaveSize fSave, DWORD* pdwSaveSize)
fSaveCorSaveSizein保存方法を示す CorSaveSize 列挙値を指定する。
pdwSaveSizeDWORD*inoutデルタ (差分) メタデータの保存に必要なバイト数を受け取る。
vtbl 54 HRESULT SaveDelta(LPWSTR szFile, DWORD dwSaveFlags)
szFileLPWSTRinデルタ (差分) メタデータの保存先ファイル名を指定する。
dwSaveFlagsDWORDin保存時のオプションを示すフラグを指定する。予約済みで 0 を指定する。
vtbl 55 HRESULT SaveDeltaToStream(IStream* pIStream, DWORD dwSaveFlags)
pIStreamIStream*inデルタメタデータの書き込み先となる IStream へのポインタを指定する。
dwSaveFlagsDWORDin保存時のオプションを示すフラグを指定する。予約済みで 0 を指定する。
vtbl 56 HRESULT SaveDeltaToMemory(void* pbData, DWORD cbData)
pbDatavoid*inoutデルタメタデータを書き込むメモリ領域へのポインタを指定する。
cbDataDWORDin書き込み先メモリ領域のサイズをバイト数で指定する。
vtbl 57 HRESULT DefineGenericParam(DWORD tk, DWORD ulParamSeq, DWORD dwParamFlags, LPWSTR szname, DWORD reserved, DWORD* rtkConstraints, DWORD* pgp)
tkDWORDinジェネリックパラメーターを定義する対象の型またはメソッドのトークンを指定する。
ulParamSeqDWORDinジェネリックパラメーターの順序位置 (0 始まり) を指定する。
dwParamFlagsDWORDinジェネリックパラメーターの分散や制約を示すフラグを指定する。
sznameLPWSTRinジェネリックパラメーターの名前を指定する文字列である。
reservedDWORDin予約済みパラメーターである。0 を指定する。
rtkConstraintsDWORD*inout型制約を示すトークン配列へのポインタである。mdTokenNil で終端する。
pgpDWORD*inout定義された GenericParam トークンを受け取る。
vtbl 58 HRESULT SetGenericParamProps(DWORD gp, DWORD dwParamFlags, LPWSTR szName, DWORD reserved, DWORD* rtkConstraints)
gpDWORDinプロパティを更新する対象のジェネリックパラメーター (GenericParam) のトークンを指定する。
dwParamFlagsDWORDinジェネリックパラメーターの分散や制約を示すフラグを指定する。
szNameLPWSTRinジェネリックパラメーターの名前を指定する文字列である。
reservedDWORDin予約済みパラメーターである。0 を指定する。
rtkConstraintsDWORD*inout型制約を示すトークン配列へのポインタである。mdTokenNil で終端する。
vtbl 59 HRESULT ResetENCLog()

HSP用 COM定義

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

出力引数:
#define global IID_IMetaDataEmit2 "{F5DD9950-F693-42E6-830E-7B833E8146A9}"
#usecom global IMetaDataEmit2 IID_IMetaDataEmit2 "{}"
#comfunc global IMetaDataEmit2_DefineMethodSpec      52 int,var,int,var
#comfunc global IMetaDataEmit2_GetDeltaSaveSize      53 int,var
#comfunc global IMetaDataEmit2_SaveDelta             54 wstr,int
#comfunc global IMetaDataEmit2_SaveDeltaToStream     55 sptr,int
#comfunc global IMetaDataEmit2_SaveDeltaToMemory     56 sptr,int
#comfunc global IMetaDataEmit2_DefineGenericParam    57 int,int,int,wstr,int,var,var
#comfunc global IMetaDataEmit2_SetGenericParamProps  58 int,int,wstr,int,var
#comfunc global IMetaDataEmit2_ResetENCLog           59
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。