ホーム › System.WinRT.Metadata › IMetaDataAssemblyImport
IMetaDataAssemblyImport
COMメソッド 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)
| mda | DWORD | in | 情報を取得する対象のアセンブリ (Assembly) のトークンを指定する。 |
| ppbPublicKey | void** | in | アセンブリの公開キーへのポインタを受け取る。 |
| pcbPublicKey | DWORD* | inout | 公開キーのサイズをバイト数で受け取る。 |
| pulHashAlgId | DWORD* | inout | 公開キーの計算に用いたハッシュアルゴリズム ID を受け取る。 |
| szName | LPWSTR | outoptional | アセンブリ名を受け取るバッファへのポインタである。 |
| cchName | DWORD | in | 名前用バッファの最大文字数を指定する。 |
| pchName | DWORD* | inout | 実際に書き込まれた名前の文字数を受け取る。 |
| pMetaData | ASSEMBLYMETADATA* | inout | バージョンやロケールなどを示す ASSEMBLYMETADATA を受け取る。 |
| pdwAssemblyFlags | DWORD* | 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)
| mdar | DWORD | in | 情報を取得する対象のアセンブリ参照 (AssemblyRef) のトークンを指定する。 |
| ppbPublicKeyOrToken | void** | in | 参照アセンブリの公開キーまたは公開キートークンへのポインタを受け取る。 |
| pcbPublicKeyOrToken | DWORD* | inout | 公開キーまたはトークンのサイズをバイト数で受け取る。 |
| szName | LPWSTR | outoptional | 参照アセンブリ名を受け取るバッファへのポインタである。 |
| cchName | DWORD | in | 名前用バッファの最大文字数を指定する。 |
| pchName | DWORD* | inout | 実際に書き込まれた名前の文字数を受け取る。 |
| pMetaData | ASSEMBLYMETADATA* | inout | バージョンやロケールなどを示す ASSEMBLYMETADATA を受け取る。 |
| ppbHashValue | void** | in | 参照アセンブリのハッシュ値へのポインタを受け取る。 |
| pcbHashValue | DWORD* | inout | ハッシュ値のサイズをバイト数で受け取る。 |
| pdwAssemblyRefFlags | DWORD* | inout | アセンブリ参照の属性フラグを受け取る。 |
vtbl 5 HRESULT GetFileProps(DWORD mdf, LPWSTR szName, DWORD cchName, DWORD* pchName, void** ppbHashValue, DWORD* pcbHashValue, DWORD* pdwFileFlags)
| mdf | DWORD | in | 情報を取得する対象のファイル (File) のトークンを指定する。 |
| szName | LPWSTR | outoptional | ファイル名を受け取るバッファへのポインタである。 |
| cchName | DWORD | in | 名前用バッファの最大文字数を指定する。 |
| pchName | DWORD* | inout | 実際に書き込まれた名前の文字数を受け取る。 |
| ppbHashValue | void** | in | ファイルのハッシュ値へのポインタを受け取る。 |
| pcbHashValue | DWORD* | inout | ハッシュ値のサイズをバイト数で受け取る。 |
| pdwFileFlags | DWORD* | inout | ファイルの属性フラグを受け取る。 |
vtbl 6 HRESULT GetExportedTypeProps(DWORD mdct, LPWSTR szName, DWORD cchName, DWORD* pchName, DWORD* ptkImplementation, DWORD* ptkTypeDef, DWORD* pdwExportedTypeFlags)
| mdct | DWORD | in | 情報を取得する対象のエクスポート型 (ExportedType) のトークンを指定する。 |
| szName | LPWSTR | outoptional | エクスポート型名を受け取るバッファへのポインタである。 |
| cchName | DWORD | in | 名前用バッファの最大文字数を指定する。 |
| pchName | DWORD* | inout | 実際に書き込まれた名前の文字数を受け取る。 |
| ptkImplementation | DWORD* | inout | 型を実装するファイルまたはアセンブリ参照のトークンを受け取る。 |
| ptkTypeDef | DWORD* | inout | 対応する元の型 (TypeDef) のトークンを受け取る。 |
| pdwExportedTypeFlags | DWORD* | inout | エクスポート型の属性フラグを受け取る。 |
vtbl 7 HRESULT GetManifestResourceProps(DWORD mdmr, LPWSTR szName, DWORD cchName, DWORD* pchName, DWORD* ptkImplementation, DWORD* pdwOffset, DWORD* pdwResourceFlags)
| mdmr | DWORD | in | 情報を取得する対象のマニフェストリソース (ManifestResource) のトークンを指定する。 |
| szName | LPWSTR | outoptional | リソース名を受け取るバッファへのポインタである。 |
| cchName | DWORD | in | 名前用バッファの最大文字数を指定する。 |
| pchName | DWORD* | inout | 実際に書き込まれた名前の文字数を受け取る。 |
| ptkImplementation | DWORD* | inout | リソースを含むファイルまたはアセンブリ参照のトークンを受け取る。 |
| pdwOffset | DWORD* | inout | リソースのファイル内オフセットを受け取る。 |
| pdwResourceFlags | DWORD* | inout | リソースの属性フラグを受け取る。 |
| phEnum | void** | inout | 列挙ハンドルへのポインタである。初回呼び出し時は指す値を NULL に初期化する。 |
| rAssemblyRefs | DWORD* | inout | 取得した AssemblyRef トークンを格納する配列へのポインタである。 |
| cMax | DWORD | in | 配列に格納できる最大要素数を指定する。 |
| pcTokens | DWORD* | inout | 実際に取得したトークンの数を受け取る。 |
| phEnum | void** | inout | 列挙ハンドルへのポインタである。初回呼び出し時は指す値を NULL に初期化する。 |
| rFiles | DWORD* | inout | 取得した File トークンを格納する配列へのポインタである。 |
| cMax | DWORD | in | 配列に格納できる最大要素数を指定する。 |
| pcTokens | DWORD* | inout | 実際に取得したトークンの数を受け取る。 |
vtbl 10 HRESULT EnumExportedTypes(void** phEnum, DWORD* rExportedTypes, DWORD cMax, DWORD* pcTokens)
| phEnum | void** | inout | 列挙ハンドルへのポインタである。初回呼び出し時は指す値を NULL に初期化する。 |
| rExportedTypes | DWORD* | inout | 取得した ExportedType トークンを格納する配列へのポインタである。 |
| cMax | DWORD | in | 配列に格納できる最大要素数を指定する。 |
| pcTokens | DWORD* | inout | 実際に取得したトークンの数を受け取る。 |
vtbl 11 HRESULT EnumManifestResources(void** phEnum, DWORD* rManifestResources, DWORD cMax, DWORD* pcTokens)
| phEnum | void** | inout | 列挙ハンドルへのポインタである。初回呼び出し時は指す値を NULL に初期化する。 |
| rManifestResources | DWORD* | inout | 取得した ManifestResource トークンを格納する配列へのポインタである。 |
| cMax | DWORD | in | 配列に格納できる最大要素数を指定する。 |
| pcTokens | DWORD* | inout | 実際に取得したトークンの数を受け取る。 |
| ptkAssembly | DWORD* | inout | 現在のスコープに含まれるアセンブリの Assembly トークンを受け取る。 |
vtbl 13 HRESULT FindExportedTypeByName(LPWSTR szName, DWORD mdtExportedType, DWORD* ptkExportedType)
| szName | LPWSTR | in | 検索するエクスポート型の名前を指定する文字列である。 |
| mdtExportedType | DWORD | in | 入れ子型を検索する場合の外側のエクスポート型トークンを指定する。 |
| ptkExportedType | DWORD* | inout | 見つかった ExportedType トークンを受け取る。 |
| szName | LPWSTR | in | 検索するマニフェストリソースの名前を指定する文字列である。 |
| ptkManifestResource | DWORD* | inout | 見つかった ManifestResource トークンを受け取る。 |
vtbl 15 void CloseEnum(void* hEnum)
| hEnum | void* | inout | 閉じる対象の列挙ハンドルを指定する。 |
vtbl 16 HRESULT FindAssembliesByName(LPWSTR szAppBase, LPWSTR szPrivateBin, LPWSTR szAssemblyName, IUnknown** ppIUnk, DWORD cMax, DWORD* pcAssemblies)
| szAppBase | LPWSTR | in | 検索の基点となるアプリケーションベースディレクトリを指定する文字列である。NULL を指定できる。 |
| szPrivateBin | LPWSTR | in | プライベートな検索パス (bin) を指定する文字列である。NULL を指定できる。 |
| szAssemblyName | LPWSTR | in | 検索するアセンブリの名前を指定する文字列である。 |
| ppIUnk | IUnknown** | out | 見つかったアセンブリの IUnknown ポインタを格納する配列へのポインタである。 |
| cMax | DWORD | in | 配列に格納できる最大要素数を指定する。 |
| pcAssemblies | DWORD* | 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 指定が可能。#define global IID_IMetaDataAssemblyImport "{EE62470B-E94B-424E-9B7C-2F00C9249F93}" #usecom global IMetaDataAssemblyImport IID_IMetaDataAssemblyImport "{}" #comfunc global IMetaDataAssemblyImport_GetAssemblyProps 3 int,sptr,sptr,sptr,sptr,int,sptr,sptr,sptr #comfunc global IMetaDataAssemblyImport_GetAssemblyRefProps 4 int,sptr,sptr,sptr,int,sptr,sptr,sptr,sptr,sptr #comfunc global IMetaDataAssemblyImport_GetFileProps 5 int,sptr,int,sptr,sptr,sptr,sptr #comfunc global IMetaDataAssemblyImport_GetExportedTypeProps 6 int,sptr,int,sptr,sptr,sptr,sptr #comfunc global IMetaDataAssemblyImport_GetManifestResourceProps 7 int,sptr,int,sptr,sptr,sptr,sptr #comfunc global IMetaDataAssemblyImport_EnumAssemblyRefs 8 sptr,sptr,int,sptr #comfunc global IMetaDataAssemblyImport_EnumFiles 9 sptr,sptr,int,sptr #comfunc global IMetaDataAssemblyImport_EnumExportedTypes 10 sptr,sptr,int,sptr #comfunc global IMetaDataAssemblyImport_EnumManifestResources 11 sptr,sptr,int,sptr #comfunc global IMetaDataAssemblyImport_GetAssemblyFromScope 12 sptr #comfunc global IMetaDataAssemblyImport_FindExportedTypeByName 13 wstr,int,sptr #comfunc global IMetaDataAssemblyImport_FindManifestResourceByName 14 wstr,sptr #comfunc global IMetaDataAssemblyImport_CloseEnum 15 sptr #comfunc global IMetaDataAssemblyImport_FindAssembliesByName 16 wstr,wstr,wstr,sptr,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。