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

IMetaDataAssemblyImport

COM
IIDee62470b-e94b-424e-9b7c-2f00c9249f93継承元IUnknown自前メソッド開始 vtbl3

メソッド 14

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

vtbl 3 HRESULT GetAssemblyProps(DWORD mda, void** ppbPublicKey, DWORD* pcbPublicKey, DWORD* pulHashAlgId, LPWSTR szName, DWORD cchName, DWORD* pchName, ASSEMBLYMETADATA* pMetaData, DWORD* pdwAssemblyFlags)
mdaDWORDin情報を取得する対象のアセンブリ (Assembly) のトークンを指定する。
ppbPublicKeyvoid**inアセンブリの公開キーへのポインタを受け取る。
pcbPublicKeyDWORD*inout公開キーのサイズをバイト数で受け取る。
pulHashAlgIdDWORD*inout公開キーの計算に用いたハッシュアルゴリズム ID を受け取る。
szNameLPWSTRoutoptionalアセンブリ名を受け取るバッファへのポインタである。
cchNameDWORDin名前用バッファの最大文字数を指定する。
pchNameDWORD*inout実際に書き込まれた名前の文字数を受け取る。
pMetaDataASSEMBLYMETADATA*inoutバージョンやロケールなどを示す ASSEMBLYMETADATA を受け取る。
pdwAssemblyFlagsDWORD*inoutアセンブリの属性フラグを受け取る。
vtbl 4 HRESULT GetAssemblyRefProps(DWORD mdar, void** ppbPublicKeyOrToken, DWORD* pcbPublicKeyOrToken, LPWSTR szName, DWORD cchName, DWORD* pchName, ASSEMBLYMETADATA* pMetaData, void** ppbHashValue, DWORD* pcbHashValue, DWORD* pdwAssemblyRefFlags)
mdarDWORDin情報を取得する対象のアセンブリ参照 (AssemblyRef) のトークンを指定する。
ppbPublicKeyOrTokenvoid**in参照アセンブリの公開キーまたは公開キートークンへのポインタを受け取る。
pcbPublicKeyOrTokenDWORD*inout公開キーまたはトークンのサイズをバイト数で受け取る。
szNameLPWSTRoutoptional参照アセンブリ名を受け取るバッファへのポインタである。
cchNameDWORDin名前用バッファの最大文字数を指定する。
pchNameDWORD*inout実際に書き込まれた名前の文字数を受け取る。
pMetaDataASSEMBLYMETADATA*inoutバージョンやロケールなどを示す ASSEMBLYMETADATA を受け取る。
ppbHashValuevoid**in参照アセンブリのハッシュ値へのポインタを受け取る。
pcbHashValueDWORD*inoutハッシュ値のサイズをバイト数で受け取る。
pdwAssemblyRefFlagsDWORD*inoutアセンブリ参照の属性フラグを受け取る。
vtbl 5 HRESULT GetFileProps(DWORD mdf, LPWSTR szName, DWORD cchName, DWORD* pchName, void** ppbHashValue, DWORD* pcbHashValue, DWORD* pdwFileFlags)
mdfDWORDin情報を取得する対象のファイル (File) のトークンを指定する。
szNameLPWSTRoutoptionalファイル名を受け取るバッファへのポインタである。
cchNameDWORDin名前用バッファの最大文字数を指定する。
pchNameDWORD*inout実際に書き込まれた名前の文字数を受け取る。
ppbHashValuevoid**inファイルのハッシュ値へのポインタを受け取る。
pcbHashValueDWORD*inoutハッシュ値のサイズをバイト数で受け取る。
pdwFileFlagsDWORD*inoutファイルの属性フラグを受け取る。
vtbl 6 HRESULT GetExportedTypeProps(DWORD mdct, LPWSTR szName, DWORD cchName, DWORD* pchName, DWORD* ptkImplementation, DWORD* ptkTypeDef, DWORD* pdwExportedTypeFlags)
mdctDWORDin情報を取得する対象のエクスポート型 (ExportedType) のトークンを指定する。
szNameLPWSTRoutoptionalエクスポート型名を受け取るバッファへのポインタである。
cchNameDWORDin名前用バッファの最大文字数を指定する。
pchNameDWORD*inout実際に書き込まれた名前の文字数を受け取る。
ptkImplementationDWORD*inout型を実装するファイルまたはアセンブリ参照のトークンを受け取る。
ptkTypeDefDWORD*inout対応する元の型 (TypeDef) のトークンを受け取る。
pdwExportedTypeFlagsDWORD*inoutエクスポート型の属性フラグを受け取る。
vtbl 7 HRESULT GetManifestResourceProps(DWORD mdmr, LPWSTR szName, DWORD cchName, DWORD* pchName, DWORD* ptkImplementation, DWORD* pdwOffset, DWORD* pdwResourceFlags)
mdmrDWORDin情報を取得する対象のマニフェストリソース (ManifestResource) のトークンを指定する。
szNameLPWSTRoutoptionalリソース名を受け取るバッファへのポインタである。
cchNameDWORDin名前用バッファの最大文字数を指定する。
pchNameDWORD*inout実際に書き込まれた名前の文字数を受け取る。
ptkImplementationDWORD*inoutリソースを含むファイルまたはアセンブリ参照のトークンを受け取る。
pdwOffsetDWORD*inoutリソースのファイル内オフセットを受け取る。
pdwResourceFlagsDWORD*inoutリソースの属性フラグを受け取る。
vtbl 8 HRESULT EnumAssemblyRefs(void** phEnum, DWORD* rAssemblyRefs, DWORD cMax, DWORD* pcTokens)
phEnumvoid**inout列挙ハンドルへのポインタである。初回呼び出し時は指す値を NULL に初期化する。
rAssemblyRefsDWORD*inout取得した AssemblyRef トークンを格納する配列へのポインタである。
cMaxDWORDin配列に格納できる最大要素数を指定する。
pcTokensDWORD*inout実際に取得したトークンの数を受け取る。
vtbl 9 HRESULT EnumFiles(void** phEnum, DWORD* rFiles, DWORD cMax, DWORD* pcTokens)
phEnumvoid**inout列挙ハンドルへのポインタである。初回呼び出し時は指す値を NULL に初期化する。
rFilesDWORD*inout取得した File トークンを格納する配列へのポインタである。
cMaxDWORDin配列に格納できる最大要素数を指定する。
pcTokensDWORD*inout実際に取得したトークンの数を受け取る。
vtbl 10 HRESULT EnumExportedTypes(void** phEnum, DWORD* rExportedTypes, DWORD cMax, DWORD* pcTokens)
phEnumvoid**inout列挙ハンドルへのポインタである。初回呼び出し時は指す値を NULL に初期化する。
rExportedTypesDWORD*inout取得した ExportedType トークンを格納する配列へのポインタである。
cMaxDWORDin配列に格納できる最大要素数を指定する。
pcTokensDWORD*inout実際に取得したトークンの数を受け取る。
vtbl 11 HRESULT EnumManifestResources(void** phEnum, DWORD* rManifestResources, DWORD cMax, DWORD* pcTokens)
phEnumvoid**inout列挙ハンドルへのポインタである。初回呼び出し時は指す値を NULL に初期化する。
rManifestResourcesDWORD*inout取得した ManifestResource トークンを格納する配列へのポインタである。
cMaxDWORDin配列に格納できる最大要素数を指定する。
pcTokensDWORD*inout実際に取得したトークンの数を受け取る。
vtbl 12 HRESULT GetAssemblyFromScope(DWORD* ptkAssembly)
ptkAssemblyDWORD*inout現在のスコープに含まれるアセンブリの Assembly トークンを受け取る。
vtbl 13 HRESULT FindExportedTypeByName(LPWSTR szName, DWORD mdtExportedType, DWORD* ptkExportedType)
szNameLPWSTRin検索するエクスポート型の名前を指定する文字列である。
mdtExportedTypeDWORDin入れ子型を検索する場合の外側のエクスポート型トークンを指定する。
ptkExportedTypeDWORD*inout見つかった ExportedType トークンを受け取る。
vtbl 14 HRESULT FindManifestResourceByName(LPWSTR szName, DWORD* ptkManifestResource)
szNameLPWSTRin検索するマニフェストリソースの名前を指定する文字列である。
ptkManifestResourceDWORD*inout見つかった ManifestResource トークンを受け取る。
vtbl 15 void CloseEnum(void* hEnum)
hEnumvoid*inout閉じる対象の列挙ハンドルを指定する。
vtbl 16 HRESULT FindAssembliesByName(LPWSTR szAppBase, LPWSTR szPrivateBin, LPWSTR szAssemblyName, IUnknown** ppIUnk, DWORD cMax, DWORD* pcAssemblies)
szAppBaseLPWSTRin検索の基点となるアプリケーションベースディレクトリを指定する文字列である。NULL を指定できる。
szPrivateBinLPWSTRinプライベートな検索パス (bin) を指定する文字列である。NULL を指定できる。
szAssemblyNameLPWSTRin検索するアセンブリの名前を指定する文字列である。
ppIUnkIUnknown**out見つかったアセンブリの IUnknown ポインタを格納する配列へのポインタである。
cMaxDWORDin配列に格納できる最大要素数を指定する。
pcAssembliesDWORD*inout実際に見つかったアセンブリの数を受け取る。

HSP用 COM定義

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

出力引数:
#define global IID_IMetaDataAssemblyImport "{EE62470B-E94B-424E-9B7C-2F00C9249F93}"
#usecom global IMetaDataAssemblyImport IID_IMetaDataAssemblyImport "{}"
#comfunc global IMetaDataAssemblyImport_GetAssemblyProps            3 int,sptr,var,var,var,int,var,var,var
#comfunc global IMetaDataAssemblyImport_GetAssemblyRefProps         4 int,sptr,var,var,int,var,var,sptr,var,var
#comfunc global IMetaDataAssemblyImport_GetFileProps                5 int,var,int,var,sptr,var,var
#comfunc global IMetaDataAssemblyImport_GetExportedTypeProps        6 int,var,int,var,var,var,var
#comfunc global IMetaDataAssemblyImport_GetManifestResourceProps    7 int,var,int,var,var,var,var
#comfunc global IMetaDataAssemblyImport_EnumAssemblyRefs            8 sptr,var,int,var
#comfunc global IMetaDataAssemblyImport_EnumFiles                   9 sptr,var,int,var
#comfunc global IMetaDataAssemblyImport_EnumExportedTypes           10 sptr,var,int,var
#comfunc global IMetaDataAssemblyImport_EnumManifestResources       11 sptr,var,int,var
#comfunc global IMetaDataAssemblyImport_GetAssemblyFromScope        12 var
#comfunc global IMetaDataAssemblyImport_FindExportedTypeByName      13 wstr,int,var
#comfunc global IMetaDataAssemblyImport_FindManifestResourceByName  14 wstr,var
#comfunc global IMetaDataAssemblyImport_CloseEnum                   15 sptr
#comfunc global IMetaDataAssemblyImport_FindAssembliesByName        16 wstr,wstr,wstr,sptr,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。