msi: Create temp files in the destination directory instead of the root.
[wine.git] / include / metahost.idl
bloba3525565a6743cd1deef55efa163966022c392ef
1 /*
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
19 import "wtypes.idl";
20 import "propidl.idl";
22 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
23 cpp_quote("#undef LoadLibrary")
24 cpp_quote("#endif")
27 object,
28 local,
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);
41 HRESULT IsLoaded(
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,
49 [in] LONG iLocaleid);
51 HRESULT LoadLibrary(
52 [in] LPCWSTR pwzDllName,
53 [out, retval] HMODULE *phndModule);
55 HRESULT GetProcAddress(
56 [in] LPCSTR pszProcName,
57 [out, retval] LPVOID *ppProc);
59 HRESULT GetInterface(
60 [in] REFCLSID rclsid,
61 [in] REFIID riid,
62 [out, iid_is(riid), retval] LPVOID *ppUnk);
64 HRESULT IsLoadable(
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();
78 HRESULT IsStarted(
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_CLRMetaHost, 0x9280188d,0x0e8e,0x4867,0xb3,0x0c,0x7f,0xa8,0x38,0x84,0xe8,0xde);")
94 object,
95 local,
96 uuid(d332db9e-b9b3-4125-8207-a14884f53216)
98 interface ICLRMetaHost : IUnknown
100 HRESULT GetRuntime(
101 [in] LPCWSTR pwzVersion,
102 [in] REFIID iid,
103 [out, iid_is(iid), retval] LPVOID *ppRuntime);
105 HRESULT GetVersionFromFile(
106 [in] LPCWSTR pwzFilePath,
107 [out, size_is(*pcchBuffer)] LPWSTR pwzBuffer,
108 [in, out] DWORD *pcchBuffer);
110 HRESULT EnumerateInstalledRuntimes(
111 [out, retval] IEnumUnknown **ppEnumerator);
113 HRESULT EnumerateLoadedRuntimes(
114 [in] HANDLE hndProcess,
115 [out, retval] IEnumUnknown **ppEnumerator);
117 HRESULT RequestRuntimeLoadedNotification(
118 [in] RuntimeLoadedCallbackFnPtr pCallbackFunction);
120 HRESULT QueryLegacyV2RuntimeBinding(
121 [in] REFIID riid,
122 [out, iid_is(riid), retval] LPVOID *ppUnk);
124 HRESULT ExitProcess(
125 [in] INT32 iExitCode);
128 cpp_quote("HRESULT WINAPI CLRCreateInstance(REFCLSID clsid, REFIID riid, LPVOID *ppInterface);")