1// Licensed to the .NET Foundation under one or more agreements.
2// The .NET Foundation licenses this file to you under the MIT license.
3// See the LICENSE file in the project root for more information.
4//*****************************************************************************
5// MDInternalDispenser.h
6//
7
8//
9// Contains utility code for MD directory
10//
11//*****************************************************************************
12#ifndef __MDInternalDispenser__h__
13#define __MDInternalDispenser__h__
14
15#ifdef FEATURE_METADATA_INTERNAL_APIS
16
17#include "mdinternalro.h"
18
19
20enum MDFileFormat
21{
22 MDFormat_ReadOnly = 0,
23 MDFormat_ReadWrite = 1,
24 MDFormat_ICR = 2,
25 MDFormat_Invalid = 3
26};
27
28
29HRESULT CheckFileFormat(LPVOID pData, ULONG cbData, MDFileFormat *pFormat);
30STDAPI GetMDInternalInterface(
31 LPVOID pData, // [IN] Buffer with the metadata.
32 ULONG cbData, // [IN] Size of the data in the buffer.
33 DWORD flags, // [IN] MDInternal_OpenForRead or MDInternal_OpenForENC
34 REFIID riid, // [in] The interface desired.
35 void **ppIUnk); // [out] Return interface on success.
36
37HRESULT GetAssemblyMDInternalImportHelper(HCORMODULE hModule,
38 REFIID riid,
39 MDInternalImportFlags flags,
40 IUnknown **ppIUnk);
41
42#endif //FEATURE_METADATA_INTERNAL_APIS
43
44#endif // __MDInternalDispenser__h__
45