summaryrefslogtreecommitdiff
path: root/src/md/runtime/mdinternaldisp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/md/runtime/mdinternaldisp.cpp')
-rw-r--r--src/md/runtime/mdinternaldisp.cpp1614
1 files changed, 0 insertions, 1614 deletions
diff --git a/src/md/runtime/mdinternaldisp.cpp b/src/md/runtime/mdinternaldisp.cpp
index 1f5725ff01..e6e25a2110 100644
--- a/src/md/runtime/mdinternaldisp.cpp
+++ b/src/md/runtime/mdinternaldisp.cpp
@@ -112,11 +112,6 @@ CheckFileFormat(
}
else if (strcmp(pStream->GetName(), ENC_MODEL_STREAM_A) == 0)
{
-#ifdef FEATURE_METADATA_STANDALONE_WINRT
- Debug_ReportError("ENC model stream #- is not supported.");
- hr = CLDB_E_FILE_CORRUPT;
- goto ErrExit;
-#else //!FEATURE_METADATA_STANDALONE_WINRT
// Validate that only one of compressed/uncompressed is present.
if (*pFormat != MDFormat_Invalid)
{ // Already found a good stream.
@@ -126,21 +121,14 @@ CheckFileFormat(
}
// Found the ENC meta data stream.
*pFormat = MDFormat_ReadWrite;
-#endif //!FEATURE_METADATA_STANDALONE_WINRT
}
else if (strcmp(pStream->GetName(), SCHEMA_STREAM_A) == 0)
{
-#ifdef FEATURE_METADATA_STANDALONE_WINRT
- Debug_ReportError("Schema stream #Schema is not supported.");
- hr = CLDB_E_FILE_CORRUPT;
- goto ErrExit;
-#else //!FEATURE_METADATA_STANDALONE_WINRT
// Found the uncompressed format
*pFormat = MDFormat_ICR;
// keep going. We may find the compressed format later.
// If so, we want to use the compressed format.
-#endif //!FEATURE_METADATA_STANDALONE_WINRT
}
// Pick off the next stream if there is one.
@@ -228,1607 +216,5 @@ ErrExit:
} // GetMDInternalInterface
-#ifdef FEATURE_FUSION
-
-#ifndef DACCESS_COMPILE
-
-//*****************************************************************************
-// GetAssemblyMDInternalImport.
-// Instantiating an instance of AssemblyMDInternalImport.
-// This class can support the IMetaDataAssemblyImport and some functionalities
-// of IMetaDataImport on the internal import interface (IMDInternalImport).
-//*****************************************************************************
-STDAPI GetAssemblyMDInternalImport( // Return code.
- LPCWSTR szFileName, // [in] The scope to open.
- REFIID riid, // [in] The interface desired.
- IUnknown **ppIUnk) // [out] Return interface on success.
-{
- return GetAssemblyMDInternalImportEx(szFileName, riid, MDInternalImport_Default, ppIUnk);
-}
-
-STDAPI GetAssemblyMDInternalImportEx( // Return code.
- LPCWSTR szFileName, // [in] The scope to open.
- REFIID riid, // [in] The interface desired.
- MDInternalImportFlags flags, // [in] Flags to control opening the assembly
- IUnknown **ppIUnk, // [out] Return interface on success.
- HANDLE hFile)
-{
- HRESULT hr;
-
- if (!szFileName || !szFileName[0] || !ppIUnk)
- return E_INVALIDARG;
-
- // Sanity check the name.
- if (wcslen(szFileName) >= _MAX_PATH)
- return E_INVALIDARG;
-
- if (memcmp(szFileName, W("file:"), 10) == 0)
- szFileName = &szFileName[5];
-
- HCORMODULEHolder hModule;
- DWORD dwFileLength;
-
- BEGIN_SO_INTOLERANT_CODE_NO_THROW_CHECK_THREAD(return COR_E_STACKOVERFLOW);
-
- IfFailGoto(RuntimeOpenImageInternal(szFileName, &hModule, &dwFileLength, flags, hFile), ErrAsmExpected);
-
- IfFailGo(GetAssemblyMDInternalImportHelper(hModule, riid, flags, ppIUnk));
-
-
-ErrAsmExpected:
- if(hr == COR_E_BADIMAGEFORMAT)
- hr = COR_E_ASSEMBLYEXPECTED;
-
-ErrExit:
-;
- END_SO_INTOLERANT_CODE;
-
- return hr;
-}
-
-HRESULT GetAssemblyMDInternalImportFromImage(
- HCORMODULE hImage,
- REFIID riid,
- IUnknown **ppIUnk)
-{
-
- HRESULT hr;
-
- IfFailGo(GetAssemblyMDInternalImportHelper(hImage, riid, MDInternalImport_Default, ppIUnk));
-
-ErrExit:
- return hr;
-}
-
-STDAPI GetAssemblyMDInternalImportByStream( // Return code.
- IStream *pIStream, // [in] The IStream for the file
- UINT64 AssemblyId, // [in] Unique Id for the assembly
- REFIID riid, // [in] The interface desired.
- IUnknown **ppIUnk) // [out] Return interface on success.
-{
- return GetAssemblyMDInternalImportByStreamEx(pIStream, AssemblyId, riid, MDInternalImport_Default, ppIUnk);
-}
-
-STDAPI GetAssemblyMDInternalImportByStreamEx( // Return code.
- IStream *pIStream, // [in] The IStream for the file
- UINT64 AssemblyId, // [in] Unique Id for the assembly
- REFIID riid, // [in] The interface desired.
- MDInternalImportFlags flags, // [in[ Flags to control opening the assembly
- IUnknown **ppIUnk) // [out] Return interface on success.
-{
- if (!pIStream || !ppIUnk)
- return E_INVALIDARG;
-
- HRESULT hr;
- DWORD dwFileLength;
- HCORMODULEHolder hModule;
-
- BEGIN_SO_INTOLERANT_CODE_NO_THROW_CHECK_THREAD(return COR_E_STACKOVERFLOW);
-
- IfFailGoto(RuntimeOpenImageByStream(pIStream, AssemblyId, 0, &hModule, &dwFileLength, flags), ErrAsmExpected);
-
- IfFailGo(GetAssemblyMDInternalImportHelper(hModule, riid, flags, ppIUnk));
-
-
-ErrAsmExpected:
- if(hr == COR_E_BADIMAGEFORMAT)
- hr = COR_E_ASSEMBLYEXPECTED;
-
-ErrExit:
- ;
- END_SO_INTOLERANT_CODE;
-
- return hr;
-}
-
-
-HRESULT GetAssemblyMDInternalImportHelper(HCORMODULE hModule,
- REFIID riid,
- MDInternalImportFlags flags,
- IUnknown **ppIUnk)
-{
- AssemblyMDInternalImport *pAssemblyMDInternalImport = NULL;
- HRESULT hr;
- LPVOID base;
- PEDecoder pe;
- IfFailGoto(RuntimeGetImageBase(hModule,&base,TRUE,NULL), ErrAsmExpected);
-
- if (base!=NULL)
- IfFailGoto(pe.Init(base), ErrAsmExpected);
- else
- {
- COUNT_T lgth;
- IfFailGoto(RuntimeGetImageBase(hModule,&base,FALSE,&lgth), ErrAsmExpected);
- pe.Init(base, lgth);
- }
-
- // Both of these need to pass.
- if (!pe.HasCorHeader() || !pe.CheckCorHeader())
- IfFailGo(COR_E_ASSEMBLYEXPECTED);
- // Only one of these needs to.
- if (!pe.CheckILFormat() && !pe.CheckNativeFormat())
- IfFailGo(COR_E_BADIMAGEFORMAT);
-
- COUNT_T cbMetaData;
- LPCVOID pMetaData;
- pMetaData = pe.GetMetadata(&cbMetaData);
-
- // Get the IL metadata.
- IMDInternalImport *pMDInternalImport;
- IfFailGo(RuntimeGetMDInternalImport(hModule, flags, &pMDInternalImport));
- if (pMDInternalImport == NULL)
- IfFailGo(E_OUTOFMEMORY);
-
- _ASSERTE(pMDInternalImport);
- pAssemblyMDInternalImport = new (nothrow) AssemblyMDInternalImport (pMDInternalImport);
- if (!pAssemblyMDInternalImport) {
- pMDInternalImport->Release();
- IfFailGo(E_OUTOFMEMORY);
- }
-
- { // identify PE kind and machine type, plus the version string location
- DWORD dwKind=0;
- DWORD dwMachine=0;
- RuntimeGetImageKind(hModule,&dwKind,&dwMachine);
- pAssemblyMDInternalImport->SetPEKind(dwKind);
- pAssemblyMDInternalImport->SetMachine(dwMachine);
-
- {
- LPCSTR pString = NULL;
- IfFailGo(GetImageRuntimeVersionString((PVOID)pMetaData, &pString));
-
- pAssemblyMDInternalImport->SetVersionString(pString);
- }
-
- }
-
- pAssemblyMDInternalImport->SetHandle(hModule);
-
-#ifdef FEATURE_PREJIT
- // Check for zap header for INativeImageInstallInfo
- // Dont do this if we are returning the IL metadata as CORCOMPILE_DEPENDENCY
- // references the native image metadata, not the IL metadata.
-
- if (pe.HasNativeHeader() && !(flags & MDInternalImport_ILMetaData))
- {
- CORCOMPILE_VERSION_INFO *pNativeVersionInfo = pe.GetNativeVersionInfo();
-
- COUNT_T cDeps;
- CORCOMPILE_DEPENDENCY *pDeps = pe.GetNativeDependencies(&cDeps);
-
- pAssemblyMDInternalImport->SetZapVersionInfo(pNativeVersionInfo, pDeps, cDeps);
- }
-#endif // FEATURE_PREJIT
-
- IfFailGo(pAssemblyMDInternalImport->QueryInterface(riid, (void**)ppIUnk));
-
- return hr;
-
-ErrAsmExpected:
- if(hr == COR_E_BADIMAGEFORMAT)
- hr = COR_E_ASSEMBLYEXPECTED;
-
-ErrExit:
-
- if (pAssemblyMDInternalImport)
- delete pAssemblyMDInternalImport;
-
- return hr;
-}
-
-AssemblyMDInternalImport::AssemblyMDInternalImport (IMDInternalImport *pMDInternalImport)
-: m_cRef(0),
- m_pHandle(0),
- m_pBase(NULL),
-#ifdef FEATURE_PREJIT
- m_pZapVersionInfo(NULL),
-#endif // FEATURE_PREJIT
- m_pMDInternalImport(pMDInternalImport),
- m_dwPEKind(0),
- m_dwMachine(0),
- m_szVersionString("")
-{
- _ASSERTE(m_pMDInternalImport);
-} // AssemblyMDInternalImport
-
-AssemblyMDInternalImport::~AssemblyMDInternalImport ()
-{
- m_pMDInternalImport->Release();
-
- if (m_pBase)
- {
- UnmapViewOfFile(m_pBase);
- m_pBase = NULL;
- CloseHandle(m_pHandle);
- }
- else if(m_pHandle)
- {
- HRESULT hr;
- hr = RuntimeReleaseHandle(m_pHandle);
- _ASSERTE(SUCCEEDED(hr));
- }
-
- m_pHandle = NULL;
-}
-
-ULONG AssemblyMDInternalImport::AddRef()
-{
- return InterlockedIncrement(&m_cRef);
-} // ULONG AssemblyMDInternalImport::AddRef()
-
-ULONG AssemblyMDInternalImport::Release()
-{
- ULONG cRef = InterlockedDecrement(&m_cRef);
- if (!cRef)
- {
- VALIDATE_BACKOUT_STACK_CONSUMPTION;
- delete this;
- }
- return (cRef);
-} // ULONG AssemblyMDInternalImport::Release()
-
-HRESULT AssemblyMDInternalImport::QueryInterface(REFIID riid, void **ppUnk)
-{
- *ppUnk = 0;
-
- if (riid == IID_IUnknown)
- *ppUnk = (IUnknown *) (IMetaDataAssemblyImport *) this;
- else if (riid == IID_IMetaDataAssemblyImport)
- *ppUnk = (IMetaDataAssemblyImport *) this;
- else if (riid == IID_IMetaDataImport)
- *ppUnk = (IMetaDataImport *) this;
- else if (riid == IID_IMetaDataImport2)
- *ppUnk = (IMetaDataImport2 *) this;
- else if (riid == IID_ISNAssemblySignature)
- *ppUnk = (ISNAssemblySignature *) this;
-#ifdef FEATURE_PREJIT
- else if (riid == IID_IGetIMDInternalImport)
- *ppUnk = (IGetIMDInternalImport *) this;
- else if (riid == IID_INativeImageInstallInfo && m_pZapVersionInfo)
- *ppUnk = (INativeImageInstallInfo *) this;
-#endif // FEATURE_PREJIT
- else
- return (E_NOINTERFACE);
- AddRef();
- return (S_OK);
-}
-
-
-STDMETHODIMP AssemblyMDInternalImport::GetAssemblyProps ( // S_OK or error.
- mdAssembly mda, // [IN] The Assembly for which to get the properties.
- const void **ppbPublicKey, // [OUT] Pointer to the public key.
- ULONG *pcbPublicKey, // [OUT] Count of bytes in the public key.
- ULONG *pulHashAlgId, // [OUT] Hash Algorithm.
- __out_ecount (cchName) LPWSTR szName, // [OUT] Buffer to fill with name.
- ULONG cchName, // [IN] Size of buffer in wide chars.
- ULONG *pchName, // [OUT] Actual # of wide chars in name.
- ASSEMBLYMETADATA *pMetaData, // [OUT] Assembly MetaData.
- DWORD *pdwAssemblyFlags) // [OUT] Flags.
-{
- HRESULT hr;
- LPCSTR _szName;
- AssemblyMetaDataInternal _AssemblyMetaData;
-
- _AssemblyMetaData.ulProcessor = 0;
- _AssemblyMetaData.ulOS = 0;
-
- IfFailRet(m_pMDInternalImport->GetAssemblyProps(
- mda, // [IN] The Assembly for which to get the properties.
- ppbPublicKey, // [OUT] Pointer to the public key.
- pcbPublicKey, // [OUT] Count of bytes in the public key.
- pulHashAlgId, // [OUT] Hash Algorithm.
- &_szName, // [OUT] Buffer to fill with name.
- &_AssemblyMetaData, // [OUT] Assembly MetaData.
- pdwAssemblyFlags)); // [OUT] Flags.
-
- if (pchName != NULL)
- {
- *pchName = WszMultiByteToWideChar(CP_UTF8, 0, _szName, -1, szName, cchName);
- if (*pchName == 0)
- {
- return HRESULT_FROM_GetLastError();
- }
- }
-
- if (pMetaData)
- {
- pMetaData->usMajorVersion = _AssemblyMetaData.usMajorVersion;
- pMetaData->usMinorVersion = _AssemblyMetaData.usMinorVersion;
- pMetaData->usBuildNumber = _AssemblyMetaData.usBuildNumber;
- pMetaData->usRevisionNumber = _AssemblyMetaData.usRevisionNumber;
- pMetaData->ulProcessor = 0;
- pMetaData->ulOS = 0;
-
- pMetaData->cbLocale = WszMultiByteToWideChar(CP_UTF8, 0, _AssemblyMetaData.szLocale, -1, pMetaData->szLocale, pMetaData->cbLocale);
- if (pMetaData->cbLocale == 0)
- {
- return HRESULT_FROM_GetLastError();
- }
- }
-
- return S_OK;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetAssemblyRefProps ( // S_OK or error.
- mdAssemblyRef mdar, // [IN] The AssemblyRef for which to get the properties.
- const void **ppbPublicKeyOrToken, // [OUT] Pointer to the public key or token.
- ULONG *pcbPublicKeyOrToken, // [OUT] Count of bytes in the public key or token.
- __out_ecount (cchName) LPWSTR szName, // [OUT] Buffer to fill with name.
- ULONG cchName, // [IN] Size of buffer in wide chars.
- ULONG *pchName, // [OUT] Actual # of wide chars in name.
- ASSEMBLYMETADATA *pMetaData, // [OUT] Assembly MetaData.
- const void **ppbHashValue, // [OUT] Hash blob.
- ULONG *pcbHashValue, // [OUT] Count of bytes in the hash blob.
- DWORD *pdwAssemblyRefFlags) // [OUT] Flags.
-{
- HRESULT hr;
- LPCSTR _szName;
- AssemblyMetaDataInternal _AssemblyMetaData;
-
- _AssemblyMetaData.ulProcessor = 0;
- _AssemblyMetaData.ulOS = 0;
-
- IfFailRet(m_pMDInternalImport->GetAssemblyRefProps(
- mdar, // [IN] The Assembly for which to get the properties.
- ppbPublicKeyOrToken, // [OUT] Pointer to the public key or token.
- pcbPublicKeyOrToken, // [OUT] Count of bytes in the public key or token.
- &_szName, // [OUT] Buffer to fill with name.
- &_AssemblyMetaData, // [OUT] Assembly MetaData.
- ppbHashValue, // [OUT] Hash blob.
- pcbHashValue, // [OUT] Count of bytes in the hash blob.
- pdwAssemblyRefFlags)); // [OUT] Flags.
-
- if (pchName != NULL)
- {
- *pchName = WszMultiByteToWideChar(CP_UTF8, 0, _szName, -1, szName, cchName);
- if (*pchName == 0)
- {
- return HRESULT_FROM_GetLastError();
- }
- }
-
- pMetaData->usMajorVersion = _AssemblyMetaData.usMajorVersion;
- pMetaData->usMinorVersion = _AssemblyMetaData.usMinorVersion;
- pMetaData->usBuildNumber = _AssemblyMetaData.usBuildNumber;
- pMetaData->usRevisionNumber = _AssemblyMetaData.usRevisionNumber;
- pMetaData->ulProcessor = 0;
- pMetaData->ulOS = 0;
-
- pMetaData->cbLocale = WszMultiByteToWideChar(CP_UTF8, 0, _AssemblyMetaData.szLocale, -1, pMetaData->szLocale, pMetaData->cbLocale);
- if (pMetaData->cbLocale == 0)
- {
- return HRESULT_FROM_GetLastError();
- }
-
- return S_OK;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetFileProps ( // S_OK or error.
- mdFile mdf, // [IN] The File for which to get the properties.
- __out_ecount (cchName) LPWSTR szName, // [OUT] Buffer to fill with name.
- ULONG cchName, // [IN] Size of buffer in wide chars.
- ULONG *pchName, // [OUT] Actual # of wide chars in name.
- const void **ppbHashValue, // [OUT] Pointer to the Hash Value Blob.
- ULONG *pcbHashValue, // [OUT] Count of bytes in the Hash Value Blob.
- DWORD *pdwFileFlags) // [OUT] Flags.
-{
- HRESULT hr;
- LPCSTR _szName;
- IfFailRet(m_pMDInternalImport->GetFileProps(
- mdf,
- &_szName,
- ppbHashValue,
- pcbHashValue,
- pdwFileFlags));
-
- if (pchName != NULL)
- {
- *pchName = WszMultiByteToWideChar(CP_UTF8, 0, _szName, -1, szName, cchName);
- if (*pchName == 0)
- {
- return HRESULT_FROM_GetLastError();
- }
- }
-
- return S_OK;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetExportedTypeProps ( // S_OK or error.
- mdExportedType mdct, // [IN] The ExportedType for which to get the properties.
- __out_ecount (cchName) LPWSTR szName, // [OUT] Buffer to fill with name.
- ULONG cchName, // [IN] Size of buffer in wide chars.
- ULONG *pchName, // [OUT] Actual # of wide chars in name.
- mdToken *ptkImplementation, // [OUT] mdFile or mdAssemblyRef or mdExportedType.
- mdTypeDef *ptkTypeDef, // [OUT] TypeDef token within the file.
- DWORD *pdwExportedTypeFlags) // [OUT] Flags.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetManifestResourceProps ( // S_OK or error.
- mdManifestResource mdmr, // [IN] The ManifestResource for which to get the properties.
- __out_ecount (cchName) LPWSTR szName, // [OUT] Buffer to fill with name.
- ULONG cchName, // [IN] Size of buffer in wide chars.
- ULONG *pchName, // [OUT] Actual # of wide chars in name.
- mdToken *ptkImplementation, // [OUT] mdFile or mdAssemblyRef that provides the ManifestResource.
- DWORD *pdwOffset, // [OUT] Offset to the beginning of the resource within the file.
- DWORD *pdwResourceFlags) // [OUT] Flags.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumAssemblyRefs ( // S_OK or error
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdAssemblyRef rAssemblyRefs[], // [OUT] Put AssemblyRefs here.
- ULONG cMax, // [IN] Max AssemblyRefs to put.
- ULONG *pcTokens) // [OUT] Put # put here.
-{
- HENUMInternal **ppmdEnum = reinterpret_cast<HENUMInternal **> (phEnum);
- HRESULT hr = NOERROR;
- HENUMInternal *pEnum;
-
- if (*ppmdEnum == NULL)
- {
- // create the enumerator.
- IfFailGo(HENUMInternal::CreateSimpleEnum(
- mdtAssemblyRef,
- 0,
- 1,
- &pEnum));
-
- IfFailGo(m_pMDInternalImport->EnumInit(mdtAssemblyRef, 0, pEnum));
-
- // set the output parameter.
- *ppmdEnum = pEnum;
- }
- else
- {
- pEnum = *ppmdEnum;
- }
-
- // we can only fill the minimum of what the caller asked for or what we have left.
- IfFailGo(HENUMInternal::EnumWithCount(pEnum, cMax, rAssemblyRefs, pcTokens));
-ErrExit:
- HENUMInternal::DestroyEnumIfEmpty(ppmdEnum);
-
- return hr;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumFiles ( // S_OK or error
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdFile rFiles[], // [OUT] Put Files here.
- ULONG cMax, // [IN] Max Files to put.
- ULONG *pcTokens) // [OUT] Put # put here.
-{
- HENUMInternal **ppmdEnum = reinterpret_cast<HENUMInternal **> (phEnum);
- HRESULT hr = NOERROR;
- HENUMInternal *pEnum;
-
- if (*ppmdEnum == NULL)
- {
- // create the enumerator.
- IfFailGo(HENUMInternal::CreateSimpleEnum(
- mdtFile,
- 0,
- 1,
- &pEnum));
-
- IfFailGo(m_pMDInternalImport->EnumInit(mdtFile, 0, pEnum));
-
- // set the output parameter.
- *ppmdEnum = pEnum;
- }
- else
- {
- pEnum = *ppmdEnum;
- }
-
- // we can only fill the minimum of what the caller asked for or what we have left.
- IfFailGo(HENUMInternal::EnumWithCount(pEnum, cMax, rFiles, pcTokens));
-
-ErrExit:
- HENUMInternal::DestroyEnumIfEmpty(ppmdEnum);
- return hr;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumExportedTypes ( // S_OK or error
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdExportedType rExportedTypes[], // [OUT] Put ExportedTypes here.
- ULONG cMax, // [IN] Max ExportedTypes to put.
- ULONG *pcTokens) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumManifestResources ( // S_OK or error
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdManifestResource rManifestResources[], // [OUT] Put ManifestResources here.
- ULONG cMax, // [IN] Max Resources to put.
- ULONG *pcTokens) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetAssemblyFromScope ( // S_OK or error
- mdAssembly *ptkAssembly) // [OUT] Put token here.
-{
- return m_pMDInternalImport->GetAssemblyFromScope (ptkAssembly);
-}
-
-STDMETHODIMP AssemblyMDInternalImport::FindExportedTypeByName (// S_OK or error
- LPCWSTR szName, // [IN] Name of the ExportedType.
- mdToken mdtExportedType, // [IN] ExportedType for the enclosing class.
- mdExportedType *ptkExportedType) // [OUT] Put the ExportedType token here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::FindManifestResourceByName ( // S_OK or error
- LPCWSTR szName, // [IN] Name of the ManifestResource.
- mdManifestResource *ptkManifestResource) // [OUT] Put the ManifestResource token here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-void AssemblyMDInternalImport::CloseEnum (
- HCORENUM hEnum) // Enum to be closed.
-{
- HENUMInternal *pmdEnum = reinterpret_cast<HENUMInternal *> (hEnum);
-
- if (pmdEnum == NULL)
- return;
-
- HENUMInternal::DestroyEnum(pmdEnum);
-}
-
-STDMETHODIMP AssemblyMDInternalImport::FindAssembliesByName ( // S_OK or error
- LPCWSTR szAppBase, // [IN] optional - can be NULL
- LPCWSTR szPrivateBin, // [IN] optional - can be NULL
- LPCWSTR szAssemblyName, // [IN] required - this is the assembly you are requesting
- IUnknown *ppIUnk[], // [OUT] put IMetaDataAssemblyImport pointers here
- ULONG cMax, // [IN] The max number to put
- ULONG *pcAssemblies) // [OUT] The number of assemblies returned.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::CountEnum (HCORENUM hEnum, ULONG *pulCount)
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::ResetEnum (HCORENUM hEnum, ULONG ulPos)
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumTypeDefs (HCORENUM *phEnum, mdTypeDef rTypeDefs[],
- ULONG cMax, ULONG *pcTypeDefs)
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumInterfaceImpls (HCORENUM *phEnum, mdTypeDef td,
- mdInterfaceImpl rImpls[], ULONG cMax,
- ULONG* pcImpls)
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumTypeRefs (HCORENUM *phEnum, mdTypeRef rTypeRefs[],
- ULONG cMax, ULONG* pcTypeRefs)
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::FindTypeDefByName ( // S_OK or error.
- LPCWSTR szTypeDef, // [IN] Name of the Type.
- mdToken tkEnclosingClass, // [IN] TypeDef/TypeRef for Enclosing class.
- mdTypeDef *ptd) // [OUT] Put the TypeDef token here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetScopeProps ( // S_OK or error.
- __out_ecount (cchName) LPWSTR szName, // [OUT] Put the name here.
- ULONG cchName, // [IN] Size of name buffer in wide chars.
- ULONG *pchName, // [OUT] Put size of name (wide chars) here.
- GUID *pmvid) // [OUT, OPTIONAL] Put MVID here.
-{
- HRESULT hr;
- LPCSTR _szName;
-
- if (!m_pMDInternalImport->IsValidToken(m_pMDInternalImport->GetModuleFromScope()))
- return COR_E_BADIMAGEFORMAT;
-
- IfFailRet(m_pMDInternalImport->GetScopeProps(&_szName, pmvid));
-
- if (pchName != NULL)
- {
- *pchName = WszMultiByteToWideChar(CP_UTF8, 0, _szName, -1, szName, cchName);
- if (*pchName == 0)
- {
- return HRESULT_FROM_GetLastError();
- }
- }
-
- return S_OK;
-
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetModuleFromScope ( // S_OK.
- mdModule *pmd) // [OUT] Put mdModule token here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetTypeDefProps ( // S_OK or error.
- mdTypeDef td, // [IN] TypeDef token for inquiry.
- __out_ecount (cchTypeDef) LPWSTR szTypeDef, // [OUT] Put name here.
- ULONG cchTypeDef, // [IN] size of name buffer in wide chars.
- ULONG *pchTypeDef, // [OUT] put size of name (wide chars) here.
- DWORD *pdwTypeDefFlags, // [OUT] Put flags here.
- mdToken *ptkExtends) // [OUT] Put base class TypeDef/TypeRef here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetInterfaceImplProps ( // S_OK or error.
- mdInterfaceImpl iiImpl, // [IN] InterfaceImpl token.
- mdTypeDef *pClass, // [OUT] Put implementing class token here.
- mdToken *ptkIface) // [OUT] Put implemented interface token here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetTypeRefProps ( // S_OK or error.
- mdTypeRef tr, // [IN] TypeRef token.
- mdToken *ptkResolutionScope, // [OUT] Resolution scope, ModuleRef or AssemblyRef.
- __out_ecount (cchName) LPWSTR szName, // [OUT] Name of the TypeRef.
- ULONG cchName, // [IN] Size of buffer.
- ULONG *pchName) // [OUT] Size of Name.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::ResolveTypeRef (mdTypeRef tr, REFIID riid, IUnknown **ppIScope, mdTypeDef *ptd)
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumMembers ( // S_OK, S_FALSE, or error.
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- mdToken rMembers[], // [OUT] Put MemberDefs here.
- ULONG cMax, // [IN] Max MemberDefs to put.
- ULONG *pcTokens) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumMembersWithName ( // S_OK, S_FALSE, or error.
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- LPCWSTR szName, // [IN] Limit results to those with this name.
- mdToken rMembers[], // [OUT] Put MemberDefs here.
- ULONG cMax, // [IN] Max MemberDefs to put.
- ULONG *pcTokens) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumMethods ( // S_OK, S_FALSE, or error.
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- mdMethodDef rMethods[], // [OUT] Put MethodDefs here.
- ULONG cMax, // [IN] Max MethodDefs to put.
- ULONG *pcTokens) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumMethodsWithName ( // S_OK, S_FALSE, or error.
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- LPCWSTR szName, // [IN] Limit results to those with this name.
- mdMethodDef rMethods[], // [OU] Put MethodDefs here.
- ULONG cMax, // [IN] Max MethodDefs to put.
- ULONG *pcTokens) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumFields ( // S_OK, S_FALSE, or error.
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- mdFieldDef rFields[], // [OUT] Put FieldDefs here.
- ULONG cMax, // [IN] Max FieldDefs to put.
- ULONG *pcTokens) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumFieldsWithName ( // S_OK, S_FALSE, or error.
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- LPCWSTR szName, // [IN] Limit results to those with this name.
- mdFieldDef rFields[], // [OUT] Put MemberDefs here.
- ULONG cMax, // [IN] Max MemberDefs to put.
- ULONG *pcTokens) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-
-STDMETHODIMP AssemblyMDInternalImport::EnumParams ( // S_OK, S_FALSE, or error.
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdMethodDef mb, // [IN] MethodDef to scope the enumeration.
- mdParamDef rParams[], // [OUT] Put ParamDefs here.
- ULONG cMax, // [IN] Max ParamDefs to put.
- ULONG *pcTokens) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumMemberRefs ( // S_OK, S_FALSE, or error.
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdToken tkParent, // [IN] Parent token to scope the enumeration.
- mdMemberRef rMemberRefs[], // [OUT] Put MemberRefs here.
- ULONG cMax, // [IN] Max MemberRefs to put.
- ULONG *pcTokens) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumMethodImpls ( // S_OK, S_FALSE, or error
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdTypeDef td, // [IN] TypeDef to scope the enumeration.
- mdToken rMethodBody[], // [OUT] Put Method Body tokens here.
- mdToken rMethodDecl[], // [OUT] Put Method Declaration tokens here.
- ULONG cMax, // [IN] Max tokens to put.
- ULONG *pcTokens) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumPermissionSets ( // S_OK, S_FALSE, or error.
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdToken tk, // [IN] if !NIL, token to scope the enumeration.
- DWORD dwActions, // [IN] if !0, return only these actions.
- mdPermission rPermission[], // [OUT] Put Permissions here.
- ULONG cMax, // [IN] Max Permissions to put.
- ULONG *pcTokens) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::FindMember (
- mdTypeDef td, // [IN] given typedef
- LPCWSTR szName, // [IN] member name
- PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of COM+ signature
- ULONG cbSigBlob, // [IN] count of bytes in the signature blob
- mdToken *pmb) // [OUT] matching memberdef
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::FindMethod (
- mdTypeDef td, // [IN] given typedef
- LPCWSTR szName, // [IN] member name
- PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of COM+ signature
- ULONG cbSigBlob, // [IN] count of bytes in the signature blob
- mdMethodDef *pmb) // [OUT] matching memberdef
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::FindField (
- mdTypeDef td, // [IN] given typedef
- LPCWSTR szName, // [IN] member name
- PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of COM+ signature
- ULONG cbSigBlob, // [IN] count of bytes in the signature blob
- mdFieldDef *pmb) // [OUT] matching memberdef
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::FindMemberRef (
- mdTypeRef td, // [IN] given typeRef
- LPCWSTR szName, // [IN] member name
- PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of COM+ signature
- ULONG cbSigBlob, // [IN] count of bytes in the signature blob
- mdMemberRef *pmr) // [OUT] matching memberref
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetMethodProps (
- mdMethodDef mb, // The method for which to get props.
- mdTypeDef *pClass, // Put method's class here.
- __out_ecount (cchMethod) LPWSTR szMethod, // Put method's name here.
- ULONG cchMethod, // Size of szMethod buffer in wide chars.
- ULONG *pchMethod, // Put actual size here
- DWORD *pdwAttr, // Put flags here.
- PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
- ULONG *pcbSigBlob, // [OUT] actual size of signature blob
- ULONG *pulCodeRVA, // [OUT] codeRVA
- DWORD *pdwImplFlags) // [OUT] Impl. Flags
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetMemberRefProps ( // S_OK or error.
- mdMemberRef mr, // [IN] given memberref
- mdToken *ptk, // [OUT] Put classref or classdef here.
- __out_ecount (cchMember) LPWSTR szMember, // [OUT] buffer to fill for member's name
- ULONG cchMember, // [IN] the count of char of szMember
- ULONG *pchMember, // [OUT] actual count of char in member name
- PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to meta data blob value
- ULONG *pbSig) // [OUT] actual size of signature blob
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumProperties ( // S_OK, S_FALSE, or error.
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdTypeDef td, // [IN] TypeDef to scope the enumeration.
- mdProperty rProperties[], // [OUT] Put Properties here.
- ULONG cMax, // [IN] Max properties to put.
- ULONG *pcProperties) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumEvents ( // S_OK, S_FALSE, or error.
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdTypeDef td, // [IN] TypeDef to scope the enumeration.
- mdEvent rEvents[], // [OUT] Put events here.
- ULONG cMax, // [IN] Max events to put.
- ULONG *pcEvents) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetEventProps ( // S_OK, S_FALSE, or error.
- mdEvent ev, // [IN] event token
- mdTypeDef *pClass, // [OUT] typedef containing the event declarion.
- LPCWSTR szEvent, // [OUT] Event name
- ULONG cchEvent, // [IN] the count of wchar of szEvent
- ULONG *pchEvent, // [OUT] actual count of wchar for event's name
- DWORD *pdwEventFlags, // [OUT] Event flags.
- mdToken *ptkEventType, // [OUT] EventType class
- mdMethodDef *pmdAddOn, // [OUT] AddOn method of the event
- mdMethodDef *pmdRemoveOn, // [OUT] RemoveOn method of the event
- mdMethodDef *pmdFire, // [OUT] Fire method of the event
- mdMethodDef rmdOtherMethod[], // [OUT] other method of the event
- ULONG cMax, // [IN] size of rmdOtherMethod
- ULONG *pcOtherMethod) // [OUT] total number of other method of this event
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumMethodSemantics ( // S_OK, S_FALSE, or error.
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdMethodDef mb, // [IN] MethodDef to scope the enumeration.
- mdToken rEventProp[], // [OUT] Put Event/Property here.
- ULONG cMax, // [IN] Max properties to put.
- ULONG *pcEventProp) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetMethodSemantics ( // S_OK, S_FALSE, or error.
- mdMethodDef mb, // [IN] method token
- mdToken tkEventProp, // [IN] event/property token.
- DWORD *pdwSemanticsFlags) // [OUT] the role flags for the method/propevent pair
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetClassLayout (
- mdTypeDef td, // [IN] give typedef
- DWORD *pdwPackSize, // [OUT] 1, 2, 4, 8, or 16
- COR_FIELD_OFFSET rFieldOffset[], // [OUT] field offset array
- ULONG cMax, // [IN] size of the array
- ULONG *pcFieldOffset, // [OUT] needed array size
- ULONG *pulClassSize) // [OUT] the size of the class
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetFieldMarshal (
- mdToken tk, // [IN] given a field's memberdef
- PCCOR_SIGNATURE *ppvNativeType, // [OUT] native type of this field
- ULONG *pcbNativeType) // [OUT] the count of bytes of *ppvNativeType
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetRVA ( // S_OK or error.
- mdToken tk, // Member for which to set offset
- ULONG *pulCodeRVA, // The offset
- DWORD *pdwImplFlags) // the implementation flags
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetPermissionSetProps (
- mdPermission pm, // [IN] the permission token.
- DWORD *pdwAction, // [OUT] CorDeclSecurity.
- void const **ppvPermission, // [OUT] permission blob.
- ULONG *pcbPermission) // [OUT] count of bytes of pvPermission.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetSigFromToken ( // S_OK or error.
- mdSignature mdSig, // [IN] Signature token.
- PCCOR_SIGNATURE *ppvSig, // [OUT] return pointer to token.
- ULONG *pcbSig) // [OUT] return size of signature.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetModuleRefProps ( // S_OK or error.
- mdModuleRef mur, // [IN] moduleref token.
- __out_ecount (cchName) LPWSTR szName, // [OUT] buffer to fill with the moduleref name.
- ULONG cchName, // [IN] size of szName in wide characters.
- ULONG *pchName) // [OUT] actual count of characters in the name.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumModuleRefs ( // S_OK or error.
- HCORENUM *phEnum, // [IN|OUT] pointer to the enum.
- mdModuleRef rModuleRefs[], // [OUT] put modulerefs here.
- ULONG cmax, // [IN] max memberrefs to put.
- ULONG *pcModuleRefs) // [OUT] put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetTypeSpecFromToken ( // S_OK or error.
- mdTypeSpec typespec, // [IN] TypeSpec token.
- PCCOR_SIGNATURE *ppvSig, // [OUT] return pointer to TypeSpec signature
- ULONG *pcbSig) // [OUT] return size of signature.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetNameFromToken ( // Not Recommended! May be removed!
- mdToken tk, // [IN] Token to get name from. Must have a name.
- MDUTF8CSTR *pszUtf8NamePtr) // [OUT] Return pointer to UTF8 name in heap.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumUnresolvedMethods ( // S_OK, S_FALSE, or error.
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdToken rMethods[], // [OUT] Put MemberDefs here.
- ULONG cMax, // [IN] Max MemberDefs to put.
- ULONG *pcTokens) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetUserString ( // S_OK or error.
- mdString stk, // [IN] String token.
- __out_ecount (cchString) LPWSTR szString, // [OUT] Copy of string.
- ULONG cchString, // [IN] Max chars of room in szString.
- ULONG *pchString) // [OUT] How many chars in actual string.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetPinvokeMap ( // S_OK or error.
- mdToken tk, // [IN] FieldDef or MethodDef.
- DWORD *pdwMappingFlags, // [OUT] Flags used for mapping.
- __out_ecount (cchImportName) LPWSTR szImportName, // [OUT] Import name.
- ULONG cchImportName, // [IN] Size of the name buffer.
- ULONG *pchImportName, // [OUT] Actual number of characters stored.
- mdModuleRef *pmrImportDLL) // [OUT] ModuleRef token for the target DLL.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumSignatures ( // S_OK or error.
- HCORENUM *phEnum, // [IN|OUT] pointer to the enum.
- mdSignature rSignatures[], // [OUT] put signatures here.
- ULONG cmax, // [IN] max signatures to put.
- ULONG *pcSignatures) // [OUT] put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumTypeSpecs ( // S_OK or error.
- HCORENUM *phEnum, // [IN|OUT] pointer to the enum.
- mdTypeSpec rTypeSpecs[], // [OUT] put TypeSpecs here.
- ULONG cmax, // [IN] max TypeSpecs to put.
- ULONG *pcTypeSpecs) // [OUT] put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumUserStrings ( // S_OK or error.
- HCORENUM *phEnum, // [IN/OUT] pointer to the enum.
- mdString rStrings[], // [OUT] put Strings here.
- ULONG cmax, // [IN] max Strings to put.
- ULONG *pcStrings) // [OUT] put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetParamForMethodIndex ( // S_OK or error.
- mdMethodDef md, // [IN] Method token.
- ULONG ulParamSeq, // [IN] Parameter sequence.
- mdParamDef *ppd) // [IN] Put Param token here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumCustomAttributes ( // S_OK or error.
- HCORENUM *phEnum, // [IN, OUT] COR enumerator.
- mdToken tk, // [IN] Token to scope the enumeration, 0 for all.
- mdToken tkType, // [IN] Type of interest, 0 for all.
- mdCustomAttribute rCustomAttributes[], // [OUT] Put custom attribute tokens here.
- ULONG cMax, // [IN] Size of rCustomAttributes.
- ULONG *pcCustomAttributes) // [OUT, OPTIONAL] Put count of token values here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetCustomAttributeProps ( // S_OK or error.
- mdCustomAttribute cv, // [IN] CustomAttribute token.
- mdToken *ptkObj, // [OUT, OPTIONAL] Put object token here.
- mdToken *ptkType, // [OUT, OPTIONAL] Put AttrType token here.
- void const **ppBlob, // [OUT, OPTIONAL] Put pointer to data here.
- ULONG *pcbSize) // [OUT, OPTIONAL] Put size of date here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::FindTypeRef (
- mdToken tkResolutionScope, // [IN] ModuleRef, AssemblyRef or TypeRef.
- LPCWSTR szName, // [IN] TypeRef Name.
- mdTypeRef *ptr) // [OUT] matching TypeRef.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetMemberProps (
- mdToken mb, // The member for which to get props.
- mdTypeDef *pClass, // Put member's class here.
- __out_ecount (cchMember) LPWSTR szMember, // Put member's name here.
- ULONG cchMember, // Size of szMember buffer in wide chars.
- ULONG *pchMember, // Put actual size here
- DWORD *pdwAttr, // Put flags here.
- PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
- ULONG *pcbSigBlob, // [OUT] actual size of signature blob
- ULONG *pulCodeRVA, // [OUT] codeRVA
- DWORD *pdwImplFlags, // [OUT] Impl. Flags
- DWORD *pdwCPlusTypeFlag, // [OUT] flag for value type. selected ELEMENT_TYPE_*
- UVCP_CONSTANT *ppValue, // [OUT] constant value
- ULONG *pcchValue) // [OUT] size of constant string in chars, 0 for non-strings.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetFieldProps (
- mdFieldDef mb, // The field for which to get props.
- mdTypeDef *pClass, // Put field's class here.
- __out_ecount (cchField) LPWSTR szField, // Put field's name here.
- ULONG cchField, // Size of szField buffer in wide chars.
- ULONG *pchField, // Put actual size here
- DWORD *pdwAttr, // Put flags here.
- PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
- ULONG *pcbSigBlob, // [OUT] actual size of signature blob
- DWORD *pdwCPlusTypeFlag, // [OUT] flag for value type. selected ELEMENT_TYPE_*
- UVCP_CONSTANT *ppValue, // [OUT] constant value
- ULONG *pcchValue) // [OUT] size of constant string in chars, 0 for non-strings.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetPropertyProps ( // S_OK, S_FALSE, or error.
- mdProperty prop, // [IN] property token
- mdTypeDef *pClass, // [OUT] typedef containing the property declarion.
- LPCWSTR szProperty, // [OUT] Property name
- ULONG cchProperty, // [IN] the count of wchar of szProperty
- ULONG *pchProperty, // [OUT] actual count of wchar for property name
- DWORD *pdwPropFlags, // [OUT] property flags.
- PCCOR_SIGNATURE *ppvSig, // [OUT] property type. pointing to meta data internal blob
- ULONG *pbSig, // [OUT] count of bytes in *ppvSig
- DWORD *pdwCPlusTypeFlag, // [OUT] flag for value type. selected ELEMENT_TYPE_*
- UVCP_CONSTANT *ppDefaultValue, // [OUT] constant value
- ULONG *pcchDefaultValue, // [OUT] size of constant string in chars, 0 for non-strings.
- mdMethodDef *pmdSetter, // [OUT] setter method of the property
- mdMethodDef *pmdGetter, // [OUT] getter method of the property
- mdMethodDef rmdOtherMethod[], // [OUT] other method of the property
- ULONG cMax, // [IN] size of rmdOtherMethod
- ULONG *pcOtherMethod) // [OUT] total number of other method of this property
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetParamProps ( // S_OK or error.
- mdParamDef tk, // [IN]The Parameter.
- mdMethodDef *pmd, // [OUT] Parent Method token.
- ULONG *pulSequence, // [OUT] Parameter sequence.
- __out_ecount (cchName) LPWSTR szName, // [OUT] Put name here.
- ULONG cchName, // [OUT] Size of name buffer.
- ULONG *pchName, // [OUT] Put actual size of name here.
- DWORD *pdwAttr, // [OUT] Put flags here.
- DWORD *pdwCPlusTypeFlag, // [OUT] Flag for value type. selected ELEMENT_TYPE_*.
- UVCP_CONSTANT *ppValue, // [OUT] Constant value.
- ULONG *pcchValue) // [OUT] size of constant string in chars, 0 for non-strings.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetCustomAttributeByName ( // S_OK or error.
- mdToken tkObj, // [IN] Object with Custom Attribute.
- LPCWSTR szName, // [IN] Name of desired Custom Attribute.
- const void **ppData, // [OUT] Put pointer to data here.
- ULONG *pcbData) // [OUT] Put size of data here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-BOOL AssemblyMDInternalImport::IsValidToken ( // True or False.
- mdToken tk) // [IN] Given token.
-{
- _ASSERTE(!"NYI");
- return FALSE;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetNestedClassProps ( // S_OK or error.
- mdTypeDef tdNestedClass, // [IN] NestedClass token.
- mdTypeDef *ptdEnclosingClass) // [OUT] EnclosingClass token.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetNativeCallConvFromSig ( // S_OK or error.
- void const *pvSig, // [IN] Pointer to signature.
- ULONG cbSig, // [IN] Count of signature bytes.
- ULONG *pCallConv) // [OUT] Put calling conv here (see CorPinvokemap).
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::IsGlobal ( // S_OK or error.
- mdToken pd, // [IN] Type, Field, or Method token.
- int *pbGlobal) // [OUT] Put 1 if global, 0 otherwise.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetMethodSpecProps(
- mdMethodSpec mi, // [IN] The method instantiation
- mdToken *tkParent, // [OUT] MethodDef or MemberRef
- PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
- ULONG *pcbSigBlob) // [OUT] actual size of signature blob
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-// *** ISNAssemblySignature methods ***
-
-STDMETHODIMP AssemblyMDInternalImport::GetSNAssemblySignature(
- BYTE *pbSig, // [IN, OUT] Buffer to write signature
- DWORD *pcbSig) // [IN, OUT] Size of buffer, bytes written
-{
- return RuntimeGetAssemblyStrongNameHashForModule(m_pHandle, this, pbSig, pcbSig);
-}
-
-
-#include "strongname.h"
-
-#ifdef FEATURE_PREJIT
-// *** IGetIMDInternalImport ***
-STDMETHODIMP AssemblyMDInternalImport::GetIMDInternalImport(
- IMDInternalImport ** pIMDInternalImport)
-{
- m_pMDInternalImport->AddRef();
- *pIMDInternalImport = m_pMDInternalImport;
- return S_OK;
-}
-
-
-
-// ===========================================================================
-
-class CNativeImageDependency : public INativeImageDependency
-{
-public:
- CNativeImageDependency(CORCOMPILE_DEPENDENCY * pDependency)
- : m_cRef(1), m_pDependency(pDependency)
- {
- }
-
- ~CNativeImageDependency()
- {
- }
-
- //
- // IUnknown
- //
-
- STDMETHODIMP_(ULONG) AddRef()
- {
- return InterlockedIncrement(&m_cRef);
- }
-
- STDMETHODIMP_(ULONG) Release()
- {
- ULONG cRef = InterlockedDecrement(&m_cRef);
- if (!cRef)
- delete this;
- return (cRef);
- }
-
- STDMETHODIMP QueryInterface(REFIID riid, void **ppUnk)
- {
- *ppUnk = 0;
-
- if (riid == IID_IUnknown)
- *ppUnk = (IUnknown *) (IMetaDataAssemblyImport *) this;
- else if (riid == IID_INativeImageDependency)
- *ppUnk = (INativeImageDependency *) this;
- else
- return (E_NOINTERFACE);
- AddRef();
- return (S_OK);
- }
-
- //
- // INativeImageDependency
- //
-
- STDMETHODIMP GetILAssemblyRef(mdAssemblyRef * pAssemblyRef)
- {
- BEGIN_ENTRYPOINT_NOTHROW;
-
- *pAssemblyRef = m_pDependency->dwAssemblyRef;
- END_ENTRYPOINT_NOTHROW;
-
- return S_OK;
- }
-
- STDMETHODIMP GetILAssemblyDef(
- mdAssemblyRef * ppAssemblyDef,
- CORCOMPILE_ASSEMBLY_SIGNATURE * pSign)
- {
- BEGIN_ENTRYPOINT_NOTHROW;
-
- *ppAssemblyDef = m_pDependency->dwAssemblyDef;
- *pSign = m_pDependency->signAssemblyDef;
- END_ENTRYPOINT_NOTHROW;
-
- return S_OK;
- }
-
- STDMETHODIMP GetNativeAssemblyDef(CORCOMPILE_NGEN_SIGNATURE * pNativeSign)
- {
- BEGIN_ENTRYPOINT_NOTHROW;
-
- *pNativeSign = m_pDependency->signNativeImage;
- END_ENTRYPOINT_NOTHROW;
-
- return S_OK;
- }
-
- STDMETHODIMP GetPEKind(PEKIND *pPEKind)
- {
- BEGIN_ENTRYPOINT_NOTHROW;
-
- *pPEKind = PEKIND((m_pDependency->dependencyInfo & CORCOMPILE_DEPENDENCY_PEKIND_MASK) >> CORCOMPILE_DEPENDENCY_PEKIND_SHIFT);
- END_ENTRYPOINT_NOTHROW;
-
- return S_OK;
- }
-
-protected:
-
- LONG m_cRef;
- CORCOMPILE_DEPENDENCY * m_pDependency;
-};
-
-// ===========================================================================
-// *** INativeImageInstallInfo ***
-// ===========================================================================
-
-STDMETHODIMP AssemblyMDInternalImport::GetSignature(CORCOMPILE_NGEN_SIGNATURE * pNgenSign)
-{
- BEGIN_ENTRYPOINT_NOTHROW;
-
- *pNgenSign = m_pZapVersionInfo->signature;
- END_ENTRYPOINT_NOTHROW;
-
- return S_OK;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetVersionInfo(CORCOMPILE_VERSION_INFO * pVersionInfo)
-{
- BEGIN_ENTRYPOINT_NOTHROW;
-
- *pVersionInfo = *m_pZapVersionInfo;
- END_ENTRYPOINT_NOTHROW;
- return S_OK;
-}
-
-
-
-STDMETHODIMP AssemblyMDInternalImport::GetILSignature(CORCOMPILE_ASSEMBLY_SIGNATURE * pILSign)
-{
- BEGIN_ENTRYPOINT_NOTHROW;
-
- *pILSign = m_pZapVersionInfo->sourceAssembly;
- END_ENTRYPOINT_NOTHROW;
- return S_OK;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetConfigMask(DWORD * pConfigMask)
-{
- BEGIN_ENTRYPOINT_NOTHROW;
-
- *pConfigMask = m_pZapVersionInfo->wConfigFlags;
- END_ENTRYPOINT_NOTHROW;
-
- return S_OK;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumDependencies (
- HCORENUM * phEnum, // [IN/OUT] - Pointer to the enum
- INativeImageDependency *rDeps[], // [OUT]
- ULONG cMax, // Max dependancies to enumerate in this iteration
- DWORD * pdwCount // [OUT] - Number of dependancies actually enumerated
- )
-{
- HRESULT hr = S_OK;
-
- BEGIN_ENTRYPOINT_NOTHROW;
-
- CORCOMPILE_DEPENDENCY * pDependenciesEnd = m_pZapDependencies + m_cZapDependencies;
-
- CORCOMPILE_DEPENDENCY * pNextDependency;
-
- // Is the enum just being initialized, or are we walking an existing one?
- if ((*phEnum) == NULL)
- pNextDependency = m_pZapDependencies;
- else
- pNextDependency = (CORCOMPILE_DEPENDENCY *)(*phEnum);
-
- DWORD count;
- for (count = 0;
- pNextDependency < pDependenciesEnd && count < cMax;
- count++, pNextDependency++)
- {
- CNativeImageDependency * pDep = new (nothrow) CNativeImageDependency(pNextDependency);
- IfNullGo( pDep );
-
- rDeps[count] = pDep;
- }
-
- *phEnum = (HCORENUM)(pNextDependency < pDependenciesEnd) ? pNextDependency : NULL;
- *pdwCount = count;
-
-ErrExit:
- END_ENTRYPOINT_NOTHROW;
-
- return hr;
-}
-
-
-STDMETHODIMP AssemblyMDInternalImport::GetDependency (
- const CORCOMPILE_NGEN_SIGNATURE *pcngenSign, // [IN] ngenSig of dependency you want
- CORCOMPILE_DEPENDENCY *pDep // [OUT] matching dependency
- )
-{
- HRESULT hr = S_OK;
-
- BEGIN_ENTRYPOINT_NOTHROW;
-
- _ASSERTE(pcngenSign != NULL);
- _ASSERTE(*pcngenSign != INVALID_NGEN_SIGNATURE);
- _ASSERTE(pDep != NULL);
-
- CORCOMPILE_DEPENDENCY * pDependenciesEnd = m_pZapDependencies + m_cZapDependencies;
- CORCOMPILE_DEPENDENCY * pNextDependency = m_pZapDependencies;
- while (pNextDependency != pDependenciesEnd)
- {
- if (pNextDependency->signNativeImage == *pcngenSign)
- {
- *pDep = *pNextDependency;
- hr = S_OK;
- goto ErrExit;
- }
- pNextDependency++;
- }
- hr = S_FALSE;
-
-ErrExit:
- END_ENTRYPOINT_NOTHROW;
-
- return hr;
-}
-
-
-#endif // FEATURE_PREJIT
-
-
-//*****************************************************************************
-// IMetaDataImport2 methods
-//*****************************************************************************
-STDMETHODIMP AssemblyMDInternalImport::GetGenericParamProps( // S_OK or error.
- mdGenericParam gp, // [IN] GenericParam
- ULONG *pulParamSeq, // [OUT] Index of the type parameter
- DWORD *pdwParamFlags, // [OUT] Flags, for future use (e.g. variance)
- mdToken *ptOwner, // [OUT] Owner (TypeDef or MethodDef)
- DWORD *reserved, // [OUT] For future use (e.g. non-type parameters)
- __out_ecount (cchName) LPWSTR wzname, // [OUT] Put name here
- ULONG cchName, // [IN] Size of buffer
- ULONG *pchName) // [OUT] Put size of name (wide chars) here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetGenericParamConstraintProps( // S_OK or error.
- mdGenericParamConstraint gpc, // [IN] GenericParamConstraint
- mdGenericParam *ptGenericParam, // [OUT] GenericParam that is constrained
- mdToken *ptkConstraintType) // [OUT] TypeDef/Ref/Spec constraint
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumGenericParams( // S_OK or error.
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdToken tk, // [IN] TypeDef or MethodDef whose generic parameters are requested
- mdGenericParam rGenericParams[], // [OUT] Put GenericParams here.
- ULONG cMax, // [IN] Max GenericParams to put.
- ULONG *pcGenericParams) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumGenericParamConstraints( // S_OK or error.
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdGenericParam tk, // [IN] GenericParam whose constraints are requested
- mdGenericParamConstraint rGenericParamConstraints[], // [OUT] Put GenericParamConstraints here.
- ULONG cMax, // [IN] Max GenericParamConstraints to put.
- ULONG *pcGenericParamConstraints) // [OUT] Put # put here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::EnumMethodSpecs( // S_OK or error.
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdToken tk, // [IN] MethodDef or MemberRef whose MethodSpecs are requested
- mdMethodSpec rMethodSpecs[], // [OUT] Put MethodSpecs here.
- ULONG cMax, // [IN] Max tokens to put.
- ULONG *pcMethodSpecs) // [OUT] Put actual count here.
-{
- _ASSERTE(!"NYI");
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetPEKind( // S_OK or error.
- DWORD* pdwPEKind, // [OUT] The kind of PE (0 - not a PE)
- DWORD* pdwMachine) // [OUT] Machine as defined in NT header
-{
- HRESULT hr = S_OK;
- if(pdwPEKind) *pdwPEKind = m_dwPEKind;
- if(pdwMachine) *pdwMachine = m_dwMachine;
- return hr;
-}
-
-STDMETHODIMP AssemblyMDInternalImport::GetVersionString( // S_OK or error.
- __out_ecount (ccBufSize) LPWSTR pwzBuf, // Put version string here.
- DWORD ccBufSize, // [in] size of the buffer, in wide chars
- DWORD *pccBufSize) // [out] Size of the version string, wide chars, including terminating nul.
-{
- HRESULT hr=S_OK;
- DWORD L = WszMultiByteToWideChar(CP_UTF8,0,m_szVersionString,-1,pwzBuf,ccBufSize);
- if(ccBufSize < L)
- hr = HRESULT_FROM_WIN32(ERROR_BUFFER_OVERFLOW);
-
- if(pccBufSize) *pccBufSize = L;
- return hr;
-}
-
-#endif //!DACCESS_COMPILE
-
-#endif // FEATURE_FUSION
#endif //FEATURE_METADATA_INTERNAL_APIS