1/* 2 * Copyright (C) 2007 Francois Gouget 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 */ 18 19import "propidl.idl"; 20 21cpp_quote("#include <ole2.h>") 22/* FIXME: #include "specstrings.h" */ 23cpp_quote("#include <corerror.h>") 24cpp_quote("#include <corhdr.h>") 25 26cpp_quote("DEFINE_GUID(CLSID_CorMetaDataDispenser, 0xe5cb7a31,0x7512,0x11d2,0x89,0xce,0x00,0x80,0xc7,0x92,0xe5,0xd8);") 27cpp_quote("DEFINE_GUID(CLSID_CorMetaDataDispenserRuntime, 0x1ec2de53,0x75cc,0x11d2,0x97,0x75,0x00,0xa0,0xc9,0xb4,0xd5,0x0c);") 28 29[ 30 object, 31 local, 32 uuid(809c652e-7396-11d2-9771-00a0c9b4d50c) 33] 34interface IMetaDataDispenser : IUnknown 35{ 36 HRESULT DefineScope( 37 [in] REFCLSID rclsid, 38 [in] DWORD dwCreateFlags, 39 [in] REFIID riid, 40 [out] IUnknown **ppIUnk); 41 42 HRESULT OpenScope( 43 [in] LPCWSTR szScope, 44 [in] DWORD dwOpenFlags, 45 [in] REFIID riid, 46 [out] IUnknown **ppIUnk); 47 48 HRESULT OpenScopeOnMemory( 49 [in] const void *pData, 50 [in] ULONG cbData, 51 [in] DWORD dwOpenFlags, 52 [in] REFIID riid, 53 [out] IUnknown **ppIUnk); 54} 55 56[ 57 object, 58 local, 59 uuid(31bcfce2-dafb-11d2-9f81-00c04f79a0a3) 60] 61interface IMetaDataDispenserEx : IMetaDataDispenser 62{ 63 HRESULT SetOption( 64 [in] REFGUID optionid, 65 [in] const VARIANT *value); 66 67 HRESULT GetOption( 68 [in] REFGUID optionid, 69 [out] VARIANT *pvalue); 70 71 HRESULT OpenScopeOnITypeInfo( 72 [in] ITypeInfo *pITI, 73 [in] DWORD dwOpenFlags, 74 [in] REFIID riid, 75 [out] IUnknown **ppIUnk); 76 77 HRESULT GetCORSystemDirectory( 78 [out, size_is(cchBuffer)] LPWSTR szBuffer, 79 [in] DWORD cchBuffer, 80 [out] DWORD *pchBuffer); 81 82 HRESULT FindAssembly( 83 [in] LPCWSTR szAppBase, 84 [in] LPCWSTR szPrivateBin, 85 [in] LPCWSTR szGlobalBin, 86 [in] LPCWSTR szAssemblyName, 87 [out, size_is(cchName)] LPWSTR szName, 88 [in] ULONG cchName, 89 [out] ULONG *pcName); 90 91 HRESULT FindAssemblyModule( 92 [in] LPCWSTR szAppBase, 93 [in] LPCWSTR szPrivateBin, 94 [in] LPCWSTR szGlobalBin, 95 [in] LPCWSTR szAssemblyName, 96 [in] LPCWSTR szModuleName, 97 [out, size_is(cchName)] LPWSTR szName, 98 [in] ULONG cchName, 99 [out] ULONG *pcName); 100} 101 102cpp_quote("BOOL WINAPI _CorDllMain(HINSTANCE,DWORD,LPVOID);") 103cpp_quote("__int32 WINAPI _CorExeMain(void);") 104cpp_quote("__int32 WINAPI _CorExeMain2(PBYTE,DWORD,LPWSTR,LPWSTR,LPWSTR);") 105cpp_quote("VOID WINAPI _CorImageUnloading(PVOID);") 106cpp_quote("HRESULT WINAPI _CorValidateImage(PVOID*,LPCWSTR);") 107cpp_quote("HRESULT WINAPI CoInitializeCor(DWORD);") 108cpp_quote("void WINAPI CoUninitializeCor(void);") 109