Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.6 from include/mscoree.idl - Do not edit ***/
      2 
      3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      5 #endif
      6 
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 
     10 #ifndef COM_NO_WINDOWS_H
     11 #include <windows.h>
     12 #include <ole2.h>
     13 #endif
     14 
     15 #ifndef __mscoree_h__
     16 #define __mscoree_h__
     17 
     18 /* Forward declarations */
     19 
     20 #ifndef __IGCThreadControl_FWD_DEFINED__
     21 #define __IGCThreadControl_FWD_DEFINED__
     22 typedef interface IGCThreadControl IGCThreadControl;
     23 #endif
     24 
     25 #ifndef __IGCHostControl_FWD_DEFINED__
     26 #define __IGCHostControl_FWD_DEFINED__
     27 typedef interface IGCHostControl IGCHostControl;
     28 #endif
     29 
     30 #ifndef __IDebuggerThreadControl_FWD_DEFINED__
     31 #define __IDebuggerThreadControl_FWD_DEFINED__
     32 typedef interface IDebuggerThreadControl IDebuggerThreadControl;
     33 #endif
     34 
     35 #ifndef __ICorConfiguration_FWD_DEFINED__
     36 #define __ICorConfiguration_FWD_DEFINED__
     37 typedef interface ICorConfiguration ICorConfiguration;
     38 #endif
     39 
     40 #ifndef __ICLRControl_FWD_DEFINED__
     41 #define __ICLRControl_FWD_DEFINED__
     42 typedef interface ICLRControl ICLRControl;
     43 #endif
     44 
     45 #ifndef __IHostControl_FWD_DEFINED__
     46 #define __IHostControl_FWD_DEFINED__
     47 typedef interface IHostControl IHostControl;
     48 #endif
     49 
     50 #ifndef __ICorRuntimeHost_FWD_DEFINED__
     51 #define __ICorRuntimeHost_FWD_DEFINED__
     52 typedef interface ICorRuntimeHost ICorRuntimeHost;
     53 #endif
     54 
     55 #ifndef __ICLRRuntimeHost_FWD_DEFINED__
     56 #define __ICLRRuntimeHost_FWD_DEFINED__
     57 typedef interface ICLRRuntimeHost ICLRRuntimeHost;
     58 #endif
     59 
     60 #ifndef __IManagedObject_FWD_DEFINED__
     61 #define __IManagedObject_FWD_DEFINED__
     62 typedef interface IManagedObject IManagedObject;
     63 #endif
     64 
     65 /* Headers for imported files */
     66 
     67 #include <unknwn.h>
     68 
     69 #ifdef __cplusplus
     70 extern "C" {
     71 #endif
     72 
     73 /* FIXME: #include <gcghost.h> */
     74 /* FIXME: #include <ivalidator.h> */
     75 HRESULT     WINAPI CorBindToRuntimeHost(LPCWSTR,LPCWSTR,LPCWSTR,VOID*,DWORD,REFCLSID,REFIID,LPVOID*);
     76 void        WINAPI CorExitProcess(int);
     77 HRESULT     WINAPI GetCORSystemDirectory(LPWSTR,DWORD,DWORD*);
     78 HRESULT     WINAPI GetCORVersion(LPWSTR,DWORD,DWORD*);
     79 HRESULT     WINAPI GetRequestedRuntimeInfo(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,DWORD,LPWSTR,DWORD,DWORD*,LPWSTR,DWORD,DWORD*);
     80 HRESULT     WINAPI LoadLibraryShim(LPCWSTR,LPCWSTR,LPVOID,HMODULE*);
     81 #ifdef WINE_STRICT_PROTOTYPES
     82 typedef HRESULT (__stdcall *FLockClrVersionCallback)(void);
     83 #else
     84 typedef HRESULT (__stdcall *FLockClrVersionCallback)();
     85 #endif
     86 HRESULT     WINAPI LockClrVersion(FLockClrVersionCallback,FLockClrVersionCallback*,FLockClrVersionCallback*);
     87 typedef void *HDOMAINENUM;
     88 typedef enum RUNTIME_INFO_FLAGS {
     89     RUNTIME_INFO_UPGRADE_VERSION = 0x1,
     90     RUNTIME_INFO_REQUEST_IA64 = 0x2,
     91     RUNTIME_INFO_REQUEST_AMD64 = 0x4,
     92     RUNTIME_INFO_REQUEST_X86 = 0x8,
     93     RUNTIME_INFO_DONT_RETURN_DIRECTORY = 0x10,
     94     RUNTIME_INFO_DONT_RETURN_VERSION = 0x20,
     95     RUNTIME_INFO_DONT_SHOW_ERROR_DIALOG = 0x40
     96 } RUNTIME_INFO_FLAGS;
     97 typedef HRESULT (__stdcall *FExecuteInAppDomainCallback)(void *cookie);
     98 /*****************************************************************************
     99  * IGCThreadControl interface
    100  */
    101 #ifndef __IGCThreadControl_INTERFACE_DEFINED__
    102 #define __IGCThreadControl_INTERFACE_DEFINED__
    103 
    104 DEFINE_GUID(IID_IGCThreadControl, 0xf31d1788, 0xc397, 0x4725, 0x87,0xa5, 0x6a,0xf3,0x47,0x2c,0x27,0x91);
    105 #if defined(__cplusplus) && !defined(CINTERFACE)
    106 MIDL_INTERFACE("f31d1788-c397-4725-87a5-6af3472c2791")
    107 IGCThreadControl : public IUnknown
    108 {
    109     virtual HRESULT STDMETHODCALLTYPE ThreadIsBlockingForSuspension(
    110         ) = 0;
    111 
    112     virtual HRESULT STDMETHODCALLTYPE SuspensionStarting(
    113         ) = 0;
    114 
    115     virtual HRESULT STDMETHODCALLTYPE SuspensionEnding(
    116         DWORD generation) = 0;
    117 
    118 };
    119 #ifdef __CRT_UUID_DECL
    120 __CRT_UUID_DECL(IGCThreadControl, 0xf31d1788, 0xc397, 0x4725, 0x87,0xa5, 0x6a,0xf3,0x47,0x2c,0x27,0x91)
    121 #endif
    122 #else
    123 typedef struct IGCThreadControlVtbl {
    124     BEGIN_INTERFACE
    125 
    126     /*** IUnknown methods ***/
    127     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    128         IGCThreadControl* This,
    129         REFIID riid,
    130         void **ppvObject);
    131 
    132     ULONG (STDMETHODCALLTYPE *AddRef)(
    133         IGCThreadControl* This);
    134 
    135     ULONG (STDMETHODCALLTYPE *Release)(
    136         IGCThreadControl* This);
    137 
    138     /*** IGCThreadControl methods ***/
    139     HRESULT (STDMETHODCALLTYPE *ThreadIsBlockingForSuspension)(
    140         IGCThreadControl* This);
    141 
    142     HRESULT (STDMETHODCALLTYPE *SuspensionStarting)(
    143         IGCThreadControl* This);
    144 
    145     HRESULT (STDMETHODCALLTYPE *SuspensionEnding)(
    146         IGCThreadControl* This,
    147         DWORD generation);
    148 
    149     END_INTERFACE
    150 } IGCThreadControlVtbl;
    151 interface IGCThreadControl {
    152     CONST_VTBL IGCThreadControlVtbl* lpVtbl;
    153 };
    154 
    155 #ifdef COBJMACROS
    156 #ifndef WIDL_C_INLINE_WRAPPERS
    157 /*** IUnknown methods ***/
    158 #define IGCThreadControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    159 #define IGCThreadControl_AddRef(This) (This)->lpVtbl->AddRef(This)
    160 #define IGCThreadControl_Release(This) (This)->lpVtbl->Release(This)
    161 /*** IGCThreadControl methods ***/
    162 #define IGCThreadControl_ThreadIsBlockingForSuspension(This) (This)->lpVtbl->ThreadIsBlockingForSuspension(This)
    163 #define IGCThreadControl_SuspensionStarting(This) (This)->lpVtbl->SuspensionStarting(This)
    164 #define IGCThreadControl_SuspensionEnding(This,generation) (This)->lpVtbl->SuspensionEnding(This,generation)
    165 #else
    166 /*** IUnknown methods ***/
    167 static FORCEINLINE HRESULT IGCThreadControl_QueryInterface(IGCThreadControl* This,REFIID riid,void **ppvObject) {
    168     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    169 }
    170 static FORCEINLINE ULONG IGCThreadControl_AddRef(IGCThreadControl* This) {
    171     return This->lpVtbl->AddRef(This);
    172 }
    173 static FORCEINLINE ULONG IGCThreadControl_Release(IGCThreadControl* This) {
    174     return This->lpVtbl->Release(This);
    175 }
    176 /*** IGCThreadControl methods ***/
    177 static FORCEINLINE HRESULT IGCThreadControl_ThreadIsBlockingForSuspension(IGCThreadControl* This) {
    178     return This->lpVtbl->ThreadIsBlockingForSuspension(This);
    179 }
    180 static FORCEINLINE HRESULT IGCThreadControl_SuspensionStarting(IGCThreadControl* This) {
    181     return This->lpVtbl->SuspensionStarting(This);
    182 }
    183 static FORCEINLINE HRESULT IGCThreadControl_SuspensionEnding(IGCThreadControl* This,DWORD generation) {
    184     return This->lpVtbl->SuspensionEnding(This,generation);
    185 }
    186 #endif
    187 #endif
    188 
    189 #endif
    190 
    191 HRESULT STDMETHODCALLTYPE IGCThreadControl_ThreadIsBlockingForSuspension_Proxy(
    192     IGCThreadControl* This);
    193 void __RPC_STUB IGCThreadControl_ThreadIsBlockingForSuspension_Stub(
    194     IRpcStubBuffer* This,
    195     IRpcChannelBuffer* pRpcChannelBuffer,
    196     PRPC_MESSAGE pRpcMessage,
    197     DWORD* pdwStubPhase);
    198 HRESULT STDMETHODCALLTYPE IGCThreadControl_SuspensionStarting_Proxy(
    199     IGCThreadControl* This);
    200 void __RPC_STUB IGCThreadControl_SuspensionStarting_Stub(
    201     IRpcStubBuffer* This,
    202     IRpcChannelBuffer* pRpcChannelBuffer,
    203     PRPC_MESSAGE pRpcMessage,
    204     DWORD* pdwStubPhase);
    205 HRESULT STDMETHODCALLTYPE IGCThreadControl_SuspensionEnding_Proxy(
    206     IGCThreadControl* This,
    207     DWORD generation);
    208 void __RPC_STUB IGCThreadControl_SuspensionEnding_Stub(
    209     IRpcStubBuffer* This,
    210     IRpcChannelBuffer* pRpcChannelBuffer,
    211     PRPC_MESSAGE pRpcMessage,
    212     DWORD* pdwStubPhase);
    213 
    214 #endif  /* __IGCThreadControl_INTERFACE_DEFINED__ */
    215 
    216 /*****************************************************************************
    217  * IGCHostControl interface
    218  */
    219 #ifndef __IGCHostControl_INTERFACE_DEFINED__
    220 #define __IGCHostControl_INTERFACE_DEFINED__
    221 
    222 DEFINE_GUID(IID_IGCHostControl, 0x5513d564, 0x8374, 0x4cb9, 0xae,0xd9, 0x00,0x83,0xf4,0x16,0x0a,0x1d);
    223 #if defined(__cplusplus) && !defined(CINTERFACE)
    224 MIDL_INTERFACE("5513d564-8374-4cb9-aed9-0083f4160a1d")
    225 IGCHostControl : public IUnknown
    226 {
    227     virtual HRESULT STDMETHODCALLTYPE RequestVirtualMemLimit(
    228         SIZE_T nMaxVirtualMemMB,
    229         SIZE_T *nNewMaxVirtualMemMB) = 0;
    230 
    231 };
    232 #ifdef __CRT_UUID_DECL
    233 __CRT_UUID_DECL(IGCHostControl, 0x5513d564, 0x8374, 0x4cb9, 0xae,0xd9, 0x00,0x83,0xf4,0x16,0x0a,0x1d)
    234 #endif
    235 #else
    236 typedef struct IGCHostControlVtbl {
    237     BEGIN_INTERFACE
    238 
    239     /*** IUnknown methods ***/
    240     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    241         IGCHostControl* This,
    242         REFIID riid,
    243         void **ppvObject);
    244 
    245     ULONG (STDMETHODCALLTYPE *AddRef)(
    246         IGCHostControl* This);
    247 
    248     ULONG (STDMETHODCALLTYPE *Release)(
    249         IGCHostControl* This);
    250 
    251     /*** IGCHostControl methods ***/
    252     HRESULT (STDMETHODCALLTYPE *RequestVirtualMemLimit)(
    253         IGCHostControl* This,
    254         SIZE_T nMaxVirtualMemMB,
    255         SIZE_T *nNewMaxVirtualMemMB);
    256 
    257     END_INTERFACE
    258 } IGCHostControlVtbl;
    259 interface IGCHostControl {
    260     CONST_VTBL IGCHostControlVtbl* lpVtbl;
    261 };
    262 
    263 #ifdef COBJMACROS
    264 #ifndef WIDL_C_INLINE_WRAPPERS
    265 /*** IUnknown methods ***/
    266 #define IGCHostControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    267 #define IGCHostControl_AddRef(This) (This)->lpVtbl->AddRef(This)
    268 #define IGCHostControl_Release(This) (This)->lpVtbl->Release(This)
    269 /*** IGCHostControl methods ***/
    270 #define IGCHostControl_RequestVirtualMemLimit(This,nMaxVirtualMemMB,nNewMaxVirtualMemMB) (This)->lpVtbl->RequestVirtualMemLimit(This,nMaxVirtualMemMB,nNewMaxVirtualMemMB)
    271 #else
    272 /*** IUnknown methods ***/
    273 static FORCEINLINE HRESULT IGCHostControl_QueryInterface(IGCHostControl* This,REFIID riid,void **ppvObject) {
    274     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    275 }
    276 static FORCEINLINE ULONG IGCHostControl_AddRef(IGCHostControl* This) {
    277     return This->lpVtbl->AddRef(This);
    278 }
    279 static FORCEINLINE ULONG IGCHostControl_Release(IGCHostControl* This) {
    280     return This->lpVtbl->Release(This);
    281 }
    282 /*** IGCHostControl methods ***/
    283 static FORCEINLINE HRESULT IGCHostControl_RequestVirtualMemLimit(IGCHostControl* This,SIZE_T nMaxVirtualMemMB,SIZE_T *nNewMaxVirtualMemMB) {
    284     return This->lpVtbl->RequestVirtualMemLimit(This,nMaxVirtualMemMB,nNewMaxVirtualMemMB);
    285 }
    286 #endif
    287 #endif
    288 
    289 #endif
    290 
    291 HRESULT STDMETHODCALLTYPE IGCHostControl_RequestVirtualMemLimit_Proxy(
    292     IGCHostControl* This,
    293     SIZE_T nMaxVirtualMemMB,
    294     SIZE_T *nNewMaxVirtualMemMB);
    295 void __RPC_STUB IGCHostControl_RequestVirtualMemLimit_Stub(
    296     IRpcStubBuffer* This,
    297     IRpcChannelBuffer* pRpcChannelBuffer,
    298     PRPC_MESSAGE pRpcMessage,
    299     DWORD* pdwStubPhase);
    300 
    301 #endif  /* __IGCHostControl_INTERFACE_DEFINED__ */
    302 
    303 /*****************************************************************************
    304  * IDebuggerThreadControl interface
    305  */
    306 #ifndef __IDebuggerThreadControl_INTERFACE_DEFINED__
    307 #define __IDebuggerThreadControl_INTERFACE_DEFINED__
    308 
    309 DEFINE_GUID(IID_IDebuggerThreadControl, 0x23d86786, 0x0bb5, 0x4774, 0x8f,0xb5, 0xe3,0x52,0x2a,0xdd,0x62,0x46);
    310 #if defined(__cplusplus) && !defined(CINTERFACE)
    311 MIDL_INTERFACE("23d86786-0bb5-4774-8fb5-e3522add6246")
    312 IDebuggerThreadControl : public IUnknown
    313 {
    314     virtual HRESULT STDMETHODCALLTYPE ThreadIsBlockingForDebugger(
    315         ) = 0;
    316 
    317     virtual HRESULT STDMETHODCALLTYPE ReleaseAllRuntimeThreads(
    318         ) = 0;
    319 
    320     virtual HRESULT STDMETHODCALLTYPE StartBlockingForDebugger(
    321         DWORD dwUnused) = 0;
    322 
    323 };
    324 #ifdef __CRT_UUID_DECL
    325 __CRT_UUID_DECL(IDebuggerThreadControl, 0x23d86786, 0x0bb5, 0x4774, 0x8f,0xb5, 0xe3,0x52,0x2a,0xdd,0x62,0x46)
    326 #endif
    327 #else
    328 typedef struct IDebuggerThreadControlVtbl {
    329     BEGIN_INTERFACE
    330 
    331     /*** IUnknown methods ***/
    332     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    333         IDebuggerThreadControl* This,
    334         REFIID riid,
    335         void **ppvObject);
    336 
    337     ULONG (STDMETHODCALLTYPE *AddRef)(
    338         IDebuggerThreadControl* This);
    339 
    340     ULONG (STDMETHODCALLTYPE *Release)(
    341         IDebuggerThreadControl* This);
    342 
    343     /*** IDebuggerThreadControl methods ***/
    344     HRESULT (STDMETHODCALLTYPE *ThreadIsBlockingForDebugger)(
    345         IDebuggerThreadControl* This);
    346 
    347     HRESULT (STDMETHODCALLTYPE *ReleaseAllRuntimeThreads)(
    348         IDebuggerThreadControl* This);
    349 
    350     HRESULT (STDMETHODCALLTYPE *StartBlockingForDebugger)(
    351         IDebuggerThreadControl* This,
    352         DWORD dwUnused);
    353 
    354     END_INTERFACE
    355 } IDebuggerThreadControlVtbl;
    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 HRESULT STDMETHODCALLTYPE IDebuggerThreadControl_ThreadIsBlockingForDebugger_Proxy(
    397     IDebuggerThreadControl* This);
    398 void __RPC_STUB IDebuggerThreadControl_ThreadIsBlockingForDebugger_Stub(
    399     IRpcStubBuffer* This,
    400     IRpcChannelBuffer* pRpcChannelBuffer,
    401     PRPC_MESSAGE pRpcMessage,
    402     DWORD* pdwStubPhase);
    403 HRESULT STDMETHODCALLTYPE IDebuggerThreadControl_ReleaseAllRuntimeThreads_Proxy(
    404     IDebuggerThreadControl* This);
    405 void __RPC_STUB IDebuggerThreadControl_ReleaseAllRuntimeThreads_Stub(
    406     IRpcStubBuffer* This,
    407     IRpcChannelBuffer* pRpcChannelBuffer,
    408     PRPC_MESSAGE pRpcMessage,
    409     DWORD* pdwStubPhase);
    410 HRESULT STDMETHODCALLTYPE IDebuggerThreadControl_StartBlockingForDebugger_Proxy(
    411     IDebuggerThreadControl* This,
    412     DWORD dwUnused);
    413 void __RPC_STUB IDebuggerThreadControl_StartBlockingForDebugger_Stub(
    414     IRpcStubBuffer* This,
    415     IRpcChannelBuffer* pRpcChannelBuffer,
    416     PRPC_MESSAGE pRpcMessage,
    417     DWORD* pdwStubPhase);
    418 
    419 #endif  /* __IDebuggerThreadControl_INTERFACE_DEFINED__ */
    420 
    421 /*****************************************************************************
    422  * ICorConfiguration interface
    423  */
    424 #ifndef __ICorConfiguration_INTERFACE_DEFINED__
    425 #define __ICorConfiguration_INTERFACE_DEFINED__
    426 
    427 DEFINE_GUID(IID_ICorConfiguration, 0x5c2b07a5, 0x1e98, 0x11d3, 0x87,0x2f, 0x00,0xc0,0x4f,0x79,0xed,0x0d);
    428 #if defined(__cplusplus) && !defined(CINTERFACE)
    429 MIDL_INTERFACE("5c2b07a5-1e98-11d3-872f-00c04f79ed0d")
    430 ICorConfiguration : public IUnknown
    431 {
    432     virtual HRESULT STDMETHODCALLTYPE SetGCThreadControl(
    433         IGCThreadControl *GCThreadControl) = 0;
    434 
    435     virtual HRESULT STDMETHODCALLTYPE SetGCHostControl(
    436         IGCHostControl *GCHostControl) = 0;
    437 
    438     virtual HRESULT STDMETHODCALLTYPE SetDebuggerThreadControl(
    439         IDebuggerThreadControl *debuggerThreadControl) = 0;
    440 
    441     virtual HRESULT STDMETHODCALLTYPE AddDebuggerSpecialThread(
    442         DWORD specialThreadId) = 0;
    443 
    444 };
    445 #ifdef __CRT_UUID_DECL
    446 __CRT_UUID_DECL(ICorConfiguration, 0x5c2b07a5, 0x1e98, 0x11d3, 0x87,0x2f, 0x00,0xc0,0x4f,0x79,0xed,0x0d)
    447 #endif
    448 #else
    449 typedef struct ICorConfigurationVtbl {
    450     BEGIN_INTERFACE
    451 
    452     /*** IUnknown methods ***/
    453     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    454         ICorConfiguration* This,
    455         REFIID riid,
    456         void **ppvObject);
    457 
    458     ULONG (STDMETHODCALLTYPE *AddRef)(
    459         ICorConfiguration* This);
    460 
    461     ULONG (STDMETHODCALLTYPE *Release)(
    462         ICorConfiguration* This);
    463 
    464     /*** ICorConfiguration methods ***/
    465     HRESULT (STDMETHODCALLTYPE *SetGCThreadControl)(
    466         ICorConfiguration* This,
    467         IGCThreadControl *GCThreadControl);
    468 
    469     HRESULT (STDMETHODCALLTYPE *SetGCHostControl)(
    470         ICorConfiguration* This,
    471         IGCHostControl *GCHostControl);
    472 
    473     HRESULT (STDMETHODCALLTYPE *SetDebuggerThreadControl)(
    474         ICorConfiguration* This,
    475         IDebuggerThreadControl *debuggerThreadControl);
    476 
    477     HRESULT (STDMETHODCALLTYPE *AddDebuggerSpecialThread)(
    478         ICorConfiguration* This,
    479         DWORD specialThreadId);
    480 
    481     END_INTERFACE
    482 } ICorConfigurationVtbl;
    483 interface ICorConfiguration {
    484     CONST_VTBL ICorConfigurationVtbl* lpVtbl;
    485 };
    486 
    487 #ifdef COBJMACROS
    488 #ifndef WIDL_C_INLINE_WRAPPERS
    489 /*** IUnknown methods ***/
    490 #define ICorConfiguration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    491 #define ICorConfiguration_AddRef(This) (This)->lpVtbl->AddRef(This)
    492 #define ICorConfiguration_Release(This) (This)->lpVtbl->Release(This)
    493 /*** ICorConfiguration methods ***/
    494 #define ICorConfiguration_SetGCThreadControl(This,GCThreadControl) (This)->lpVtbl->SetGCThreadControl(This,GCThreadControl)
    495 #define ICorConfiguration_SetGCHostControl(This,GCHostControl) (This)->lpVtbl->SetGCHostControl(This,GCHostControl)
    496 #define ICorConfiguration_SetDebuggerThreadControl(This,debuggerThreadControl) (This)->lpVtbl->SetDebuggerThreadControl(This,debuggerThreadControl)
    497 #define ICorConfiguration_AddDebuggerSpecialThread(This,specialThreadId) (This)->lpVtbl->AddDebuggerSpecialThread(This,specialThreadId)
    498 #else
    499 /*** IUnknown methods ***/
    500 static FORCEINLINE HRESULT ICorConfiguration_QueryInterface(ICorConfiguration* This,REFIID riid,void **ppvObject) {
    501     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    502 }
    503 static FORCEINLINE ULONG ICorConfiguration_AddRef(ICorConfiguration* This) {
    504     return This->lpVtbl->AddRef(This);
    505 }
    506 static FORCEINLINE ULONG ICorConfiguration_Release(ICorConfiguration* This) {
    507     return This->lpVtbl->Release(This);
    508 }
    509 /*** ICorConfiguration methods ***/
    510 static FORCEINLINE HRESULT ICorConfiguration_SetGCThreadControl(ICorConfiguration* This,IGCThreadControl *GCThreadControl) {
    511     return This->lpVtbl->SetGCThreadControl(This,GCThreadControl);
    512 }
    513 static FORCEINLINE HRESULT ICorConfiguration_SetGCHostControl(ICorConfiguration* This,IGCHostControl *GCHostControl) {
    514     return This->lpVtbl->SetGCHostControl(This,GCHostControl);
    515 }
    516 static FORCEINLINE HRESULT ICorConfiguration_SetDebuggerThreadControl(ICorConfiguration* This,IDebuggerThreadControl *debuggerThreadControl) {
    517     return This->lpVtbl->SetDebuggerThreadControl(This,debuggerThreadControl);
    518 }
    519 static FORCEINLINE HRESULT ICorConfiguration_AddDebuggerSpecialThread(ICorConfiguration* This,DWORD specialThreadId) {
    520     return This->lpVtbl->AddDebuggerSpecialThread(This,specialThreadId);
    521 }
    522 #endif
    523 #endif
    524 
    525 #endif
    526 
    527 HRESULT STDMETHODCALLTYPE ICorConfiguration_SetGCThreadControl_Proxy(
    528     ICorConfiguration* This,
    529     IGCThreadControl *GCThreadControl);
    530 void __RPC_STUB ICorConfiguration_SetGCThreadControl_Stub(
    531     IRpcStubBuffer* This,
    532     IRpcChannelBuffer* pRpcChannelBuffer,
    533     PRPC_MESSAGE pRpcMessage,
    534     DWORD* pdwStubPhase);
    535 HRESULT STDMETHODCALLTYPE ICorConfiguration_SetGCHostControl_Proxy(
    536     ICorConfiguration* This,
    537     IGCHostControl *GCHostControl);
    538 void __RPC_STUB ICorConfiguration_SetGCHostControl_Stub(
    539     IRpcStubBuffer* This,
    540     IRpcChannelBuffer* pRpcChannelBuffer,
    541     PRPC_MESSAGE pRpcMessage,
    542     DWORD* pdwStubPhase);
    543 HRESULT STDMETHODCALLTYPE ICorConfiguration_SetDebuggerThreadControl_Proxy(
    544     ICorConfiguration* This,
    545     IDebuggerThreadControl *debuggerThreadControl);
    546 void __RPC_STUB ICorConfiguration_SetDebuggerThreadControl_Stub(
    547     IRpcStubBuffer* This,
    548     IRpcChannelBuffer* pRpcChannelBuffer,
    549     PRPC_MESSAGE pRpcMessage,
    550     DWORD* pdwStubPhase);
    551 HRESULT STDMETHODCALLTYPE ICorConfiguration_AddDebuggerSpecialThread_Proxy(
    552     ICorConfiguration* This,
    553     DWORD specialThreadId);
    554 void __RPC_STUB ICorConfiguration_AddDebuggerSpecialThread_Stub(
    555     IRpcStubBuffer* This,
    556     IRpcChannelBuffer* pRpcChannelBuffer,
    557     PRPC_MESSAGE pRpcMessage,
    558     DWORD* pdwStubPhase);
    559 
    560 #endif  /* __ICorConfiguration_INTERFACE_DEFINED__ */
    561 
    562 /*****************************************************************************
    563  * ICLRControl interface
    564  */
    565 #ifndef __ICLRControl_INTERFACE_DEFINED__
    566 #define __ICLRControl_INTERFACE_DEFINED__
    567 
    568 DEFINE_GUID(IID_ICLRControl, 0x9065597e, 0xd1a1, 0x4fb2, 0xb6,0xba, 0x7e,0x1f,0xce,0x23,0x0f,0x61);
    569 #if defined(__cplusplus) && !defined(CINTERFACE)
    570 MIDL_INTERFACE("9065597e-d1a1-4fb2-b6ba-7e1fce230f61")
    571 ICLRControl : public IUnknown
    572 {
    573     virtual HRESULT STDMETHODCALLTYPE GetCLRManager(
    574         REFIID riid,
    575         void **ppObject) = 0;
    576 
    577     virtual HRESULT STDMETHODCALLTYPE SetAppDomainManagerType(
    578         LPCWSTR appDomainManagerAssembly,
    579         LPCWSTR appDomainManagerType) = 0;
    580 
    581 };
    582 #ifdef __CRT_UUID_DECL
    583 __CRT_UUID_DECL(ICLRControl, 0x9065597e, 0xd1a1, 0x4fb2, 0xb6,0xba, 0x7e,0x1f,0xce,0x23,0x0f,0x61)
    584 #endif
    585 #else
    586 typedef struct ICLRControlVtbl {
    587     BEGIN_INTERFACE
    588 
    589     /*** IUnknown methods ***/
    590     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    591         ICLRControl* This,
    592         REFIID riid,
    593         void **ppvObject);
    594 
    595     ULONG (STDMETHODCALLTYPE *AddRef)(
    596         ICLRControl* This);
    597 
    598     ULONG (STDMETHODCALLTYPE *Release)(
    599         ICLRControl* This);
    600 
    601     /*** ICLRControl methods ***/
    602     HRESULT (STDMETHODCALLTYPE *GetCLRManager)(
    603         ICLRControl* This,
    604         REFIID riid,
    605         void **ppObject);
    606 
    607     HRESULT (STDMETHODCALLTYPE *SetAppDomainManagerType)(
    608         ICLRControl* This,
    609         LPCWSTR appDomainManagerAssembly,
    610         LPCWSTR appDomainManagerType);
    611 
    612     END_INTERFACE
    613 } ICLRControlVtbl;
    614 interface ICLRControl {
    615     CONST_VTBL ICLRControlVtbl* lpVtbl;
    616 };
    617 
    618 #ifdef COBJMACROS
    619 #ifndef WIDL_C_INLINE_WRAPPERS
    620 /*** IUnknown methods ***/
    621 #define ICLRControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    622 #define ICLRControl_AddRef(This) (This)->lpVtbl->AddRef(This)
    623 #define ICLRControl_Release(This) (This)->lpVtbl->Release(This)
    624 /*** ICLRControl methods ***/
    625 #define ICLRControl_GetCLRManager(This,riid,ppObject) (This)->lpVtbl->GetCLRManager(This,riid,ppObject)
    626 #define ICLRControl_SetAppDomainManagerType(This,appDomainManagerAssembly,appDomainManagerType) (This)->lpVtbl->SetAppDomainManagerType(This,appDomainManagerAssembly,appDomainManagerType)
    627 #else
    628 /*** IUnknown methods ***/
    629 static FORCEINLINE HRESULT ICLRControl_QueryInterface(ICLRControl* This,REFIID riid,void **ppvObject) {
    630     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    631 }
    632 static FORCEINLINE ULONG ICLRControl_AddRef(ICLRControl* This) {
    633     return This->lpVtbl->AddRef(This);
    634 }
    635 static FORCEINLINE ULONG ICLRControl_Release(ICLRControl* This) {
    636     return This->lpVtbl->Release(This);
    637 }
    638 /*** ICLRControl methods ***/
    639 static FORCEINLINE HRESULT ICLRControl_GetCLRManager(ICLRControl* This,REFIID riid,void **ppObject) {
    640     return This->lpVtbl->GetCLRManager(This,riid,ppObject);
    641 }
    642 static FORCEINLINE HRESULT ICLRControl_SetAppDomainManagerType(ICLRControl* This,LPCWSTR appDomainManagerAssembly,LPCWSTR appDomainManagerType) {
    643     return This->lpVtbl->SetAppDomainManagerType(This,appDomainManagerAssembly,appDomainManagerType);
    644 }
    645 #endif
    646 #endif
    647 
    648 #endif
    649 
    650 HRESULT STDMETHODCALLTYPE ICLRControl_GetCLRManager_Proxy(
    651     ICLRControl* This,
    652     REFIID riid,
    653     void **ppObject);
    654 void __RPC_STUB ICLRControl_GetCLRManager_Stub(
    655     IRpcStubBuffer* This,
    656     IRpcChannelBuffer* pRpcChannelBuffer,
    657     PRPC_MESSAGE pRpcMessage,
    658     DWORD* pdwStubPhase);
    659 HRESULT STDMETHODCALLTYPE ICLRControl_SetAppDomainManagerType_Proxy(
    660     ICLRControl* This,
    661     LPCWSTR appDomainManagerAssembly,
    662     LPCWSTR appDomainManagerType);
    663 void __RPC_STUB ICLRControl_SetAppDomainManagerType_Stub(
    664     IRpcStubBuffer* This,
    665     IRpcChannelBuffer* pRpcChannelBuffer,
    666     PRPC_MESSAGE pRpcMessage,
    667     DWORD* pdwStubPhase);
    668 
    669 #endif  /* __ICLRControl_INTERFACE_DEFINED__ */
    670 
    671 /*****************************************************************************
    672  * IHostControl interface
    673  */
    674 #ifndef __IHostControl_INTERFACE_DEFINED__
    675 #define __IHostControl_INTERFACE_DEFINED__
    676 
    677 DEFINE_GUID(IID_IHostControl, 0x02ca073c, 0x7079, 0x4860, 0x88,0x0a, 0xc2,0xf7,0xa4,0x49,0xc9,0x91);
    678 #if defined(__cplusplus) && !defined(CINTERFACE)
    679 MIDL_INTERFACE("02ca073c-7079-4860-880a-c2f7a449c991")
    680 IHostControl : public IUnknown
    681 {
    682     virtual HRESULT STDMETHODCALLTYPE GetHostManager(
    683         REFIID riid,
    684         void **ppObject) = 0;
    685 
    686     virtual HRESULT STDMETHODCALLTYPE SetAppDomainManager(
    687         DWORD appDomainID,
    688         IUnknown *appDomainManager) = 0;
    689 
    690 };
    691 #ifdef __CRT_UUID_DECL
    692 __CRT_UUID_DECL(IHostControl, 0x02ca073c, 0x7079, 0x4860, 0x88,0x0a, 0xc2,0xf7,0xa4,0x49,0xc9,0x91)
    693 #endif
    694 #else
    695 typedef struct IHostControlVtbl {
    696     BEGIN_INTERFACE
    697 
    698     /*** IUnknown methods ***/
    699     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    700         IHostControl* This,
    701         REFIID riid,
    702         void **ppvObject);
    703 
    704     ULONG (STDMETHODCALLTYPE *AddRef)(
    705         IHostControl* This);
    706 
    707     ULONG (STDMETHODCALLTYPE *Release)(
    708         IHostControl* This);
    709 
    710     /*** IHostControl methods ***/
    711     HRESULT (STDMETHODCALLTYPE *GetHostManager)(
    712         IHostControl* This,
    713         REFIID riid,
    714         void **ppObject);
    715 
    716     HRESULT (STDMETHODCALLTYPE *SetAppDomainManager)(
    717         IHostControl* This,
    718         DWORD appDomainID,
    719         IUnknown *appDomainManager);
    720 
    721     END_INTERFACE
    722 } IHostControlVtbl;
    723 interface IHostControl {
    724     CONST_VTBL IHostControlVtbl* lpVtbl;
    725 };
    726 
    727 #ifdef COBJMACROS
    728 #ifndef WIDL_C_INLINE_WRAPPERS
    729 /*** IUnknown methods ***/
    730 #define IHostControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    731 #define IHostControl_AddRef(This) (This)->lpVtbl->AddRef(This)
    732 #define IHostControl_Release(This) (This)->lpVtbl->Release(This)
    733 /*** IHostControl methods ***/
    734 #define IHostControl_GetHostManager(This,riid,ppObject) (This)->lpVtbl->GetHostManager(This,riid,ppObject)
    735 #define IHostControl_SetAppDomainManager(This,appDomainID,appDomainManager) (This)->lpVtbl->SetAppDomainManager(This,appDomainID,appDomainManager)
    736 #else
    737 /*** IUnknown methods ***/
    738 static FORCEINLINE HRESULT IHostControl_QueryInterface(IHostControl* This,REFIID riid,void **ppvObject) {
    739     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    740 }
    741 static FORCEINLINE ULONG IHostControl_AddRef(IHostControl* This) {
    742     return This->lpVtbl->AddRef(This);
    743 }
    744 static FORCEINLINE ULONG IHostControl_Release(IHostControl* This) {
    745     return This->lpVtbl->Release(This);
    746 }
    747 /*** IHostControl methods ***/
    748 static FORCEINLINE HRESULT IHostControl_GetHostManager(IHostControl* This,REFIID riid,void **ppObject) {
    749     return This->lpVtbl->GetHostManager(This,riid,ppObject);
    750 }
    751 static FORCEINLINE HRESULT IHostControl_SetAppDomainManager(IHostControl* This,DWORD appDomainID,IUnknown *appDomainManager) {
    752     return This->lpVtbl->SetAppDomainManager(This,appDomainID,appDomainManager);
    753 }
    754 #endif
    755 #endif
    756 
    757 #endif
    758 
    759 HRESULT STDMETHODCALLTYPE IHostControl_GetHostManager_Proxy(
    760     IHostControl* This,
    761     REFIID riid,
    762     void **ppObject);
    763 void __RPC_STUB IHostControl_GetHostManager_Stub(
    764     IRpcStubBuffer* This,
    765     IRpcChannelBuffer* pRpcChannelBuffer,
    766     PRPC_MESSAGE pRpcMessage,
    767     DWORD* pdwStubPhase);
    768 HRESULT STDMETHODCALLTYPE IHostControl_SetAppDomainManager_Proxy(
    769     IHostControl* This,
    770     DWORD appDomainID,
    771     IUnknown *appDomainManager);
    772 void __RPC_STUB IHostControl_SetAppDomainManager_Stub(
    773     IRpcStubBuffer* This,
    774     IRpcChannelBuffer* pRpcChannelBuffer,
    775     PRPC_MESSAGE pRpcMessage,
    776     DWORD* pdwStubPhase);
    777 
    778 #endif  /* __IHostControl_INTERFACE_DEFINED__ */
    779 
    780 DEFINE_GUID(CLSID_CorRuntimeHost, 0xcb2f6723,0xab3a,0x11d2,0x9c,0x40,0x00,0xc0,0x4f,0xa3,0x0a,0x3e);
    781 /*****************************************************************************
    782  * ICorRuntimeHost interface
    783  */
    784 #ifndef __ICorRuntimeHost_INTERFACE_DEFINED__
    785 #define __ICorRuntimeHost_INTERFACE_DEFINED__
    786 
    787 DEFINE_GUID(IID_ICorRuntimeHost, 0xcb2f6722, 0xab3a, 0x11d2, 0x9c,0x40, 0x00,0xc0,0x4f,0xa3,0x0a,0x3e);
    788 #if defined(__cplusplus) && !defined(CINTERFACE)
    789 MIDL_INTERFACE("cb2f6722-ab3a-11d2-9c40-00c04fa30a3e")
    790 ICorRuntimeHost : public IUnknown
    791 {
    792     virtual HRESULT STDMETHODCALLTYPE CreateLogicalThreadState(
    793         ) = 0;
    794 
    795     virtual HRESULT STDMETHODCALLTYPE DeleteLogicalThreadState(
    796         ) = 0;
    797 
    798     virtual HRESULT STDMETHODCALLTYPE SwitchInLogicalThreadState(
    799         DWORD *fiberCookie) = 0;
    800 
    801     virtual HRESULT STDMETHODCALLTYPE SwitchOutLogicalThreadState(
    802         DWORD **fiberCookie) = 0;
    803 
    804     virtual HRESULT STDMETHODCALLTYPE LocksHeldByLogicalThread(
    805         DWORD *pCount) = 0;
    806 
    807     virtual HRESULT STDMETHODCALLTYPE MapFile(
    808         HANDLE hFile,
    809         HMODULE *mapAddress) = 0;
    810 
    811     virtual HRESULT STDMETHODCALLTYPE GetConfiguration(
    812         ICorConfiguration **pConfiguration) = 0;
    813 
    814     virtual HRESULT STDMETHODCALLTYPE Start(
    815         ) = 0;
    816 
    817     virtual HRESULT STDMETHODCALLTYPE Stop(
    818         ) = 0;
    819 
    820     virtual HRESULT STDMETHODCALLTYPE CreateDomain(
    821         LPCWSTR friendlyName,
    822         IUnknown *identityArray,
    823         IUnknown **appDomain) = 0;
    824 
    825     virtual HRESULT STDMETHODCALLTYPE GetDefaultDomain(
    826         IUnknown **pAppDomain) = 0;
    827 
    828     virtual HRESULT STDMETHODCALLTYPE EnumDomains(
    829         HDOMAINENUM *hEnum) = 0;
    830 
    831     virtual HRESULT STDMETHODCALLTYPE NextDomain(
    832         HDOMAINENUM hEnum,
    833         IUnknown **appDomain) = 0;
    834 
    835     virtual HRESULT STDMETHODCALLTYPE CloseEnum(
    836         HDOMAINENUM hEnum) = 0;
    837 
    838     virtual HRESULT STDMETHODCALLTYPE CreateDomainEx(
    839         LPCWSTR friendlyName,
    840         IUnknown *setup,
    841         IUnknown *evidence,
    842         IUnknown **appDomain) = 0;
    843 
    844     virtual HRESULT STDMETHODCALLTYPE CreateDomainSetup(
    845         IUnknown **appDomainSetup) = 0;
    846 
    847     virtual HRESULT STDMETHODCALLTYPE CreateEvidence(
    848         IUnknown **evidence) = 0;
    849 
    850     virtual HRESULT STDMETHODCALLTYPE UnloadDomain(
    851         IUnknown *appDomain) = 0;
    852 
    853     virtual HRESULT STDMETHODCALLTYPE CurrentDomain(
    854         IUnknown **appDomain) = 0;
    855 
    856 };
    857 #ifdef __CRT_UUID_DECL
    858 __CRT_UUID_DECL(ICorRuntimeHost, 0xcb2f6722, 0xab3a, 0x11d2, 0x9c,0x40, 0x00,0xc0,0x4f,0xa3,0x0a,0x3e)
    859 #endif
    860 #else
    861 typedef struct ICorRuntimeHostVtbl {
    862     BEGIN_INTERFACE
    863 
    864     /*** IUnknown methods ***/
    865     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    866         ICorRuntimeHost* This,
    867         REFIID riid,
    868         void **ppvObject);
    869 
    870     ULONG (STDMETHODCALLTYPE *AddRef)(
    871         ICorRuntimeHost* This);
    872 
    873     ULONG (STDMETHODCALLTYPE *Release)(
    874         ICorRuntimeHost* This);
    875 
    876     /*** ICorRuntimeHost methods ***/
    877     HRESULT (STDMETHODCALLTYPE *CreateLogicalThreadState)(
    878         ICorRuntimeHost* This);
    879 
    880     HRESULT (STDMETHODCALLTYPE *DeleteLogicalThreadState)(
    881         ICorRuntimeHost* This);
    882 
    883     HRESULT (STDMETHODCALLTYPE *SwitchInLogicalThreadState)(
    884         ICorRuntimeHost* This,
    885         DWORD *fiberCookie);
    886 
    887     HRESULT (STDMETHODCALLTYPE *SwitchOutLogicalThreadState)(
    888         ICorRuntimeHost* This,
    889         DWORD **fiberCookie);
    890 
    891     HRESULT (STDMETHODCALLTYPE *LocksHeldByLogicalThread)(
    892         ICorRuntimeHost* This,
    893         DWORD *pCount);
    894 
    895     HRESULT (STDMETHODCALLTYPE *MapFile)(
    896         ICorRuntimeHost* This,
    897         HANDLE hFile,
    898         HMODULE *mapAddress);
    899 
    900     HRESULT (STDMETHODCALLTYPE *GetConfiguration)(
    901         ICorRuntimeHost* This,
    902         ICorConfiguration **pConfiguration);
    903 
    904     HRESULT (STDMETHODCALLTYPE *Start)(
    905         ICorRuntimeHost* This);
    906 
    907     HRESULT (STDMETHODCALLTYPE *Stop)(
    908         ICorRuntimeHost* This);
    909 
    910     HRESULT (STDMETHODCALLTYPE *CreateDomain)(
    911         ICorRuntimeHost* This,
    912         LPCWSTR friendlyName,
    913         IUnknown *identityArray,
    914         IUnknown **appDomain);
    915 
    916     HRESULT (STDMETHODCALLTYPE *GetDefaultDomain)(
    917         ICorRuntimeHost* This,
    918         IUnknown **pAppDomain);
    919 
    920     HRESULT (STDMETHODCALLTYPE *EnumDomains)(
    921         ICorRuntimeHost* This,
    922         HDOMAINENUM *hEnum);
    923 
    924     HRESULT (STDMETHODCALLTYPE *NextDomain)(
    925         ICorRuntimeHost* This,
    926         HDOMAINENUM hEnum,
    927         IUnknown **appDomain);
    928 
    929     HRESULT (STDMETHODCALLTYPE *CloseEnum)(
    930         ICorRuntimeHost* This,
    931         HDOMAINENUM hEnum);
    932 
    933     HRESULT (STDMETHODCALLTYPE *CreateDomainEx)(
    934         ICorRuntimeHost* This,
    935         LPCWSTR friendlyName,
    936         IUnknown *setup,
    937         IUnknown *evidence,
    938         IUnknown **appDomain);
    939 
    940     HRESULT (STDMETHODCALLTYPE *CreateDomainSetup)(
    941         ICorRuntimeHost* This,
    942         IUnknown **appDomainSetup);
    943 
    944     HRESULT (STDMETHODCALLTYPE *CreateEvidence)(
    945         ICorRuntimeHost* This,
    946         IUnknown **evidence);
    947 
    948     HRESULT (STDMETHODCALLTYPE *UnloadDomain)(
    949         ICorRuntimeHost* This,
    950         IUnknown *appDomain);
    951 
    952     HRESULT (STDMETHODCALLTYPE *CurrentDomain)(
    953         ICorRuntimeHost* This,
    954         IUnknown **appDomain);
    955 
    956     END_INTERFACE
    957 } ICorRuntimeHostVtbl;
    958 interface ICorRuntimeHost {
    959     CONST_VTBL ICorRuntimeHostVtbl* lpVtbl;
    960 };
    961 
    962 #ifdef COBJMACROS
    963 #ifndef WIDL_C_INLINE_WRAPPERS
    964 /*** IUnknown methods ***/
    965 #define ICorRuntimeHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    966 #define ICorRuntimeHost_AddRef(This) (This)->lpVtbl->AddRef(This)
    967 #define ICorRuntimeHost_Release(This) (This)->lpVtbl->Release(This)
    968 /*** ICorRuntimeHost methods ***/
    969 #define ICorRuntimeHost_CreateLogicalThreadState(This) (This)->lpVtbl->CreateLogicalThreadState(This)
    970 #define ICorRuntimeHost_DeleteLogicalThreadState(This) (This)->lpVtbl->DeleteLogicalThreadState(This)
    971 #define ICorRuntimeHost_SwitchInLogicalThreadState(This,fiberCookie) (This)->lpVtbl->SwitchInLogicalThreadState(This,fiberCookie)
    972 #define ICorRuntimeHost_SwitchOutLogicalThreadState(This,fiberCookie) (This)->lpVtbl->SwitchOutLogicalThreadState(This,fiberCookie)
    973 #define ICorRuntimeHost_LocksHeldByLogicalThread(This,pCount) (This)->lpVtbl->LocksHeldByLogicalThread(This,pCount)
    974 #define ICorRuntimeHost_MapFile(This,hFile,mapAddress) (This)->lpVtbl->MapFile(This,hFile,mapAddress)
    975 #define ICorRuntimeHost_GetConfiguration(This,pConfiguration) (This)->lpVtbl->GetConfiguration(This,pConfiguration)
    976 #define ICorRuntimeHost_Start(This) (This)->lpVtbl->Start(This)
    977 #define ICorRuntimeHost_Stop(This) (This)->lpVtbl->Stop(This)
    978 #define ICorRuntimeHost_CreateDomain(This,friendlyName,identityArray,appDomain) (This)->lpVtbl->CreateDomain(This,friendlyName,identityArray,appDomain)
    979 #define ICorRuntimeHost_GetDefaultDomain(This,pAppDomain) (This)->lpVtbl->GetDefaultDomain(This,pAppDomain)
    980 #define ICorRuntimeHost_EnumDomains(This,hEnum) (This)->lpVtbl->EnumDomains(This,hEnum)
    981 #define ICorRuntimeHost_NextDomain(This,hEnum,appDomain) (This)->lpVtbl->NextDomain(This,hEnum,appDomain)
    982 #define ICorRuntimeHost_CloseEnum(This,hEnum) (This)->lpVtbl->CloseEnum(This,hEnum)
    983 #define ICorRuntimeHost_CreateDomainEx(This,friendlyName,setup,evidence,appDomain) (This)->lpVtbl->CreateDomainEx(This,friendlyName,setup,evidence,appDomain)
    984 #define ICorRuntimeHost_CreateDomainSetup(This,appDomainSetup) (This)->lpVtbl->CreateDomainSetup(This,appDomainSetup)
    985 #define ICorRuntimeHost_CreateEvidence(This,evidence) (This)->lpVtbl->CreateEvidence(This,evidence)
    986 #define ICorRuntimeHost_UnloadDomain(This,appDomain) (This)->lpVtbl->UnloadDomain(This,appDomain)
    987 #define ICorRuntimeHost_CurrentDomain(This,appDomain) (This)->lpVtbl->CurrentDomain(This,appDomain)
    988 #else
    989 /*** IUnknown methods ***/
    990 static FORCEINLINE HRESULT ICorRuntimeHost_QueryInterface(ICorRuntimeHost* This,REFIID riid,void **ppvObject) {
    991     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    992 }
    993 static FORCEINLINE ULONG ICorRuntimeHost_AddRef(ICorRuntimeHost* This) {
    994     return This->lpVtbl->AddRef(This);
    995 }
    996 static FORCEINLINE ULONG ICorRuntimeHost_Release(ICorRuntimeHost* This) {
    997     return This->lpVtbl->Release(This);
    998 }
    999 /*** ICorRuntimeHost methods ***/
   1000 static FORCEINLINE HRESULT ICorRuntimeHost_CreateLogicalThreadState(ICorRuntimeHost* This) {
   1001     return This->lpVtbl->CreateLogicalThreadState(This);
   1002 }
   1003 static FORCEINLINE HRESULT ICorRuntimeHost_DeleteLogicalThreadState(ICorRuntimeHost* This) {
   1004     return This->lpVtbl->DeleteLogicalThreadState(This);
   1005 }
   1006 static FORCEINLINE HRESULT ICorRuntimeHost_SwitchInLogicalThreadState(ICorRuntimeHost* This,DWORD *fiberCookie) {
   1007     return This->lpVtbl->SwitchInLogicalThreadState(This,fiberCookie);
   1008 }
   1009 static FORCEINLINE HRESULT ICorRuntimeHost_SwitchOutLogicalThreadState(ICorRuntimeHost* This,DWORD **fiberCookie) {
   1010     return This->lpVtbl->SwitchOutLogicalThreadState(This,fiberCookie);
   1011 }
   1012 static FORCEINLINE HRESULT ICorRuntimeHost_LocksHeldByLogicalThread(ICorRuntimeHost* This,DWORD *pCount) {
   1013     return This->lpVtbl->LocksHeldByLogicalThread(This,pCount);
   1014 }
   1015 static FORCEINLINE HRESULT ICorRuntimeHost_MapFile(ICorRuntimeHost* This,HANDLE hFile,HMODULE *mapAddress) {
   1016     return This->lpVtbl->MapFile(This,hFile,mapAddress);
   1017 }
   1018 static FORCEINLINE HRESULT ICorRuntimeHost_GetConfiguration(ICorRuntimeHost* This,ICorConfiguration **pConfiguration) {
   1019     return This->lpVtbl->GetConfiguration(This,pConfiguration);
   1020 }
   1021 static FORCEINLINE HRESULT ICorRuntimeHost_Start(ICorRuntimeHost* This) {
   1022     return This->lpVtbl->Start(This);
   1023 }
   1024 static FORCEINLINE HRESULT ICorRuntimeHost_Stop(ICorRuntimeHost* This) {
   1025     return This->lpVtbl->Stop(This);
   1026 }
   1027 static FORCEINLINE HRESULT ICorRuntimeHost_CreateDomain(ICorRuntimeHost* This,LPCWSTR friendlyName,IUnknown *identityArray,IUnknown **appDomain) {
   1028     return This->lpVtbl->CreateDomain(This,friendlyName,identityArray,appDomain);
   1029 }
   1030 static FORCEINLINE HRESULT ICorRuntimeHost_GetDefaultDomain(ICorRuntimeHost* This,IUnknown **pAppDomain) {
   1031     return This->lpVtbl->GetDefaultDomain(This,pAppDomain);
   1032 }
   1033 static FORCEINLINE HRESULT ICorRuntimeHost_EnumDomains(ICorRuntimeHost* This,HDOMAINENUM *hEnum) {
   1034     return This->lpVtbl->EnumDomains(This,hEnum);
   1035 }
   1036 static FORCEINLINE HRESULT ICorRuntimeHost_NextDomain(ICorRuntimeHost* This,HDOMAINENUM hEnum,IUnknown **appDomain) {
   1037     return This->lpVtbl->NextDomain(This,hEnum,appDomain);
   1038 }
   1039 static FORCEINLINE HRESULT ICorRuntimeHost_CloseEnum(ICorRuntimeHost* This,HDOMAINENUM hEnum) {
   1040     return This->lpVtbl->CloseEnum(This,hEnum);
   1041 }
   1042 static FORCEINLINE HRESULT ICorRuntimeHost_CreateDomainEx(ICorRuntimeHost* This,LPCWSTR friendlyName,IUnknown *setup,IUnknown *evidence,IUnknown **appDomain) {
   1043     return This->lpVtbl->CreateDomainEx(This,friendlyName,setup,evidence,appDomain);
   1044 }
   1045 static FORCEINLINE HRESULT ICorRuntimeHost_CreateDomainSetup(ICorRuntimeHost* This,IUnknown **appDomainSetup) {
   1046     return This->lpVtbl->CreateDomainSetup(This,appDomainSetup);
   1047 }
   1048 static FORCEINLINE HRESULT ICorRuntimeHost_CreateEvidence(ICorRuntimeHost* This,IUnknown **evidence) {
   1049     return This->lpVtbl->CreateEvidence(This,evidence);
   1050 }
   1051 static FORCEINLINE HRESULT ICorRuntimeHost_UnloadDomain(ICorRuntimeHost* This,IUnknown *appDomain) {
   1052     return This->lpVtbl->UnloadDomain(This,appDomain);
   1053 }
   1054 static FORCEINLINE HRESULT ICorRuntimeHost_CurrentDomain(ICorRuntimeHost* This,IUnknown **appDomain) {
   1055     return This->lpVtbl->CurrentDomain(This,appDomain);
   1056 }
   1057 #endif
   1058 #endif
   1059 
   1060 #endif
   1061 
   1062 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_CreateLogicalThreadState_Proxy(
   1063     ICorRuntimeHost* This);
   1064 void __RPC_STUB ICorRuntimeHost_CreateLogicalThreadState_Stub(
   1065     IRpcStubBuffer* This,
   1066     IRpcChannelBuffer* pRpcChannelBuffer,
   1067     PRPC_MESSAGE pRpcMessage,
   1068     DWORD* pdwStubPhase);
   1069 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_DeleteLogicalThreadState_Proxy(
   1070     ICorRuntimeHost* This);
   1071 void __RPC_STUB ICorRuntimeHost_DeleteLogicalThreadState_Stub(
   1072     IRpcStubBuffer* This,
   1073     IRpcChannelBuffer* pRpcChannelBuffer,
   1074     PRPC_MESSAGE pRpcMessage,
   1075     DWORD* pdwStubPhase);
   1076 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_SwitchInLogicalThreadState_Proxy(
   1077     ICorRuntimeHost* This,
   1078     DWORD *fiberCookie);
   1079 void __RPC_STUB ICorRuntimeHost_SwitchInLogicalThreadState_Stub(
   1080     IRpcStubBuffer* This,
   1081     IRpcChannelBuffer* pRpcChannelBuffer,
   1082     PRPC_MESSAGE pRpcMessage,
   1083     DWORD* pdwStubPhase);
   1084 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_SwitchOutLogicalThreadState_Proxy(
   1085     ICorRuntimeHost* This,
   1086     DWORD **fiberCookie);
   1087 void __RPC_STUB ICorRuntimeHost_SwitchOutLogicalThreadState_Stub(
   1088     IRpcStubBuffer* This,
   1089     IRpcChannelBuffer* pRpcChannelBuffer,
   1090     PRPC_MESSAGE pRpcMessage,
   1091     DWORD* pdwStubPhase);
   1092 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_LocksHeldByLogicalThread_Proxy(
   1093     ICorRuntimeHost* This,
   1094     DWORD *pCount);
   1095 void __RPC_STUB ICorRuntimeHost_LocksHeldByLogicalThread_Stub(
   1096     IRpcStubBuffer* This,
   1097     IRpcChannelBuffer* pRpcChannelBuffer,
   1098     PRPC_MESSAGE pRpcMessage,
   1099     DWORD* pdwStubPhase);
   1100 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_MapFile_Proxy(
   1101     ICorRuntimeHost* This,
   1102     HANDLE hFile,
   1103     HMODULE *mapAddress);
   1104 void __RPC_STUB ICorRuntimeHost_MapFile_Stub(
   1105     IRpcStubBuffer* This,
   1106     IRpcChannelBuffer* pRpcChannelBuffer,
   1107     PRPC_MESSAGE pRpcMessage,
   1108     DWORD* pdwStubPhase);
   1109 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_GetConfiguration_Proxy(
   1110     ICorRuntimeHost* This,
   1111     ICorConfiguration **pConfiguration);
   1112 void __RPC_STUB ICorRuntimeHost_GetConfiguration_Stub(
   1113     IRpcStubBuffer* This,
   1114     IRpcChannelBuffer* pRpcChannelBuffer,
   1115     PRPC_MESSAGE pRpcMessage,
   1116     DWORD* pdwStubPhase);
   1117 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_Start_Proxy(
   1118     ICorRuntimeHost* This);
   1119 void __RPC_STUB ICorRuntimeHost_Start_Stub(
   1120     IRpcStubBuffer* This,
   1121     IRpcChannelBuffer* pRpcChannelBuffer,
   1122     PRPC_MESSAGE pRpcMessage,
   1123     DWORD* pdwStubPhase);
   1124 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_Stop_Proxy(
   1125     ICorRuntimeHost* This);
   1126 void __RPC_STUB ICorRuntimeHost_Stop_Stub(
   1127     IRpcStubBuffer* This,
   1128     IRpcChannelBuffer* pRpcChannelBuffer,
   1129     PRPC_MESSAGE pRpcMessage,
   1130     DWORD* pdwStubPhase);
   1131 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_CreateDomain_Proxy(
   1132     ICorRuntimeHost* This,
   1133     LPCWSTR friendlyName,
   1134     IUnknown *identityArray,
   1135     IUnknown **appDomain);
   1136 void __RPC_STUB ICorRuntimeHost_CreateDomain_Stub(
   1137     IRpcStubBuffer* This,
   1138     IRpcChannelBuffer* pRpcChannelBuffer,
   1139     PRPC_MESSAGE pRpcMessage,
   1140     DWORD* pdwStubPhase);
   1141 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_GetDefaultDomain_Proxy(
   1142     ICorRuntimeHost* This,
   1143     IUnknown **pAppDomain);
   1144 void __RPC_STUB ICorRuntimeHost_GetDefaultDomain_Stub(
   1145     IRpcStubBuffer* This,
   1146     IRpcChannelBuffer* pRpcChannelBuffer,
   1147     PRPC_MESSAGE pRpcMessage,
   1148     DWORD* pdwStubPhase);
   1149 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_EnumDomains_Proxy(
   1150     ICorRuntimeHost* This,
   1151     HDOMAINENUM *hEnum);
   1152 void __RPC_STUB ICorRuntimeHost_EnumDomains_Stub(
   1153     IRpcStubBuffer* This,
   1154     IRpcChannelBuffer* pRpcChannelBuffer,
   1155     PRPC_MESSAGE pRpcMessage,
   1156     DWORD* pdwStubPhase);
   1157 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_NextDomain_Proxy(
   1158     ICorRuntimeHost* This,
   1159     HDOMAINENUM hEnum,
   1160     IUnknown **appDomain);
   1161 void __RPC_STUB ICorRuntimeHost_NextDomain_Stub(
   1162     IRpcStubBuffer* This,
   1163     IRpcChannelBuffer* pRpcChannelBuffer,
   1164     PRPC_MESSAGE pRpcMessage,
   1165     DWORD* pdwStubPhase);
   1166 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_CloseEnum_Proxy(
   1167     ICorRuntimeHost* This,
   1168     HDOMAINENUM hEnum);
   1169 void __RPC_STUB ICorRuntimeHost_CloseEnum_Stub(
   1170     IRpcStubBuffer* This,
   1171     IRpcChannelBuffer* pRpcChannelBuffer,
   1172     PRPC_MESSAGE pRpcMessage,
   1173     DWORD* pdwStubPhase);
   1174 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_CreateDomainEx_Proxy(
   1175     ICorRuntimeHost* This,
   1176     LPCWSTR friendlyName,
   1177     IUnknown *setup,
   1178     IUnknown *evidence,
   1179     IUnknown **appDomain);
   1180 void __RPC_STUB ICorRuntimeHost_CreateDomainEx_Stub(
   1181     IRpcStubBuffer* This,
   1182     IRpcChannelBuffer* pRpcChannelBuffer,
   1183     PRPC_MESSAGE pRpcMessage,
   1184     DWORD* pdwStubPhase);
   1185 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_CreateDomainSetup_Proxy(
   1186     ICorRuntimeHost* This,
   1187     IUnknown **appDomainSetup);
   1188 void __RPC_STUB ICorRuntimeHost_CreateDomainSetup_Stub(
   1189     IRpcStubBuffer* This,
   1190     IRpcChannelBuffer* pRpcChannelBuffer,
   1191     PRPC_MESSAGE pRpcMessage,
   1192     DWORD* pdwStubPhase);
   1193 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_CreateEvidence_Proxy(
   1194     ICorRuntimeHost* This,
   1195     IUnknown **evidence);
   1196 void __RPC_STUB ICorRuntimeHost_CreateEvidence_Stub(
   1197     IRpcStubBuffer* This,
   1198     IRpcChannelBuffer* pRpcChannelBuffer,
   1199     PRPC_MESSAGE pRpcMessage,
   1200     DWORD* pdwStubPhase);
   1201 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_UnloadDomain_Proxy(
   1202     ICorRuntimeHost* This,
   1203     IUnknown *appDomain);
   1204 void __RPC_STUB ICorRuntimeHost_UnloadDomain_Stub(
   1205     IRpcStubBuffer* This,
   1206     IRpcChannelBuffer* pRpcChannelBuffer,
   1207     PRPC_MESSAGE pRpcMessage,
   1208     DWORD* pdwStubPhase);
   1209 HRESULT STDMETHODCALLTYPE ICorRuntimeHost_CurrentDomain_Proxy(
   1210     ICorRuntimeHost* This,
   1211     IUnknown **appDomain);
   1212 void __RPC_STUB ICorRuntimeHost_CurrentDomain_Stub(
   1213     IRpcStubBuffer* This,
   1214     IRpcChannelBuffer* pRpcChannelBuffer,
   1215     PRPC_MESSAGE pRpcMessage,
   1216     DWORD* pdwStubPhase);
   1217 
   1218 #endif  /* __ICorRuntimeHost_INTERFACE_DEFINED__ */
   1219 
   1220 DEFINE_GUID(CLSID_CLRRuntimeHost, 0x90f1a06e,0x7712,0x4762,0x86,0xb5,0x7a,0x5e,0xba,0x6b,0xdb,0x02);
   1221 /*****************************************************************************
   1222  * ICLRRuntimeHost interface
   1223  */
   1224 #ifndef __ICLRRuntimeHost_INTERFACE_DEFINED__
   1225 #define __ICLRRuntimeHost_INTERFACE_DEFINED__
   1226 
   1227 DEFINE_GUID(IID_ICLRRuntimeHost, 0x90f1a06c, 0x7712, 0x4762, 0x86,0xb5, 0x7a,0x5e,0xba,0x6b,0xdb,0x02);
   1228 #if defined(__cplusplus) && !defined(CINTERFACE)
   1229 MIDL_INTERFACE("90f1a06c-7712-4762-86b5-7a5eba6bdb02")
   1230 ICLRRuntimeHost : public IUnknown
   1231 {
   1232     virtual HRESULT STDMETHODCALLTYPE Start(
   1233         ) = 0;
   1234 
   1235     virtual HRESULT STDMETHODCALLTYPE Stop(
   1236         ) = 0;
   1237 
   1238     virtual HRESULT STDMETHODCALLTYPE SetHostControl(
   1239         IHostControl *pHostControl) = 0;
   1240 
   1241     virtual HRESULT STDMETHODCALLTYPE GetCLRControl(
   1242         ICLRControl **pCLRControl) = 0;
   1243 
   1244     virtual HRESULT STDMETHODCALLTYPE UnloadAppDomain(
   1245         DWORD dwAppDomainId,
   1246         WINBOOL fWaitUntilDone) = 0;
   1247 
   1248     virtual HRESULT STDMETHODCALLTYPE ExecuteInAppDomain(
   1249         DWORD dwAppDomainId,
   1250         HRESULT (__stdcall * pCallback)(void *cookie),
   1251         void *cookie) = 0;
   1252 
   1253     virtual HRESULT STDMETHODCALLTYPE GetCurrentAppDomainId(
   1254         DWORD *pdwAppDomainId) = 0;
   1255 
   1256     virtual HRESULT STDMETHODCALLTYPE ExecuteApplication(
   1257         LPCWSTR pwzAppFullName,
   1258         DWORD dwManifestPaths,
   1259         LPCWSTR *ppwzManifestPaths,
   1260         DWORD dwActivationData,
   1261         LPCWSTR *ppwzActivationData,
   1262         int *pReturnValue) = 0;
   1263 
   1264     virtual HRESULT STDMETHODCALLTYPE ExecuteInDefaultAppDomain(
   1265         LPCWSTR pwzAssemblyPath,
   1266         LPCWSTR pwzTypeName,
   1267         LPCWSTR pwzMethodName,
   1268         LPCWSTR pwzArgument,
   1269         DWORD *pReturnValue) = 0;
   1270 
   1271 };
   1272 #ifdef __CRT_UUID_DECL
   1273 __CRT_UUID_DECL(ICLRRuntimeHost, 0x90f1a06c, 0x7712, 0x4762, 0x86,0xb5, 0x7a,0x5e,0xba,0x6b,0xdb,0x02)
   1274 #endif
   1275 #else
   1276 typedef struct ICLRRuntimeHostVtbl {
   1277     BEGIN_INTERFACE
   1278 
   1279     /*** IUnknown methods ***/
   1280     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1281         ICLRRuntimeHost* This,
   1282         REFIID riid,
   1283         void **ppvObject);
   1284 
   1285     ULONG (STDMETHODCALLTYPE *AddRef)(
   1286         ICLRRuntimeHost* This);
   1287 
   1288     ULONG (STDMETHODCALLTYPE *Release)(
   1289         ICLRRuntimeHost* This);
   1290 
   1291     /*** ICLRRuntimeHost methods ***/
   1292     HRESULT (STDMETHODCALLTYPE *Start)(
   1293         ICLRRuntimeHost* This);
   1294 
   1295     HRESULT (STDMETHODCALLTYPE *Stop)(
   1296         ICLRRuntimeHost* This);
   1297 
   1298     HRESULT (STDMETHODCALLTYPE *SetHostControl)(
   1299         ICLRRuntimeHost* This,
   1300         IHostControl *pHostControl);
   1301 
   1302     HRESULT (STDMETHODCALLTYPE *GetCLRControl)(
   1303         ICLRRuntimeHost* This,
   1304         ICLRControl **pCLRControl);
   1305 
   1306     HRESULT (STDMETHODCALLTYPE *UnloadAppDomain)(
   1307         ICLRRuntimeHost* This,
   1308         DWORD dwAppDomainId,
   1309         WINBOOL fWaitUntilDone);
   1310 
   1311     HRESULT (STDMETHODCALLTYPE *ExecuteInAppDomain)(
   1312         ICLRRuntimeHost* This,
   1313         DWORD dwAppDomainId,
   1314         HRESULT (__stdcall * pCallback)(void *cookie),
   1315         void *cookie);
   1316 
   1317     HRESULT (STDMETHODCALLTYPE *GetCurrentAppDomainId)(
   1318         ICLRRuntimeHost* This,
   1319         DWORD *pdwAppDomainId);
   1320 
   1321     HRESULT (STDMETHODCALLTYPE *ExecuteApplication)(
   1322         ICLRRuntimeHost* This,
   1323         LPCWSTR pwzAppFullName,
   1324         DWORD dwManifestPaths,
   1325         LPCWSTR *ppwzManifestPaths,
   1326         DWORD dwActivationData,
   1327         LPCWSTR *ppwzActivationData,
   1328         int *pReturnValue);
   1329 
   1330     HRESULT (STDMETHODCALLTYPE *ExecuteInDefaultAppDomain)(
   1331         ICLRRuntimeHost* This,
   1332         LPCWSTR pwzAssemblyPath,
   1333         LPCWSTR pwzTypeName,
   1334         LPCWSTR pwzMethodName,
   1335         LPCWSTR pwzArgument,
   1336         DWORD *pReturnValue);
   1337 
   1338     END_INTERFACE
   1339 } ICLRRuntimeHostVtbl;
   1340 interface ICLRRuntimeHost {
   1341     CONST_VTBL ICLRRuntimeHostVtbl* lpVtbl;
   1342 };
   1343 
   1344 #ifdef COBJMACROS
   1345 #ifndef WIDL_C_INLINE_WRAPPERS
   1346 /*** IUnknown methods ***/
   1347 #define ICLRRuntimeHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1348 #define ICLRRuntimeHost_AddRef(This) (This)->lpVtbl->AddRef(This)
   1349 #define ICLRRuntimeHost_Release(This) (This)->lpVtbl->Release(This)
   1350 /*** ICLRRuntimeHost methods ***/
   1351 #define ICLRRuntimeHost_Start(This) (This)->lpVtbl->Start(This)
   1352 #define ICLRRuntimeHost_Stop(This) (This)->lpVtbl->Stop(This)
   1353 #define ICLRRuntimeHost_SetHostControl(This,pHostControl) (This)->lpVtbl->SetHostControl(This,pHostControl)
   1354 #define ICLRRuntimeHost_GetCLRControl(This,pCLRControl) (This)->lpVtbl->GetCLRControl(This,pCLRControl)
   1355 #define ICLRRuntimeHost_UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) (This)->lpVtbl->UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone)
   1356 #define ICLRRuntimeHost_ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) (This)->lpVtbl->ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie)
   1357 #define ICLRRuntimeHost_GetCurrentAppDomainId(This,pdwAppDomainId) (This)->lpVtbl->GetCurrentAppDomainId(This,pdwAppDomainId)
   1358 #define ICLRRuntimeHost_ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) (This)->lpVtbl->ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue)
   1359 #define ICLRRuntimeHost_ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) (This)->lpVtbl->ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue)
   1360 #else
   1361 /*** IUnknown methods ***/
   1362 static FORCEINLINE HRESULT ICLRRuntimeHost_QueryInterface(ICLRRuntimeHost* This,REFIID riid,void **ppvObject) {
   1363     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1364 }
   1365 static FORCEINLINE ULONG ICLRRuntimeHost_AddRef(ICLRRuntimeHost* This) {
   1366     return This->lpVtbl->AddRef(This);
   1367 }
   1368 static FORCEINLINE ULONG ICLRRuntimeHost_Release(ICLRRuntimeHost* This) {
   1369     return This->lpVtbl->Release(This);
   1370 }
   1371 /*** ICLRRuntimeHost methods ***/
   1372 static FORCEINLINE HRESULT ICLRRuntimeHost_Start(ICLRRuntimeHost* This) {
   1373     return This->lpVtbl->Start(This);
   1374 }
   1375 static FORCEINLINE HRESULT ICLRRuntimeHost_Stop(ICLRRuntimeHost* This) {
   1376     return This->lpVtbl->Stop(This);
   1377 }
   1378 static FORCEINLINE HRESULT ICLRRuntimeHost_SetHostControl(ICLRRuntimeHost* This,IHostControl *pHostControl) {
   1379     return This->lpVtbl->SetHostControl(This,pHostControl);
   1380 }
   1381 static FORCEINLINE HRESULT ICLRRuntimeHost_GetCLRControl(ICLRRuntimeHost* This,ICLRControl **pCLRControl) {
   1382     return This->lpVtbl->GetCLRControl(This,pCLRControl);
   1383 }
   1384 static FORCEINLINE HRESULT ICLRRuntimeHost_UnloadAppDomain(ICLRRuntimeHost* This,DWORD dwAppDomainId,WINBOOL fWaitUntilDone) {
   1385     return This->lpVtbl->UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone);
   1386 }
   1387 static FORCEINLINE HRESULT ICLRRuntimeHost_ExecuteInAppDomain(ICLRRuntimeHost* This,DWORD dwAppDomainId,HRESULT (__stdcall * pCallback)(void *cookie),void *cookie) {
   1388     return This->lpVtbl->ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie);
   1389 }
   1390 static FORCEINLINE HRESULT ICLRRuntimeHost_GetCurrentAppDomainId(ICLRRuntimeHost* This,DWORD *pdwAppDomainId) {
   1391     return This->lpVtbl->GetCurrentAppDomainId(This,pdwAppDomainId);
   1392 }
   1393 static FORCEINLINE HRESULT ICLRRuntimeHost_ExecuteApplication(ICLRRuntimeHost* This,LPCWSTR pwzAppFullName,DWORD dwManifestPaths,LPCWSTR *ppwzManifestPaths,DWORD dwActivationData,LPCWSTR *ppwzActivationData,int *pReturnValue) {
   1394     return This->lpVtbl->ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue);
   1395 }
   1396 static FORCEINLINE HRESULT ICLRRuntimeHost_ExecuteInDefaultAppDomain(ICLRRuntimeHost* This,LPCWSTR pwzAssemblyPath,LPCWSTR pwzTypeName,LPCWSTR pwzMethodName,LPCWSTR pwzArgument,DWORD *pReturnValue) {
   1397     return This->lpVtbl->ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue);
   1398 }
   1399 #endif
   1400 #endif
   1401 
   1402 #endif
   1403 
   1404 HRESULT STDMETHODCALLTYPE ICLRRuntimeHost_Start_Proxy(
   1405     ICLRRuntimeHost* This);
   1406 void __RPC_STUB ICLRRuntimeHost_Start_Stub(
   1407     IRpcStubBuffer* This,
   1408     IRpcChannelBuffer* pRpcChannelBuffer,
   1409     PRPC_MESSAGE pRpcMessage,
   1410     DWORD* pdwStubPhase);
   1411 HRESULT STDMETHODCALLTYPE ICLRRuntimeHost_Stop_Proxy(
   1412     ICLRRuntimeHost* This);
   1413 void __RPC_STUB ICLRRuntimeHost_Stop_Stub(
   1414     IRpcStubBuffer* This,
   1415     IRpcChannelBuffer* pRpcChannelBuffer,
   1416     PRPC_MESSAGE pRpcMessage,
   1417     DWORD* pdwStubPhase);
   1418 HRESULT STDMETHODCALLTYPE ICLRRuntimeHost_SetHostControl_Proxy(
   1419     ICLRRuntimeHost* This,
   1420     IHostControl *pHostControl);
   1421 void __RPC_STUB ICLRRuntimeHost_SetHostControl_Stub(
   1422     IRpcStubBuffer* This,
   1423     IRpcChannelBuffer* pRpcChannelBuffer,
   1424     PRPC_MESSAGE pRpcMessage,
   1425     DWORD* pdwStubPhase);
   1426 HRESULT STDMETHODCALLTYPE ICLRRuntimeHost_GetCLRControl_Proxy(
   1427     ICLRRuntimeHost* This,
   1428     ICLRControl **pCLRControl);
   1429 void __RPC_STUB ICLRRuntimeHost_GetCLRControl_Stub(
   1430     IRpcStubBuffer* This,
   1431     IRpcChannelBuffer* pRpcChannelBuffer,
   1432     PRPC_MESSAGE pRpcMessage,
   1433     DWORD* pdwStubPhase);
   1434 HRESULT STDMETHODCALLTYPE ICLRRuntimeHost_UnloadAppDomain_Proxy(
   1435     ICLRRuntimeHost* This,
   1436     DWORD dwAppDomainId,
   1437     WINBOOL fWaitUntilDone);
   1438 void __RPC_STUB ICLRRuntimeHost_UnloadAppDomain_Stub(
   1439     IRpcStubBuffer* This,
   1440     IRpcChannelBuffer* pRpcChannelBuffer,
   1441     PRPC_MESSAGE pRpcMessage,
   1442     DWORD* pdwStubPhase);
   1443 HRESULT STDMETHODCALLTYPE ICLRRuntimeHost_ExecuteInAppDomain_Proxy(
   1444     ICLRRuntimeHost* This,
   1445     DWORD dwAppDomainId,
   1446     HRESULT (__stdcall * pCallback)(void *cookie),
   1447     void *cookie);
   1448 void __RPC_STUB ICLRRuntimeHost_ExecuteInAppDomain_Stub(
   1449     IRpcStubBuffer* This,
   1450     IRpcChannelBuffer* pRpcChannelBuffer,
   1451     PRPC_MESSAGE pRpcMessage,
   1452     DWORD* pdwStubPhase);
   1453 HRESULT STDMETHODCALLTYPE ICLRRuntimeHost_GetCurrentAppDomainId_Proxy(
   1454     ICLRRuntimeHost* This,
   1455     DWORD *pdwAppDomainId);
   1456 void __RPC_STUB ICLRRuntimeHost_GetCurrentAppDomainId_Stub(
   1457     IRpcStubBuffer* This,
   1458     IRpcChannelBuffer* pRpcChannelBuffer,
   1459     PRPC_MESSAGE pRpcMessage,
   1460     DWORD* pdwStubPhase);
   1461 HRESULT STDMETHODCALLTYPE ICLRRuntimeHost_ExecuteApplication_Proxy(
   1462     ICLRRuntimeHost* This,
   1463     LPCWSTR pwzAppFullName,
   1464     DWORD dwManifestPaths,
   1465     LPCWSTR *ppwzManifestPaths,
   1466     DWORD dwActivationData,
   1467     LPCWSTR *ppwzActivationData,
   1468     int *pReturnValue);
   1469 void __RPC_STUB ICLRRuntimeHost_ExecuteApplication_Stub(
   1470     IRpcStubBuffer* This,
   1471     IRpcChannelBuffer* pRpcChannelBuffer,
   1472     PRPC_MESSAGE pRpcMessage,
   1473     DWORD* pdwStubPhase);
   1474 HRESULT STDMETHODCALLTYPE ICLRRuntimeHost_ExecuteInDefaultAppDomain_Proxy(
   1475     ICLRRuntimeHost* This,
   1476     LPCWSTR pwzAssemblyPath,
   1477     LPCWSTR pwzTypeName,
   1478     LPCWSTR pwzMethodName,
   1479     LPCWSTR pwzArgument,
   1480     DWORD *pReturnValue);
   1481 void __RPC_STUB ICLRRuntimeHost_ExecuteInDefaultAppDomain_Stub(
   1482     IRpcStubBuffer* This,
   1483     IRpcChannelBuffer* pRpcChannelBuffer,
   1484     PRPC_MESSAGE pRpcMessage,
   1485     DWORD* pdwStubPhase);
   1486 
   1487 #endif  /* __ICLRRuntimeHost_INTERFACE_DEFINED__ */
   1488 
   1489 /*****************************************************************************
   1490  * IManagedObject interface
   1491  */
   1492 #ifndef __IManagedObject_INTERFACE_DEFINED__
   1493 #define __IManagedObject_INTERFACE_DEFINED__
   1494 
   1495 DEFINE_GUID(IID_IManagedObject, 0xc3fcc19e, 0xa970, 0x11d2, 0x8b,0x5a, 0x00,0xa0,0xc9,0xb7,0xc9,0xc4);
   1496 #if defined(__cplusplus) && !defined(CINTERFACE)
   1497 MIDL_INTERFACE("c3fcc19e-a970-11d2-8b5a-00a0c9b7c9c4")
   1498 IManagedObject : public IUnknown
   1499 {
   1500     virtual HRESULT STDMETHODCALLTYPE GetSerializedBuffer(
   1501         BSTR *pBSTR) = 0;
   1502 
   1503     virtual HRESULT STDMETHODCALLTYPE GetObjectIdentity(
   1504         BSTR *pBSTRGUID,
   1505         int *AppDomainID,
   1506         int *pCCW) = 0;
   1507 
   1508 };
   1509 #ifdef __CRT_UUID_DECL
   1510 __CRT_UUID_DECL(IManagedObject, 0xc3fcc19e, 0xa970, 0x11d2, 0x8b,0x5a, 0x00,0xa0,0xc9,0xb7,0xc9,0xc4)
   1511 #endif
   1512 #else
   1513 typedef struct IManagedObjectVtbl {
   1514     BEGIN_INTERFACE
   1515 
   1516     /*** IUnknown methods ***/
   1517     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1518         IManagedObject* This,
   1519         REFIID riid,
   1520         void **ppvObject);
   1521 
   1522     ULONG (STDMETHODCALLTYPE *AddRef)(
   1523         IManagedObject* This);
   1524 
   1525     ULONG (STDMETHODCALLTYPE *Release)(
   1526         IManagedObject* This);
   1527 
   1528     /*** IManagedObject methods ***/
   1529     HRESULT (STDMETHODCALLTYPE *GetSerializedBuffer)(
   1530         IManagedObject* This,
   1531         BSTR *pBSTR);
   1532 
   1533     HRESULT (STDMETHODCALLTYPE *GetObjectIdentity)(
   1534         IManagedObject* This,
   1535         BSTR *pBSTRGUID,
   1536         int *AppDomainID,
   1537         int *pCCW);
   1538 
   1539     END_INTERFACE
   1540 } IManagedObjectVtbl;
   1541 interface IManagedObject {
   1542     CONST_VTBL IManagedObjectVtbl* lpVtbl;
   1543 };
   1544 
   1545 #ifdef COBJMACROS
   1546 #ifndef WIDL_C_INLINE_WRAPPERS
   1547 /*** IUnknown methods ***/
   1548 #define IManagedObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1549 #define IManagedObject_AddRef(This) (This)->lpVtbl->AddRef(This)
   1550 #define IManagedObject_Release(This) (This)->lpVtbl->Release(This)
   1551 /*** IManagedObject methods ***/
   1552 #define IManagedObject_GetSerializedBuffer(This,pBSTR) (This)->lpVtbl->GetSerializedBuffer(This,pBSTR)
   1553 #define IManagedObject_GetObjectIdentity(This,pBSTRGUID,AppDomainID,pCCW) (This)->lpVtbl->GetObjectIdentity(This,pBSTRGUID,AppDomainID,pCCW)
   1554 #else
   1555 /*** IUnknown methods ***/
   1556 static FORCEINLINE HRESULT IManagedObject_QueryInterface(IManagedObject* This,REFIID riid,void **ppvObject) {
   1557     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1558 }
   1559 static FORCEINLINE ULONG IManagedObject_AddRef(IManagedObject* This) {
   1560     return This->lpVtbl->AddRef(This);
   1561 }
   1562 static FORCEINLINE ULONG IManagedObject_Release(IManagedObject* This) {
   1563     return This->lpVtbl->Release(This);
   1564 }
   1565 /*** IManagedObject methods ***/
   1566 static FORCEINLINE HRESULT IManagedObject_GetSerializedBuffer(IManagedObject* This,BSTR *pBSTR) {
   1567     return This->lpVtbl->GetSerializedBuffer(This,pBSTR);
   1568 }
   1569 static FORCEINLINE HRESULT IManagedObject_GetObjectIdentity(IManagedObject* This,BSTR *pBSTRGUID,int *AppDomainID,int *pCCW) {
   1570     return This->lpVtbl->GetObjectIdentity(This,pBSTRGUID,AppDomainID,pCCW);
   1571 }
   1572 #endif
   1573 #endif
   1574 
   1575 #endif
   1576 
   1577 HRESULT STDMETHODCALLTYPE IManagedObject_GetSerializedBuffer_Proxy(
   1578     IManagedObject* This,
   1579     BSTR *pBSTR);
   1580 void __RPC_STUB IManagedObject_GetSerializedBuffer_Stub(
   1581     IRpcStubBuffer* This,
   1582     IRpcChannelBuffer* pRpcChannelBuffer,
   1583     PRPC_MESSAGE pRpcMessage,
   1584     DWORD* pdwStubPhase);
   1585 HRESULT STDMETHODCALLTYPE IManagedObject_GetObjectIdentity_Proxy(
   1586     IManagedObject* This,
   1587     BSTR *pBSTRGUID,
   1588     int *AppDomainID,
   1589     int *pCCW);
   1590 void __RPC_STUB IManagedObject_GetObjectIdentity_Stub(
   1591     IRpcStubBuffer* This,
   1592     IRpcChannelBuffer* pRpcChannelBuffer,
   1593     PRPC_MESSAGE pRpcMessage,
   1594     DWORD* pdwStubPhase);
   1595 
   1596 #endif  /* __IManagedObject_INTERFACE_DEFINED__ */
   1597 
   1598 /* Begin additional prototypes for all interfaces */
   1599 
   1600 
   1601 /* End additional prototypes */
   1602 
   1603 #ifdef __cplusplus
   1604 }
   1605 #endif
   1606 
   1607 #endif /* __mscoree_h__ */
   1608