[1166] | 1 | /*
|
---|
| 2 | * Copyright (C) 2007 Francois Gouget
|
---|
| 3 | * Copyright (C) 2008 Alistair Leslie-Hughes
|
---|
| 4 | *
|
---|
| 5 | * This library is free software; you can redistribute it and/or
|
---|
| 6 | * modify it under the terms of the GNU Lesser General Public
|
---|
| 7 | * License as published by the Free Software Foundation; either
|
---|
| 8 | * version 2.1 of the License, or (at your option) any later version.
|
---|
| 9 | *
|
---|
| 10 | * This library is distributed in the hope that it will be useful,
|
---|
| 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
| 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
---|
| 13 | * Lesser General Public License for more details.
|
---|
| 14 | *
|
---|
| 15 | * You should have received a copy of the GNU Lesser General Public
|
---|
| 16 | * License along with this library; if not, write to the Free Software
|
---|
| 17 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
---|
| 18 | */
|
---|
| 19 |
|
---|
| 20 | import "unknwn.idl";
|
---|
| 21 | cpp_quote("/* FIXME: #include <gcghost.h> */")
|
---|
| 22 | cpp_quote("/* FIXME: #include <ivalidator.h> */")
|
---|
| 23 |
|
---|
| 24 | cpp_quote("HRESULT WINAPI CorBindToRuntimeHost(LPCWSTR,LPCWSTR,LPCWSTR,VOID*,DWORD,REFCLSID,REFIID,LPVOID*);")
|
---|
| 25 | cpp_quote("void WINAPI CorExitProcess(int);")
|
---|
| 26 | cpp_quote("HRESULT WINAPI GetCORSystemDirectory(LPWSTR,DWORD,DWORD*);")
|
---|
| 27 | cpp_quote("HRESULT WINAPI GetCORVersion(LPWSTR,DWORD,DWORD*);")
|
---|
| 28 | cpp_quote("HRESULT WINAPI GetRequestedRuntimeInfo(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,DWORD,LPWSTR,DWORD,DWORD*,LPWSTR,DWORD,DWORD*);")
|
---|
| 29 | cpp_quote("HRESULT WINAPI LoadLibraryShim(LPCWSTR,LPCWSTR,LPVOID,HMODULE*);")
|
---|
| 30 | cpp_quote("#ifdef WINE_STRICT_PROTOTYPES")
|
---|
| 31 | cpp_quote("typedef HRESULT (__stdcall *FLockClrVersionCallback)(void);")
|
---|
| 32 | cpp_quote("#else")
|
---|
| 33 | cpp_quote("typedef HRESULT (__stdcall *FLockClrVersionCallback)();")
|
---|
| 34 | cpp_quote("#endif")
|
---|
| 35 | cpp_quote("HRESULT WINAPI LockClrVersion(FLockClrVersionCallback,FLockClrVersionCallback*,FLockClrVersionCallback*);")
|
---|
| 36 |
|
---|
| 37 | typedef void* HDOMAINENUM;
|
---|
| 38 |
|
---|
| 39 | typedef enum RUNTIME_INFO_FLAGS {
|
---|
| 40 | RUNTIME_INFO_UPGRADE_VERSION = 0x1,
|
---|
| 41 | RUNTIME_INFO_REQUEST_IA64 = 0x2,
|
---|
| 42 | RUNTIME_INFO_REQUEST_AMD64 = 0x4,
|
---|
| 43 | RUNTIME_INFO_REQUEST_X86 = 0x8,
|
---|
| 44 | RUNTIME_INFO_DONT_RETURN_DIRECTORY = 0x10,
|
---|
| 45 | RUNTIME_INFO_DONT_RETURN_VERSION = 0x20,
|
---|
| 46 | RUNTIME_INFO_DONT_SHOW_ERROR_DIALOG = 0x40
|
---|
| 47 | } RUNTIME_INFO_FLAGS;
|
---|
| 48 |
|
---|
| 49 | typedef HRESULT (__stdcall *FExecuteInAppDomainCallback)([in] void* cookie);
|
---|
| 50 |
|
---|
| 51 | [
|
---|
| 52 | uuid(F31D1788-C397-4725-87A5-6AF3472C2791),
|
---|
| 53 | version(1.0),
|
---|
| 54 | object,
|
---|
| 55 | local
|
---|
| 56 | ]
|
---|
| 57 | interface IGCThreadControl : IUnknown
|
---|
| 58 | {
|
---|
| 59 | HRESULT ThreadIsBlockingForSuspension();
|
---|
| 60 |
|
---|
| 61 | HRESULT SuspensionStarting();
|
---|
| 62 |
|
---|
| 63 | HRESULT SuspensionEnding(DWORD generation);
|
---|
| 64 | }
|
---|
| 65 |
|
---|
| 66 | [
|
---|
| 67 | uuid(5513D564-8374-4cb9-AED9-0083F4160A1D),
|
---|
| 68 | version(1.1),
|
---|
| 69 | local,
|
---|
| 70 | object
|
---|
| 71 | ]
|
---|
| 72 | interface IGCHostControl : IUnknown
|
---|
| 73 | {
|
---|
| 74 | HRESULT RequestVirtualMemLimit([in] SIZE_T nMaxVirtualMemMB,
|
---|
| 75 | [in, out] SIZE_T* nNewMaxVirtualMemMB);
|
---|
| 76 | }
|
---|
| 77 |
|
---|
| 78 | [
|
---|
| 79 | uuid(23D86786-0BB5-4774-8FB5-E3522ADD6246),
|
---|
| 80 | version(1.0),
|
---|
| 81 | local,
|
---|
| 82 | object
|
---|
| 83 | ]
|
---|
| 84 | interface IDebuggerThreadControl : IUnknown
|
---|
| 85 | {
|
---|
| 86 | HRESULT ThreadIsBlockingForDebugger();
|
---|
| 87 |
|
---|
| 88 | HRESULT ReleaseAllRuntimeThreads();
|
---|
| 89 |
|
---|
| 90 | HRESULT StartBlockingForDebugger(DWORD dwUnused);
|
---|
| 91 | }
|
---|
| 92 |
|
---|
| 93 | [
|
---|
| 94 | uuid(5C2B07A5-1E98-11d3-872F-00C04F79ED0D),
|
---|
| 95 | version(1.0),
|
---|
| 96 | local,
|
---|
| 97 | object
|
---|
| 98 | ]
|
---|
| 99 | interface ICorConfiguration : IUnknown
|
---|
| 100 | {
|
---|
| 101 | HRESULT SetGCThreadControl([in] IGCThreadControl* GCThreadControl);
|
---|
| 102 |
|
---|
| 103 | HRESULT SetGCHostControl([in] IGCHostControl* GCHostControl);
|
---|
| 104 |
|
---|
| 105 | HRESULT SetDebuggerThreadControl([in] IDebuggerThreadControl* debuggerThreadControl);
|
---|
| 106 |
|
---|
| 107 | HRESULT AddDebuggerSpecialThread([in] DWORD specialThreadId);
|
---|
| 108 | }
|
---|
| 109 |
|
---|
| 110 | [
|
---|
| 111 | uuid(9065597E-D1A1-4fb2-B6BA-7E1FCE230F61),
|
---|
| 112 | version(1.0),
|
---|
| 113 | local
|
---|
| 114 | ]
|
---|
| 115 | interface ICLRControl : IUnknown
|
---|
| 116 | {
|
---|
| 117 | HRESULT GetCLRManager([in] REFIID riid, [out] void **ppObject);
|
---|
| 118 |
|
---|
| 119 | HRESULT SetAppDomainManagerType([in] LPCWSTR appDomainManagerAssembly,
|
---|
| 120 | [in] LPCWSTR appDomainManagerType);
|
---|
| 121 | }
|
---|
| 122 |
|
---|
| 123 | [
|
---|
| 124 | uuid(02CA073C-7079-4860-880A-C2F7A449C991),
|
---|
| 125 | version(1.0),
|
---|
| 126 | local
|
---|
| 127 | ]
|
---|
| 128 | interface IHostControl : IUnknown
|
---|
| 129 | {
|
---|
| 130 | HRESULT GetHostManager( [in] REFIID riid, [out] void **ppObject);
|
---|
| 131 |
|
---|
| 132 | HRESULT SetAppDomainManager([in] DWORD appDomainID,
|
---|
| 133 | [in] IUnknown* appDomainManager);
|
---|
| 134 | }
|
---|
| 135 |
|
---|
| 136 | cpp_quote("DEFINE_GUID(CLSID_CorRuntimeHost, 0xcb2f6723,0xab3a,0x11d2,0x9c,0x40,0x00,0xc0,0x4f,0xa3,0x0a,0x3e);")
|
---|
| 137 |
|
---|
| 138 | [
|
---|
| 139 | uuid(CB2F6722-AB3A-11d2-9C40-00C04FA30A3E),
|
---|
| 140 | version(1.0),
|
---|
| 141 | local,
|
---|
| 142 | object
|
---|
| 143 | ]
|
---|
| 144 | interface ICorRuntimeHost : IUnknown
|
---|
| 145 | {
|
---|
| 146 | HRESULT CreateLogicalThreadState();
|
---|
| 147 | HRESULT DeleteLogicalThreadState();
|
---|
| 148 | HRESULT SwitchInLogicalThreadState([in] DWORD *fiberCookie);
|
---|
| 149 |
|
---|
| 150 | HRESULT SwitchOutLogicalThreadState([out] DWORD **fiberCookie);
|
---|
| 151 |
|
---|
| 152 | HRESULT LocksHeldByLogicalThread( [out] DWORD *pCount );
|
---|
| 153 |
|
---|
| 154 | HRESULT MapFile([in] HANDLE hFile, [out] HMODULE* mapAddress);
|
---|
| 155 |
|
---|
| 156 | HRESULT GetConfiguration([out] ICorConfiguration** pConfiguration);
|
---|
| 157 |
|
---|
| 158 | HRESULT Start();
|
---|
| 159 |
|
---|
| 160 | HRESULT Stop();
|
---|
| 161 |
|
---|
| 162 | HRESULT CreateDomain([in] LPCWSTR friendlyName,
|
---|
| 163 | [in] IUnknown* identityArray,
|
---|
| 164 | [out] IUnknown** appDomain);
|
---|
| 165 |
|
---|
| 166 | HRESULT GetDefaultDomain([out] IUnknown** pAppDomain);
|
---|
| 167 |
|
---|
| 168 | HRESULT EnumDomains([out] HDOMAINENUM *hEnum);
|
---|
| 169 |
|
---|
| 170 | HRESULT NextDomain([in] HDOMAINENUM hEnum, [out] IUnknown** appDomain);
|
---|
| 171 |
|
---|
| 172 | HRESULT CloseEnum([in] HDOMAINENUM hEnum);
|
---|
| 173 |
|
---|
| 174 | HRESULT CreateDomainEx([in] LPCWSTR friendlyName,
|
---|
| 175 | [in] IUnknown* setup,
|
---|
| 176 | [in] IUnknown* evidence,
|
---|
| 177 | [out] IUnknown** appDomain);
|
---|
| 178 |
|
---|
| 179 | HRESULT CreateDomainSetup([out] IUnknown** appDomainSetup);
|
---|
| 180 |
|
---|
| 181 | HRESULT CreateEvidence([out] IUnknown** evidence);
|
---|
| 182 |
|
---|
| 183 | HRESULT UnloadDomain([in] IUnknown* appDomain);
|
---|
| 184 |
|
---|
| 185 | HRESULT CurrentDomain([out] IUnknown** appDomain);
|
---|
| 186 | }
|
---|
| 187 |
|
---|
| 188 | cpp_quote("DEFINE_GUID(CLSID_CLRRuntimeHost, 0x90f1a06e,0x7712,0x4762,0x86,0xb5,0x7a,0x5e,0xba,0x6b,0xdb,0x02);")
|
---|
| 189 |
|
---|
| 190 | [
|
---|
| 191 | uuid(90f1a06c-7712-4762-86b5-7a5eba6bdb02),
|
---|
| 192 | local,
|
---|
| 193 | object
|
---|
| 194 | ]
|
---|
| 195 | interface ICLRRuntimeHost : IUnknown
|
---|
| 196 | {
|
---|
| 197 | HRESULT Start();
|
---|
| 198 |
|
---|
| 199 | HRESULT Stop();
|
---|
| 200 |
|
---|
| 201 | HRESULT SetHostControl([in] IHostControl *pHostControl);
|
---|
| 202 |
|
---|
| 203 | HRESULT GetCLRControl([out] ICLRControl **pCLRControl);
|
---|
| 204 |
|
---|
| 205 | HRESULT UnloadAppDomain([in] DWORD dwAppDomainId,
|
---|
| 206 | [in] BOOL fWaitUntilDone);
|
---|
| 207 |
|
---|
| 208 | HRESULT ExecuteInAppDomain([in] DWORD dwAppDomainId,
|
---|
| 209 | [in] FExecuteInAppDomainCallback pCallback,
|
---|
| 210 | [in] void *cookie);
|
---|
| 211 |
|
---|
| 212 | HRESULT GetCurrentAppDomainId([out] DWORD *pdwAppDomainId);
|
---|
| 213 |
|
---|
| 214 | HRESULT ExecuteApplication([in] LPCWSTR pwzAppFullName,
|
---|
| 215 | [in] DWORD dwManifestPaths,
|
---|
| 216 | [in] LPCWSTR *ppwzManifestPaths,
|
---|
| 217 | [in] DWORD dwActivationData,
|
---|
| 218 | [in] LPCWSTR *ppwzActivationData,
|
---|
| 219 | [out] int *pReturnValue);
|
---|
| 220 |
|
---|
| 221 | HRESULT ExecuteInDefaultAppDomain([in] LPCWSTR pwzAssemblyPath,
|
---|
| 222 | [in] LPCWSTR pwzTypeName,
|
---|
| 223 | [in] LPCWSTR pwzMethodName,
|
---|
| 224 | [in] LPCWSTR pwzArgument,
|
---|
| 225 | [out] DWORD *pReturnValue);
|
---|
| 226 | }
|
---|
| 227 |
|
---|
| 228 | [
|
---|
| 229 | uuid(C3FCC19E-A970-11d2-8B5A-00A0C9B7C9C4),
|
---|
| 230 | local,
|
---|
| 231 | object
|
---|
| 232 | ]
|
---|
| 233 | interface IManagedObject : IUnknown
|
---|
| 234 | {
|
---|
| 235 | HRESULT GetSerializedBuffer([out] BSTR *pBSTR);
|
---|
| 236 |
|
---|
| 237 | HRESULT GetObjectIdentity([out] BSTR *pBSTRGUID,
|
---|
| 238 | [out] int *AppDomainID,
|
---|
| 239 | [out] int *pCCW);
|
---|
| 240 | }
|
---|