/* * Copyright 2010 Vincent Povirk for CodeWeavers * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ import "unknwn.idl"; import "oaidl.idl"; import "ocidl.idl"; import "mscoree.idl"; cpp_quote("#ifdef WINE_NO_UNICODE_MACROS") cpp_quote("#undef LoadLibrary") cpp_quote("#endif") [ object, local, uuid(bd39d1d2-ba2f-486a-89b0-b4b0cb466891) ] interface ICLRRuntimeInfo : IUnknown { HRESULT GetVersionString( [out, size_is(*pcchBuffer)] LPWSTR pwzBuffer, [in, out] DWORD *pcchBuffer); HRESULT GetRuntimeDirectory( [out, size_is(*pcchBuffer)] LPWSTR pwzBuffer, [in, out] DWORD *pcchBuffer); HRESULT IsLoaded( [in] HANDLE hndProcess, [out, retval] BOOL *pbLoaded); HRESULT LoadErrorString( [in] UINT iResourceID, [out, size_is(*pcchBuffer)] LPWSTR pwzBuffer, [in, out] DWORD *pcchBuffer, [in] LONG iLocaleid); HRESULT LoadLibrary( [in] LPCWSTR pwzDllName, [out, retval] HMODULE *phndModule); HRESULT GetProcAddress( [in] LPCSTR pszProcName, [out, retval] LPVOID *ppProc); HRESULT GetInterface( [in] REFCLSID rclsid, [in] REFIID riid, [out, iid_is(riid), retval] LPVOID *ppUnk); HRESULT IsLoadable( [out, retval] BOOL *pbLoadable); HRESULT SetDefaultStartupFlags( [in] DWORD dwStartupFlags, [in] LPCWSTR pwzHostConfigFile); HRESULT GetDefaultStartupFlags( [out] DWORD *pdwStartupFlags, [out, size_is(*pcchHostConfigFile)] LPWSTR pwzHostConfigFile, [in, out] DWORD *pcchHostConfigFile); HRESULT BindAsLegacyV2Runtime(); HRESULT IsStarted( [out] BOOL *pbStarted, [out] DWORD *pdwStartupFlags); }; typedef HRESULT (__stdcall *CallbackThreadSetFnPtr)(); typedef HRESULT (__stdcall *CallbackThreadUnsetFnPtr)(); typedef void (__stdcall *RuntimeLoadedCallbackFnPtr)( ICLRRuntimeInfo *pRuntimeInfo, CallbackThreadSetFnPtr pfnCallbackThreadSet, CallbackThreadUnsetFnPtr pfnCallbackThreadUnset); cpp_quote("DEFINE_GUID(CLSID_CLRDebuggingLegacy, 0xDF8395B5,0xA4BA,0x450b,0xA7,0x7C,0xA9,0xA4,0x77,0x62,0xC5,0x20);") cpp_quote("DEFINE_GUID(CLSID_CLRMetaHost, 0x9280188d,0x0e8e,0x4867,0xb3,0x0c,0x7f,0xa8,0x38,0x84,0xe8,0xde);") [ object, local, uuid(d332db9e-b9b3-4125-8207-a14884f53216) ] interface ICLRMetaHost : IUnknown { HRESULT GetRuntime( [in] LPCWSTR pwzVersion, [in] REFIID iid, [out, iid_is(iid), retval] LPVOID *ppRuntime); HRESULT GetVersionFromFile( [in] LPCWSTR pwzFilePath, [out, size_is(*pcchBuffer)] LPWSTR pwzBuffer, [in, out] DWORD *pcchBuffer); HRESULT EnumerateInstalledRuntimes( [out, retval] IEnumUnknown **ppEnumerator); HRESULT EnumerateLoadedRuntimes( [in] HANDLE hndProcess, [out, retval] IEnumUnknown **ppEnumerator); HRESULT RequestRuntimeLoadedNotification( [in] RuntimeLoadedCallbackFnPtr pCallbackFunction); HRESULT QueryLegacyV2RuntimeBinding( [in] REFIID riid, [out, iid_is(riid), retval] LPVOID *ppUnk); HRESULT ExitProcess( [in] INT32 iExitCode); }; cpp_quote("HRESULT WINAPI CLRCreateInstance(REFCLSID clsid, REFIID riid, LPVOID *ppInterface);")