| /* |
| * 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);") |