ホーム › System.WinRT.Metadata › IMetaDataImport2
IMetaDataImport2
COMメソッド 8
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 65 HRESULT EnumGenericParams(void** phEnum, DWORD tk, DWORD* rGenericParams, DWORD cMax, DWORD* pcGenericParams)
| phEnum | void** | inout | 列挙ハンドルへのポインタである。初回呼び出し時は指す値を NULL に初期化する。 |
| tk | DWORD | in | ジェネリックパラメーターを列挙する対象の型またはメソッドのトークンを指定する。 |
| rGenericParams | DWORD* | inout | 取得した GenericParam トークンを格納する配列へのポインタである。 |
| cMax | DWORD | in | 配列に格納できる最大要素数を指定する。 |
| pcGenericParams | DWORD* | inout | 実際に取得したジェネリックパラメーターの数を受け取る。 |
vtbl 66 HRESULT GetGenericParamProps(DWORD gp, DWORD* pulParamSeq, DWORD* pdwParamFlags, DWORD* ptOwner, DWORD* reserved, LPWSTR wzname, DWORD cchName, DWORD* pchName)
| gp | DWORD | in | 情報を取得する対象のジェネリックパラメーター (GenericParam) のトークンを指定する。 |
| pulParamSeq | DWORD* | inout | ジェネリックパラメーターの順序位置を受け取る。 |
| pdwParamFlags | DWORD* | inout | ジェネリックパラメーターの分散や制約を示すフラグを受け取る。 |
| ptOwner | DWORD* | inout | ジェネリックパラメーターを所有する型またはメソッドのトークンを受け取る。 |
| reserved | DWORD* | inout | 予約済み出力パラメーターである。 |
| wzname | LPWSTR | outoptional | ジェネリックパラメーター名を受け取るバッファへのポインタである。 |
| cchName | DWORD | in | 名前用バッファの最大文字数を指定する。 |
| pchName | DWORD* | inout | 実際に書き込まれた名前の文字数を受け取る。 |
| mi | DWORD | in | 情報を取得する対象の MethodSpec トークンを指定する。 |
| tkParent | DWORD* | inout | インスタンス化されたジェネリックメソッドのトークンを受け取る。 |
| ppvSigBlob | BYTE** | inout | メソッドの型引数を示すシグネチャ blob へのポインタを受け取る。 |
| pcbSigBlob | DWORD* | inout | シグネチャ blob のサイズをバイト数で受け取る。 |
vtbl 68 HRESULT EnumGenericParamConstraints(void** phEnum, DWORD tk, DWORD* rGenericParamConstraints, DWORD cMax, DWORD* pcGenericParamConstraints)
| phEnum | void** | inout | 列挙ハンドルへのポインタである。初回呼び出し時は指す値を NULL に初期化する。 |
| tk | DWORD | in | 制約を列挙する対象のジェネリックパラメーター (GenericParam) のトークンを指定する。 |
| rGenericParamConstraints | DWORD* | inout | 取得した GenericParamConstraint トークンを格納する配列へのポインタである。 |
| cMax | DWORD | in | 配列に格納できる最大要素数を指定する。 |
| pcGenericParamConstraints | DWORD* | inout | 実際に取得した制約の数を受け取る。 |
vtbl 69 HRESULT GetGenericParamConstraintProps(DWORD gpc, DWORD* ptGenericParam, DWORD* ptkConstraintType)
| gpc | DWORD | in | 情報を取得する対象の GenericParamConstraint トークンを指定する。 |
| ptGenericParam | DWORD* | inout | 制約を持つジェネリックパラメーターのトークンを受け取る。 |
| ptkConstraintType | DWORD* | inout | 制約となる型のトークンを受け取る。 |
| pdwPEKind | DWORD* | inout | PE ファイルの種別を示すフラグ (CorPEKind) を受け取る。 |
| pdwMAchine | DWORD* | inout | 対象とするマシンアーキテクチャを示す値を受け取る。 |
| pwzBuf | LPWSTR | outoptional | ランタイムバージョン文字列を受け取るバッファへのポインタである。 |
| ccBufSize | DWORD | in | バッファの最大文字数を指定する。 |
| pccBufSize | DWORD* | inout | 実際に書き込まれた文字数を受け取る。 |
vtbl 72 HRESULT EnumMethodSpecs(void** phEnum, DWORD tk, DWORD* rMethodSpecs, DWORD cMax, DWORD* pcMethodSpecs)
| phEnum | void** | inout | 列挙ハンドルへのポインタである。初回呼び出し時は指す値を NULL に初期化する。 |
| tk | DWORD | in | メソッド仕様を列挙する対象のメソッドまたは MemberRef のトークンを指定する。mdTokenNil で全件対象となる。 |
| rMethodSpecs | DWORD* | inout | 取得した MethodSpec トークンを格納する配列へのポインタである。 |
| cMax | DWORD | in | 配列に格納できる最大要素数を指定する。 |
| pcMethodSpecs | DWORD* | inout | 実際に取得した MethodSpec の数を受け取る。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IMetaDataImport2 "{FCE5EFA0-8BBA-4F8E-A036-8F2022B08466}" #usecom global IMetaDataImport2 IID_IMetaDataImport2 "{}" #comfunc global IMetaDataImport2_EnumGenericParams 65 sptr,int,var,int,var #comfunc global IMetaDataImport2_GetGenericParamProps 66 int,var,var,var,var,var,int,var #comfunc global IMetaDataImport2_GetMethodSpecProps 67 int,var,var,var #comfunc global IMetaDataImport2_EnumGenericParamConstraints 68 sptr,int,var,int,var #comfunc global IMetaDataImport2_GetGenericParamConstraintProps 69 int,var,var #comfunc global IMetaDataImport2_GetPEKind 70 var,var #comfunc global IMetaDataImport2_GetVersionString 71 var,int,var #comfunc global IMetaDataImport2_EnumMethodSpecs 72 sptr,int,var,int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IMetaDataImport2 "{FCE5EFA0-8BBA-4F8E-A036-8F2022B08466}" #usecom global IMetaDataImport2 IID_IMetaDataImport2 "{}" #comfunc global IMetaDataImport2_EnumGenericParams 65 sptr,int,sptr,int,sptr #comfunc global IMetaDataImport2_GetGenericParamProps 66 int,sptr,sptr,sptr,sptr,sptr,int,sptr #comfunc global IMetaDataImport2_GetMethodSpecProps 67 int,sptr,sptr,sptr #comfunc global IMetaDataImport2_EnumGenericParamConstraints 68 sptr,int,sptr,int,sptr #comfunc global IMetaDataImport2_GetGenericParamConstraintProps 69 int,sptr,sptr #comfunc global IMetaDataImport2_GetPEKind 70 sptr,sptr #comfunc global IMetaDataImport2_GetVersionString 71 sptr,int,sptr #comfunc global IMetaDataImport2_EnumMethodSpecs 72 sptr,int,sptr,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。