zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

mscoree.h (46039B) - Raw


      1 /*** Autogenerated by WIDL 10.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 #ifndef WINE_NO_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 inline HRESULT IGCThreadControl_QueryInterface(IGCThreadControl* This,REFIID riid,void **ppvObject) {
    197     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    198 }
    199 static inline ULONG IGCThreadControl_AddRef(IGCThreadControl* This) {
    200     return This->lpVtbl->AddRef(This);
    201 }
    202 static inline ULONG IGCThreadControl_Release(IGCThreadControl* This) {
    203     return This->lpVtbl->Release(This);
    204 }
    205 /*** IGCThreadControl methods ***/
    206 static inline HRESULT IGCThreadControl_ThreadIsBlockingForSuspension(IGCThreadControl* This) {
    207     return This->lpVtbl->ThreadIsBlockingForSuspension(This);
    208 }
    209 static inline HRESULT IGCThreadControl_SuspensionStarting(IGCThreadControl* This) {
    210     return This->lpVtbl->SuspensionStarting(This);
    211 }
    212 static inline 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 inline HRESULT IGCHostControl_QueryInterface(IGCHostControl* This,REFIID riid,void **ppvObject) {
    282     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    283 }
    284 static inline ULONG IGCHostControl_AddRef(IGCHostControl* This) {
    285     return This->lpVtbl->AddRef(This);
    286 }
    287 static inline ULONG IGCHostControl_Release(IGCHostControl* This) {
    288     return This->lpVtbl->Release(This);
    289 }
    290 /*** IGCHostControl methods ***/
    291 static inline 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 inline HRESULT IDebuggerThreadControl_QueryInterface(IDebuggerThreadControl* This,REFIID riid,void **ppvObject) {
    373     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    374 }
    375 static inline ULONG IDebuggerThreadControl_AddRef(IDebuggerThreadControl* This) {
    376     return This->lpVtbl->AddRef(This);
    377 }
    378 static inline ULONG IDebuggerThreadControl_Release(IDebuggerThreadControl* This) {
    379     return This->lpVtbl->Release(This);
    380 }
    381 /*** IDebuggerThreadControl methods ***/
    382 static inline HRESULT IDebuggerThreadControl_ThreadIsBlockingForDebugger(IDebuggerThreadControl* This) {
    383     return This->lpVtbl->ThreadIsBlockingForDebugger(This);
    384 }
    385 static inline HRESULT IDebuggerThreadControl_ReleaseAllRuntimeThreads(IDebuggerThreadControl* This) {
    386     return This->lpVtbl->ReleaseAllRuntimeThreads(This);
    387 }
    388 static inline 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 inline HRESULT ICorConfiguration_QueryInterface(ICorConfiguration* This,REFIID riid,void **ppvObject) {
    480     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    481 }
    482 static inline ULONG ICorConfiguration_AddRef(ICorConfiguration* This) {
    483     return This->lpVtbl->AddRef(This);
    484 }
    485 static inline ULONG ICorConfiguration_Release(ICorConfiguration* This) {
    486     return This->lpVtbl->Release(This);
    487 }
    488 /*** ICorConfiguration methods ***/
    489 static inline HRESULT ICorConfiguration_SetGCThreadControl(ICorConfiguration* This,IGCThreadControl *GCThreadControl) {
    490     return This->lpVtbl->SetGCThreadControl(This,GCThreadControl);
    491 }
    492 static inline HRESULT ICorConfiguration_SetGCHostControl(ICorConfiguration* This,IGCHostControl *GCHostControl) {
    493     return This->lpVtbl->SetGCHostControl(This,GCHostControl);
    494 }
    495 static inline HRESULT ICorConfiguration_SetDebuggerThreadControl(ICorConfiguration* This,IDebuggerThreadControl *debuggerThreadControl) {
    496     return This->lpVtbl->SetDebuggerThreadControl(This,debuggerThreadControl);
    497 }
    498 static inline 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 inline HRESULT ICLRControl_QueryInterface(ICLRControl* This,REFIID riid,void **ppvObject) {
    578     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    579 }
    580 static inline ULONG ICLRControl_AddRef(ICLRControl* This) {
    581     return This->lpVtbl->AddRef(This);
    582 }
    583 static inline ULONG ICLRControl_Release(ICLRControl* This) {
    584     return This->lpVtbl->Release(This);
    585 }
    586 /*** ICLRControl methods ***/
    587 static inline HRESULT ICLRControl_GetCLRManager(ICLRControl* This,REFIID riid,void **ppObject) {
    588     return This->lpVtbl->GetCLRManager(This,riid,ppObject);
    589 }
    590 static inline 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 inline HRESULT IHostControl_QueryInterface(IHostControl* This,REFIID riid,void **ppvObject) {
    670     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    671 }
    672 static inline ULONG IHostControl_AddRef(IHostControl* This) {
    673     return This->lpVtbl->AddRef(This);
    674 }
    675 static inline ULONG IHostControl_Release(IHostControl* This) {
    676     return This->lpVtbl->Release(This);
    677 }
    678 /*** IHostControl methods ***/
    679 static inline HRESULT IHostControl_GetHostManager(IHostControl* This,REFIID riid,void **ppObject) {
    680     return This->lpVtbl->GetHostManager(This,riid,ppObject);
    681 }
    682 static inline 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 inline HRESULT ICorRuntimeHost_QueryInterface(ICorRuntimeHost* This,REFIID riid,void **ppvObject) {
    905     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    906 }
    907 static inline ULONG ICorRuntimeHost_AddRef(ICorRuntimeHost* This) {
    908     return This->lpVtbl->AddRef(This);
    909 }
    910 static inline ULONG ICorRuntimeHost_Release(ICorRuntimeHost* This) {
    911     return This->lpVtbl->Release(This);
    912 }
    913 /*** ICorRuntimeHost methods ***/
    914 static inline HRESULT ICorRuntimeHost_CreateLogicalThreadState(ICorRuntimeHost* This) {
    915     return This->lpVtbl->CreateLogicalThreadState(This);
    916 }
    917 static inline HRESULT ICorRuntimeHost_DeleteLogicalThreadState(ICorRuntimeHost* This) {
    918     return This->lpVtbl->DeleteLogicalThreadState(This);
    919 }
    920 static inline HRESULT ICorRuntimeHost_SwitchInLogicalThreadState(ICorRuntimeHost* This,DWORD *fiberCookie) {
    921     return This->lpVtbl->SwitchInLogicalThreadState(This,fiberCookie);
    922 }
    923 static inline HRESULT ICorRuntimeHost_SwitchOutLogicalThreadState(ICorRuntimeHost* This,DWORD **fiberCookie) {
    924     return This->lpVtbl->SwitchOutLogicalThreadState(This,fiberCookie);
    925 }
    926 static inline HRESULT ICorRuntimeHost_LocksHeldByLogicalThread(ICorRuntimeHost* This,DWORD *pCount) {
    927     return This->lpVtbl->LocksHeldByLogicalThread(This,pCount);
    928 }
    929 static inline HRESULT ICorRuntimeHost_MapFile(ICorRuntimeHost* This,HANDLE hFile,HMODULE *mapAddress) {
    930     return This->lpVtbl->MapFile(This,hFile,mapAddress);
    931 }
    932 static inline HRESULT ICorRuntimeHost_GetConfiguration(ICorRuntimeHost* This,ICorConfiguration **pConfiguration) {
    933     return This->lpVtbl->GetConfiguration(This,pConfiguration);
    934 }
    935 static inline HRESULT ICorRuntimeHost_Start(ICorRuntimeHost* This) {
    936     return This->lpVtbl->Start(This);
    937 }
    938 static inline HRESULT ICorRuntimeHost_Stop(ICorRuntimeHost* This) {
    939     return This->lpVtbl->Stop(This);
    940 }
    941 static inline HRESULT ICorRuntimeHost_CreateDomain(ICorRuntimeHost* This,LPCWSTR friendlyName,IUnknown *identityArray,IUnknown **appDomain) {
    942     return This->lpVtbl->CreateDomain(This,friendlyName,identityArray,appDomain);
    943 }
    944 static inline HRESULT ICorRuntimeHost_GetDefaultDomain(ICorRuntimeHost* This,IUnknown **pAppDomain) {
    945     return This->lpVtbl->GetDefaultDomain(This,pAppDomain);
    946 }
    947 static inline HRESULT ICorRuntimeHost_EnumDomains(ICorRuntimeHost* This,HDOMAINENUM *hEnum) {
    948     return This->lpVtbl->EnumDomains(This,hEnum);
    949 }
    950 static inline HRESULT ICorRuntimeHost_NextDomain(ICorRuntimeHost* This,HDOMAINENUM hEnum,IUnknown **appDomain) {
    951     return This->lpVtbl->NextDomain(This,hEnum,appDomain);
    952 }
    953 static inline HRESULT ICorRuntimeHost_CloseEnum(ICorRuntimeHost* This,HDOMAINENUM hEnum) {
    954     return This->lpVtbl->CloseEnum(This,hEnum);
    955 }
    956 static inline 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 inline HRESULT ICorRuntimeHost_CreateDomainSetup(ICorRuntimeHost* This,IUnknown **appDomainSetup) {
    960     return This->lpVtbl->CreateDomainSetup(This,appDomainSetup);
    961 }
    962 static inline HRESULT ICorRuntimeHost_CreateEvidence(ICorRuntimeHost* This,IUnknown **evidence) {
    963     return This->lpVtbl->CreateEvidence(This,evidence);
    964 }
    965 static inline HRESULT ICorRuntimeHost_UnloadDomain(ICorRuntimeHost* This,IUnknown *appDomain) {
    966     return This->lpVtbl->UnloadDomain(This,appDomain);
    967 }
    968 static inline 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 inline HRESULT ICLRRuntimeHost_QueryInterface(ICLRRuntimeHost* This,REFIID riid,void **ppvObject) {
   1123     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1124 }
   1125 static inline ULONG ICLRRuntimeHost_AddRef(ICLRRuntimeHost* This) {
   1126     return This->lpVtbl->AddRef(This);
   1127 }
   1128 static inline ULONG ICLRRuntimeHost_Release(ICLRRuntimeHost* This) {
   1129     return This->lpVtbl->Release(This);
   1130 }
   1131 /*** ICLRRuntimeHost methods ***/
   1132 static inline HRESULT ICLRRuntimeHost_Start(ICLRRuntimeHost* This) {
   1133     return This->lpVtbl->Start(This);
   1134 }
   1135 static inline HRESULT ICLRRuntimeHost_Stop(ICLRRuntimeHost* This) {
   1136     return This->lpVtbl->Stop(This);
   1137 }
   1138 static inline HRESULT ICLRRuntimeHost_SetHostControl(ICLRRuntimeHost* This,IHostControl *pHostControl) {
   1139     return This->lpVtbl->SetHostControl(This,pHostControl);
   1140 }
   1141 static inline HRESULT ICLRRuntimeHost_GetCLRControl(ICLRRuntimeHost* This,ICLRControl **pCLRControl) {
   1142     return This->lpVtbl->GetCLRControl(This,pCLRControl);
   1143 }
   1144 static inline HRESULT ICLRRuntimeHost_UnloadAppDomain(ICLRRuntimeHost* This,DWORD dwAppDomainId,WINBOOL fWaitUntilDone) {
   1145     return This->lpVtbl->UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone);
   1146 }
   1147 static inline HRESULT ICLRRuntimeHost_ExecuteInAppDomain(ICLRRuntimeHost* This,DWORD dwAppDomainId,FExecuteInAppDomainCallback pCallback,void *cookie) {
   1148     return This->lpVtbl->ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie);
   1149 }
   1150 static inline HRESULT ICLRRuntimeHost_GetCurrentAppDomainId(ICLRRuntimeHost* This,DWORD *pdwAppDomainId) {
   1151     return This->lpVtbl->GetCurrentAppDomainId(This,pdwAppDomainId);
   1152 }
   1153 static inline 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 inline 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 inline HRESULT IManagedObject_QueryInterface(IManagedObject* This,REFIID riid,void **ppvObject) {
   1236     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1237 }
   1238 static inline ULONG IManagedObject_AddRef(IManagedObject* This) {
   1239     return This->lpVtbl->AddRef(This);
   1240 }
   1241 static inline ULONG IManagedObject_Release(IManagedObject* This) {
   1242     return This->lpVtbl->Release(This);
   1243 }
   1244 /*** IManagedObject methods ***/
   1245 static inline HRESULT IManagedObject_GetSerializedBuffer(IManagedObject* This,BSTR *pBSTR) {
   1246     return This->lpVtbl->GetSerializedBuffer(This,pBSTR);
   1247 }
   1248 static inline 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__ */