0N/A/*
0N/A * Copyright 2010 Vincent Povirk for CodeWeavers
0N/A *
0N/A * This library is free software; you can redistribute it and/or
0N/A * modify it under the terms of the GNU Lesser General Public
0N/A * License as published by the Free Software Foundation; either
0N/A * version 2.1 of the License, or (at your option) any later version.
0N/A *
0N/A * This library is distributed in the hope that it will be useful,
0N/A * but WITHOUT ANY WARRANTY; without even the implied warranty of
0N/A * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0N/A * Lesser General Public License for more details.
0N/A *
0N/A * You should have received a copy of the GNU Lesser General Public
0N/A * License along with this library; if not, write to the Free Software
0N/A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
0N/A */
0N/A
0N/A/*
0N/A * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
0N/A * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
0N/A * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
0N/A * a choice of LGPL license versions is made available with the language indicating
0N/A * that LGPLv2 or any later version may be used, or where a choice of which version
0N/A * of the LGPL is applied is otherwise unspecified.
0N/A */
0N/A
0N/Aimport "unknwn.idl";
0N/Aimport "oaidl.idl";
0N/Aimport "ocidl.idl";
0N/Aimport "mscoree.idl";
0N/A
0N/Acpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
0N/Acpp_quote("#undef LoadLibrary")
0N/Acpp_quote("#endif")
0N/A
0N/Atypedef enum
0N/A{
0N/A METAHOST_POLICY_HIGHCOMPAT = 0,
0N/A METAHOST_POLICY_APPLY_UPGRADE_POLICY = 0x08,
0N/A METAHOST_POLICY_EMULATE_EXE_LAUNCH = 0x10,
0N/A METAHOST_POLICY_SHOW_ERROR_DIALOG = 0x20,
0N/A METAHOST_POLICY_USE_PROCESS_IMAGE_PATH = 0x40,
0N/A METAHOST_POLICY_ENSURE_SKU_SUPPORTED = 0x80
0N/A} METAHOST_POLICY_FLAGS;
0N/A
0N/Atypedef enum
1545N/A{
1545N/A CLR_DEBUGGING_MANAGED_EVENT_PENDING = 1
1545N/A} CLR_DEBUGGING_PROCESS_FLAGS;
1545N/A
1545N/Atypedef struct _CLR_DEBUGGING_VERSION
1545N/A{
1545N/A WORD wStructVersion;
1545N/A WORD wMajor;
0N/A WORD wMinor;
0N/A WORD wBuild;
0N/A WORD wRevision;
2999N/A} CLR_DEBUGGING_VERSION;
0N/A
2999N/A[
2999N/A object,
0N/A local,
0N/A uuid(bd39d1d2-ba2f-486a-89b0-b4b0cb466891)
0N/A]
0N/Ainterface ICLRRuntimeInfo : IUnknown
0N/A{
0N/A HRESULT GetVersionString(
0N/A [out, size_is(*pcchBuffer)] LPWSTR pwzBuffer,
0N/A [in, out] DWORD *pcchBuffer);
0N/A
0N/A HRESULT GetRuntimeDirectory(
0N/A [out, size_is(*pcchBuffer)] LPWSTR pwzBuffer,
0N/A [in, out] DWORD *pcchBuffer);
0N/A
2999N/A HRESULT IsLoaded(
0N/A [in] HANDLE hndProcess,
0N/A [out, retval] BOOL *pbLoaded);
0N/A
0N/A HRESULT LoadErrorString(
0N/A [in] UINT iResourceID,
0N/A [out, size_is(*pcchBuffer)] LPWSTR pwzBuffer,
0N/A [in, out] DWORD *pcchBuffer,
0N/A [in] LONG iLocaleid);
0N/A
0N/A HRESULT LoadLibrary(
0N/A [in] LPCWSTR pwzDllName,
0N/A [out, retval] HMODULE *phndModule);
0N/A
0N/A HRESULT GetProcAddress(
0N/A [in] LPCSTR pszProcName,
0N/A [out, retval] LPVOID *ppProc);
0N/A
0N/A HRESULT GetInterface(
0N/A [in] REFCLSID rclsid,
0N/A [in] REFIID riid,
0N/A [out, iid_is(riid), retval] LPVOID *ppUnk);
0N/A
0N/A HRESULT IsLoadable(
0N/A [out, retval] BOOL *pbLoadable);
0N/A
0N/A HRESULT SetDefaultStartupFlags(
0N/A [in] DWORD dwStartupFlags,
0N/A [in] LPCWSTR pwzHostConfigFile);
0N/A
0N/A HRESULT GetDefaultStartupFlags(
0N/A [out] DWORD *pdwStartupFlags,
0N/A [out, size_is(*pcchHostConfigFile)] LPWSTR pwzHostConfigFile,
0N/A [in, out] DWORD *pcchHostConfigFile);
0N/A
0N/A HRESULT BindAsLegacyV2Runtime();
0N/A
0N/A HRESULT IsStarted(
0N/A [out] BOOL *pbStarted,
0N/A [out] DWORD *pdwStartupFlags);
0N/A};
0N/A
0N/Atypedef HRESULT (__stdcall *CallbackThreadSetFnPtr)();
0N/Atypedef HRESULT (__stdcall *CallbackThreadUnsetFnPtr)();
0N/A
0N/Atypedef void (__stdcall *RuntimeLoadedCallbackFnPtr)(
0N/A ICLRRuntimeInfo *pRuntimeInfo,
0N/A CallbackThreadSetFnPtr pfnCallbackThreadSet,
0N/A CallbackThreadUnsetFnPtr pfnCallbackThreadUnset);
0N/A
0N/Acpp_quote("DEFINE_GUID(CLSID_CLRDebuggingLegacy, 0xDF8395B5,0xA4BA,0x450b,0xA7,0x7C,0xA9,0xA4,0x77,0x62,0xC5,0x20);")
5696N/Acpp_quote("DEFINE_GUID(CLSID_CLRMetaHost, 0x9280188d,0x0e8e,0x4867,0xb3,0x0c,0x7f,0xa8,0x38,0x84,0xe8,0xde);")
5730N/A
5730N/A[
5730N/A object,
5696N/A local,
5724N/A uuid(d332db9e-b9b3-4125-8207-a14884f53216)
5724N/A]
5724N/Ainterface ICLRMetaHost : IUnknown
5696N/A{
5696N/A HRESULT GetRuntime(
5696N/A [in] LPCWSTR pwzVersion,
5736N/A [in] REFIID iid,
5736N/A [out, iid_is(iid), retval] LPVOID *ppRuntime);
0N/A
0N/A HRESULT GetVersionFromFile(
0N/A [in] LPCWSTR pwzFilePath,
0N/A [out, size_is(*pcchBuffer)] LPWSTR pwzBuffer,
0N/A [in, out] DWORD *pcchBuffer);
0N/A
0N/A HRESULT EnumerateInstalledRuntimes(
0N/A [out, retval] IEnumUnknown **ppEnumerator);
5085N/A
5085N/A HRESULT EnumerateLoadedRuntimes(
0N/A [in] HANDLE hndProcess,
5696N/A [out, retval] IEnumUnknown **ppEnumerator);
5730N/A
5730N/A HRESULT RequestRuntimeLoadedNotification(
5730N/A [in] RuntimeLoadedCallbackFnPtr pCallbackFunction);
5696N/A
5724N/A HRESULT QueryLegacyV2RuntimeBinding(
5724N/A [in] REFIID riid,
5724N/A [out, iid_is(riid), retval] LPVOID *ppUnk);
5696N/A
5696N/A HRESULT ExitProcess(
5696N/A [in] INT32 iExitCode);
5736N/A};
5736N/A
0N/A[
0N/A object,
0N/A local,
0N/A uuid(e2190695-77b2-492e-8e14-c4b3a7fdd593)
0N/A]
0N/Ainterface ICLRMetaHostPolicy : IUnknown
0N/A{
0N/A HRESULT GetRequestedRuntime([in] METAHOST_POLICY_FLAGS dwPolicyFlags,
2999N/A [in] LPCWSTR pwzBinary, [in] IStream *pCfgStream,
0N/A [in, out] LPWSTR pwzVersion, [in, out] DWORD *pcchVersion,
0N/A [out] LPWSTR pwzImageVersion, [out, in] DWORD *pcchImageVersion,
0N/A [out] DWORD *pdwConfigFlags, [in] REFIID riid, [retval, out] LPVOID *ppRuntime);
0N/A}
0N/A
0N/A[
0N/A uuid(2ebcd49a-1b47-4a61-b13a-4a03701e594b)
0N/A]
0N/Acoclass CLRMetaHostPolicy
0N/A{
0N/A [default] interface ICLRMetaHostPolicy;
0N/A}
0N/A
0N/A[
2999N/A object,
2999N/A local,
0N/A uuid(3151c08d-4d09-4f9b-8838-2880bf18fe51)
0N/A]
2999N/Ainterface ICLRDebuggingLibraryProvider : IUnknown
0N/A{
0N/A HRESULT ProvideLibrary([in] const WCHAR *pwszFileName,
2999N/A [in] DWORD dwTimestamp, [in] DWORD dwSizeOfImage,
0N/A [out] HMODULE *phModule);
0N/A}
0N/A
0N/A[
0N/A object,
0N/A local,
0N/A uuid(d28f3c5a-9634-4206-a509-477552eefb10)
0N/A]
0N/Ainterface ICLRDebugging : IUnknown
0N/A{
0N/A HRESULT OpenVirtualProcess([in] ULONG64 moduleBaseAddress,
2999N/A [in] IUnknown *pDataTarget, [in] ICLRDebuggingLibraryProvider *pLibraryProvider,
0N/A [in] CLR_DEBUGGING_VERSION *pMaxDebuggerSupportedVersion,
0N/A [in] REFIID riidProcess, [out] IUnknown **ppProcess,
0N/A [out, in] CLR_DEBUGGING_VERSION *pVersion,
0N/A [out] CLR_DEBUGGING_PROCESS_FLAGS *pdwFlags);
0N/A
0N/A HRESULT CanUnloadNow(HMODULE hModule);
0N/A}
0N/A
2999N/Acpp_quote("HRESULT WINAPI CLRCreateInstance(REFCLSID clsid, REFIID riid, LPVOID *ppInterface);")
0N/A