xref: /reactos/sdk/include/psdk/cor.idl (revision c2c66aff)
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