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
24 cpp_quote
("#ifdef WINE_NO_UNICODE_MACROS")
25 cpp_quote
("#undef LoadLibrary")
31 uuid(bd39d1d2
-ba2f
-486a
-89b0
-b4b0cb466891
)
33 interface ICLRRuntimeInfo
: IUnknown
35 HRESULT GetVersionString
(
36 [out, size_is(*pcchBuffer
)] LPWSTR pwzBuffer
,
37 [in, out] DWORD
*pcchBuffer
);
39 HRESULT GetRuntimeDirectory
(
40 [out, size_is(*pcchBuffer
)] LPWSTR pwzBuffer
,
41 [in, out] DWORD
*pcchBuffer
);
44 [in] HANDLE hndProcess
,
45 [out, retval] BOOL
*pbLoaded
);
47 HRESULT LoadErrorString
(
48 [in] UINT iResourceID
,
49 [out, size_is(*pcchBuffer
)] LPWSTR pwzBuffer
,
50 [in, out] DWORD
*pcchBuffer
,
54 [in] LPCWSTR pwzDllName
,
55 [out, retval] HMODULE
*phndModule
);
57 HRESULT GetProcAddress
(
58 [in] LPCSTR pszProcName
,
59 [out, retval] LPVOID
*ppProc
);
64 [out, iid_is(riid
), retval] LPVOID
*ppUnk
);
67 [out, retval] BOOL
*pbLoadable
);
69 HRESULT SetDefaultStartupFlags
(
70 [in] DWORD dwStartupFlags
,
71 [in] LPCWSTR pwzHostConfigFile
);
73 HRESULT GetDefaultStartupFlags
(
74 [out] DWORD
*pdwStartupFlags
,
75 [out, size_is(*pcchHostConfigFile
)] LPWSTR pwzHostConfigFile
,
76 [in, out] DWORD
*pcchHostConfigFile
);
78 HRESULT BindAsLegacyV2Runtime
();
81 [out] BOOL
*pbStarted
,
82 [out] DWORD
*pdwStartupFlags
);
85 typedef HRESULT (__stdcall
*CallbackThreadSetFnPtr
)();
86 typedef HRESULT (__stdcall
*CallbackThreadUnsetFnPtr
)();
88 typedef void (__stdcall
*RuntimeLoadedCallbackFnPtr
)(
89 ICLRRuntimeInfo
*pRuntimeInfo
,
90 CallbackThreadSetFnPtr pfnCallbackThreadSet
,
91 CallbackThreadUnsetFnPtr pfnCallbackThreadUnset
);
93 cpp_quote
("DEFINE_GUID(CLSID_CLRDebuggingLegacy, 0xDF8395B5,0xA4BA,0x450b,0xA7,0x7C,0xA9,0xA4,0x77,0x62,0xC5,0x20);")
94 cpp_quote
("DEFINE_GUID(CLSID_CLRMetaHost, 0x9280188d,0x0e8e,0x4867,0xb3,0x0c,0x7f,0xa8,0x38,0x84,0xe8,0xde);")
99 uuid(d332db9e
-b9b3
-4125-8207-a14884f53216
)
101 interface ICLRMetaHost
: IUnknown
104 [in] LPCWSTR pwzVersion
,
106 [out, iid_is(iid
), retval] LPVOID
*ppRuntime
);
108 HRESULT GetVersionFromFile
(
109 [in] LPCWSTR pwzFilePath
,
110 [out, size_is(*pcchBuffer
)] LPWSTR pwzBuffer
,
111 [in, out] DWORD
*pcchBuffer
);
113 HRESULT EnumerateInstalledRuntimes
(
114 [out, retval] IEnumUnknown
**ppEnumerator
);
116 HRESULT EnumerateLoadedRuntimes
(
117 [in] HANDLE hndProcess
,
118 [out, retval] IEnumUnknown
**ppEnumerator
);
120 HRESULT RequestRuntimeLoadedNotification
(
121 [in] RuntimeLoadedCallbackFnPtr pCallbackFunction
);
123 HRESULT QueryLegacyV2RuntimeBinding
(
125 [out, iid_is(riid
), retval] LPVOID
*ppUnk
);
128 [in] INT32 iExitCode
);
131 cpp_quote
("HRESULT WINAPI CLRCreateInstance(REFCLSID clsid, REFIID riid, LPVOID *ppInterface);")