1 /*** Autogenerated by WIDL 6.4 from include/mscoree.idl - Do not edit ***/
2 
3 #ifdef _WIN32
4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
6 #endif
7 #include <rpc.h>
8 #include <rpcndr.h>
9 #endif
10 
11 #ifndef COM_NO_WINDOWS_H
12 #include <windows.h>
13 #include <ole2.h>
14 #endif
15 
16 #ifndef __mscoree_h__
17 #define __mscoree_h__
18 
19 /* Forward declarations */
20 
21 #ifndef __IGCThreadControl_FWD_DEFINED__
22 #define __IGCThreadControl_FWD_DEFINED__
23 typedef interface IGCThreadControl IGCThreadControl;
24 #ifdef __cplusplus
25 interface IGCThreadControl;
26 #endif /* __cplusplus */
27 #endif
28 
29 #ifndef __IGCHostControl_FWD_DEFINED__
30 #define __IGCHostControl_FWD_DEFINED__
31 typedef interface IGCHostControl IGCHostControl;
32 #ifdef __cplusplus
33 interface IGCHostControl;
34 #endif /* __cplusplus */
35 #endif
36 
37 #ifndef __IDebuggerThreadControl_FWD_DEFINED__
38 #define __IDebuggerThreadControl_FWD_DEFINED__
39 typedef interface IDebuggerThreadControl IDebuggerThreadControl;
40 #ifdef __cplusplus
41 interface IDebuggerThreadControl;
42 #endif /* __cplusplus */
43 #endif
44 
45 #ifndef __ICorConfiguration_FWD_DEFINED__
46 #define __ICorConfiguration_FWD_DEFINED__
47 typedef interface ICorConfiguration ICorConfiguration;
48 #ifdef __cplusplus
49 interface ICorConfiguration;
50 #endif /* __cplusplus */
51 #endif
52 
53 #ifndef __ICLRControl_FWD_DEFINED__
54 #define __ICLRControl_FWD_DEFINED__
55 typedef interface ICLRControl ICLRControl;
56 #ifdef __cplusplus
57 interface ICLRControl;
58 #endif /* __cplusplus */
59 #endif
60 
61 #ifndef __IHostControl_FWD_DEFINED__
62 #define __IHostControl_FWD_DEFINED__
63 typedef interface IHostControl IHostControl;
64 #ifdef __cplusplus
65 interface IHostControl;
66 #endif /* __cplusplus */
67 #endif
68 
69 #ifndef __ICorRuntimeHost_FWD_DEFINED__
70 #define __ICorRuntimeHost_FWD_DEFINED__
71 typedef interface ICorRuntimeHost ICorRuntimeHost;
72 #ifdef __cplusplus
73 interface ICorRuntimeHost;
74 #endif /* __cplusplus */
75 #endif
76 
77 #ifndef __ICLRRuntimeHost_FWD_DEFINED__
78 #define __ICLRRuntimeHost_FWD_DEFINED__
79 typedef interface ICLRRuntimeHost ICLRRuntimeHost;
80 #ifdef __cplusplus
81 interface ICLRRuntimeHost;
82 #endif /* __cplusplus */
83 #endif
84 
85 #ifndef __IManagedObject_FWD_DEFINED__
86 #define __IManagedObject_FWD_DEFINED__
87 typedef interface IManagedObject IManagedObject;
88 #ifdef __cplusplus
89 interface IManagedObject;
90 #endif /* __cplusplus */
91 #endif
92 
93 /* Headers for imported files */
94 
95 #include <unknwn.h>
96 
97 #ifdef __cplusplus
98 extern "C" {
99 #endif
100 
101 /* FIXME: #include <gcghost.h> */
102 /* FIXME: #include <ivalidator.h> */
103 HRESULT     WINAPI CorBindToRuntimeHost(LPCWSTR,LPCWSTR,LPCWSTR,VOID*,DWORD,REFCLSID,REFIID,LPVOID*);
104 void        WINAPI CorExitProcess(int);
105 HRESULT     WINAPI GetCORSystemDirectory(LPWSTR,DWORD,DWORD*);
106 HRESULT     WINAPI GetCORVersion(LPWSTR,DWORD,DWORD*);
107 HRESULT     WINAPI GetRequestedRuntimeInfo(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,DWORD,LPWSTR,DWORD,DWORD*,LPWSTR,DWORD,DWORD*);
108 HRESULT     WINAPI LoadLibraryShim(LPCWSTR,LPCWSTR,LPVOID,HMODULE*);
109 #ifdef WINE_STRICT_PROTOTYPES
110 typedef HRESULT (__stdcall *FLockClrVersionCallback)(void);
111 #else
112 typedef HRESULT (__stdcall *FLockClrVersionCallback)();
113 #endif
114 HRESULT     WINAPI LockClrVersion(FLockClrVersionCallback,FLockClrVersionCallback*,FLockClrVersionCallback*);
115 typedef void *HDOMAINENUM;
116 typedef enum RUNTIME_INFO_FLAGS {
117     RUNTIME_INFO_UPGRADE_VERSION = 0x1,
118     RUNTIME_INFO_REQUEST_IA64 = 0x2,
119     RUNTIME_INFO_REQUEST_AMD64 = 0x4,
120     RUNTIME_INFO_REQUEST_X86 = 0x8,
121     RUNTIME_INFO_DONT_RETURN_DIRECTORY = 0x10,
122     RUNTIME_INFO_DONT_RETURN_VERSION = 0x20,
123     RUNTIME_INFO_DONT_SHOW_ERROR_DIALOG = 0x40
124 } RUNTIME_INFO_FLAGS;
125 typedef HRESULT (__stdcall *FExecuteInAppDomainCallback)(void *cookie);
126 /*****************************************************************************
127  * IGCThreadControl interface
128  */
129 #ifndef __IGCThreadControl_INTERFACE_DEFINED__
130 #define __IGCThreadControl_INTERFACE_DEFINED__
131 
132 DEFINE_GUID(IID_IGCThreadControl, 0xf31d1788, 0xc397, 0x4725, 0x87,0xa5, 0x6a,0xf3,0x47,0x2c,0x27,0x91);
133 #if defined(__cplusplus) && !defined(CINTERFACE)
134 MIDL_INTERFACE("f31d1788-c397-4725-87a5-6af3472c2791")
135 IGCThreadControl : public IUnknown
136 {
137     virtual HRESULT STDMETHODCALLTYPE ThreadIsBlockingForSuspension(
138         ) = 0;
139 
140     virtual HRESULT STDMETHODCALLTYPE SuspensionStarting(
141         ) = 0;
142 
143     virtual HRESULT STDMETHODCALLTYPE SuspensionEnding(
144         DWORD generation) = 0;
145 
146 };
147 #ifdef __CRT_UUID_DECL
148 __CRT_UUID_DECL(IGCThreadControl, 0xf31d1788, 0xc397, 0x4725, 0x87,0xa5, 0x6a,0xf3,0x47,0x2c,0x27,0x91)
149 #endif
150 #else
151 typedef struct IGCThreadControlVtbl {
152     BEGIN_INTERFACE
153 
154     /*** IUnknown methods ***/
155     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
156         IGCThreadControl *This,
157         REFIID riid,
158         void **ppvObject);
159 
160     ULONG (STDMETHODCALLTYPE *AddRef)(
161         IGCThreadControl *This);
162 
163     ULONG (STDMETHODCALLTYPE *Release)(
164         IGCThreadControl *This);
165 
166     /*** IGCThreadControl methods ***/
167     HRESULT (STDMETHODCALLTYPE *ThreadIsBlockingForSuspension)(
168         IGCThreadControl *This);
169 
170     HRESULT (STDMETHODCALLTYPE *SuspensionStarting)(
171         IGCThreadControl *This);
172 
173     HRESULT (STDMETHODCALLTYPE *SuspensionEnding)(
174         IGCThreadControl *This,
175         DWORD generation);
176 
177     END_INTERFACE
178 } IGCThreadControlVtbl;
179 
180 interface IGCThreadControl {
181     CONST_VTBL IGCThreadControlVtbl* lpVtbl;
182 };
183 
184 #ifdef COBJMACROS
185 #ifndef WIDL_C_INLINE_WRAPPERS
186 /*** IUnknown methods ***/
187 #define IGCThreadControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
188 #define IGCThreadControl_AddRef(This) (This)->lpVtbl->AddRef(This)
189 #define IGCThreadControl_Release(This) (This)->lpVtbl->Release(This)
190 /*** IGCThreadControl methods ***/
191 #define IGCThreadControl_ThreadIsBlockingForSuspension(This) (This)->lpVtbl->ThreadIsBlockingForSuspension(This)
192 #define IGCThreadControl_SuspensionStarting(This) (This)->lpVtbl->SuspensionStarting(This)
193 #define IGCThreadControl_SuspensionEnding(This,generation) (This)->lpVtbl->SuspensionEnding(This,generation)
194 #else
195 /*** IUnknown methods ***/
196 static FORCEINLINE HRESULT IGCThreadControl_QueryInterface(IGCThreadControl* This,REFIID riid,void **ppvObject) {
197     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
198 }
199 static FORCEINLINE ULONG IGCThreadControl_AddRef(IGCThreadControl* This) {
200     return This->lpVtbl->AddRef(This);
201 }
202 static FORCEINLINE ULONG IGCThreadControl_Release(IGCThreadControl* This) {
203     return This->lpVtbl->Release(This);
204 }
205 /*** IGCThreadControl methods ***/
206 static FORCEINLINE HRESULT IGCThreadControl_ThreadIsBlockingForSuspension(IGCThreadControl* This) {
207     return This->lpVtbl->ThreadIsBlockingForSuspension(This);
208 }
209 static FORCEINLINE HRESULT IGCThreadControl_SuspensionStarting(IGCThreadControl* This) {
210     return This->lpVtbl->SuspensionStarting(This);
211 }
212 static FORCEINLINE HRESULT IGCThreadControl_SuspensionEnding(IGCThreadControl* This,DWORD generation) {
213     return This->lpVtbl->SuspensionEnding(This,generation);
214 }
215 #endif
216 #endif
217 
218 #endif
219 
220 
221 #endif  /* __IGCThreadControl_INTERFACE_DEFINED__ */
222 
223 /*****************************************************************************
224  * IGCHostControl interface
225  */
226 #ifndef __IGCHostControl_INTERFACE_DEFINED__
227 #define __IGCHostControl_INTERFACE_DEFINED__
228 
229 DEFINE_GUID(IID_IGCHostControl, 0x5513d564, 0x8374, 0x4cb9, 0xae,0xd9, 0x00,0x83,0xf4,0x16,0x0a,0x1d);
230 #if defined(__cplusplus) && !defined(CINTERFACE)
231 MIDL_INTERFACE("5513d564-8374-4cb9-aed9-0083f4160a1d")
232 IGCHostControl : public IUnknown
233 {
234     virtual HRESULT STDMETHODCALLTYPE RequestVirtualMemLimit(
235         SIZE_T nMaxVirtualMemMB,
236         SIZE_T *nNewMaxVirtualMemMB) = 0;
237 
238 };
239 #ifdef __CRT_UUID_DECL
240 __CRT_UUID_DECL(IGCHostControl, 0x5513d564, 0x8374, 0x4cb9, 0xae,0xd9, 0x00,0x83,0xf4,0x16,0x0a,0x1d)
241 #endif
242 #else
243 typedef struct IGCHostControlVtbl {
244     BEGIN_INTERFACE
245 
246     /*** IUnknown methods ***/
247     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
248         IGCHostControl *This,
249         REFIID riid,
250         void **ppvObject);
251 
252     ULONG (STDMETHODCALLTYPE *AddRef)(
253         IGCHostControl *This);
254 
255     ULONG (STDMETHODCALLTYPE *Release)(
256         IGCHostControl *This);
257 
258     /*** IGCHostControl methods ***/
259     HRESULT (STDMETHODCALLTYPE *RequestVirtualMemLimit)(
260         IGCHostControl *This,
261         SIZE_T nMaxVirtualMemMB,
262         SIZE_T *nNewMaxVirtualMemMB);
263 
264     END_INTERFACE
265 } IGCHostControlVtbl;
266 
267 interface IGCHostControl {
268     CONST_VTBL IGCHostControlVtbl* lpVtbl;
269 };
270 
271 #ifdef COBJMACROS
272 #ifndef WIDL_C_INLINE_WRAPPERS
273 /*** IUnknown methods ***/
274 #define IGCHostControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
275 #define IGCHostControl_AddRef(This) (This)->lpVtbl->AddRef(This)
276 #define IGCHostControl_Release(This) (This)->lpVtbl->Release(This)
277 /*** IGCHostControl methods ***/
278 #define IGCHostControl_RequestVirtualMemLimit(This,nMaxVirtualMemMB,nNewMaxVirtualMemMB) (This)->lpVtbl->RequestVirtualMemLimit(This,nMaxVirtualMemMB,nNewMaxVirtualMemMB)
279 #else
280 /*** IUnknown methods ***/
281 static FORCEINLINE HRESULT IGCHostControl_QueryInterface(IGCHostControl* This,REFIID riid,void **ppvObject) {
282     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
283 }
284 static FORCEINLINE ULONG IGCHostControl_AddRef(IGCHostControl* This) {
285     return This->lpVtbl->AddRef(This);
286 }
287 static FORCEINLINE ULONG IGCHostControl_Release(IGCHostControl* This) {
288     return This->lpVtbl->Release(This);
289 }
290 /*** IGCHostControl methods ***/
291 static FORCEINLINE HRESULT IGCHostControl_RequestVirtualMemLimit(IGCHostControl* This,SIZE_T nMaxVirtualMemMB,SIZE_T *nNewMaxVirtualMemMB) {
292     return This->lpVtbl->RequestVirtualMemLimit(This,nMaxVirtualMemMB,nNewMaxVirtualMemMB);
293 }
294 #endif
295 #endif
296 
297 #endif
298 
299 
300 #endif  /* __IGCHostControl_INTERFACE_DEFINED__ */
301 
302 /*****************************************************************************
303  * IDebuggerThreadControl interface
304  */
305 #ifndef __IDebuggerThreadControl_INTERFACE_DEFINED__
306 #define __IDebuggerThreadControl_INTERFACE_DEFINED__
307 
308 DEFINE_GUID(IID_IDebuggerThreadControl, 0x23d86786, 0x0bb5, 0x4774, 0x8f,0xb5, 0xe3,0x52,0x2a,0xdd,0x62,0x46);
309 #if defined(__cplusplus) && !defined(CINTERFACE)
310 MIDL_INTERFACE("23d86786-0bb5-4774-8fb5-e3522add6246")
311 IDebuggerThreadControl : public IUnknown
312 {
313     virtual HRESULT STDMETHODCALLTYPE ThreadIsBlockingForDebugger(
314         ) = 0;
315 
316     virtual HRESULT STDMETHODCALLTYPE ReleaseAllRuntimeThreads(
317         ) = 0;
318 
319     virtual HRESULT STDMETHODCALLTYPE StartBlockingForDebugger(
320         DWORD dwUnused) = 0;
321 
322 };
323 #ifdef __CRT_UUID_DECL
324 __CRT_UUID_DECL(IDebuggerThreadControl, 0x23d86786, 0x0bb5, 0x4774, 0x8f,0xb5, 0xe3,0x52,0x2a,0xdd,0x62,0x46)
325 #endif
326 #else
327 typedef struct IDebuggerThreadControlVtbl {
328     BEGIN_INTERFACE
329 
330     /*** IUnknown methods ***/
331     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
332         IDebuggerThreadControl *This,
333         REFIID riid,
334         void **ppvObject);
335 
336     ULONG (STDMETHODCALLTYPE *AddRef)(
337         IDebuggerThreadControl *This);
338 
339     ULONG (STDMETHODCALLTYPE *Release)(
340         IDebuggerThreadControl *This);
341 
342     /*** IDebuggerThreadControl methods ***/
343     HRESULT (STDMETHODCALLTYPE *ThreadIsBlockingForDebugger)(
344         IDebuggerThreadControl *This);
345 
346     HRESULT (STDMETHODCALLTYPE *ReleaseAllRuntimeThreads)(
347         IDebuggerThreadControl *This);
348 
349     HRESULT (STDMETHODCALLTYPE *StartBlockingForDebugger)(
350         IDebuggerThreadControl *This,
351         DWORD dwUnused);
352 
353     END_INTERFACE
354 } IDebuggerThreadControlVtbl;
355 
356 interface IDebuggerThreadControl {
357     CONST_VTBL IDebuggerThreadControlVtbl* lpVtbl;
358 };
359 
360 #ifdef COBJMACROS
361 #ifndef WIDL_C_INLINE_WRAPPERS
362 /*** IUnknown methods ***/
363 #define IDebuggerThreadControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
364 #define IDebuggerThreadControl_AddRef(This) (This)->lpVtbl->AddRef(This)
365 #define IDebuggerThreadControl_Release(This) (This)->lpVtbl->Release(This)
366 /*** IDebuggerThreadControl methods ***/
367 #define IDebuggerThreadControl_ThreadIsBlockingForDebugger(This) (This)->lpVtbl->ThreadIsBlockingForDebugger(This)
368 #define IDebuggerThreadControl_ReleaseAllRuntimeThreads(This) (This)->lpVtbl->ReleaseAllRuntimeThreads(This)
369 #define IDebuggerThreadControl_StartBlockingForDebugger(This,dwUnused) (This)->lpVtbl->StartBlockingForDebugger(This,dwUnused)
370 #else
371 /*** IUnknown methods ***/
372 static FORCEINLINE HRESULT IDebuggerThreadControl_QueryInterface(IDebuggerThreadControl* This,REFIID riid,void **ppvObject) {
373     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
374 }
375 static FORCEINLINE ULONG IDebuggerThreadControl_AddRef(IDebuggerThreadControl* This) {
376     return This->lpVtbl->AddRef(This);
377 }
378 static FORCEINLINE ULONG IDebuggerThreadControl_Release(IDebuggerThreadControl* This) {
379     return This->lpVtbl->Release(This);
380 }
381 /*** IDebuggerThreadControl methods ***/
382 static FORCEINLINE HRESULT IDebuggerThreadControl_ThreadIsBlockingForDebugger(IDebuggerThreadControl* This) {
383     return This->lpVtbl->ThreadIsBlockingForDebugger(This);
384 }
385 static FORCEINLINE HRESULT IDebuggerThreadControl_ReleaseAllRuntimeThreads(IDebuggerThreadControl* This) {
386     return This->lpVtbl->ReleaseAllRuntimeThreads(This);
387 }
388 static FORCEINLINE HRESULT IDebuggerThreadControl_StartBlockingForDebugger(IDebuggerThreadControl* This,DWORD dwUnused) {
389     return This->lpVtbl->StartBlockingForDebugger(This,dwUnused);
390 }
391 #endif
392 #endif
393 
394 #endif
395 
396 
397 #endif  /* __IDebuggerThreadControl_INTERFACE_DEFINED__ */
398 
399 /*****************************************************************************
400  * ICorConfiguration interface
401  */
402 #ifndef __ICorConfiguration_INTERFACE_DEFINED__
403 #define __ICorConfiguration_INTERFACE_DEFINED__
404 
405 DEFINE_GUID(IID_ICorConfiguration, 0x5c2b07a5, 0x1e98, 0x11d3, 0x87,0x2f, 0x00,0xc0,0x4f,0x79,0xed,0x0d);
406 #if defined(__cplusplus) && !defined(CINTERFACE)
407 MIDL_INTERFACE("5c2b07a5-1e98-11d3-872f-00c04f79ed0d")
408 ICorConfiguration : public IUnknown
409 {
410     virtual HRESULT STDMETHODCALLTYPE SetGCThreadControl(
411         IGCThreadControl *GCThreadControl) = 0;
412 
413     virtual HRESULT STDMETHODCALLTYPE SetGCHostControl(
414         IGCHostControl *GCHostControl) = 0;
415 
416     virtual HRESULT STDMETHODCALLTYPE SetDebuggerThreadControl(
417         IDebuggerThreadControl *debuggerThreadControl) = 0;
418 
419     virtual HRESULT STDMETHODCALLTYPE AddDebuggerSpecialThread(
420         DWORD specialThreadId) = 0;
421 
422 };
423 #ifdef __CRT_UUID_DECL
424 __CRT_UUID_DECL(ICorConfiguration, 0x5c2b07a5, 0x1e98, 0x11d3, 0x87,0x2f, 0x00,0xc0,0x4f,0x79,0xed,0x0d)
425 #endif
426 #else
427 typedef struct ICorConfigurationVtbl {
428     BEGIN_INTERFACE
429 
430     /*** IUnknown methods ***/
431     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
432         ICorConfiguration *This,
433         REFIID riid,
434         void **ppvObject);
435 
436     ULONG (STDMETHODCALLTYPE *AddRef)(
437         ICorConfiguration *This);
438 
439     ULONG (STDMETHODCALLTYPE *Release)(
440         ICorConfiguration *This);
441 
442     /*** ICorConfiguration methods ***/
443     HRESULT (STDMETHODCALLTYPE *SetGCThreadControl)(
444         ICorConfiguration *This,
445         IGCThreadControl *GCThreadControl);
446 
447     HRESULT (STDMETHODCALLTYPE *SetGCHostControl)(
448         ICorConfiguration *This,
449         IGCHostControl *GCHostControl);
450 
451     HRESULT (STDMETHODCALLTYPE *SetDebuggerThreadControl)(
452         ICorConfiguration *This,
453         IDebuggerThreadControl *debuggerThreadControl);
454 
455     HRESULT (STDMETHODCALLTYPE *AddDebuggerSpecialThread)(
456         ICorConfiguration *This,
457         DWORD specialThreadId);
458 
459     END_INTERFACE
460 } ICorConfigurationVtbl;
461 
462 interface ICorConfiguration {
463     CONST_VTBL ICorConfigurationVtbl* lpVtbl;
464 };
465 
466 #ifdef COBJMACROS
467 #ifndef WIDL_C_INLINE_WRAPPERS
468 /*** IUnknown methods ***/
469 #define ICorConfiguration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
470 #define ICorConfiguration_AddRef(This) (This)->lpVtbl->AddRef(This)
471 #define ICorConfiguration_Release(This) (This)->lpVtbl->Release(This)
472 /*** ICorConfiguration methods ***/
473 #define ICorConfiguration_SetGCThreadControl(This,GCThreadControl) (This)->lpVtbl->SetGCThreadControl(This,GCThreadControl)
474 #define ICorConfiguration_SetGCHostControl(This,GCHostControl) (This)->lpVtbl->SetGCHostControl(This,GCHostControl)
475 #define ICorConfiguration_SetDebuggerThreadControl(This,debuggerThreadControl) (This)->lpVtbl->SetDebuggerThreadControl(This,debuggerThreadControl)
476 #define ICorConfiguration_AddDebuggerSpecialThread(This,specialThreadId) (This)->lpVtbl->AddDebuggerSpecialThread(This,specialThreadId)
477 #else
478 /*** IUnknown methods ***/
479 static FORCEINLINE HRESULT ICorConfiguration_QueryInterface(ICorConfiguration* This,REFIID riid,void **ppvObject) {
480     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
481 }
482 static FORCEINLINE ULONG ICorConfiguration_AddRef(ICorConfiguration* This) {
483     return This->lpVtbl->AddRef(This);
484 }
485 static FORCEINLINE ULONG ICorConfiguration_Release(ICorConfiguration* This) {
486     return This->lpVtbl->Release(This);
487 }
488 /*** ICorConfiguration methods ***/
489 static FORCEINLINE HRESULT ICorConfiguration_SetGCThreadControl(ICorConfiguration* This,IGCThreadControl *GCThreadControl) {
490     return This->lpVtbl->SetGCThreadControl(This,GCThreadControl);
491 }
492 static FORCEINLINE HRESULT ICorConfiguration_SetGCHostControl(ICorConfiguration* This,IGCHostControl *GCHostControl) {
493     return This->lpVtbl->SetGCHostControl(This,GCHostControl);
494 }
495 static FORCEINLINE HRESULT ICorConfiguration_SetDebuggerThreadControl(ICorConfiguration* This,IDebuggerThreadControl *debuggerThreadControl) {
496     return This->lpVtbl->SetDebuggerThreadControl(This,debuggerThreadControl);
497 }
498 static FORCEINLINE HRESULT ICorConfiguration_AddDebuggerSpecialThread(ICorConfiguration* This,DWORD specialThreadId) {
499     return This->lpVtbl->AddDebuggerSpecialThread(This,specialThreadId);
500 }
501 #endif
502 #endif
503 
504 #endif
505 
506 
507 #endif  /* __ICorConfiguration_INTERFACE_DEFINED__ */
508 
509 /*****************************************************************************
510  * ICLRControl interface
511  */
512 #ifndef __ICLRControl_INTERFACE_DEFINED__
513 #define __ICLRControl_INTERFACE_DEFINED__
514 
515 DEFINE_GUID(IID_ICLRControl, 0x9065597e, 0xd1a1, 0x4fb2, 0xb6,0xba, 0x7e,0x1f,0xce,0x23,0x0f,0x61);
516 #if defined(__cplusplus) && !defined(CINTERFACE)
517 MIDL_INTERFACE("9065597e-d1a1-4fb2-b6ba-7e1fce230f61")
518 ICLRControl : public IUnknown
519 {
520     virtual HRESULT STDMETHODCALLTYPE GetCLRManager(
521         REFIID riid,
522         void **ppObject) = 0;
523 
524     virtual HRESULT STDMETHODCALLTYPE SetAppDomainManagerType(
525         LPCWSTR appDomainManagerAssembly,
526         LPCWSTR appDomainManagerType) = 0;
527 
528 };
529 #ifdef __CRT_UUID_DECL
530 __CRT_UUID_DECL(ICLRControl, 0x9065597e, 0xd1a1, 0x4fb2, 0xb6,0xba, 0x7e,0x1f,0xce,0x23,0x0f,0x61)
531 #endif
532 #else
533 typedef struct ICLRControlVtbl {
534     BEGIN_INTERFACE
535 
536     /*** IUnknown methods ***/
537     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
538         ICLRControl *This,
539         REFIID riid,
540         void **ppvObject);
541 
542     ULONG (STDMETHODCALLTYPE *AddRef)(
543         ICLRControl *This);
544 
545     ULONG (STDMETHODCALLTYPE *Release)(
546         ICLRControl *This);
547 
548     /*** ICLRControl methods ***/
549     HRESULT (STDMETHODCALLTYPE *GetCLRManager)(
550         ICLRControl *This,
551         REFIID riid,
552         void **ppObject);
553 
554     HRESULT (STDMETHODCALLTYPE *SetAppDomainManagerType)(
555         ICLRControl *This,
556         LPCWSTR appDomainManagerAssembly,
557         LPCWSTR appDomainManagerType);
558 
559     END_INTERFACE
560 } ICLRControlVtbl;
561 
562 interface ICLRControl {
563     CONST_VTBL ICLRControlVtbl* lpVtbl;
564 };
565 
566 #ifdef COBJMACROS
567 #ifndef WIDL_C_INLINE_WRAPPERS
568 /*** IUnknown methods ***/
569 #define ICLRControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
570 #define ICLRControl_AddRef(This) (This)->lpVtbl->AddRef(This)
571 #define ICLRControl_Release(This) (This)->lpVtbl->Release(This)
572 /*** ICLRControl methods ***/
573 #define ICLRControl_GetCLRManager(This,riid,ppObject) (This)->lpVtbl->GetCLRManager(This,riid,ppObject)
574 #define ICLRControl_SetAppDomainManagerType(This,appDomainManagerAssembly,appDomainManagerType) (This)->lpVtbl->SetAppDomainManagerType(This,appDomainManagerAssembly,appDomainManagerType)
575 #else
576 /*** IUnknown methods ***/
577 static FORCEINLINE HRESULT ICLRControl_QueryInterface(ICLRControl* This,REFIID riid,void **ppvObject) {
578     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
579 }
580 static FORCEINLINE ULONG ICLRControl_AddRef(ICLRControl* This) {
581     return This->lpVtbl->AddRef(This);
582 }
583 static FORCEINLINE ULONG ICLRControl_Release(ICLRControl* This) {
584     return This->lpVtbl->Release(This);
585 }
586 /*** ICLRControl methods ***/
587 static FORCEINLINE HRESULT ICLRControl_GetCLRManager(ICLRControl* This,REFIID riid,void **ppObject) {
588     return This->lpVtbl->GetCLRManager(This,riid,ppObject);
589 }
590 static FORCEINLINE HRESULT ICLRControl_SetAppDomainManagerType(ICLRControl* This,LPCWSTR appDomainManagerAssembly,LPCWSTR appDomainManagerType) {
591     return This->lpVtbl->SetAppDomainManagerType(This,appDomainManagerAssembly,appDomainManagerType);
592 }
593 #endif
594 #endif
595 
596 #endif
597 
598 
599 #endif  /* __ICLRControl_INTERFACE_DEFINED__ */
600 
601 /*****************************************************************************
602  * IHostControl interface
603  */
604 #ifndef __IHostControl_INTERFACE_DEFINED__
605 #define __IHostControl_INTERFACE_DEFINED__
606 
607 DEFINE_GUID(IID_IHostControl, 0x02ca073c, 0x7079, 0x4860, 0x88,0x0a, 0xc2,0xf7,0xa4,0x49,0xc9,0x91);
608 #if defined(__cplusplus) && !defined(CINTERFACE)
609 MIDL_INTERFACE("02ca073c-7079-4860-880a-c2f7a449c991")
610 IHostControl : public IUnknown
611 {
612     virtual HRESULT STDMETHODCALLTYPE GetHostManager(
613         REFIID riid,
614         void **ppObject) = 0;
615 
616     virtual HRESULT STDMETHODCALLTYPE SetAppDomainManager(
617         DWORD appDomainID,
618         IUnknown *appDomainManager) = 0;
619 
620 };
621 #ifdef __CRT_UUID_DECL
622 __CRT_UUID_DECL(IHostControl, 0x02ca073c, 0x7079, 0x4860, 0x88,0x0a, 0xc2,0xf7,0xa4,0x49,0xc9,0x91)
623 #endif
624 #else
625 typedef struct IHostControlVtbl {
626     BEGIN_INTERFACE
627 
628     /*** IUnknown methods ***/
629     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
630         IHostControl *This,
631         REFIID riid,
632         void **ppvObject);
633 
634     ULONG (STDMETHODCALLTYPE *AddRef)(
635         IHostControl *This);
636 
637     ULONG (STDMETHODCALLTYPE *Release)(
638         IHostControl *This);
639 
640     /*** IHostControl methods ***/
641     HRESULT (STDMETHODCALLTYPE *GetHostManager)(
642         IHostControl *This,
643         REFIID riid,
644         void **ppObject);
645 
646     HRESULT (STDMETHODCALLTYPE *SetAppDomainManager)(
647         IHostControl *This,
648         DWORD appDomainID,
649         IUnknown *appDomainManager);
650 
651     END_INTERFACE
652 } IHostControlVtbl;
653 
654 interface IHostControl {
655     CONST_VTBL IHostControlVtbl* lpVtbl;
656 };
657 
658 #ifdef COBJMACROS
659 #ifndef WIDL_C_INLINE_WRAPPERS
660 /*** IUnknown methods ***/
661 #define IHostControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
662 #define IHostControl_AddRef(This) (This)->lpVtbl->AddRef(This)
663 #define IHostControl_Release(This) (This)->lpVtbl->Release(This)
664 /*** IHostControl methods ***/
665 #define IHostControl_GetHostManager(This,riid,ppObject) (This)->lpVtbl->GetHostManager(This,riid,ppObject)
666 #define IHostControl_SetAppDomainManager(This,appDomainID,appDomainManager) (This)->lpVtbl->SetAppDomainManager(This,appDomainID,appDomainManager)
667 #else
668 /*** IUnknown methods ***/
669 static FORCEINLINE HRESULT IHostControl_QueryInterface(IHostControl* This,REFIID riid,void **ppvObject) {
670     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
671 }
672 static FORCEINLINE ULONG IHostControl_AddRef(IHostControl* This) {
673     return This->lpVtbl->AddRef(This);
674 }
675 static FORCEINLINE ULONG IHostControl_Release(IHostControl* This) {
676     return This->lpVtbl->Release(This);
677 }
678 /*** IHostControl methods ***/
679 static FORCEINLINE HRESULT IHostControl_GetHostManager(IHostControl* This,REFIID riid,void **ppObject) {
680     return This->lpVtbl->GetHostManager(This,riid,ppObject);
681 }
682 static FORCEINLINE HRESULT IHostControl_SetAppDomainManager(IHostControl* This,DWORD appDomainID,IUnknown *appDomainManager) {
683     return This->lpVtbl->SetAppDomainManager(This,appDomainID,appDomainManager);
684 }
685 #endif
686 #endif
687 
688 #endif
689 
690 
691 #endif  /* __IHostControl_INTERFACE_DEFINED__ */
692 
693 DEFINE_GUID(CLSID_CorRuntimeHost, 0xcb2f6723,0xab3a,0x11d2,0x9c,0x40,0x00,0xc0,0x4f,0xa3,0x0a,0x3e);
694 /*****************************************************************************
695  * ICorRuntimeHost interface
696  */
697 #ifndef __ICorRuntimeHost_INTERFACE_DEFINED__
698 #define __ICorRuntimeHost_INTERFACE_DEFINED__
699 
700 DEFINE_GUID(IID_ICorRuntimeHost, 0xcb2f6722, 0xab3a, 0x11d2, 0x9c,0x40, 0x00,0xc0,0x4f,0xa3,0x0a,0x3e);
701 #if defined(__cplusplus) && !defined(CINTERFACE)
702 MIDL_INTERFACE("cb2f6722-ab3a-11d2-9c40-00c04fa30a3e")
703 ICorRuntimeHost : public IUnknown
704 {
705     virtual HRESULT STDMETHODCALLTYPE CreateLogicalThreadState(
706         ) = 0;
707 
708     virtual HRESULT STDMETHODCALLTYPE DeleteLogicalThreadState(
709         ) = 0;
710 
711     virtual HRESULT STDMETHODCALLTYPE SwitchInLogicalThreadState(
712         DWORD *fiberCookie) = 0;
713 
714     virtual HRESULT STDMETHODCALLTYPE SwitchOutLogicalThreadState(
715         DWORD **fiberCookie) = 0;
716 
717     virtual HRESULT STDMETHODCALLTYPE LocksHeldByLogicalThread(
718         DWORD *pCount) = 0;
719 
720     virtual HRESULT STDMETHODCALLTYPE MapFile(
721         HANDLE hFile,
722         HMODULE *mapAddress) = 0;
723 
724     virtual HRESULT STDMETHODCALLTYPE GetConfiguration(
725         ICorConfiguration **pConfiguration) = 0;
726 
727     virtual HRESULT STDMETHODCALLTYPE Start(
728         ) = 0;
729 
730     virtual HRESULT STDMETHODCALLTYPE Stop(
731         ) = 0;
732 
733     virtual HRESULT STDMETHODCALLTYPE CreateDomain(
734         LPCWSTR friendlyName,
735         IUnknown *identityArray,
736         IUnknown **appDomain) = 0;
737 
738     virtual HRESULT STDMETHODCALLTYPE GetDefaultDomain(
739         IUnknown **pAppDomain) = 0;
740 
741     virtual HRESULT STDMETHODCALLTYPE EnumDomains(
742         HDOMAINENUM *hEnum) = 0;
743 
744     virtual HRESULT STDMETHODCALLTYPE NextDomain(
745         HDOMAINENUM hEnum,
746         IUnknown **appDomain) = 0;
747 
748     virtual HRESULT STDMETHODCALLTYPE CloseEnum(
749         HDOMAINENUM hEnum) = 0;
750 
751     virtual HRESULT STDMETHODCALLTYPE CreateDomainEx(
752         LPCWSTR friendlyName,
753         IUnknown *setup,
754         IUnknown *evidence,
755         IUnknown **appDomain) = 0;
756 
757     virtual HRESULT STDMETHODCALLTYPE CreateDomainSetup(
758         IUnknown **appDomainSetup) = 0;
759 
760     virtual HRESULT STDMETHODCALLTYPE CreateEvidence(
761         IUnknown **evidence) = 0;
762 
763     virtual HRESULT STDMETHODCALLTYPE UnloadDomain(
764         IUnknown *appDomain) = 0;
765 
766     virtual HRESULT STDMETHODCALLTYPE CurrentDomain(
767         IUnknown **appDomain) = 0;
768 
769 };
770 #ifdef __CRT_UUID_DECL
771 __CRT_UUID_DECL(ICorRuntimeHost, 0xcb2f6722, 0xab3a, 0x11d2, 0x9c,0x40, 0x00,0xc0,0x4f,0xa3,0x0a,0x3e)
772 #endif
773 #else
774 typedef struct ICorRuntimeHostVtbl {
775     BEGIN_INTERFACE
776 
777     /*** IUnknown methods ***/
778     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
779         ICorRuntimeHost *This,
780         REFIID riid,
781         void **ppvObject);
782 
783     ULONG (STDMETHODCALLTYPE *AddRef)(
784         ICorRuntimeHost *This);
785 
786     ULONG (STDMETHODCALLTYPE *Release)(
787         ICorRuntimeHost *This);
788 
789     /*** ICorRuntimeHost methods ***/
790     HRESULT (STDMETHODCALLTYPE *CreateLogicalThreadState)(
791         ICorRuntimeHost *This);
792 
793     HRESULT (STDMETHODCALLTYPE *DeleteLogicalThreadState)(
794         ICorRuntimeHost *This);
795 
796     HRESULT (STDMETHODCALLTYPE *SwitchInLogicalThreadState)(
797         ICorRuntimeHost *This,
798         DWORD *fiberCookie);
799 
800     HRESULT (STDMETHODCALLTYPE *SwitchOutLogicalThreadState)(
801         ICorRuntimeHost *This,
802         DWORD **fiberCookie);
803 
804     HRESULT (STDMETHODCALLTYPE *LocksHeldByLogicalThread)(
805         ICorRuntimeHost *This,
806         DWORD *pCount);
807 
808     HRESULT (STDMETHODCALLTYPE *MapFile)(
809         ICorRuntimeHost *This,
810         HANDLE hFile,
811         HMODULE *mapAddress);
812 
813     HRESULT (STDMETHODCALLTYPE *GetConfiguration)(
814         ICorRuntimeHost *This,
815         ICorConfiguration **pConfiguration);
816 
817     HRESULT (STDMETHODCALLTYPE *Start)(
818         ICorRuntimeHost *This);
819 
820     HRESULT (STDMETHODCALLTYPE *Stop)(
821         ICorRuntimeHost *This);
822 
823     HRESULT (STDMETHODCALLTYPE *CreateDomain)(
824         ICorRuntimeHost *This,
825         LPCWSTR friendlyName,
826         IUnknown *identityArray,
827         IUnknown **appDomain);
828 
829     HRESULT (STDMETHODCALLTYPE *GetDefaultDomain)(
830         ICorRuntimeHost *This,
831         IUnknown **pAppDomain);
832 
833     HRESULT (STDMETHODCALLTYPE *EnumDomains)(
834         ICorRuntimeHost *This,
835         HDOMAINENUM *hEnum);
836 
837     HRESULT (STDMETHODCALLTYPE *NextDomain)(
838         ICorRuntimeHost *This,
839         HDOMAINENUM hEnum,
840         IUnknown **appDomain);
841 
842     HRESULT (STDMETHODCALLTYPE *CloseEnum)(
843         ICorRuntimeHost *This,
844         HDOMAINENUM hEnum);
845 
846     HRESULT (STDMETHODCALLTYPE *CreateDomainEx)(
847         ICorRuntimeHost *This,
848         LPCWSTR friendlyName,
849         IUnknown *setup,
850         IUnknown *evidence,
851         IUnknown **appDomain);
852 
853     HRESULT (STDMETHODCALLTYPE *CreateDomainSetup)(
854         ICorRuntimeHost *This,
855         IUnknown **appDomainSetup);
856 
857     HRESULT (STDMETHODCALLTYPE *CreateEvidence)(
858         ICorRuntimeHost *This,
859         IUnknown **evidence);
860 
861     HRESULT (STDMETHODCALLTYPE *UnloadDomain)(
862         ICorRuntimeHost *This,
863         IUnknown *appDomain);
864 
865     HRESULT (STDMETHODCALLTYPE *CurrentDomain)(
866         ICorRuntimeHost *This,
867         IUnknown **appDomain);
868 
869     END_INTERFACE
870 } ICorRuntimeHostVtbl;
871 
872 interface ICorRuntimeHost {
873     CONST_VTBL ICorRuntimeHostVtbl* lpVtbl;
874 };
875 
876 #ifdef COBJMACROS
877 #ifndef WIDL_C_INLINE_WRAPPERS
878 /*** IUnknown methods ***/
879 #define ICorRuntimeHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
880 #define ICorRuntimeHost_AddRef(This) (This)->lpVtbl->AddRef(This)
881 #define ICorRuntimeHost_Release(This) (This)->lpVtbl->Release(This)
882 /*** ICorRuntimeHost methods ***/
883 #define ICorRuntimeHost_CreateLogicalThreadState(This) (This)->lpVtbl->CreateLogicalThreadState(This)
884 #define ICorRuntimeHost_DeleteLogicalThreadState(This) (This)->lpVtbl->DeleteLogicalThreadState(This)
885 #define ICorRuntimeHost_SwitchInLogicalThreadState(This,fiberCookie) (This)->lpVtbl->SwitchInLogicalThreadState(This,fiberCookie)
886 #define ICorRuntimeHost_SwitchOutLogicalThreadState(This,fiberCookie) (This)->lpVtbl->SwitchOutLogicalThreadState(This,fiberCookie)
887 #define ICorRuntimeHost_LocksHeldByLogicalThread(This,pCount) (This)->lpVtbl->LocksHeldByLogicalThread(This,pCount)
888 #define ICorRuntimeHost_MapFile(This,hFile,mapAddress) (This)->lpVtbl->MapFile(This,hFile,mapAddress)
889 #define ICorRuntimeHost_GetConfiguration(This,pConfiguration) (This)->lpVtbl->GetConfiguration(This,pConfiguration)
890 #define ICorRuntimeHost_Start(This) (This)->lpVtbl->Start(This)
891 #define ICorRuntimeHost_Stop(This) (This)->lpVtbl->Stop(This)
892 #define ICorRuntimeHost_CreateDomain(This,friendlyName,identityArray,appDomain) (This)->lpVtbl->CreateDomain(This,friendlyName,identityArray,appDomain)
893 #define ICorRuntimeHost_GetDefaultDomain(This,pAppDomain) (This)->lpVtbl->GetDefaultDomain(This,pAppDomain)
894 #define ICorRuntimeHost_EnumDomains(This,hEnum) (This)->lpVtbl->EnumDomains(This,hEnum)
895 #define ICorRuntimeHost_NextDomain(This,hEnum,appDomain) (This)->lpVtbl->NextDomain(This,hEnum,appDomain)
896 #define ICorRuntimeHost_CloseEnum(This,hEnum) (This)->lpVtbl->CloseEnum(This,hEnum)
897 #define ICorRuntimeHost_CreateDomainEx(This,friendlyName,setup,evidence,appDomain) (This)->lpVtbl->CreateDomainEx(This,friendlyName,setup,evidence,appDomain)
898 #define ICorRuntimeHost_CreateDomainSetup(This,appDomainSetup) (This)->lpVtbl->CreateDomainSetup(This,appDomainSetup)
899 #define ICorRuntimeHost_CreateEvidence(This,evidence) (This)->lpVtbl->CreateEvidence(This,evidence)
900 #define ICorRuntimeHost_UnloadDomain(This,appDomain) (This)->lpVtbl->UnloadDomain(This,appDomain)
901 #define ICorRuntimeHost_CurrentDomain(This,appDomain) (This)->lpVtbl->CurrentDomain(This,appDomain)
902 #else
903 /*** IUnknown methods ***/
904 static FORCEINLINE HRESULT ICorRuntimeHost_QueryInterface(ICorRuntimeHost* This,REFIID riid,void **ppvObject) {
905     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
906 }
907 static FORCEINLINE ULONG ICorRuntimeHost_AddRef(ICorRuntimeHost* This) {
908     return This->lpVtbl->AddRef(This);
909 }
910 static FORCEINLINE ULONG ICorRuntimeHost_Release(ICorRuntimeHost* This) {
911     return This->lpVtbl->Release(This);
912 }
913 /*** ICorRuntimeHost methods ***/
914 static FORCEINLINE HRESULT ICorRuntimeHost_CreateLogicalThreadState(ICorRuntimeHost* This) {
915     return This->lpVtbl->CreateLogicalThreadState(This);
916 }
917 static FORCEINLINE HRESULT ICorRuntimeHost_DeleteLogicalThreadState(ICorRuntimeHost* This) {
918     return This->lpVtbl->DeleteLogicalThreadState(This);
919 }
920 static FORCEINLINE HRESULT ICorRuntimeHost_SwitchInLogicalThreadState(ICorRuntimeHost* This,DWORD *fiberCookie) {
921     return This->lpVtbl->SwitchInLogicalThreadState(This,fiberCookie);
922 }
923 static FORCEINLINE HRESULT ICorRuntimeHost_SwitchOutLogicalThreadState(ICorRuntimeHost* This,DWORD **fiberCookie) {
924     return This->lpVtbl->SwitchOutLogicalThreadState(This,fiberCookie);
925 }
926 static FORCEINLINE HRESULT ICorRuntimeHost_LocksHeldByLogicalThread(ICorRuntimeHost* This,DWORD *pCount) {
927     return This->lpVtbl->LocksHeldByLogicalThread(This,pCount);
928 }
929 static FORCEINLINE HRESULT ICorRuntimeHost_MapFile(ICorRuntimeHost* This,HANDLE hFile,HMODULE *mapAddress) {
930     return This->lpVtbl->MapFile(This,hFile,mapAddress);
931 }
932 static FORCEINLINE HRESULT ICorRuntimeHost_GetConfiguration(ICorRuntimeHost* This,ICorConfiguration **pConfiguration) {
933     return This->lpVtbl->GetConfiguration(This,pConfiguration);
934 }
935 static FORCEINLINE HRESULT ICorRuntimeHost_Start(ICorRuntimeHost* This) {
936     return This->lpVtbl->Start(This);
937 }
938 static FORCEINLINE HRESULT ICorRuntimeHost_Stop(ICorRuntimeHost* This) {
939     return This->lpVtbl->Stop(This);
940 }
941 static FORCEINLINE HRESULT ICorRuntimeHost_CreateDomain(ICorRuntimeHost* This,LPCWSTR friendlyName,IUnknown *identityArray,IUnknown **appDomain) {
942     return This->lpVtbl->CreateDomain(This,friendlyName,identityArray,appDomain);
943 }
944 static FORCEINLINE HRESULT ICorRuntimeHost_GetDefaultDomain(ICorRuntimeHost* This,IUnknown **pAppDomain) {
945     return This->lpVtbl->GetDefaultDomain(This,pAppDomain);
946 }
947 static FORCEINLINE HRESULT ICorRuntimeHost_EnumDomains(ICorRuntimeHost* This,HDOMAINENUM *hEnum) {
948     return This->lpVtbl->EnumDomains(This,hEnum);
949 }
950 static FORCEINLINE HRESULT ICorRuntimeHost_NextDomain(ICorRuntimeHost* This,HDOMAINENUM hEnum,IUnknown **appDomain) {
951     return This->lpVtbl->NextDomain(This,hEnum,appDomain);
952 }
953 static FORCEINLINE HRESULT ICorRuntimeHost_CloseEnum(ICorRuntimeHost* This,HDOMAINENUM hEnum) {
954     return This->lpVtbl->CloseEnum(This,hEnum);
955 }
956 static FORCEINLINE HRESULT ICorRuntimeHost_CreateDomainEx(ICorRuntimeHost* This,LPCWSTR friendlyName,IUnknown *setup,IUnknown *evidence,IUnknown **appDomain) {
957     return This->lpVtbl->CreateDomainEx(This,friendlyName,setup,evidence,appDomain);
958 }
959 static FORCEINLINE HRESULT ICorRuntimeHost_CreateDomainSetup(ICorRuntimeHost* This,IUnknown **appDomainSetup) {
960     return This->lpVtbl->CreateDomainSetup(This,appDomainSetup);
961 }
962 static FORCEINLINE HRESULT ICorRuntimeHost_CreateEvidence(ICorRuntimeHost* This,IUnknown **evidence) {
963     return This->lpVtbl->CreateEvidence(This,evidence);
964 }
965 static FORCEINLINE HRESULT ICorRuntimeHost_UnloadDomain(ICorRuntimeHost* This,IUnknown *appDomain) {
966     return This->lpVtbl->UnloadDomain(This,appDomain);
967 }
968 static FORCEINLINE HRESULT ICorRuntimeHost_CurrentDomain(ICorRuntimeHost* This,IUnknown **appDomain) {
969     return This->lpVtbl->CurrentDomain(This,appDomain);
970 }
971 #endif
972 #endif
973 
974 #endif
975 
976 
977 #endif  /* __ICorRuntimeHost_INTERFACE_DEFINED__ */
978 
979 DEFINE_GUID(CLSID_CLRRuntimeHost, 0x90f1a06e,0x7712,0x4762,0x86,0xb5,0x7a,0x5e,0xba,0x6b,0xdb,0x02);
980 /*****************************************************************************
981  * ICLRRuntimeHost interface
982  */
983 #ifndef __ICLRRuntimeHost_INTERFACE_DEFINED__
984 #define __ICLRRuntimeHost_INTERFACE_DEFINED__
985 
986 DEFINE_GUID(IID_ICLRRuntimeHost, 0x90f1a06c, 0x7712, 0x4762, 0x86,0xb5, 0x7a,0x5e,0xba,0x6b,0xdb,0x02);
987 #if defined(__cplusplus) && !defined(CINTERFACE)
988 MIDL_INTERFACE("90f1a06c-7712-4762-86b5-7a5eba6bdb02")
989 ICLRRuntimeHost : public IUnknown
990 {
991     virtual HRESULT STDMETHODCALLTYPE Start(
992         ) = 0;
993 
994     virtual HRESULT STDMETHODCALLTYPE Stop(
995         ) = 0;
996 
997     virtual HRESULT STDMETHODCALLTYPE SetHostControl(
998         IHostControl *pHostControl) = 0;
999 
1000     virtual HRESULT STDMETHODCALLTYPE GetCLRControl(
1001         ICLRControl **pCLRControl) = 0;
1002 
1003     virtual HRESULT STDMETHODCALLTYPE UnloadAppDomain(
1004         DWORD dwAppDomainId,
1005         WINBOOL fWaitUntilDone) = 0;
1006 
1007     virtual HRESULT STDMETHODCALLTYPE ExecuteInAppDomain(
1008         DWORD dwAppDomainId,
1009         FExecuteInAppDomainCallback pCallback,
1010         void *cookie) = 0;
1011 
1012     virtual HRESULT STDMETHODCALLTYPE GetCurrentAppDomainId(
1013         DWORD *pdwAppDomainId) = 0;
1014 
1015     virtual HRESULT STDMETHODCALLTYPE ExecuteApplication(
1016         LPCWSTR pwzAppFullName,
1017         DWORD dwManifestPaths,
1018         LPCWSTR *ppwzManifestPaths,
1019         DWORD dwActivationData,
1020         LPCWSTR *ppwzActivationData,
1021         int *pReturnValue) = 0;
1022 
1023     virtual HRESULT STDMETHODCALLTYPE ExecuteInDefaultAppDomain(
1024         LPCWSTR pwzAssemblyPath,
1025         LPCWSTR pwzTypeName,
1026         LPCWSTR pwzMethodName,
1027         LPCWSTR pwzArgument,
1028         DWORD *pReturnValue) = 0;
1029 
1030 };
1031 #ifdef __CRT_UUID_DECL
1032 __CRT_UUID_DECL(ICLRRuntimeHost, 0x90f1a06c, 0x7712, 0x4762, 0x86,0xb5, 0x7a,0x5e,0xba,0x6b,0xdb,0x02)
1033 #endif
1034 #else
1035 typedef struct ICLRRuntimeHostVtbl {
1036     BEGIN_INTERFACE
1037 
1038     /*** IUnknown methods ***/
1039     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1040         ICLRRuntimeHost *This,
1041         REFIID riid,
1042         void **ppvObject);
1043 
1044     ULONG (STDMETHODCALLTYPE *AddRef)(
1045         ICLRRuntimeHost *This);
1046 
1047     ULONG (STDMETHODCALLTYPE *Release)(
1048         ICLRRuntimeHost *This);
1049 
1050     /*** ICLRRuntimeHost methods ***/
1051     HRESULT (STDMETHODCALLTYPE *Start)(
1052         ICLRRuntimeHost *This);
1053 
1054     HRESULT (STDMETHODCALLTYPE *Stop)(
1055         ICLRRuntimeHost *This);
1056 
1057     HRESULT (STDMETHODCALLTYPE *SetHostControl)(
1058         ICLRRuntimeHost *This,
1059         IHostControl *pHostControl);
1060 
1061     HRESULT (STDMETHODCALLTYPE *GetCLRControl)(
1062         ICLRRuntimeHost *This,
1063         ICLRControl **pCLRControl);
1064 
1065     HRESULT (STDMETHODCALLTYPE *UnloadAppDomain)(
1066         ICLRRuntimeHost *This,
1067         DWORD dwAppDomainId,
1068         WINBOOL fWaitUntilDone);
1069 
1070     HRESULT (STDMETHODCALLTYPE *ExecuteInAppDomain)(
1071         ICLRRuntimeHost *This,
1072         DWORD dwAppDomainId,
1073         FExecuteInAppDomainCallback pCallback,
1074         void *cookie);
1075 
1076     HRESULT (STDMETHODCALLTYPE *GetCurrentAppDomainId)(
1077         ICLRRuntimeHost *This,
1078         DWORD *pdwAppDomainId);
1079 
1080     HRESULT (STDMETHODCALLTYPE *ExecuteApplication)(
1081         ICLRRuntimeHost *This,
1082         LPCWSTR pwzAppFullName,
1083         DWORD dwManifestPaths,
1084         LPCWSTR *ppwzManifestPaths,
1085         DWORD dwActivationData,
1086         LPCWSTR *ppwzActivationData,
1087         int *pReturnValue);
1088 
1089     HRESULT (STDMETHODCALLTYPE *ExecuteInDefaultAppDomain)(
1090         ICLRRuntimeHost *This,
1091         LPCWSTR pwzAssemblyPath,
1092         LPCWSTR pwzTypeName,
1093         LPCWSTR pwzMethodName,
1094         LPCWSTR pwzArgument,
1095         DWORD *pReturnValue);
1096 
1097     END_INTERFACE
1098 } ICLRRuntimeHostVtbl;
1099 
1100 interface ICLRRuntimeHost {
1101     CONST_VTBL ICLRRuntimeHostVtbl* lpVtbl;
1102 };
1103 
1104 #ifdef COBJMACROS
1105 #ifndef WIDL_C_INLINE_WRAPPERS
1106 /*** IUnknown methods ***/
1107 #define ICLRRuntimeHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1108 #define ICLRRuntimeHost_AddRef(This) (This)->lpVtbl->AddRef(This)
1109 #define ICLRRuntimeHost_Release(This) (This)->lpVtbl->Release(This)
1110 /*** ICLRRuntimeHost methods ***/
1111 #define ICLRRuntimeHost_Start(This) (This)->lpVtbl->Start(This)
1112 #define ICLRRuntimeHost_Stop(This) (This)->lpVtbl->Stop(This)
1113 #define ICLRRuntimeHost_SetHostControl(This,pHostControl) (This)->lpVtbl->SetHostControl(This,pHostControl)
1114 #define ICLRRuntimeHost_GetCLRControl(This,pCLRControl) (This)->lpVtbl->GetCLRControl(This,pCLRControl)
1115 #define ICLRRuntimeHost_UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) (This)->lpVtbl->UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone)
1116 #define ICLRRuntimeHost_ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) (This)->lpVtbl->ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie)
1117 #define ICLRRuntimeHost_GetCurrentAppDomainId(This,pdwAppDomainId) (This)->lpVtbl->GetCurrentAppDomainId(This,pdwAppDomainId)
1118 #define ICLRRuntimeHost_ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) (This)->lpVtbl->ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue)
1119 #define ICLRRuntimeHost_ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) (This)->lpVtbl->ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue)
1120 #else
1121 /*** IUnknown methods ***/
1122 static FORCEINLINE HRESULT ICLRRuntimeHost_QueryInterface(ICLRRuntimeHost* This,REFIID riid,void **ppvObject) {
1123     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1124 }
1125 static FORCEINLINE ULONG ICLRRuntimeHost_AddRef(ICLRRuntimeHost* This) {
1126     return This->lpVtbl->AddRef(This);
1127 }
1128 static FORCEINLINE ULONG ICLRRuntimeHost_Release(ICLRRuntimeHost* This) {
1129     return This->lpVtbl->Release(This);
1130 }
1131 /*** ICLRRuntimeHost methods ***/
1132 static FORCEINLINE HRESULT ICLRRuntimeHost_Start(ICLRRuntimeHost* This) {
1133     return This->lpVtbl->Start(This);
1134 }
1135 static FORCEINLINE HRESULT ICLRRuntimeHost_Stop(ICLRRuntimeHost* This) {
1136     return This->lpVtbl->Stop(This);
1137 }
1138 static FORCEINLINE HRESULT ICLRRuntimeHost_SetHostControl(ICLRRuntimeHost* This,IHostControl *pHostControl) {
1139     return This->lpVtbl->SetHostControl(This,pHostControl);
1140 }
1141 static FORCEINLINE HRESULT ICLRRuntimeHost_GetCLRControl(ICLRRuntimeHost* This,ICLRControl **pCLRControl) {
1142     return This->lpVtbl->GetCLRControl(This,pCLRControl);
1143 }
1144 static FORCEINLINE HRESULT ICLRRuntimeHost_UnloadAppDomain(ICLRRuntimeHost* This,DWORD dwAppDomainId,WINBOOL fWaitUntilDone) {
1145     return This->lpVtbl->UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone);
1146 }
1147 static FORCEINLINE HRESULT ICLRRuntimeHost_ExecuteInAppDomain(ICLRRuntimeHost* This,DWORD dwAppDomainId,FExecuteInAppDomainCallback pCallback,void *cookie) {
1148     return This->lpVtbl->ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie);
1149 }
1150 static FORCEINLINE HRESULT ICLRRuntimeHost_GetCurrentAppDomainId(ICLRRuntimeHost* This,DWORD *pdwAppDomainId) {
1151     return This->lpVtbl->GetCurrentAppDomainId(This,pdwAppDomainId);
1152 }
1153 static FORCEINLINE HRESULT ICLRRuntimeHost_ExecuteApplication(ICLRRuntimeHost* This,LPCWSTR pwzAppFullName,DWORD dwManifestPaths,LPCWSTR *ppwzManifestPaths,DWORD dwActivationData,LPCWSTR *ppwzActivationData,int *pReturnValue) {
1154     return This->lpVtbl->ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue);
1155 }
1156 static FORCEINLINE HRESULT ICLRRuntimeHost_ExecuteInDefaultAppDomain(ICLRRuntimeHost* This,LPCWSTR pwzAssemblyPath,LPCWSTR pwzTypeName,LPCWSTR pwzMethodName,LPCWSTR pwzArgument,DWORD *pReturnValue) {
1157     return This->lpVtbl->ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue);
1158 }
1159 #endif
1160 #endif
1161 
1162 #endif
1163 
1164 
1165 #endif  /* __ICLRRuntimeHost_INTERFACE_DEFINED__ */
1166 
1167 /*****************************************************************************
1168  * IManagedObject interface
1169  */
1170 #ifndef __IManagedObject_INTERFACE_DEFINED__
1171 #define __IManagedObject_INTERFACE_DEFINED__
1172 
1173 DEFINE_GUID(IID_IManagedObject, 0xc3fcc19e, 0xa970, 0x11d2, 0x8b,0x5a, 0x00,0xa0,0xc9,0xb7,0xc9,0xc4);
1174 #if defined(__cplusplus) && !defined(CINTERFACE)
1175 MIDL_INTERFACE("c3fcc19e-a970-11d2-8b5a-00a0c9b7c9c4")
1176 IManagedObject : public IUnknown
1177 {
1178     virtual HRESULT STDMETHODCALLTYPE GetSerializedBuffer(
1179         BSTR *pBSTR) = 0;
1180 
1181     virtual HRESULT STDMETHODCALLTYPE GetObjectIdentity(
1182         BSTR *pBSTRGUID,
1183         int *AppDomainID,
1184         int *pCCW) = 0;
1185 
1186 };
1187 #ifdef __CRT_UUID_DECL
1188 __CRT_UUID_DECL(IManagedObject, 0xc3fcc19e, 0xa970, 0x11d2, 0x8b,0x5a, 0x00,0xa0,0xc9,0xb7,0xc9,0xc4)
1189 #endif
1190 #else
1191 typedef struct IManagedObjectVtbl {
1192     BEGIN_INTERFACE
1193 
1194     /*** IUnknown methods ***/
1195     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1196         IManagedObject *This,
1197         REFIID riid,
1198         void **ppvObject);
1199 
1200     ULONG (STDMETHODCALLTYPE *AddRef)(
1201         IManagedObject *This);
1202 
1203     ULONG (STDMETHODCALLTYPE *Release)(
1204         IManagedObject *This);
1205 
1206     /*** IManagedObject methods ***/
1207     HRESULT (STDMETHODCALLTYPE *GetSerializedBuffer)(
1208         IManagedObject *This,
1209         BSTR *pBSTR);
1210 
1211     HRESULT (STDMETHODCALLTYPE *GetObjectIdentity)(
1212         IManagedObject *This,
1213         BSTR *pBSTRGUID,
1214         int *AppDomainID,
1215         int *pCCW);
1216 
1217     END_INTERFACE
1218 } IManagedObjectVtbl;
1219 
1220 interface IManagedObject {
1221     CONST_VTBL IManagedObjectVtbl* lpVtbl;
1222 };
1223 
1224 #ifdef COBJMACROS
1225 #ifndef WIDL_C_INLINE_WRAPPERS
1226 /*** IUnknown methods ***/
1227 #define IManagedObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1228 #define IManagedObject_AddRef(This) (This)->lpVtbl->AddRef(This)
1229 #define IManagedObject_Release(This) (This)->lpVtbl->Release(This)
1230 /*** IManagedObject methods ***/
1231 #define IManagedObject_GetSerializedBuffer(This,pBSTR) (This)->lpVtbl->GetSerializedBuffer(This,pBSTR)
1232 #define IManagedObject_GetObjectIdentity(This,pBSTRGUID,AppDomainID,pCCW) (This)->lpVtbl->GetObjectIdentity(This,pBSTRGUID,AppDomainID,pCCW)
1233 #else
1234 /*** IUnknown methods ***/
1235 static FORCEINLINE HRESULT IManagedObject_QueryInterface(IManagedObject* This,REFIID riid,void **ppvObject) {
1236     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1237 }
1238 static FORCEINLINE ULONG IManagedObject_AddRef(IManagedObject* This) {
1239     return This->lpVtbl->AddRef(This);
1240 }
1241 static FORCEINLINE ULONG IManagedObject_Release(IManagedObject* This) {
1242     return This->lpVtbl->Release(This);
1243 }
1244 /*** IManagedObject methods ***/
1245 static FORCEINLINE HRESULT IManagedObject_GetSerializedBuffer(IManagedObject* This,BSTR *pBSTR) {
1246     return This->lpVtbl->GetSerializedBuffer(This,pBSTR);
1247 }
1248 static FORCEINLINE HRESULT IManagedObject_GetObjectIdentity(IManagedObject* This,BSTR *pBSTRGUID,int *AppDomainID,int *pCCW) {
1249     return This->lpVtbl->GetObjectIdentity(This,pBSTRGUID,AppDomainID,pCCW);
1250 }
1251 #endif
1252 #endif
1253 
1254 #endif
1255 
1256 
1257 #endif  /* __IManagedObject_INTERFACE_DEFINED__ */
1258 
1259 /* Begin additional prototypes for all interfaces */
1260 
1261 
1262 /* End additional prototypes */
1263 
1264 #ifdef __cplusplus
1265 }
1266 #endif
1267 
1268 #endif /* __mscoree_h__ */
1269