diff --git a/include/mscoree.idl b/include/mscoree.idl index 8dfaa1b4637..5877eb6650c 100644 --- a/include/mscoree.idl +++ b/include/mscoree.idl @@ -1,5 +1,6 @@ /* * Copyright (C) 2007 Francois Gouget + * Copyright (C) 2008 Alistair Leslie-Hughes * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -16,6 +17,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +import "unknwn.idl"; cpp_quote("/* FIXME: #include */") cpp_quote("/* FIXME: #include */") @@ -25,3 +27,140 @@ cpp_quote("HRESULT WINAPI GetCORSystemDirectory(LPWSTR,DWORD,DWORD*);") cpp_quote("HRESULT WINAPI GetCORVersion(LPWSTR,DWORD,DWORD*);") cpp_quote("HRESULT WINAPI GetRequestedRuntimeInfo(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,DWORD,LPWSTR,DWORD,DWORD*,LPWSTR,DWORD,DWORD*);") cpp_quote("HRESULT WINAPI LoadLibraryShim(LPCWSTR,LPCWSTR,LPVOID,HMODULE*);") + +typedef void* HDOMAINENUM; + +[ + uuid(F31D1788-C397-4725-87A5-6AF3472C2791), + version(1.0), + object, + local +] +interface IGCThreadControl : IUnknown +{ + HRESULT ThreadIsBlockingForSuspension(); + + HRESULT SuspensionStarting(); + + HRESULT SuspensionEnding(DWORD generation); +} + +[ + uuid(5513D564-8374-4cb9-AED9-0083F4160A1D), + version(1.1), + local, + object +] +interface IGCHostControl : IUnknown +{ + HRESULT RequestVirtualMemLimit([in] SIZE_T nMaxVirtualMemMB, + [in, out] SIZE_T* nNewMaxVirtualMemMB); +} + +[ + uuid(23D86786-0BB5-4774-8FB5-E3522ADD6246), + version(1.0), + local, + object +] +interface IDebuggerThreadControl : IUnknown +{ + HRESULT ThreadIsBlockingForDebugger(); + + HRESULT ReleaseAllRuntimeThreads(); + + HRESULT StartBlockingForDebugger(DWORD dwUnused); +} + +[ + uuid(5C2B07A5-1E98-11d3-872F-00C04F79ED0D), + version(1.0), + local, + object +] +interface ICorConfiguration : IUnknown +{ + HRESULT SetGCThreadControl([in] IGCThreadControl* GCThreadControl); + + HRESULT SetGCHostControl([in] IGCHostControl* GCHostControl); + + HRESULT SetDebuggerThreadControl([in] IDebuggerThreadControl* debuggerThreadControl); + + HRESULT AddDebuggerSpecialThread([in] DWORD specialThreadId); +} + +[ + uuid(9065597E-D1A1-4fb2-B6BA-7E1FCE230F61), + version(1.0), + local +] +interface ICLRControl : IUnknown +{ + HRESULT GetCLRManager([in] REFIID riid, [out] void **ppObject); + + HRESULT SetAppDomainManagerType([in] LPCWSTR appDomainManagerAssembly, + [in] LPCWSTR appDomainManagerType); +} + +[ + uuid(02CA073C-7079-4860-880A-C2F7A449C991), + version(1.0), + local +] +interface IHostControl : IUnknown +{ + HRESULT GetHostManager( [in] REFIID riid, [out] void **ppObject); + + HRESULT SetAppDomainManager([in] DWORD appDomainID, + [in] IUnknown* appDomainManager); +} + +[ + uuid(CB2F6722-AB3A-11d2-9C40-00C04FA30A3E), + version(1.0), + local, + object +] +interface ICorRuntimeHost : IUnknown +{ + HRESULT CreateLogicalThreadState(); + HRESULT DeleteLogicalThreadState(); + HRESULT SwitchInLogicalThreadState([in] DWORD *fiberCookie); + + HRESULT SwitchOutLogicalThreadState([out] DWORD **fiberCookie); + + HRESULT LocksHeldByLogicalThread( [out] DWORD *pCount ); + + HRESULT MapFile([in] HANDLE hFile, [out] HMODULE* mapAddress); + + HRESULT GetConfiguration([out] ICorConfiguration** pConfiguration); + + HRESULT Start(); + + HRESULT Stop(); + + HRESULT CreateDomain([in] LPCWSTR friendlyName, + [in] IUnknown* identityArray, + [out] IUnknown** appDomain); + + HRESULT GetDefaultDomain([out] IUnknown** pAppDomain); + + HRESULT EnumDomains([out] HDOMAINENUM *hEnum); + + HRESULT NextDomain([in] HDOMAINENUM hEnum, [out] IUnknown** appDomain); + + HRESULT CloseEnum([in] HDOMAINENUM hEnum); + + HRESULT CreateDomainEx([in] LPCWSTR friendlyName, + [in] IUnknown* setup, + [in] IUnknown* evidence, + [out] IUnknown** appDomain); + + HRESULT CreateDomainSetup([out] IUnknown** appDomainSetup); + + HRESULT CreateEvidence([out] IUnknown** evidence); + + HRESULT UnloadDomain([in] IUnknown* appDomain); + + HRESULT CurrentDomain([out] IUnknown** appDomain); +};