2 * Copyright 2010 Vincent Povirk for CodeWeavers
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.
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.
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
22 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
23 cpp_quote("#undef LoadLibrary")
29 uuid(bd39d1d2-ba2f-486a-89b0-b4b0cb466891)
31 interface ICLRRuntimeInfo : IUnknown
33 HRESULT GetVersionString(
34 [out, size_is(*pcchBuffer)] LPWSTR pwzBuffer,
35 [in, out] DWORD *pcchBuffer);
37 HRESULT GetRuntimeDirectory(
38 [out, size_is(*pcchBuffer)] LPWSTR pwzBuffer,
39 [in, out] DWORD *pcchBuffer);
42 [in] HANDLE hndProcess,
43 [out, retval] BOOL *pbLoaded);
45 HRESULT LoadErrorString(
46 [in] UINT iResourceID,
47 [out, size_is(*pcchBuffer)] LPWSTR pwzBuffer,
48 [in, out] DWORD *pcchBuffer,
52 [in] LPCWSTR pwzDllName,
53 [out, retval] HMODULE *phndModule);
55 HRESULT GetProcAddress(
56 [in] LPCSTR pszProcName,
57 [out, retval] LPVOID *ppProc);
62 [out, iid_is(riid), retval] LPVOID *ppUnk);
65 [out, retval] BOOL *pbLoadable);
67 HRESULT SetDefaultStartupFlags(
68 [in] DWORD dwStartupFlags,
69 [in] LPCWSTR pwzHostConfigFile);
71 HRESULT GetDefaultStartupFlags(
72 [out] DWORD *pdwStartupFlags,
73 [out, size_is(*pcchHostConfigFile)] LPWSTR pwzHostConfigFile,
74 [in, out] DWORD *pcchHostConfigFile);
76 HRESULT BindAsLegacyV2Runtime();
79 [out] BOOL *pbStarted,
80 [out] DWORD *pdwStartupFlags);
83 typedef HRESULT (__stdcall *CallbackThreadSetFnPtr)();
84 typedef HRESULT (__stdcall *CallbackThreadUnsetFnPtr)();
86 typedef void (__stdcall *RuntimeLoadedCallbackFnPtr)(
87 ICLRRuntimeInfo *pRuntimeInfo,
88 CallbackThreadSetFnPtr pfnCallbackThreadSet,
89 CallbackThreadUnsetFnPtr pfnCallbackThreadUnset);
91 cpp_quote("DEFINE_GUID(CLSID_CLRDebuggingLegacy, 0xDF8395B5,0xA4BA,0x450b,0xA7,0x7C,0xA9,0xA4,0x77,0x62,0xC5,0x20);")
92 cpp_quote("DEFINE_GUID(CLSID_CLRMetaHost, 0x9280188d,0x0e8e,0x4867,0xb3,0x0c,0x7f,0xa8,0x38,0x84,0xe8,0xde);")
97 uuid(d332db9e-b9b3-4125-8207-a14884f53216)
99 interface ICLRMetaHost : IUnknown
102 [in] LPCWSTR pwzVersion,
104 [out, iid_is(iid), retval] LPVOID *ppRuntime);
106 HRESULT GetVersionFromFile(
107 [in] LPCWSTR pwzFilePath,
108 [out, size_is(*pcchBuffer)] LPWSTR pwzBuffer,
109 [in, out] DWORD *pcchBuffer);
111 HRESULT EnumerateInstalledRuntimes(
112 [out, retval] IEnumUnknown **ppEnumerator);
114 HRESULT EnumerateLoadedRuntimes(
115 [in] HANDLE hndProcess,
116 [out, retval] IEnumUnknown **ppEnumerator);
118 HRESULT RequestRuntimeLoadedNotification(
119 [in] RuntimeLoadedCallbackFnPtr pCallbackFunction);
121 HRESULT QueryLegacyV2RuntimeBinding(
123 [out, iid_is(riid), retval] LPVOID *ppUnk);
126 [in] INT32 iExitCode);
129 cpp_quote("HRESULT WINAPI CLRCreateInstance(REFCLSID clsid, REFIID riid, LPVOID *ppInterface);")