' ########################################################################################
' Microsoft Windows
' File: mscoree.inc
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
' ########################################################################################
' Library name: mscoree
' Version: 2.0
' Documentation string: Common Language Runtime Execution Engine 2.0 Library
' Path: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscoree.tlb
' Library GUID: {5477469E-83B1-11D2-8B49-00A0C9B7C9C4}
' ########################################################################################
#IF NOT %DEF(PBX_mscoree_PBI)
#DEFINE PBX_mscoree_PBI
%EQUATE `MSCOREE_INC = 1
'/* header files for imported files */
#INCLUDE ONCE "Legacy/COM/Unknwn.inc"
#INCLUDE ONCE "Legacy/System/gchost.inc"
#INCLUDE ONCE "Legacy/System/ivalidator.inc"
'#ifndef USE_DEPRECATED_CLR_API_WITHOUT_WARNING
'#define DEPRECATED_CLR_API_MESG "This API has been deprecated. Refer to http://go.microsoft.com/fwlink/?LinkId=143720 for more details."
'#define DECLARE_DEPRECATED __declspec(deprecated(DEPRECATED_CLR_API_MESG))
'#define DEPRECATED_CLR_STDAPI EXTERN_C DECLARE_DEPRECATED HRESULT STDAPICALLTYPE
'#else // USE_DEPRECATED_CLR_API_WITHOUT_WARNING
'#define DECLARE_DEPRECATED
'#define DEPRECATED_CLR_STDAPI STDAPI
'#endif // !USE_DEPRECATED_CLR_API_WITHOUT_WARNING
%EQUATE `CLR_MAJOR_VERSION = 4
%EQUATE `CLR_MINOR_VERSION = 0
%EQUATE `CLR_BUILD_VERSION = 30319
%EQUATE `CLR_ASSEMBLY_MAJOR_VERSION = 4
%EQUATE `CLR_ASSEMBLY_MINOR_VERSION = 0
%EQUATE `CLR_ASSEMBLY_BUILD_VERSION = 0
' ========================================================================================
' ProgIDs (Program identifiers)
' ========================================================================================
' CLSID = {3F281000-E95A-11D2-886B-00C04F869F04}
$PROGID_CCWUComCallWrapper1 = "CCWU.ComCallWrapper.1"
' CLSID = {90F1A06E-7712-4762-86B5-7A5EBA6BDB02}
$PROGID_CLRMetaDataCLRRuntimeHost2 = "CLRMetaData.CLRRuntimeHost.2"
' CLSID = {CB2F6723-AB3A-11D2-9C40-00C04FA30A3E}
$PROGID_CLRMetaDataCorRuntimeHost2 = "CLRMetaData.CorRuntimeHost.2"
' ========================================================================================
' Version independent ProgIDs
' ========================================================================================
' CLSID = {3F281000-E95A-11D2-886B-00C04F869F04}
$PROGID_CCWUComCallWrapper = "CCWU.ComCallWrapper"
' CLSID = {90F1A06E-7712-4762-86B5-7A5EBA6BDB02}
$PROGID_CLRMetaDataCLRRuntimeHost = "CLRMetaData.CLRRuntimeHost"
' CLSID = {CB2F6723-AB3A-11D2-9C40-00C04FA30A3E}
$PROGID_CLRMetaDataCorRuntimeHost = "CLRMetaData.CorRuntimeHost"
' ========================================================================================
' CLSIDs (Class identifiers)
' ========================================================================================
$CLSID_CorRuntimeHost = GUID$("{CB2F6723-AB3A-11D2-9C40-00C04FA30A3E}")
$CLSID_TypeNameFactory = GUID$("{B81FF171-20F3-11D2-8DCC-00A0C9B00525}")
$CLSID_CLRRuntimeHost = GUID$("{90F1A06E-7712-4762-86B5-7A5EBA6BDB02}")
$CLSID_ComCallUnmarshal = GUID$("{3F281000-E95A-11D2-886B-00C04F869F04}")
$CLSID_ComCallUnmarshalV4 = GUID$("{45FB4600-E6E8-4928-B25E-50476FF79425}")
' ========================================================================================
' IIDs (Interface identifiers)
' ========================================================================================
$IID_IObjectHandle = GUID$("{C460E2B4-E199-412A-8456-84DC3E4838C3}")
$IID_IManagedObject = GUID$("{C3FCC19E-A970-11D2-8B5A-00A0C9B7C9C4}")
$IID_IApartmentCallback = GUID$("{178E5337-1528-4591-B1C9-1C6E484686D8}")
$IID_ICatalogServices = GUID$("{04C6BE1E-1DB1-4058-AB7A-700CCCFBF254}")
$IID_ICorRuntimeHost = GUID$("{CB2F6722-AB3A-11D2-9C40-00C04FA30A3E}")
$IID_ICorThreadpool = GUID$("{84680D3A-B2C1-46E8-ACC2-DBC0A359159A}")
$IID_ICLRDebugManager = GUID$("{00DCAEC6-2AC0-43A9-ACF9-1E36C139B10D}")
$IID_ICLRErrorReportingManager = GUID$("{980D2F1A-BF79-4C08-812A-BB9778928F78}")
$IID_IHostMemoryNeededCallback = GUID$("{47EB8E57-0846-4546-AF76-6F42FCFC2649}")
$IID_IHostMalloc = GUID$("{1831991C-CC53-4A31-B218-04E910446479}")
$IID_IHostMemoryManager = GUID$("{7BC698D1-F9E3-4460-9CDE-D04248E9FA25}")
$IID_ICLRTask = GUID$("{28E66A4A-9906-4225-B231-9187C3EB8611}")
$IID_ICLRTask2 = GUID$("{28E66A4A-9906-4225-B231-9187C3EB8612}")
$IID_IHostTask = GUID$("{C2275828-C4B1-4B55-82C9-92135F74DF1A}")
$IID_ICLRTaskManager = GUID$("{4862EFBE-3AE5-44F8-8FEB-346190EE8A34}")
$IID_IHostTaskManager = GUID$("{997FF24C-43B7-4352-8667-0DC04FAFD354}")
$IID_IHostThreadpoolManager = GUID$("{983D50E2-CB15-466B-80FC-845DC6E8C5FD}")
$IID_ICLRIoCompletionManager = GUID$("{2D74CE86-B8D6-4C84-B3A7-9768933B3C12}")
$IID_ICLRGCManager = GUID$("{54D9007E-A8E2-4885-B7BF-F998DEEE4F2A}")
$IID_IHostIoCompletionManager = GUID$("{8BDE9D80-EC06-41D6-83E6-22580EFFCC20}")
$IID_IHostSyncManager = GUID$("{234330C7-5F10-4F20-9615-5122DAB7A0AC}")
$IID_IHostCrst = GUID$("{6DF710A6-26A4-4A65-8CD5-7237B8BDA8DC}")
$IID_IHostAutoEvent = GUID$("{50B0CFCE-4063-4278-9673-E5CB4ED0BDB8}")
$IID_IHostManualEvent = GUID$("{1BF4EC38-AFFE-4FB9-85A6-525268F15B54}")
$IID_IHostSemaphore = GUID$("{855EFD47-CC09-463A-A97D-16ACAB882661}")
$IID_ICLRSyncManager = GUID$("{55FF199D-AD21-48F9-A16C-F24EBBB8727D}")
$IID_ICLRAppDomainResourceMonitor = GUID$("{C62DE18C-2E23-4AEA-8423-B40C1FC59EAE}")
$IID_ICLRPolicyManager = GUID$("{7D290010-D781-45DA-A6F8-AA5D711A730E}")
$IID_IHostPolicyManager = GUID$("{7AE49844-B1E3-4683-BA7C-1E8212EA3B79}")
$IID_IHostGCManager = GUID$("{5D4EC34E-F248-457B-B603-255FAABA0D21}")
$IID_IActionOnCLREvent = GUID$("{607BE24B-D91B-4E28-A242-61871CE56E35}")
$IID_ICLROnEventManager = GUID$("{1D0E0132-E64F-493D-9260-025C0E32C175}")
$IID_ICLRRuntimeHost = GUID$("{90F1A06C-7712-4762-86B5-7A5EBA6BDB02}")
$IID_ICLRHostProtectionManager = GUID$("{89F25F5C-CEEF-43E1-9CFA-A68CE863AAAC}")
$IID_IHostAssemblyStore = GUID$("{7B102A88-3F7F-496D-8FA2-C35374E01AF3}")
$IID_IHostAssemblyManager = GUID$("{613DABD7-62B2-493E-9E65-C1E32A1E0C5E}")
$IID_IHostSecurityManager = GUID$("{75AD2468-A349-4D02-A764-76A68AEE0C4F}")
$IID_IHostSecurityContext = GUID$("{7E573CE4-0343-4423-98D7-6318348A1D3C}")
$IID_ICLRAssemblyIdentityManager = GUID$("{15F0A9DA-3FF6-4393-9DA9-FDFD284E6972}")
$IID_ICLRDomainManager = GUID$("{270D00A2-8E15-4D0B-ADEB-37BC3E47DF77}")
$IID_ITypeName = GUID$("{B81FF171-20F3-11D2-8DCC-00A0C9B00522}")
$IID_ICLRAssemblyReferenceList = GUID$("{1B2C9750-2E66-4BDA-8B44-0A642C5CD733}")
$IID_ICLRReferenceAssemblyEnum = GUID$("{D509CB5D-CF32-4876-AE61-67770CF91973}")
$IID_ICLRProbingAssemblyEnum = GUID$("{D0C5FB1F-416B-4F97-81F4-7AC7DC24DD5D}")
$IID_ICLRHostBindingPolicyManager = GUID$("{4B3545E7-1856-48C9-A8BA-24B21A753C09}")
$IID_ITypeNameBuilder = GUID$("{B81FF171-20F3-11D2-8DCC-00A0C9B00523}")
$IID_ITypeNameFactory = GUID$("{B81FF171-20F3-11D2-8DCC-00A0C9B00521}")
' ========================================================================================
' Functions
' ========================================================================================
' This function is deprecated. It is superseded by the ICLRRuntimeInfo::GetRuntimeDirectory method provided in the .NET Framework version 4.
DECLARE FUNCTION GetCORSystemDirectory LIB "mscoree.dll" ALIAS "GetCORSystemDirectory" ( BYREF pbuffer AS WSTRINGZ , BYVAL cchBuffer AS QUAD , BYREF dwlength AS QUAD ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION GetCORVersion LIB "mscoree.dll" ALIAS "GetCORVersion" ( BYREF pbuffer AS WSTRINGZ , BYVAL cchBuffer AS QUAD , BYREF dwlength AS QUAD ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION GetFileVersion LIB "mscoree.dll" ALIAS "GetFileVersion" ( BYREF szFilename AS WSTRINGZ , BYREF szBuffer AS WSTRINGZ , BYVAL cchBuffer AS QUAD , BYREF dwlength AS QUAD ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION GetCORRequiredVersion LIB "mscoree.dll" ALIAS "GetCORRequiredVersion" ( BYREF pbuffer AS WSTRINGZ , BYVAL cchBuffer AS QUAD , BYREF dwlength AS QUAD ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION GetRequestedRuntimeInfo LIB "mscoree.dll" ALIAS "GetRequestedRuntimeInfo" ( BYREF pExe AS WSTRINGZ , BYREF pwszVersion AS WSTRINGZ , BYREF pConfigurationFile AS WSTRINGZ , BYVAL startupFlags AS QUAD , BYVAL runtimeInfoFlags AS QUAD , BYREF pDirectory AS WSTRINGZ , BYVAL dwDirectory AS QUAD , BYREF dwDirectoryLength AS QUAD , BYREF pVersion AS WSTRINGZ , BYVAL cchBuffer AS QUAD , BYREF dwlength AS QUAD ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION GetRequestedRuntimeVersion LIB "mscoree.dll" ALIAS "GetRequestedRuntimeVersion" ( BYREF pExe AS WSTRINGZ , BYREF pVersion AS WSTRINGZ , BYVAL cchBuffer AS QUAD , BYREF pdwLength AS QUAD ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION CorBindToRuntimeHost LIB "mscoree.dll" ALIAS "CorBindToRuntimeHost" ( BYREF pwszVersion AS WSTRINGZ , BYREF pwszBuildFlavor AS WSTRINGZ , BYREF pwszHostConfigFile AS WSTRINGZ , BYVAL pReserved AS QUAD , BYVAL startupFlags AS QUAD , BYREF rclsid AS GUID , BYREF riid AS GUID , BYREF ppv AS ANY ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION CorBindToRuntimeEx LIB "mscoree.dll" ALIAS "CorBindToRuntimeEx" ( BYREF pwszVersion AS WSTRINGZ , BYREF pwszBuildFlavor AS WSTRINGZ , BYVAL startupFlags AS QUAD , BYREF rclsid AS GUID , BYREF riid AS GUID , BYREF ppv AS ANY ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION CorBindToRuntimeByCfg LIB "mscoree.dll" ALIAS "CorBindToRuntimeByCfg" ( BYVAL pCfgStream AS IStream , BYVAL reserved AS QUAD , BYVAL startupFlags AS QUAD , BYREF rclsid AS GUID , BYREF riid AS GUID , BYREF ppv AS ANY ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION CorBindToRuntime LIB "mscoree.dll" ALIAS "CorBindToRuntime" ( BYREF pwszVersion AS WSTRINGZ , BYREF pwszBuildFlavor AS WSTRINGZ , BYREF rclsid AS GUID , BYREF riid AS GUID , BYREF ppv AS ANY ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION CorBindToCurrentRuntime LIB "mscoree.dll" ALIAS "CorBindToCurrentRuntime" ( BYREF pwszFileName AS WSTRINGZ , BYREF rclsid AS GUID , BYREF riid AS GUID , BYREF ppv AS ANY ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
' Use COM activation to create an instance of the managed type, or use hosting
' (see .NET Framework 4 Hosting Interfaces).
DECLARE FUNCTION ClrCreateManagedInstance LIB "mscoree.dll" ALIAS "ClrCreateManagedInstance" ( BYREF pTypeName AS WSTRINGZ , BYREF riid AS GUID , BYREF ppObject AS ANY ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
DECLARE SUB CorMarkThreadInThreadPool LIB "mscoree.dll" ALIAS "CorMarkThreadInThreadPool" ( ) ' void
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION RunDll32ShimW LIB "mscoree.dll" ALIAS "RunDll32ShimW" ( BYVAL hwnd AS QUAD , BYVAL hinst AS QUAD , BYREF lpszCmdLine AS WSTRINGZ , BYVAL nCmdShow AS LONG ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
' Use the ICLRRuntimeInfo::LoadLibrary method instead.
DECLARE FUNCTION LoadLibraryShim LIB "mscoree.dll" ALIAS "LoadLibraryShim" ( BYREF szDllName AS WSTRINGZ , BYREF szVersion AS WSTRINGZ , BYVAL pvReserved AS QUAD , BYREF phModDll AS QUAD ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION CallFunctionShim LIB "mscoree.dll" ALIAS "CallFunctionShim" ( BYREF szDllName AS WSTRINGZ , BYREF szFunctionName AS ASCIIZ , BYVAL lpvArgument1 AS QUAD , BYVAL lpvArgument2 AS QUAD , BYREF szVersion AS WSTRINGZ , BYVAL pvReserved AS QUAD ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION GetRealProcAddress LIB "mscoree.dll" ALIAS "GetRealProcAddress" ( BYREF pwszProcName AS ASCIIZ , BYREF ppv AS ANY ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
' Use the ICLRMetaHost::ExitProcess method instead
DECLARE SUB CorExitProcess LIB "mscoree.dll" ALIAS "CorExitProcess" ( BYVAL exitCode AS LONG ' int exitCode ) ' void
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION LoadStringRC LIB "mscoree.dll" ALIAS "LoadStringRC" ( BYVAL iResourceID AS QUAD , BYREF szBuffer AS WSTRINGZ , BYVAL iMax AS LONG , BYVAL bQuiet AS LONG ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION LoadStringRCEx LIB "mscoree.dll" ALIAS "LoadStringRCEx" ( BYVAL lcid AS QUAD , BYVAL iResouceID AS QUAD , BYREF szBuffer AS WSTRINGZ , BYVAL iMax AS LONG , BYVAL bQuiet AS LONG , BYREF pcwchUsed AS LONG ) AS LONG
'typedef HRESULT (__stdcall *FLockClrVersionCallback) ();
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION LockClrVersion LIB "mscoree.dll" ALIAS "LockClrVersion" ( BYVAL hostCallback AS QUAD , BYVAL pBeginHostSetup AS QUAD , BYVAL pEndHostSetup AS QUAD ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION CreateDebuggingInterfaceFromVersion LIB "mscoree.dll" ALIAS "CreateDebuggingInterfaceFromVersion" ( BYVAL iDebuggerVersion AS LONG , BYREF szDebuggeeVersion AS WSTRINGZ , BYREF ppCordb AS IUnknown ) AS LONG
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION GetVersionFromProcess LIB "mscoree.dll" ALIAS "GetVersionFromProcess" ( BYVAL hProcess AS QUAD , BYREF pVersion AS WSTRINGZ , BYVAL cchBuffer AS QUAD , BYREF dwLength AS QUAD ) AS LONG
' enum HOST_TYPE
%EQUATE `HOST_TYPE_DEFAULT = 0
%EQUATE `HOST_TYPE_APPLAUNCH = &H1
%EQUATE `HOST_TYPE_CORFLAG = &H2
' This function has been deprecated in the .NET Framework version 4.
DECLARE FUNCTION CorLaunchApplication LIB "mscoree.dll" ALIAS "CorLaunchApplication" ( BYVAL dwClickOnceHost AS QUAD , BYREF pwzAppFullName AS WSTRINGZ , BYVAL dwManifestPaths AS QUAD , BYREF ppwzManifestPaths AS WSTRINGZ , BYVAL dwActivationData AS QUAD , BYREF ppwzActivationData AS WSTRINGZ , BYREF lpProcessInformation AS PROCESS_INFORMATION ) AS LONG
'typedef HRESULT ( __stdcall *FExecuteInAppDomainCallback )(
' void *cookie);
'FUNCTION FExecuteInAppDomainCallback (BYVAL cookie AS DWORD) AS LONG
' enum STARTUP_FLAGS
%EQUATE `STARTUP_CONCURRENT_GC = &H1
%EQUATE `STARTUP_LOADER_OPTIMIZATION_MASK = &H6 ' 0x3 << 1
%EQUATE `STARTUP_LOADER_OPTIMIZATION_SINGLE_DOMAIN = &H2 ' 0x1 << 1
%EQUATE `STARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN = &H4 ' 0x2 << 1
%EQUATE `STARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN_HOST = &H6 ' 0x3 << 1
%EQUATE `STARTUP_LOADER_SAFEMODE = &H10
%EQUATE `STARTUP_LOADER_SETPREFERENCE = &H100
%EQUATE `STARTUP_SERVER_GC = &H1000
%EQUATE `STARTUP_HOARD_GC_VM = &H2000
%EQUATE `STARTUP_SINGLE_VERSION_HOSTING_INTERFACE = &H4000
%EQUATE `STARTUP_LEGACY_IMPERSONATION = &H10000
%EQUATE `STARTUP_DISABLE_COMMITTHREADSTACK = &H20000
%EQUATE `STARTUP_ALWAYSFLOW_IMPERSONATION = &H40000
%EQUATE `STARTUP_TRIM_GC_COMMIT = &H80000
%EQUATE `STARTUP_ETW = &H100000
%EQUATE `STARTUP_ARM = &H400000
' enum CLSID_RESOLUTION_FLAGS
%EQUATE `CLSID_RESOLUTION_DEFAULT = 0
%EQUATE `CLSID_RESOLUTION_REGISTERED = &H1
' enum RUNTIME_INFO_FLAGS
%EQUATE `RUNTIME_INFO_UPGRADE_VERSION = &H1
%EQUATE `RUNTIME_INFO_REQUEST_IA64 = &H2
%EQUATE `RUNTIME_INFO_REQUEST_AMD64 = &H4
%EQUATE `RUNTIME_INFO_REQUEST_X86 = &H8
%EQUATE `RUNTIME_INFO_DONT_RETURN_DIRECTORY = &H10
%EQUATE `RUNTIME_INFO_DONT_RETURN_VERSION = &H20
%EQUATE `RUNTIME_INFO_DONT_SHOW_ERROR_DIALOG = &H40
' enum APPDOMAIN_SECURITY_FLAGS
%EQUATE `APPDOMAIN_SECURITY_DEFAULT = 0
%EQUATE `APPDOMAIN_SECURITY_SANDBOXED = &H1
%EQUATE `APPDOMAIN_SECURITY_FORBID_CROSSAD_REVERSE_PINVOKE = &H2
%EQUATE `APPDOMAIN_FORCE_TRIVIAL_WAIT_OPERATIONS = &H8
DECLARE FUNCTION GetRequestedRuntimeVersionForCLSID LIB "mscoree.dll" ALIAS "GetRequestedRuntimeVersionForCLSID" ( BYREF rclsid AS GUID , BYREF pVersion AS WSTRINGZ , BYVAL cchBuffer AS QUAD , BYREF dwLength AS QUAD , BYVAL dwResolutionFlags AS QUAD ) AS LONG
' ########################################################################################
' Interface name = IObjectHandle
' IID = {C460E2B4-E199-412A-8456-84DC3E4838C3}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IObjectHandle_INTERFACE_DEFINED)
 %IObjectHandle_INTERFACE_DEFINED = 1
INTERFACE IObjectHandle $IID_IObjectHandle
 INHERIT IAutomation
 ' =====================================================================================
 METHOD Unwrap ( ' VTable offset = 12
 ) AS VARIANT
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IObjectHandle_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IAppDomainBinding
' IID = {5C2B07A7-1E98-11D3-872F-00C04F79ED0D}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IAppDomainBinding_INTERFACE_DEFINED)
 %IAppDomainBinding_INTERFACE_DEFINED = 1
$IID_IAppDomainBinding = GUID$("{5C2B07A7-1E98-11D3-872F-00C04F79ED0D}")
INTERFACE IAppDomainBinding $IID_IAppDomainBinding
 INHERIT IUnknown
 ' =====================================================================================
 METHOD OnAppDomain ( ' VTable offset = 12
 BYVAL pAppdomain AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IAppDomainBinding_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IGCThreadControl
' IID = {F31D1788-C397-4725-87A5-6AF3472C2791}
' Control over threads blocked in GC
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IGCThreadControl_INTERFACE_DEFINED)
 %IGCThreadControl_INTERFACE_DEFINED = 1
$IID_IGCThreadControl = GUID$("{F31D1788-C397-4725-87A5-6AF3472C2791}")
INTERFACE IGCThreadControl $IID_IGCThreadControl
 INHERIT IUnknown
 ' =====================================================================================
 METHOD ThreadIsBlockingForSuspension ( ' VTable offset = 12
 ) AS LONG
 ' =====================================================================================
 METHOD SuspensionStarting ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
 METHOD SuspensionEnding ( ' VTable offset = 20
 BYVAL Generation AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IGCThreadControl_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IGCHostControl
' IID = {5513D564-8374-4CB9-AED9-0083F4160A1D}
' Request change in virtual memory for GC
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IGCHostControl_INTERFACE_DEFINED)
 %IGCHostControl_INTERFACE_DEFINED = 1
$IID_IGCHostControl = GUID$("{5513D564-8374-4CB9-AED9-0083F4160A1D}")
INTERFACE IGCHostControl $IID_IGCHostControl
 INHERIT IUnknown
 ' =====================================================================================
 METHOD RequestVirtualMemLimit ( ' VTable offset = 12
 BYVAL sztMaxVirtualMemMB AS DWORD
 , BYREF psztNewMaxVirtualMemMB AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IGCHostControl_INTERFACE_DEFINED__ */
'#if (_MSC_VER < 1300 || _WIN32_WINNT < 0x0500)
'typedef VOID ( __stdcall *WAITORTIMERCALLBACK )(
' PVOID __MIDL_0011,
' BOOL __MIDL_0012);
'#endif // (_MSC_VER < 1300 || _WIN32_WINNT < 0x0500)
'#ifdef __midl
'typedef DWORD ( __stdcall *LPTHREAD_START_ROUTINE )(
' LPVOID lpThreadParameter);
'typedef VOID ( *LPOVERLAPPED_COMPLETION_ROUTINE )(
' DWORD dwErrorCode,
' DWORD dwNumberOfBytesTransfered,
' LPVOID lpOverlapped);
'#endif // __midl
'typedef VOID ( __stdcall *PTLS_CALLBACK_FUNCTION )(
' PVOID __MIDL_0016);
' ########################################################################################
' Interface name = ICorThreadpool
' IID = {84680D3A-B2C1-46E8-ACC2-DBC0A359159A}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICorThreadpool_INTERFACE_DEFINED)
 %ICorThreadpool_INTERFACE_DEFINED = 1
INTERFACE ICorThreadpool $IID_ICorThreadpool
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CorRegisterWaitForSingleObject ( ' VTable offset = 12
 BYVAL phNewWaitObject AS DWORD
 , BYVAL hWaitObject AS DWORD
 , BYVAL Callback AS DWORD
 , BYVAL Context AS DWORD
 , BYVAL timeout AS DWORD
 , BYVAL executeOnlyOnce AS LONG
 , BYREF result AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD CorUnregisterWait ( ' VTable offset = 16
 BYVAL hWaitObject AS DWORD
 , BYVAL CompletionEvent AS DWORD
 , BYREF result AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD CorQueueUserWorkItem ( ' VTable offset = 20
 BYVAL Function AS DWORD
 , BYVAL Context AS DWORD
 , BYVAL executeOnlyOnce AS LONG
 , BYREF result AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD CorCreateTimer ( ' VTable offset = 24
 BYVAL phNewTimer AS DWORD
 , BYVAL Callback AS DWORD
 , BYVAL Parameter AS DWORD
 , BYVAL DueTime AS DWORD
 , BYVAL Period AS DWORD
 , BYREF result AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD CorChangeTimer ( ' VTable offset = 28
 BYVAL Timer AS DWORD
 , BYVAL DueTime AS DWORD
 , BYVAL Period AS DWORD
 , BYREF result AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD CorDeleteTimer ( ' VTable offset = 32
 BYVAL Timer AS DWORD
 , BYVAL CompletionEvent AS DWORD
 , BYREF result AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD CorBindIoCompletionCallback ( ' VTable offset = 36
 BYVAL fileHandle AS DWORD
 , BYVAL callback AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CorCallOrQueueUserWorkItem ( ' VTable offset = 40
 BYVAL Function AS DWORD
 , BYVAL Context AS DWORD
 , BYREF result AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD CorSetMaxThreads ( ' VTable offset = 44
 BYVAL MaxWorkerThreads AS DWORD
 , BYVAL MaxIOCompletionThreads AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CorGetMaxThreads ( ' VTable offset = 48
 BYVAL MaxWorkerThreads AS DWORD
 , BYREF MaxIOCompletionThreads AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CorGetAvailableThreads ( ' VTable offset = 52
 BYREF AvailableWorkerThreads AS DWORD
 , BYREF AvailableIOCompletionThreads AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICorThreadpool_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IDebuggerThreadControl
' IID = {23D86786-0BB5-4774-8FB5-E3522ADD6246}
' Control over threads blocked in debugging services
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDebuggerThreadControl_INTERFACE_DEFINED)
 %IDebuggerThreadControl_INTERFACE_DEFINED = 1
$IID_IDebuggerThreadControl = GUID$("{23D86786-0BB5-4774-8FB5-E3522ADD6246}")
INTERFACE IDebuggerThreadControl $IID_IDebuggerThreadControl
 INHERIT IUnknown
 ' =====================================================================================
 METHOD ThreadIsBlockingForDebugger ( ' VTable offset = 12
 ) AS LONG
 ' =====================================================================================
 METHOD ReleaseAllRuntimeThreads ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
 METHOD StartBlockingForDebugger ( ' VTable offset = 20
 BYVAL dwUnused AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDebuggerThreadControl_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IDebuggerInfo
' IID = {BF24142D-A47D-4D24-A66D-8C2141944E44}
' Information on the state of the debugging services
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDebuggerInfo_INTERFACE_DEFINED)
 %IDebuggerInfo_INTERFACE_DEFINED = 1
$IID_IDebuggerInfo = GUID$("{BF24142D-A47D-4D24-A66D-8C2141944E44}")
INTERFACE IDebuggerInfo $IID_IDebuggerInfo
 INHERIT IUnknown
 ' =====================================================================================
 METHOD IsDebuggerAttached ( ' VTable offset = 12
 BYREF pbAttached AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDebuggerInfo_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ICorConfiguration
' IID = {5C2B07A5-1E98-11D3-872F-00C04F79ED0D}
' Common Language Runtime Configuration Interface
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICorConfiguration_INTERFACE_DEFINED)
 %ICorConfiguration_INTERFACE_DEFINED = 1
$IID_ICorConfiguration = GUID$("{5C2B07A5-1E98-11D3-872F-00C04F79ED0D}")
INTERFACE ICorConfiguration $IID_ICorConfiguration
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetGCThreadControl ( ' VTable offset = 12
 BYVAL pGCThreadControl AS IGCThreadControl
 ) AS LONG
 ' =====================================================================================
 METHOD SetGCHostControl ( ' VTable offset = 16
 BYVAL pGCHostControl AS IGCHostControl
 ) AS LONG
 ' =====================================================================================
 METHOD SetDebuggerThreadControl ( ' VTable offset = 20
 BYVAL pDebuggerThreadControl AS IDebuggerThreadControl
 ) AS LONG
 ' =====================================================================================
 METHOD AddDebuggerSpecialThread ( ' VTable offset = 24
 BYVAL dwSpecialThreadId AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICorConfiguration_INTERFACE_DEFINED__ */
'typedef void *HDOMAINENUM;
' ########################################################################################
' Interface name = ICorRuntimeHost
' IID = {CB2F6722-AB3A-11D2-9C40-00C04FA30A3E}
' Common Language Runtime Hosting Interface
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICorRuntimeHost_INTERFACE_DEFINED)
 %ICorRuntimeHost_INTERFACE_DEFINED = 1
INTERFACE ICorRuntimeHost $IID_ICorRuntimeHost
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreateLogicalThreadState ( ' VTable offset = 12
 ) AS LONG
 ' =====================================================================================
 METHOD DeleteLogicalThreadState ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
 METHOD SwitchInLogicalThreadState ( ' VTable offset = 20
 BYREF pFiberCookie AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SwitchOutLogicalThreadState ( ' VTable offset = 24
 BYREF pFiberCookie AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD LocksHeldByLogicalThread ( ' VTable offset = 28
 BYREF pCount AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD MapFile ( ' VTable offset = 32
 BYVAL hFile AS DWORD
 , BYREF hMapAddress AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetConfiguration ( ' VTable offset = 36
 BYREF pConfiguration AS ICorConfiguration
 ) AS LONG
 ' =====================================================================================
 METHOD Start ( ' VTable offset = 40
 ) AS LONG
 ' =====================================================================================
 METHOD Stop ( ' VTable offset = 44
 ) AS LONG
 ' =====================================================================================
 METHOD CreateDomain ( ' VTable offset = 48
 BYREF pwzFriendlyName AS WSTRINGZ
 , BYVAL pIdentityArray AS IUnknown
 , BYREF pAppDomain AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD GetDefaultDomain ( ' VTable offset = 52
 BYREF pAppDomain AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD EnumDomains ( ' VTable offset = 56
 BYREF hEnum AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD NextDomain ( ' VTable offset = 60
 BYVAL hEnum AS DWORD
 , BYREF pAppDomain AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD CloseEnum ( ' VTable offset = 64
 BYVAL hEnum AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CreateDomainEx ( ' VTable offset = 68
 BYREF pwzFriendlyName AS WSTRINGZ
 , BYVAL pSetup AS IUnknown
 , BYVAL pEvidence AS IUnknown
 , BYREF pAppDomain AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD CreateDomainSetup ( ' VTable offset = 72
 BYREF pAppDomainSetup AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD CreateEvidence ( ' VTable offset = 76
 BYREF pEvidence AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD UnloadDomain ( ' VTable offset = 80
 BYVAL pAppDomain AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD CurrentDomain ( ' VTable offset = 84
 BYREF pAppDomain AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICorRuntimeHost_INTERFACE_DEFINED__ */
' enum EMemoryAvailable
%EQUATE `eMemoryAvailableLow = 1
%EQUATE `eMemoryAvailableNeutral = 2
%EQUATE `eMemoryAvailableHigh = 3
' enum EMemoryCriticalLevel
%EQUATE `eTaskCritical = 0
%EQUATE `eAppDomainCritical = 1
%EQUATE `eProcessCritical = 2
' enum WAIT_OPTION
%EQUATE `WAIT_MSGPUMP = &H1
%EQUATE `WAIT_ALERTABLE = &H2
%EQUATE `WAIT_NOTINDEADLOCK = &H4
' ########################################################################################
' Interface name = ICLRMemoryNotificationCallback
' IID = {CB2F6722-AB3A-11D2-9C40-00C04FA30A3E}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRMemoryNotificationCallback_INTERFACE_DEFINED)
 %ICLRMemoryNotificationCallback_INTERFACE_DEFINED = 1
$IID_ICLRMemoryNotificationCallback = GUID$("{47EB8E57-0846-4546-AF76-6F42FCFC2649}")
INTERFACE ICLRMemoryNotificationCallback $IID_ICLRMemoryNotificationCallback
 INHERIT IUnknown
 ' =====================================================================================
 METHOD OnMemoryNotification ( ' VTable offset = 12
 BYVAL eMemoryAvailable AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRMemoryNotificationCallback_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IHostMalloc
' IID = {1831991C-CC53-4A31-B218-04E910446479}
' Common Language Runtime Hosting Interface
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostMalloc_INTERFACE_DEFINED)
 %IHostMalloc_INTERFACE_DEFINED = 1
INTERFACE IHostMalloc $IID_IHostMalloc
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Alloc ( ' VTable offset = 12
 BYVAL cbSize AS DWORD
 , BYVAL eCriticalLevel AS LONG
 , BYREF ppMem AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD DebugAlloc ( ' VTable offset = 16
 BYVAL cbSize AS DWORD
 , BYVAL eCriticalLevel AS LONG
 , BYREF pszFileName AS ASCIIZ
 , BYVAL iLineNo AS LONG
 , BYREF ppMem AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Free ( ' VTable offset = 20
 BYVAL pMem AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostMalloc_INTERFACE_DEFINED__ */
' enum MALLOC_TYPE
%EQUATE `MALLOC_THREADSAFE = &H1
%EQUATE `MALLOC_EXECUTABLE = &H2
' ########################################################################################
' Interface name = IHostMemoryManager
' IID = {7BC698D1-F9E3-4460-9CDE-D04248E9FA25}
' Common Language Runtime Hosting Interface
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostMemoryManager_INTERFACE_DEFINED)
 %IHostMemoryManager_INTERFACE_DEFINED = 1
INTERFACE IHostMemoryManager $IID_IHostMemoryManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreateMalloc ( ' VTable offset = 12
 BYVAL dwMallocType AS DWORD
 , BYREF ppMalloc AS IHostMalloc
 ) AS LONG
 ' =====================================================================================
 METHOD VirtualAlloc ( ' VTable offset = 16
 BYVAL pAddress AS DWORD
 , BYVAL dwSize AS DWORD
 , BYVAL flAllocationType AS DWORD
 , BYVAL flProtect AS DWORD
 , BYVAL eCriticalLevel AS LONG
 , BYREF ppMem AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD VirtualFree ( ' VTable offset = 20
 BYVAL lpAddress AS DWORD
 , BYREF dwSize AS DWORD
 , BYVAL dwFreeType AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD VirtualQuery ( ' VTable offset = 24
 BYVAL lpAddress AS DWORD
 , BYREF lpBuffer AS DWORD
 , BYVAL dwLength AS DWORD
 , BYREF pResult AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD VirtualProtect ( ' VTable offset = 28
 BYVAL lpAddress AS DWORD
 , BYVAL dwSize AS DWORD
 , BYVAL flNewProtect AS DWORD
 , BYREF pflOldProtect AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetMemoryLoad ( ' VTable offset = 32
 BYREF pMemoryLoad AS DWORD
 , BYREF pAvailableBytes AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD RegisterMemoryNotificationCallback ( ' VTable offset = 36
 BYVAL pCallback AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD NeedsVirtualAddressSpace ( ' VTable offset = 40
 BYVAL startAddress AS DWORD
 , BYVAL size AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD AcquiredVirtualAddressSpace ( ' VTable offset = 44
 BYVAL startAddress AS DWORD
 , BYVAL size AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ReleasedVirtualAddressSpace ( ' VTable offset = 48
 BYVAL startAddress AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostMemoryManager_INTERFACE_DEFINED__ */
'typedef UINT64 TASKID;
'typedef DWORD CONNID;
' ########################################################################################
' Interface name = ICLRTask
' IID = {28E66A4A-9906-4225-B231-9187C3EB8611}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRTask_INTERFACE_DEFINED)
 %ICLRTask_INTERFACE_DEFINED = 1
INTERFACE ICLRTask $IID_ICLRTask
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SwitchIn ( ' VTable offset = 12
 BYVAL threadHandle AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SwitchOut ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
 METHOD GetMemStats ( ' VTable offset = 20
 BYREF memUsage AS COR_GC_THREAD_STATS
 ) AS LONG
 ' =====================================================================================
 METHOD Reset ( ' VTable offset = 24
 BYVAL fFull AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD ExitTask ( ' VTable offset = 28
 ) AS LONG
 ' =====================================================================================
 METHOD Abort ( ' VTable offset = 32
 ) AS LONG
 ' =====================================================================================
 METHOD RudeAbort ( ' VTable offset = 36
 ) AS LONG
 ' =====================================================================================
 METHOD NeedsPriorityScheduling ( ' VTable offset = 40
 BYREF pbNeedsPriorityScheduling AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD YieldTask ( ' VTable offset = 44
 ) AS LONG
 ' =====================================================================================
 METHOD LocksHeld ( ' VTable offset = 48
 BYREF pLockCount AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetTaskIdentifier ( ' VTable offset = 52
 BYVAL asked AS QUAD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRTask_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ICLRTask2
' IID = 28E66A4A-9906-4225-B231-9187C3EB8612
' Inherited interface = ICLRTask
' ########################################################################################
#IF NOT %DEF(%ICLRTask2_INTERFACE_DEFINED)
 %ICLRTask2_INTERFACE_DEFINED = 1
INTERFACE ICLRTask2 $IID_ICLRTask2
 INHERIT IUnknown
 ' =====================================================================================
 ' ICLRTask methods
 ' =====================================================================================
 METHOD SwitchIn ( ' VTable offset = 12
 BYVAL threadHandle AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SwitchOut ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
 METHOD GetMemStats ( ' VTable offset = 20
 BYREF memUsage AS COR_GC_THREAD_STATS
 ) AS LONG
 ' =====================================================================================
 METHOD Reset ( ' VTable offset = 24
 BYVAL fFull AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD ExitTask ( ' VTable offset = 28
 ) AS LONG
 ' =====================================================================================
 METHOD Abort ( ' VTable offset = 32
 ) AS LONG
 ' =====================================================================================
 METHOD RudeAbort ( ' VTable offset = 36
 ) AS LONG
 ' =====================================================================================
 METHOD NeedsPriorityScheduling ( ' VTable offset = 40
 BYREF pbNeedsPriorityScheduling AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD YieldTask ( ' VTable offset = 44
 ) AS LONG
 ' =====================================================================================
 METHOD LocksHeld ( ' VTable offset = 48
 BYREF pLockCount AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetTaskIdentifier ( ' VTable offset = 52
 BYVAL asked AS QUAD
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ICLRTask2 methods
 ' =====================================================================================
 METHOD BeginPreventAsyncAbort ( ' VTable offset = 56
 ) AS LONG
 ' =====================================================================================
 METHOD EndPreventAsyncAbort ( ' VTable offset = 60
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRTask2_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IHostTask
' IID = {C2275828-C4B1-4B55-82C9-92135F74DF1A}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostTask_INTERFACE_DEFINED)
 %IHostTask_INTERFACE_DEFINED = 1
INTERFACE IHostTask $IID_IHostTask
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Start ( ' VTable offset = 12
 ) AS LONG
 ' =====================================================================================
 METHOD Alert ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
 METHOD Join ( ' VTable offset = 20
 BYVAL dwMilliseconds AS DWORD
 , BYVAL option AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPriority ( ' VTable offset = 24
 BYVAL newPriority AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetPriority ( ' VTable offset = 28
 BYREF pPriority AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetCLRTask ( ' VTable offset = 32
 BYVAL pCLRTask AS ICLRTask
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostTask_INTERFACE_DEFINED__ */
' enum ETaskType
%EQUATE `TT_DEBUGGERHELPER = &H1
%EQUATE `TT_GC = &H2
%EQUATE `TT_FINALIZER = &H4
%EQUATE `TT_THREADPOOL_TIMER = &H8
%EQUATE `TT_THREADPOOL_GATE = &H10
%EQUATE `TT_THREADPOOL_WORKER = &H20
%EQUATE `TT_THREADPOOL_IOCOMPLETION = &H40
%EQUATE `TT_ADUNLOAD = &H80
%EQUATE `TT_USER = &H100
%EQUATE `TT_THREADPOOL_WAIT = &H200
%EQUATE `TT_UNKNOWN = &H80000000
' ########################################################################################
' Interface name = ICLRTaskManager
' IID = {4862EFBE-3AE5-44F8-8FEB-346190EE8A34}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRTaskManager_INTERFACE_DEFINED)
 %ICLRTaskManager_INTERFACE_DEFINED = 1
INTERFACE ICLRTaskManager $IID_ICLRTaskManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreateTask ( ' VTable offset = 12
 BYREF pTask AS ICLRTask
 ) AS LONG
 ' =====================================================================================
 METHOD GetCurrentTask ( ' VTable offset = 16
 BYREF pTask AS ICLRTask
 ) AS LONG
 ' =====================================================================================
 METHOD SetUILocale ( ' VTable offset = 20
 BYVAL lcid AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetLocale ( ' VTable offset = 24
 BYVAL lcid AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCurrentTaskType ( ' VTable offset = 28
 BYREF pTaskType AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRTaskManager_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IHostTaskManager
' IID = {997FF24C-43B7-4352-8667-0DC04FAFD354}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostTaskManager_INTERFACE_DEFINED)
 %IHostTaskManager_INTERFACE_DEFINED = 1
INTERFACE IHostTaskManager $IID_IHostTaskManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetCurrentTask ( ' VTable offset = 12
 BYREF pTask AS IHostTask
 ) AS LONG
 ' =====================================================================================
 METHOD CreateTask ( ' VTable offset = 16
 BYVAL dwStackSize AS DWORD
 , BYVAL pStartAddress AS DWORD
 , BYVAL pParameter AS DWORD
 , BYREF ppTask AS IHostTask
 ) AS LONG
 ' =====================================================================================
 METHOD Sleep ( ' VTable offset = 20
 BYVAL dwMilliseconds AS DWORD
 , BYVAL option AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SwitchToTask ( ' VTable offset = 24
 BYVAL option AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetUILocale ( ' VTable offset = 28
 BYVAL lcid AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetLocale ( ' VTable offset = 32
 BYVAL lcid AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CallNeedsHostHook ( ' VTable offset = 36
 BYVAL target AS DWORD
 , BYREF pbCallNeedsHostHook AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD LeaveRuntime ( ' VTable offset = 40
 BYVAL target AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD EnterRuntime ( ' VTable offset = 44
 ) AS LONG
 ' =====================================================================================
 METHOD ReverseLeaveRuntime ( ' VTable offset = 48
 ) AS LONG
 ' =====================================================================================
 METHOD ReverseEnterRuntime ( ' VTable offset = 52
 ) AS LONG
 ' =====================================================================================
 METHOD BeginDelayAbort ( ' VTable offset = 56
 ) AS LONG
 ' =====================================================================================
 METHOD EndDelayAbort ( ' VTable offset = 60
 ) AS LONG
 ' =====================================================================================
 METHOD BeginThreadAffinity ( ' VTable offset = 64
 ) AS LONG
 ' =====================================================================================
 METHOD EndThreadAffinity ( ' VTable offset = 68
 ) AS LONG
 ' =====================================================================================
 METHOD SetStackGuarantee ( ' VTable offset = 72
 BYVAL guarantee AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetStackGuarantee ( ' VTable offset = 76
 BYREF pGuarantee AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetCLRTaskManager ( ' VTable offset = 80
 BYVAL ppManager AS ICLRTaskManager
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostTaskManager_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IHostThreadpoolManager
' IID = {63DF8730-DC81-4062-84A2-1FF943F59FDD}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostThreadpoolManager_INTERFACE_DEFINED)
 %IHostThreadpoolManager_INTERFACE_DEFINED = 1
INTERFACE IHostThreadpoolManager $IID_IHostThreadpoolManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD QueueUserWorkItem ( ' VTable offset = 12
 BYVAL Function AS DWORD
 , BYVAL Context AS DWORD
 , BYVAL Flags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetMaxThreads ( ' VTable offset = 16
 BYVAL dwMaxWorkerThreads AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetMaxThreads ( ' VTable offset = 20
 BYREF pdwMaxWorkerThreads AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetAvailableThreads ( ' VTable offset = 24
 BYREF pdwAvailableWorkerThreads AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetMinThreads ( ' VTable offset = 28
 BYVAL dwMinIOCompletionThreads AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetMinThreads ( ' VTable offset = 32
 BYREF pdwMinIOCompletionThreads AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostThreadpoolManager_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ICLRIoCompletionManager
' IID = {2D74CE86-B8D6-4C84-B3A7-9768933B3C12}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRIoCompletionManager_INTERFACE_DEFINED)
 %ICLRIoCompletionManager_INTERFACE_DEFINED = 1
INTERFACE ICLRIoCompletionManager $IID_ICLRIoCompletionManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD OnComplete ( ' VTable offset = 12
 BYVAL dwErrorCode AS DWORD
 , BYVAL NumberOfBytesTransferred AS DWORD
 , BYVAL pvOverlapped AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRIoCompletionManager_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IHostIoCompletionManager
' IID = {8BDE9D80-EC06-41D6-83E6-22580EFFCC20}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostIoCompletionManager_INTERFACE_DEFINED)
 %IHostIoCompletionManager_INTERFACE_DEFINED = 1
INTERFACE IHostIoCompletionManager $IID_IHostIoCompletionManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreateIoCompletionPort ( ' VTable offset = 12
 BYREF phPort AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CloseIoCompletionPort ( ' VTable offset = 16
 BYVAL hPort AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetMaxThreads ( ' VTable offset = 20
 BYVAL dwMaxIOCompletionThreads AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetMaxThreads ( ' VTable offset = 24
 BYREF dwMaxIOCompletionThreads AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetAvailableThreads ( ' VTable offset = 28
 BYREF pdwAvailableIOCompletionThreads AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetHostOverlappedSize ( ' VTable offset = 32
 BYREF pcbSize AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetCLRIoCompletionManager ( ' VTable offset = 36
 BYVAL pManager AS ICLRIoCompletionManager
 ) AS LONG
 ' =====================================================================================
 METHOD InitializeHostOverlapped ( ' VTable offset = 40
 BYVAL pvOverlapped AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Bind ( ' VTable offset = 44
 BYVAL hPort AS DWORD
 , BYVAL hHandle AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetMinThreads ( ' VTable offset = 48
 BYVAL dwMinIOCompletionThreads AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetMinThreads ( ' VTable offset = 52
 BYREF pdwMinIOCompletionThreads AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostIoCompletionManager_INTERFACE_DEFINED__ */
' enum ESymbolReadingPolicy
%EQUATE `eSymbolReadingNever = 0
%EQUATE `eSymbolReadingAlways = 1
%EQUATE `eSymbolReadingFullTrustOnly = 2
' ########################################################################################
' Interface name = ICLRDebugManager
' IID = {00DCAEC6-2AC0-43A9-ACF9-1E36C139B10D}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRDebugManager_INTERFACE_DEFINED)
 %ICLRDebugManager_INTERFACE_DEFINED = 1
INTERFACE ICLRDebugManager $IID_ICLRDebugManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD BeginConnection ( ' VTable offset = 12
 BYVAL dwConnectionId AS DWORD
 , BYREF szConnectionName AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD SetConnectionTasks ( ' VTable offset = 16
 BYVAL id AS DWORD
 , BYVAL dwCount AS DWORD
 , BYREF ppCLRTask AS ICLRTask
 ) AS LONG
 ' =====================================================================================
 METHOD EndConnection ( ' VTable offset = 20
 BYVAL dwConnectionId AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetDacl ( ' VTable offset = 24
 BYVAL pacl AS ACL PTR
 ) AS LONG
 ' =====================================================================================
 METHOD GetDacl ( ' VTable offset = 28
 BYREF pacl AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD IsDebuggerAttached ( ' VTable offset = 32
 BYREF pbAttached AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetSymbolReadingPolicy ( ' VTable offset = 36
 BYVAL policy AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRDebugManager_INTERFACE_DEFINED__ */
' enum ECustomDumpFlavor
%EQUATE `DUMP_FLAVOR_Mini = 0
%EQUATE `DUMP_FLAVOR_CriticalCLRState = 1
%EQUATE `DUMP_FLAVOR_NonHeapCLRState = 2
%EQUATE `DUMP_FLAVOR_Default = %DUMP_FLAVOR_Mini
' enum ECustomDumpItemKind
%EQUATE `DUMP_ITEM_None = 0
'typedef /* [public] */ struct __MIDL___MIDL_itf_MSCOREE_0144_0003
' {
' ECustomDumpItemKind itemKind;
' union
' {
' UINT_PTR pReserved;
' } ;
' } CustomDumpItem;
' // Size = 4 bytes
UNION CustomDumpItem_UNION DWORD
 pReserved AS DWORD
END UNION
' // Size = 8 bytes
TYPE CustomDumpItem DWORD
 itemKind AS LONG ' ECustomDumpItemKind
 CustomDumpItem_UNION
END TYPE
'typedef struct _BucketParameters
' {
' BOOL fInited;
' WCHAR pszEventTypeName[ 255 ];
' WCHAR pszParams[ 10 ][ 255 ];
' } BucketParameters;
' // Size = 5616 bytes
TYPE BucketParameters DWORD
 fInited AS LONG
 pszEventTypeName AS WSTRINGZ * 255 ' WCHAR
 pszParams(9) AS WSTRINGZ * 255 ' WCHAR[ 10 ][ 255 ];
END TYPE
' ########################################################################################
' Interface name = ICLRErrorReportingManager
' IID = {980D2F1A-BF79-4C08-812A-BB9778928F78}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRErrorReportingManager_INTERFACE_DEFINED)
 %ICLRErrorReportingManager_INTERFACE_DEFINED = 1
INTERFACE ICLRErrorReportingManager $IID_ICLRErrorReportingManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetBucketParametersForCurrentException ( ' VTable offset = 12
 BYREF pParams AS BucketParameters
 ) AS LONG
 ' =====================================================================================
 METHOD BeginCustomDump ( ' VTable offset = 16
 BYVAL dwFlavor AS DWORD
 , BYVAL dwNumItems AS DWORD
 , BYREF items AS CustomDumpItem
 , BYVAL dwReserved AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD EndCustomDump ( ' VTable offset = 20
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRErrorReportingManager_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IHostCrst
' IID = {6DF710A6-26A4-4A65-8CD5-7237B8BDA8DC}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostCrst_INTERFACE_DEFINED)
 %IHostCrst_INTERFACE_DEFINED = 1
INTERFACE IHostCrst $IID_IHostCrst
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Enter ( ' VTable offset = 12
 BYVAL option AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Leave ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
 METHOD TryEnter ( ' VTable offset = 20
 BYVAL option AS DWORD
 , BYREF pbSucceeded AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetSpinCount ( ' VTable offset = 24
 BYVAL dwSpinCount AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostCrst_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IHostAutoEvent
' IID = {B18E0B40-C089-4350-8328-066C668BCCC2}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostAutoEvent_INTERFACE_DEFINED)
 %IHostAutoEvent_INTERFACE_DEFINED = 1
INTERFACE IHostAutoEvent $IID_IHostAutoEvent
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Wait ( ' VTable offset = 12
 BYVAL dwMilliseconds AS DWORD
 , BYVAL option AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Set ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostAutoEvent_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IHostManualEvent
' IID = {1BF4EC38-AFFE-4FB9-85A6-525268F15B54}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostManualEvent_INTERFACE_DEFINED)
 %IHostManualEvent_INTERFACE_DEFINED = 1
INTERFACE IHostManualEvent $IID_IHostManualEvent
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Wait ( ' VTable offset = 12
 BYVAL dwMilliseconds AS DWORD
 , BYVAL option AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Reset ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
 METHOD Set ( ' VTable offset = 20
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostManualEvent_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IHostSemaphore
' IID = {855EFD47-CC09-463A-A97D-16ACAB882661}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostSemaphore_INTERFACE_DEFINED)
 %IHostSemaphore_INTERFACE_DEFINED = 1
INTERFACE IHostSemaphore $IID_IHostSemaphore
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Wait ( ' VTable offset = 12
 BYVAL dwMilliseconds AS DWORD
 , BYVAL option AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ReleaseSemaphore ( ' VTable offset = 16
 BYVAL lReleaseCount AS LONG
 , BYREF lpPreviousCount AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostSemaphore_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ICLRSyncManager
' IID = {55FF199D-AD21-48F9-A16C-F24EBBB8727D}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRSyncManager_INTERFACE_DEFINED)
 %ICLRSyncManager_INTERFACE_DEFINED = 1
INTERFACE ICLRSyncManager $IID_ICLRSyncManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetMonitorOwner ( ' VTable offset = 12
 BYVAL Cookie AS DWORD
 , BYREF ppOwnerHostTask AS IHostTask
 ) AS LONG
 ' =====================================================================================
 METHOD CreateRWLockOwnerIterator ( ' VTable offset = 16
 BYVAL Cookie AS DWORD
 , BYREF pIterator AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRWLockOwnerNext ( ' VTable offset = 20
 BYVAL Iterator AS DWORD
 , BYREF ppOwnerHostTask AS IHostTask
 ) AS LONG
 ' =====================================================================================
 METHOD DeleteRWLockOwnerIterator ( ' VTable offset = 24
 BYVAL Iterator AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRSyncManager_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IHostSyncManager
' IID = {234330C7-5F10-4F20-9615-5122DAB7A0AC}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostSyncManager_INTERFACE_DEFINED)
 %IHostSyncManager_INTERFACE_DEFINED = 1
INTERFACE IHostSyncManager $IID_IHostSyncManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetCLRSyncManager ( ' VTable offset = 12
 BYVAL pManager AS ICLRSyncManager
 ) AS LONG
 ' =====================================================================================
 METHOD CreateCrst ( ' VTable offset = 16
 BYREF ppCrst AS IHostCrst
 ) AS LONG
 ' =====================================================================================
 METHOD CreateCrstWithSpinCount ( ' VTable offset = 20
 BYVAL dwSpinCount AS DWORD
 , BYREF ppCrst AS IHostCrst
 ) AS LONG
 ' =====================================================================================
 METHOD CreateAutoEvent ( ' VTable offset = 24
 BYREF ppEvent AS IHostAutoEvent
 ) AS LONG
 ' =====================================================================================
 METHOD CreateManualEvent ( ' VTable offset = 28
 BYVAL bInitialState AS LONG
 , BYREF ppEvent AS IHostManualEvent
 ) AS LONG
 ' =====================================================================================
 METHOD CreateMonitorEvent ( ' VTable offset = 32
 BYVAL Cookie AS DWORD
 , BYREF ppEvent AS IHostAutoEvent
 ) AS LONG
 ' =====================================================================================
 METHOD CreateRWLockWriterEvent ( ' VTable offset = 36
 BYVAL Cookie AS DWORD
 , BYREF ppEvent AS IHostAutoEvent
 ) AS LONG
 ' =====================================================================================
 METHOD CreateRWLockReaderEvent ( ' VTable offset = 40
 BYVAL bInitialState AS LONG
 , BYVAL Cookie AS DWORD
 , BYREF ppEvent AS IHostManualEvent
 ) AS LONG
 ' =====================================================================================
 METHOD CreateSemaphore ( ' VTable offset = 44
 BYVAL dwInitial AS DWORD
 , BYVAL dwMax AS DWORD
 , BYREF ppSemaphore AS IHostSemaphore
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostSyncManager_INTERFACE_DEFINED__ */
' enum EClrOperation
%EQUATE `OPR_ThreadAbort = 0
%EQUATE `OPR_ThreadRudeAbortInNonCriticalRegion = %OPR_ThreadAbort + 1
%EQUATE `OPR_ThreadRudeAbortInCriticalRegion = %OPR_ThreadRudeAbortInNonCriticalRegion + 1
%EQUATE `OPR_AppDomainUnload = %OPR_ThreadRudeAbortInCriticalRegion + 1
%EQUATE `OPR_AppDomainRudeUnload = %OPR_AppDomainUnload + 1
%EQUATE `OPR_ProcessExit = %OPR_AppDomainRudeUnload + 1
%EQUATE `OPR_FinalizerRun = %OPR_ProcessExit + 1
%EQUATE `MaxClrOperation = %OPR_FinalizerRun + 1
' enum EClrFailure
%EQUATE `FAIL_NonCriticalResource = 0
%EQUATE `FAIL_CriticalResource = %FAIL_NonCriticalResource + 1
%EQUATE `FAIL_FatalRuntime = %FAIL_CriticalResource + 1
%EQUATE `FAIL_OrphanedLock = %FAIL_FatalRuntime + 1
%EQUATE `FAIL_StackOverflow = %FAIL_OrphanedLock + 1
%EQUATE `FAIL_AccessViolation = %FAIL_StackOverflow + 1
%EQUATE `FAIL_CodeContract = %FAIL_AccessViolation + 1
%EQUATE `MaxClrFailure = %FAIL_CodeContract + 1
' enum EClrUnhandledException
%EQUATE `eRuntimeDeterminedPolicy = 0
%EQUATE `eHostDeterminedPolicy = %eRuntimeDeterminedPolicy + 1
' enum EPolicyAction
%EQUATE `eNoAction = 0
%EQUATE `eThrowException = %eNoAction + 1
%EQUATE `eAbortThread = %eThrowException + 1
%EQUATE `eRudeAbortThread = %eAbortThread + 1
%EQUATE `eUnloadAppDomain = %eRudeAbortThread + 1
%EQUATE `eRudeUnloadAppDomain = %eUnloadAppDomain + 1
%EQUATE `eExitProcess = %eRudeUnloadAppDomain + 1
%EQUATE `eFastExitProcess = %eExitProcess + 1
%EQUATE `eRudeExitProcess = %eFastExitProcess + 1
%EQUATE `eDisableRuntime = %eRudeExitProcess + 1
%EQUATE `MaxPolicyAction = %eDisableRuntime + 1
' ########################################################################################
' Interface name = ICLRPolicyManager
' IID = {7D290010-D781-45DA-A6F8-AA5D711A730E}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRPolicyManager_INTERFACE_DEFINED)
 %ICLRPolicyManager_INTERFACE_DEFINED = 1
INTERFACE ICLRPolicyManager $IID_ICLRPolicyManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetDefaultAction ( ' VTable offset = 12
 BYVAL operation AS LONG
 , BYVAL action AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetTimeout ( ' VTable offset = 16
 BYVAL operation AS LONG
 , BYVAL dwMilliseconds AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetActionOnTimeout ( ' VTable offset = 20
 BYVAL operation AS LONG
 , BYVAL action AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetTimeoutAndAction ( ' VTable offset = 24
 BYVAL operation AS LONG
 , BYVAL dwMilliseconds AS DWORD
 , BYVAL action AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetActionOnFailure ( ' VTable offset = 28
 BYVAL failure AS LONG
 , BYVAL action AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetUnhandledExceptionPolicy ( ' VTable offset = 32
 BYVAL policy AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRPolicyManager_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IHostPolicyManager
' IID = {7AE49844-B1E3-4683-BA7C-1E8212EA3B79}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostPolicyManager_INTERFACE_DEFINED)
 %IHostPolicyManager_INTERFACE_DEFINED = 1
INTERFACE IHostPolicyManager $IID_IHostPolicyManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD OnDefaultAction ( ' VTable offset = 12
 BYVAL operation AS LONG
 , BYVAL action AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD OnTimeout ( ' VTable offset = 16
 BYVAL operation AS LONG
 , BYVAL action AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD OnFailure ( ' VTable offset = 20
 BYVAL failure AS LONG
 , BYVAL action AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostPolicyManager_INTERFACE_DEFINED__ */
' enum EClrEvent
%EQUATE `Event_DomainUnload = 0
%EQUATE `Event_ClrDisabled = %Event_DomainUnload + 1
%EQUATE `Event_MDAFired = %Event_ClrDisabled + 1
%EQUATE `Event_StackOverflow = %Event_MDAFired + 1
%EQUATE `MaxClrEvent = %Event_StackOverflow + 1
' // Size = 12 bytes
TYPE MDAInfo DWORD
 lpMDACaption AS WSTRINGZ PTR
 lpMDAMessage AS WSTRINGZ PTR
 lpStackTrace AS WSTRINGZ PTR
END TYPE
' enum StackOverflowType
%EQUATE `SO_Managed = 0
%EQUATE `SO_ClrEngine = %SO_Managed + 1
%EQUATE `SO_Other = %SO_ClrEngine + 1
' // Size = 8 bytes
TYPE StackOverflowInfo DWORD
 soType AS LONG ' StackOverflowType
 pExceptionInfo AS EXCEPTION_POINTERS PTR ' EXCEPTION_POINTERS *
END TYPE
' ########################################################################################
' Interface name = IActionOnCLREvent
' IID = {607BE24B-D91B-4E28-A242-61871CE56E35}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IActionOnCLREvent_INTERFACE_DEFINED)
 %IActionOnCLREvent_INTERFACE_DEFINED = 1
INTERFACE IActionOnCLREvent $IID_IActionOnCLREvent
 INHERIT IUnknown
 ' =====================================================================================
 METHOD OnEvent ( ' VTable offset = 12
 BYVAL event AS LONG
 , BYVAL data AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IActionOnCLREvent_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ICLROnEventManager
' IID = {1D0E0132-E64F-493D-9260-025C0E32C175}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLROnEventManager_INTERFACE_DEFINED)
 %ICLROnEventManager_INTERFACE_DEFINED = 1
INTERFACE ICLROnEventManager $IID_ICLROnEventManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD RegisterActionOnEvent ( ' VTable offset = 12
 BYVAL event AS LONG
 , BYVAL pAction AS IActionOnCLREvent
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLROnEventManager_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IHostGCManager
' IID = {5D4EC34E-F248-457B-B603-255FAABA0D21}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostGCManager_INTERFACE_DEFINED)
 %IHostGCManager_INTERFACE_DEFINED = 1
INTERFACE IHostGCManager $IID_IHostGCManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD ThreadIsBlockingForSuspension ( ' VTable offset = 12
 ) AS LONG
 ' =====================================================================================
 METHOD SuspensionStarting ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
 METHOD SuspensionEnding ( ' VTable offset = 20
 BYVAL Generation AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostGCManager_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ICLRGCManager
' IID = {54D9007E-A8E2-4885-B7BF-F998DEEE4F2A}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRGCManager_INTERFACE_DEFINED)
 %ICLRGCManager_INTERFACE_DEFINED = 1
INTERFACE ICLRGCManager $IID_ICLRGCManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Collect ( ' VTable offset = 12
 BYVAL Generation AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetStats ( ' VTable offset = 16
 BYREF pStats AS COR_GC_STATS
 ) AS LONG
 ' =====================================================================================
 METHOD SetGCStartupLimits ( ' VTable offset = 20
 BYVAL SegmentSize AS DWORD
 , BYVAL MaxGen0Size AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRGCManager_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ICLRAssemblyReferenceList
' IID = {1B2C9750-2E66-4BDA-8B44-0A642C5CD733}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRAssemblyReferenceList_INTERFACE_DEFINED)
 %ICLRAssemblyReferenceList_INTERFACE_DEFINED = 1
INTERFACE ICLRAssemblyReferenceList $IID_ICLRAssemblyReferenceList
 INHERIT IUnknown
 ' =====================================================================================
 METHOD IsStringAssemblyReferenceInList ( ' VTable offset = 12
 BYREF pwzAssemblyName AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD IsAssemblyReferenceInList ( ' VTable offset = 16
 BYVAL pName AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRAssemblyReferenceList_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ICLRReferenceAssemblyEnum
' IID = {D509CB5D-CF32-4876-AE61-67770CF91973}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRReferenceAssemblyEnum_INTERFACE_DEFINED)
 %ICLRReferenceAssemblyEnum_INTERFACE_DEFINED = 1
INTERFACE ICLRReferenceAssemblyEnum $IID_ICLRReferenceAssemblyEnum
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Get ( ' VTable offset = 12
 BYVAL dwIndex AS DWORD
 , BYREF pwzBuffer AS WSTRINGZ
 , BYREF pcchBufferSize AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRReferenceAssemblyEnum_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ICLRProbingAssemblyEnum
' IID = {D0C5FB1F-416B-4F97-81F4-7AC7DC24DD5D}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRProbingAssemblyEnum_INTERFACE_DEFINED)
 %ICLRProbingAssemblyEnum_INTERFACE_DEFINED = 1
INTERFACE ICLRProbingAssemblyEnum $IID_ICLRProbingAssemblyEnum
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Get ( ' VTable offset = 12
 BYVAL dwIndex AS DWORD
 , BYREF pwzBuffer AS WSTRINGZ
 , BYREF pcchBufferSize AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRProbingAssemblyEnum_INTERFACE_DEFINED__ */
' enum CLRAssemblyIdentityFlags
%EQUATE `CLR_ASSEMBLY_IDENTITY_FLAGS_DEFAULT = 0
' ########################################################################################
' Interface name = ICLRAssemblyIdentityManager
' IID = {15F0A9DA-3FF6-4393-9DA9-FDFD284E6972}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRAssemblyIdentityManager_INTERFACE_DEFINED)
 %ICLRAssemblyIdentityManager_INTERFACE_DEFINED = 1
INTERFACE ICLRAssemblyIdentityManager $IID_ICLRAssemblyIdentityManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetCLRAssemblyReferenceList ( ' VTable offset = 12
 BYREF ppwzAssemblyReferences AS WSTRINGZ
 , BYVAL dwNumOfReferences AS DWORD
 , BYREF ppReferenceList AS ICLRAssemblyReferenceList
 ) AS LONG
 ' =====================================================================================
 METHOD GetBindingIdentityFromFile ( ' VTable offset = 16
 BYREF pwzFilePath AS WSTRINGZ
 , BYVAL dwFlags AS DWORD
 , BYREF pwzBuffer AS WSTRINGZ
 , BYREF pcchBufferSize AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetBindingIdentityFromStream ( ' VTable offset = 20
 BYVAL pStream AS IStream
 , BYVAL dwFlags AS DWORD
 , BYREF pwzBuffer AS WSTRINGZ
 , BYVAL pcchBufferSize AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetReferencedAssembliesFromFile ( ' VTable offset = 24
 BYREF pwzFilePath AS WSTRINGZ
 , BYVAL dwFlags AS DWORD
 , BYVAL pExcludeAssembliesList AS ICLRAssemblyReferenceList
 , BYREF ppReferenceEnum AS ICLRReferenceAssemblyEnum
 ) AS LONG
 ' =====================================================================================
 METHOD GetReferencedAssembliesFromStream ( ' VTable offset = 28
 BYVAL pStream AS IStream
 , BYVAL dwFlags AS DWORD
 , BYVAL pExcludeAssembliesList AS ICLRAssemblyReferenceList
 , BYREF ppReferenceEnum AS ICLRReferenceAssemblyEnum
 ) AS LONG
 ' =====================================================================================
 METHOD GetProbingAssembliesFromReference ( ' VTable offset = 32
 BYVAL dwMachineType AS DWORD
 , BYVAL dwFlags AS DWORD
 , BYREF pwzReferenceIdentity AS WSTRINGZ
 , BYREF ppProbingAssemblyEnum AS ICLRProbingAssemblyEnum
 ) AS LONG
 ' =====================================================================================
 METHOD IsStronglyNamed ( ' VTable offset = 36
 BYREF pwzAssemblyIdentity AS WSTRINGZ
 , BYREF pbIsStronglyNamed AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRAssemblyIdentityManager_INTERFACE_DEFINED__ */
' enum EHostBindingPolicyModifyFlags
%EQUATE `HOST_BINDING_POLICY_MODIFY_DEFAULT = 0
%EQUATE `HOST_BINDING_POLICY_MODIFY_CHAIN = 1
%EQUATE `HOST_BINDING_POLICY_MODIFY_REMOVE = 2
%EQUATE `HOST_BINDING_POLICY_MODIFY_MAX = 3
' ########################################################################################
' Interface name = ICLRHostBindingPolicyManager
' IID = {4B3545E7-1856-48C9-A8BA-24B21A753C09}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRHostBindingPolicyManager_INTERFACE_DEFINED)
 %ICLRHostBindingPolicyManager_INTERFACE_DEFINED = 1
INTERFACE ICLRHostBindingPolicyManager $IID_ICLRHostBindingPolicyManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD ModifyApplicationPolicy ( ' VTable offset = 12
 BYREF pwzSourceAssemblyIdentity AS WSTRINGZ
 , BYREF pwzTargetAssemblyIdentity AS WSTRINGZ
 , BYVAL pbApplicationPolicy AS BYTE PTR
 , BYVAL cbAppPolicySize AS DWORD
 , BYVAL dwPolicyModifyFlags AS DWORD
 , BYVAL pbNewApplicationPolicy AS BYTE PTR
 , BYREF pcbNewAppPolicySize AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD EvaluatePolicy ( ' VTable offset = 16
 BYREF pwzReferenceIdentity AS WSTRINGZ
 , BYVAL pbApplicationPolicy AS BYTE PTR
 , BYVAL cbAppPolicySize AS DWORD
 , BYREF pwzPostPolicyReferenceIdentity AS WSTRINGZ
 , BYREF pcchPostPolicyReferenceIdentity AS DWORD
 , BYREF pdwPoliciesApplied AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRHostBindingPolicyManager_INTERFACE_DEFINED__ */
' enum EBindPolicyLevels
%EQUATE `ePolicyLevelNone = 0
%EQUATE `ePolicyLevelRetargetable = &H1
%EQUATE `ePolicyUnifiedToCLR = &H2
%EQUATE `ePolicyLevelApp = &H4
%EQUATE `ePolicyLevelPublisher = &H8
%EQUATE `ePolicyLevelHost = &H10
%EQUATE `ePolicyLevelAdmin = &H20
%EQUATE `ePolicyPortability = &H40
' // Size = 16 bytes
TYPE AssemblyBindInfo DWORD
 dwAppDomainId AS DWORD
 lpReferencedIdentity AS WSTRINGZ PTR
 lpPostPolicyIdentity AS WSTRINGZ PTR
 ePolicyLevel AS DWORD
END TYPE
' // Size = 12 bytes
TYPE ModuleBindInfo DWORD
 dwAppDomainId AS DWORD
 lpAssemblyIdentity AS WSTRINGZ PTR
 lpModuleName AS WSTRINGZ PTR
END TYPE
' enum HostApplicationPolicy
%EQUATE `HOST_APPLICATION_BINDING_POLICY = 1
' ########################################################################################
' Interface name = IHostAssemblyStore
' IID = {7B102A88-3F7F-496D-8FA2-C35374E01AF3}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostAssemblyStore_INTERFACE_DEFINED)
 %IHostAssemblyStore_INTERFACE_DEFINED = 1
INTERFACE IHostAssemblyStore $IID_IHostAssemblyStore
 INHERIT IUnknown
 ' =====================================================================================
 METHOD ProvideAssembly ( ' VTable offset = 12
 BYREF pBindInfo AS AssemblyBindInfo
 , BYREF pAssemblyId AS QUAD
 , BYREF pContext AS QUAD
 , BYREF ppStmAssemblyImage AS IStream
 , BYREF ppStmPDB AS IStream
 ) AS LONG
 ' =====================================================================================
 METHOD ProvideModule ( ' VTable offset = 16
 BYVAL pBindInfo AS ModuleBindInfo
 , BYREF pdwModuleId AS DWORD
 , BYREF ppStmModuleImage AS IStream
 , BYREF ppStmPDB AS IStream
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostAssemblyStore_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IHostAssemblyManager
' IID = {613DABD7-62B2-493E-9E65-C1E32A1E0C5E}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostAssemblyManager_INTERFACE_DEFINED)
 %IHostAssemblyManager_INTERFACE_DEFINED = 1
INTERFACE IHostAssemblyManager $IID_IHostAssemblyManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetNonHostStoreAssemblies ( ' VTable offset = 12
 BYREF ppReferenceList AS ICLRAssemblyReferenceList
 ) AS LONG
 ' =====================================================================================
 METHOD GetAssemblyStore ( ' VTable offset = 16
 BYREF ppAssemblyStore AS IHostAssemblyStore
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostAssemblyManager_INTERFACE_DEFINED__ */
DECLARE FUNCTION GetCLRIdentityManager LIB "mscoree.dll" ALIAS "GetCLRIdentityManager" ( BYREF riid AS GUID , BYREF ppManager AS IUnknown ) AS LONG
' ########################################################################################
' Interface name = IHostControl
' IID = {02CA073C-7079-4860-880A-C2F7A449C991}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostControl_INTERFACE_DEFINED)
 %IHostControl_INTERFACE_DEFINED = 1
$IID_IHostControl = GUID$("{02CA073C-7079-4860-880A-C2F7A449C991}")
INTERFACE IHostControl $IID_IHostControl
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetHostManager ( ' VTable offset = 12
 BYREF riid AS GUID
 , BYREF ppObject AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD SetAppDomainManager ( ' VTable offset = 16
 BYVAL dwAppDomainID AS DWORD
 , BYVAL pUnkAppDomainManager AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostControl_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ICLRControl
' IID = {9065597E-D1A1-4FB2-B6BA-7E1FCE230F61}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRControl_INTERFACE_DEFINED)
 %ICLRControl_INTERFACE_DEFINED = 1
$IID_ICLRControl = GUID$("{9065597E-D1A1-4FB2-B6BA-7E1FCE230F61}")
INTERFACE ICLRControl $IID_ICLRControl
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetCLRManager ( ' VTable offset = 12
 BYREF riid AS GUID
 , BYREF ppObject AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD SetAppDomainManagerType ( ' VTable offset = 16
 BYREF pwzAppDomainManagerAssembly AS WSTRINGZ
 , BYREF pwzAppDomainManagerType AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRControl_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ICLRRuntimeHost
' IID = {90F1A06C-7712-4762-86B5-7A5EBA6BDB02}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRRuntimeHost_INTERFACE_DEFINED)
 %ICLRRuntimeHost_INTERFACE_DEFINED = 1
INTERFACE ICLRRuntimeHost $IID_ICLRRuntimeHost
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Start ( ' VTable offset = 12
 ) AS LONG
 ' =====================================================================================
 METHOD Stop ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
 METHOD SetHostControl ( ' VTable offset = 20
 BYVAL pHostControl AS IHostControl
 ) AS LONG
 ' =====================================================================================
 METHOD GetCLRControl ( ' VTable offset = 24
 BYREF pCLRControl AS ICLRControl
 ) AS LONG
 ' =====================================================================================
 METHOD UnloadAppDomain ( ' VTable offset = 28
 BYVAL dwAppDomainId AS DWORD
 , BYVAL fWaitUntilDone AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD MIDL_0010__ ( ' VTable offset = 32
 BYVAL cookie AS DWORD ' void* cookie
 ) AS LONG
 ' =====================================================================================
 METHOD ExecuteInAppDomain ( ' VTable offset = 36
 BYVAL dwAppDomainId AS DWORD
 , BYVAL FExecuteInAppDomainCallback AS DWORD
 , BYVAL cookie AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCurrentAppDomainId ( ' VTable offset = 40
 BYREF pdwAppDomainId AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ExecuteApplication ( ' VTable offset = 44
 BYREF pwzAppFullName AS WSTRINGZ
 , BYVAL dwManifestPaths AS DWORD
 , BYREF ppwzManifestPaths AS DWORD
 , BYVAL dwActivationData AS DWORD
 , BYREF ppwzActivationData AS DWORD
 , BYREF pReturnValue AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD ExecuteInDefaultAppDomain ( ' VTable offset = 48
 BYREF pwzAssemblyPath AS WSTRINGZ
 , BYREF pwzTypeName AS WSTRINGZ
 , BYREF pwzMethodName AS WSTRINGZ
 , BYREF pwzArgument AS WSTRINGZ
 , BYREF pReturnValue AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRRuntimeHost_INTERFACE_DEFINED__ */
' enum EApiCategories
%EQUATE `EAC_eNoChecks = 0
%EQUATE `EAC_eSynchronization = &H1
%EQUATE `EAC_eSharedState = &H2
%EQUATE `EAC_eExternalProcessMgmt = &H4
%EQUATE `EAC_eSelfAffectingProcessMgmt = &H8
%EQUATE `EAC_eExternalThreading = &H10
%EQUATE `EAC_eSelfAffectingThreading = &H20
%EQUATE `EAC_eSecurityInfrastructure = &H40
%EQUATE `EAC_eUI = &H80
%EQUATE `EAC_eMayLeakOnAbort = &H100
%EQUATE `EAC_eAll = &H1ff
' ########################################################################################
' Interface name = ICLRHostProtectionManager
' IID = {89F25F5C-CEEF-43E1-9CFA-A68CE863AAAC}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRHostProtectionManager_INTERFACE_DEFINED)
 %ICLRHostProtectionManager_INTERFACE_DEFINED = 1
INTERFACE ICLRHostProtectionManager $IID_ICLRHostProtectionManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetProtectedCategories ( ' VTable offset = 12
 BYVAL categories AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetEagerSerializeGrantSets ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRHostProtectionManager_INTERFACE_DEFINED__ */
' enum EInitializeNewDomainFlags
%EQUATE `eInitializeNewDomainFlags_None = 0
%EQUATE `eInitializeNewDomainFlags_NoSecurityChanges = &H2
' ########################################################################################
' Interface name = ICLRDomainManager
' IID = 270D00A2-8E15-4D0B-ADEB-37BC3E47DF77
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRDomainManager_INTERFACE_DEFINED)
 %ICLRDomainManager_INTERFACE_DEFINED = 1
INTERFACE ICLRDomainManager $IID_ICLRDomainManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetAppDomainManagerType ( ' VTable offset = 12
 BYREF wszAppDomainManagerAssembly AS WSTRINGZ
 , BYREF wszAppDomainManagerType AS WSTRINGZ
 , BYVAL dwInitializeDomainFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPropertiesForDefaultAppDomain ( ' VTable offset = 12
 BYVAL nProperties AS DWORD
 , BYREF pwszPropertyNames AS WSTRINGZ
 , BYREF pwszPropertyValues AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRDomainManager_INTERFACE_DEFINED__ */
#IF NOT %DEF(%MSCOREE_LIBRARY_DEFINED)
 %MSCOREE_LIBRARY_DEFINED = 1
$LIBID_MSCOREE = GUID$("{5477469E-83B1-11D2-8B49-00A0C9B7C9C4}")
' ########################################################################################
' Interface name = ITypeName
' IID = {B81FF171-20F3-11D2-8DCC-00A0C9B00522}
' Attributes = 256 [&H100] [Oleautomation]
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ITypeName_INTERFACE_DEFINED)
 %ITypeName_INTERFACE_DEFINED = 1
INTERFACE ITypeName $IID_ITypeName
 INHERIT IAutomation
 ' =====================================================================================
 METHOD GetNameCount ( ' VTable offset = 12
 ) AS DWORD
 ' =====================================================================================
 METHOD GetNames ( ' VTable offset = 16
 BYVAL count AS DWORD
 , BYREF rgbszNames AS WSTRING
 ) AS DWORD
 ' =====================================================================================
 METHOD GetTypeArgumentCount ( ' VTable offset = 20
 ) AS DWORD
 ' =====================================================================================
 METHOD GetTypeArguments ( ' VTable offset = 24
 BYVAL count AS DWORD
 , BYREF rgpArguments AS ITypeName
 ) AS DWORD
 ' =====================================================================================
 METHOD GetModifierLength ( ' VTable offset = 28
 ) AS DWORD
 ' =====================================================================================
 METHOD GetModifiers ( ' VTable offset = 32
 BYVAL count AS DWORD
 , BYREF rgModifiers AS DWORD
 ) AS DWORD
 ' =====================================================================================
 METHOD GetAssemblyName ( ' VTable offset = 36
 ) AS WSTRING
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ITypeName_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ITypeNameBuilder
' IID = {B81FF171-20F3-11D2-8DCC-00A0C9B00523}
' Attributes = 256 [&H100] [Oleautomation]
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ITypeNameBuilder_INTERFACE_DEFINED)
 %ITypeNameBuilder_INTERFACE_DEFINED = 1
INTERFACE ITypeNameBuilder $IID_ITypeNameBuilder
 INHERIT IAutomation
 ' =====================================================================================
 METHOD OpenGenericArguments ( ' VTable offset = 12
 ) ' void
 ' =====================================================================================
 METHOD CloseGenericArguments ( ' VTable offset = 16
 ) ' void
 ' =====================================================================================
 METHOD OpenGenericArgument ( ' VTable offset = 20
 ) ' void
 ' =====================================================================================
 METHOD CloseGenericArgument ( ' VTable offset = 24
 ) ' void
 ' =====================================================================================
 METHOD AddName ( ' VTable offset = 28
 BYREF szName AS WSTRINGZ
 ) ' void
 ' =====================================================================================
 METHOD AddPointer ( ' VTable offset = 32
 ) ' void
 ' =====================================================================================
 METHOD AddByRef ( ' VTable offset = 36
 ) ' void
 ' =====================================================================================
 METHOD AddSzArray ( ' VTable offset = 40
 ) ' void
 ' =====================================================================================
 METHOD AddArray ( ' VTable offset = 44
 BYVAL rank AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD AddAssemblySpec ( ' VTable offset = 48
 BYREF szAssemblySpec AS WSTRINGZ
 ) ' void
 ' =====================================================================================
 METHOD ToString ( ' VTable offset = 52
 ) AS WSTRING
 ' =====================================================================================
 METHOD Clear ( ' VTable offset = 56
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ITypeNameBuilder_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ITypeNameFactory
' IID = {B81FF171-20F3-11D2-8DCC-00A0C9B00521}
' Attributes = 256 [&H100] [Oleautomation]
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ITypeNameFactory_INTERFACE_DEFINED)
 %ITypeNameFactory_INTERFACE_DEFINED = 1
INTERFACE ITypeNameFactory $IID_ITypeNameFactory
 INHERIT IAutomation
 ' =====================================================================================
 METHOD ParseTypeName ( ' VTable offset = 12
 BYREF szName AS WSTRINGZ
 , BYREF pError AS DWORD
 ) AS ITypeName
 ' =====================================================================================
 METHOD GetTypeNameBuilder ( ' VTable offset = 16
 ) AS ITypeNameBuilder
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ITypeNameFactory_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IApartmentCallback
' IID = {178E5337-1528-4591-B1C9-1C6E484686D8}
' Attributes = 256 [&H100] [Oleautomation]
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IApartmentCallback_INTERFACE_DEFINED)
 %IApartmentCallback_INTERFACE_DEFINED = 1
INTERFACE IApartmentCallback $IID_IApartmentCallback
 INHERIT IAutomation
 ' =====================================================================================
 METHOD DoCallback ( ' VTable offset = 12
 BYVAL pFunc AS DWORD
 , BYVAL pData AS DWORD
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IApartmentCallback_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IManagedObject
' IID = {C3FCC19E-A970-11D2-8B5A-00A0C9B7C9C4}
' Attributes = 256 [&H100] [Oleautomation]
' ########################################################################################
#IF NOT %DEF(%IManagedObject_INTERFACE_DEFINED)
 %IManagedObject_INTERFACE_DEFINED = 1
INTERFACE IManagedObject $IID_IManagedObject
 INHERIT IAutomation
 ' =====================================================================================
 METHOD GetSerializedBuffer ( ' VTable offset = 12
 BYREF pBSTR AS WSTRING
 ) ' void
 ' =====================================================================================
 METHOD GetObjectIdentity ( ' VTable offset = 16
 BYREF pBSTRGUID AS WSTRING
 , BYREF AppDomainID AS LONG
 , BYREF pCCW AS LONG
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IManagedObject_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ICatalogServices
' IID = {04C6BE1E-1DB1-4058-AB7A-700CCCFBF254}
' Attributes = 256 [&H100] [Oleautomation]
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICatalogServices_INTERFACE_DEFINED)
 %ICatalogServices_INTERFACE_DEFINED = 1
INTERFACE ICatalogServices $IID_ICatalogServices
 INHERIT IAutomation
 ' =====================================================================================
 METHOD Autodone ( ' VTable offset = 12
 ) ' void
 ' =====================================================================================
 METHOD NotAutodone ( ' VTable offset = 16
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICatalogServices_INTERFACE_DEFINED__ */
#ENDIF ' /* __MSCOREE_LIBRARY_DEFINED__ */
' enum EContextType
%EQUATE `EContextType_eCurrentContext = 0
%EQUATE `EContextType_eRestrictedContext = &H1
' ########################################################################################
' Interface name = IHostSecurityContext
' IID = {7E573CE4-0343-4423-98D7-6318348A1D3C}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostSecurityContext_INTERFACE_DEFINED)
 %IHostSecurityContext_INTERFACE_DEFINED = 1
INTERFACE IHostSecurityContext $IID_IHostSecurityContext
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Capture ( ' VTable offset = 12
 BYREF ppClonedContext AS IHostSecurityContext
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostSecurityContext_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ICLRControl
' IID = {9065597E-D1A1-4FB2-B6BA-7E1FCE230F61}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHostSecurityManager_INTERFACE_DEFINED)
 %IHostSecurityManager_INTERFACE_DEFINED = 1
INTERFACE IHostSecurityManager $IID_IHostSecurityManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD ImpersonateLoggedOnUser ( ' VTable offset = 12
 BYVAL hToken AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD RevertToSelf ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
 METHOD OpenThreadToken ( ' VTable offset = 20
 BYVAL dwDesiredAccess AS DWORD
 , BYVAL bOpenAsSelf AS LONG
 , BYREF phThreadToken AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetThreadToken ( ' VTable offset = 24
 BYVAL hToken AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetSecurityContext ( ' VTable offset = 28
 BYVAL eContextType AS LONG
 , BYREF ppSecurityContext AS IHostSecurityContext
 ) AS LONG
 ' =====================================================================================
 METHOD SetSecurityContext ( ' VTable offset = 32
 BYVAL eContextType AS LONG
 , BYVAL pSecurityContext AS IHostSecurityContext
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHostSecurityManager_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ICLRAppDomainResourceMonitor
' IID = C62DE18C-2E23-4AEA-8423-B40C1FC59EAE
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICLRAppDomainResourceMonitor_INTERFACE_DEFINED)
 %ICLRAppDomainResourceMonitor_INTERFACE_DEFINED = 1
INTERFACE ICLRAppDomainResourceMonitor $IID_ICLRAppDomainResourceMonitor
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetCurrentAllocated ( ' VTable offset = 12
 BYVAL dwAppDomainId AS DWORD
 , BYREF pBytesAllocated AS QUAD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCurrentSurvived ( ' VTable offset = 16
 BYVAL dwAppDomainId AS DWORD
 , BYREF pAppDomainBytesSurvived AS QUAD
 , BYREF pTotalBytesSurvived AS QUAD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCurrentCpuTime ( ' VTable offset = 20
 BYVAL dwAppDomainId AS DWORD
 , BYREF pMilliseconds AS QUAD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICLRAppDomainResourceMonitor_INTERFACE_DEFINED__ */
' ########################################################################################
' *** Not included in mscoree.h ***
' ########################################################################################
$IID_ICorSvcBindToWorker = GUID$("{5C6FB596-4828-4ED5-B9DD-293DAD736FB5}")
$IID_ICorSvcDependencies = GUID$("{DDB34005-9BA3-4025-9554-F00A2DF5DBF5}")
$IID_ICorSvcLogger = GUID$("{D189FF1A-E266-4F13-9637-4B9522279FFC}")
$IID_ICorSvcRepository = GUID$("{D5346658-B5FD-4353-9647-07AD4783D5A0}")
$IID_ICorSvcSetPrivateAttributes = GUID$("{B18E0B40-C089-4350-8328-066C668BCCC2}")
$IID_ICorSvcWorker = GUID$("{D1047BC2-67C0-400C-A94C-E64446A67FBE}")
$IID_ICorSvcWorker2 = GUID$("{F3358A7D-0061-4776-880E-A2F21B9EF93E}")
$IID_ICorSvcPooledWorker = GUID$("{0631E7E2-6046-4FDE-8B6D-A09B64FDA6F3}")
' ########################################################################################
' Interface name = ICorSvcDependencies
' IID = {DDB34005-9BA3-4025-9554-F00A2DF5DBF5}
' Attributes = 256 [&H100] [Oleautomation]
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICorSvcDependencies_INTERFACE_DEFINED)
 %ICorSvcDependencies_INTERFACE_DEFINED = 1
INTERFACE ICorSvcDependencies $IID_ICorSvcDependencies
 INHERIT IAutomation
 ' =====================================================================================
 METHOD GetAssemblyDependencies ( ' VTable offset = 12
 BYVAL pAssemblyName AS WSTRING
 , BYREF pDependencies AS DWORD
 , BYREF assemblyNGenSetting AS DWORD
 , BYREF pNativeImageIdentity AS WSTRING
 , BYREF pAssemblyDisplayName AS WSTRING
 , BYREF pDependencyLoadSetting AS DWORD
 , BYREF pDependencyNGenSetting AS DWORD
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICorSvcDependencies_INTERFACE_DEFINED__ */
' ========================================================================================
' OptimizationScenario enum
' ========================================================================================
%EQUATE `OptimizationScenario_ScenarioDefault = 0
%EQUATE `OptimizationScenario_ScenarioAll = 1
%EQUATE `OptimizationScenario_ScenarioDebug = 2
%EQUATE `OptimizationScenario_ScenarioProfile = 8
%EQUATE `OptimizationScenario_ScenarioTuningDataCollection = 16
%EQUATE `OptimizationScenario_ScenarioLegacy = 32
' ========================================================================================
' PrivateOptimizationScenario enum
' ========================================================================================
%EQUATE `PrivateOptimizationScenario_ScenarioEmitFixups = &H00010000
%EQUATE `PrivateOptimizationScenario_ScenarioProfileInfo = &H00020000
' ========================================================================================
' _SvcWorkerPriority structure
' ========================================================================================
' // Size = 4 bytes
TYPE SvcWorkerPriority DWORD
 dwPriorityClass AS DWORD
END TYPE
' ########################################################################################
' Interface name = ICorSvcWorker
' IID = {D1047BC2-67C0-400C-A94C-E64446A67FBE}
' Attributes = 256 [&H100] [Oleautomation]
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICorSvcWorker_INTERFACE_DEFINED)
 %ICorSvcWorker_INTERFACE_DEFINED = 1
INTERFACE ICorSvcWorker $IID_ICorSvcWorker
 INHERIT IAutomation
 ' =====================================================================================
 METHOD SetPriority ( ' VTable offset = 12
 BYVAL priority AS SvcWorkerPriority
 ) ' void
 ' =====================================================================================
 METHOD OptimizeAssembly ( ' VTable offset = 16
 BYVAL pAssemblyName AS WSTRING
 , BYVAL pApplicationName AS WSTRING
 , BYVAL scenario AS LONG
 , BYVAL loadAlwaysList AS DWORD
 , BYVAL loadSometimesList AS DWORD
 , BYVAL loadNeverList AS DWORD
 , BYREF pNativeImageIdentity AS WSTRING
 ) ' void
 ' =====================================================================================
 METHOD DeleteNativeImage ( ' VTable offset = 20
 BYVAL pAssemblyName AS WSTRING
 , BYVAL pNativeImage AS WSTRING
 ) ' void
 ' =====================================================================================
 METHOD DisplayNativeImages ( ' VTable offset = 24
 BYVAL pAssemblyName AS WSTRING
 ) ' void
 ' =====================================================================================
 METHOD GetCorSvcDependencies ( ' VTable offset = 28
 BYVAL pApplicationName AS WSTRING
 , BYVAL scenario AS LONG
 , BYREF pCorSvcDependencies AS ICorSvcDependencies
 ) ' void
 ' =====================================================================================
 METHOD Stop ( ' VTable offset = 32
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICorSvcWorker_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ICorSvcWorker2
' IID = {F3358A7D-0061-4776-880E-A2F21B9EF93E}
' Attributes = 256 [&H00000100] [Oleautomation]
' Inherited interface = ICorSvcWorker
' ########################################################################################
#IF NOT %DEF(%ICorSvcWorker2_INTERFACE_DEFINED)
 %ICorSvcWorker2_INTERFACE_DEFINED = 1
INTERFACE ICorSvcWorker2 $IID_ICorSvcWorker2
 INHERIT IAutomation
 ' =====================================================================================
 ' ICorSvcWorker Methods
 ' =====================================================================================
 METHOD SetPriority ( ' VTable offset = 12
 BYVAL priority AS SvcWorkerPriority
 ) ' void
 ' =====================================================================================
 METHOD OptimizeAssembly ( ' VTable offset = 16
 BYVAL pAssemblyName AS WSTRING
 , BYVAL pApplicationName AS WSTRING
 , BYVAL scenario AS LONG
 , BYVAL loadAlwaysList AS DWORD
 , BYVAL loadSometimesList AS DWORD
 , BYVAL loadNeverList AS DWORD
 , BYREF pNativeImageIdentity AS WSTRING
 ) ' void
 ' =====================================================================================
 METHOD DeleteNativeImage ( ' VTable offset = 20
 BYVAL pAssemblyName AS WSTRING
 , BYVAL pNativeImage AS WSTRING
 ) ' void
 ' =====================================================================================
 METHOD DisplayNativeImages ( ' VTable offset = 24
 BYVAL pAssemblyName AS WSTRING
 ) ' void
 ' =====================================================================================
 METHOD GetCorSvcDependencies ( ' VTable offset = 28
 BYVAL pApplicationName AS WSTRING
 , BYVAL scenario AS LONG
 , BYREF pCorSvcDependencies AS ICorSvcDependencies
 ) ' void
 ' =====================================================================================
 METHOD Stop ( ' VTable offset = 32
 ) ' void
 ' =====================================================================================
 ' =====================================================================================
 ' ICorSvcWorker2 Method
 ' =====================================================================================
 METHOD CreatePdb ( ' VTable offset = 36
 BYVAL pAssemblyName AS WSTRING
 , BYVAL pAppBaseOrConfig AS WSTRING
 , BYVAL scenario AS LONG
 , BYVAL pNativeImagePath AS WSTRING
 , BYVAL pPdbPath AS WSTRING
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICorSvcWorker2_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ICorSvcPooledWorker
' IID = {0631E7E2-6046-4FDE-8B6D-A09B64FDA6F3}
' Attributes = 256 [&H00000100] [Oleautomation]
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICorSvcPooledWorker_INTERFACE_DEFINED)
 %ICorSvcPooledWorker_INTERFACE_DEFINED = 1
INTERFACE ICorSvcPooledWorker $IID_ICorSvcPooledWorker
 INHERIT IAutomation
 ' =====================================================================================
 METHOD CanReuseProcess ( ' VTable offset = 12
 BYVAL scenario AS LONG ' [in] scenario OptimizationScenario <alias> __MIDL___MIDL_itf_mscoree_tlb_0001_0009_0001
 , BYVAL pCorSvcLogger AS ICorSvcLogger ' [in] *pCorSvcLogger ICorSvcLogger <interface>
 , BYREF pCanContinue AS LONG ' [out] *pCanContinue VT_I4 <Long>
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICorSvcPooledWorker_INTERFACE_DEFINED__ */
' ========================================================================================
' NGenPrivateAttributesFlags enum
' ========================================================================================
%EQUATE `DbgTypePdb = 1
' ========================================================================================
' _NGenPrivateAttributes structure
' ========================================================================================
' // Size = 12 bytes
TYPE NGenPrivateAttributes DWORD
 Flags AS DWORD
 ZapStats AS DWORD
 DbgDir AS WSTRING PTR ' BSTR
END TYPE
' ########################################################################################
' Interface name = ICorSvcSetPrivateAttributes
' IID = {B18E0B40-C089-4350-8328-066C668BCCC2}
' Attributes = 256 [&H100] [Oleautomation]
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICorSvcSetPrivateAttributes_INTERFACE_DEFINED)
 %ICorSvcSetPrivateAttributes_INTERFACE_DEFINED = 1
INTERFACE ICorSvcSetPrivateAttributes $IID_ICorSvcSetPrivateAttributes
 INHERIT IAutomation
 ' =====================================================================================
 METHOD SetNGenPrivateAttributes ( ' VTable offset = 12
 BYVAL ngenPrivateAttributes AS NGenPrivateAttributes
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICorSvcSetPrivateAttributes_INTERFACE_DEFINED__ */
' ========================================================================================
' RepositoryFlags enum
' ========================================================================================
%EQUATE `RepositoryDefault = 0
%EQUATE `MoveFromRepository = 1
%EQUATE `CopyToRepository = 2
' ########################################################################################
' Interface name = ICorSvcRepository
' IID = {D5346658-B5FD-4353-9647-07AD4783D5A0}
' Attributes = 256 [&H100] [Oleautomation]
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICorSvcRepository_INTERFACE_DEFINED)
 %ICorSvcRepository_INTERFACE_DEFINED = 1
INTERFACE ICorSvcRepository $IID_ICorSvcRepository
 INHERIT IAutomation
 ' =====================================================================================
 METHOD SetRepository ( ' VTable offset = 12
 BYVAL pRepositoryDir AS WSTRING
 , BYVAL RepositoryFlags AS LONG
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICorSvcRepository_INTERFACE_DEFINED__ */
' ========================================================================================
' CorSvcLogLevel enum
' ========================================================================================
%EQUATE `LogLevel_Error = 0
%EQUATE `LogLevel_Warning = 1
%EQUATE `LogLevel_Success = 2
%EQUATE `LogLevel_Info = 3
' ########################################################################################
' Interface name = ICorSvcLogger
' IID = {D189FF1A-E266-4F13-9637-4B9522279FFC}
' Attributes = 256 [&H100] [Oleautomation]
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICorSvcLogger_INTERFACE_DEFINED)
 %ICorSvcLogger_INTERFACE_DEFINED = 1
INTERFACE ICorSvcLogger $IID_ICorSvcLogger
 INHERIT IAutomation
 ' =====================================================================================
 METHOD Log ( ' VTable offset = 12
 BYVAL logLevel AS LONG
 , BYVAL message AS WSTRING
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICorSvcLogger_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = ICorSvcBindToWorker
' IID = {5C6FB596-4828-4ED5-B9DD-293DAD736FB5}
' Attributes = 256 [&H100] [Oleautomation]
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICorSvcBindToWorker_INTERFACE_DEFINED)
 %ICorSvcBindToWorker_INTERFACE_DEFINED = 1
INTERFACE ICorSvcBindToWorker $IID_ICorSvcBindToWorker
 INHERIT IAutomation
 ' =====================================================================================
 METHOD BindToRuntimeWorker ( ' VTable offset = 12
 BYVAL pRuntimePath AS WSTRING
 , BYVAL ParentProcessID AS DWORD
 , BYVAL pInterruptEventName AS WSTRING
 , BYVAL pCorSvcLogger AS ICorSvcLogger
 , BYREF pCorSvcWorker AS ICorSvcWorker
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICorSvcBindToWorker_INTERFACE_DEFINED__ */
#ENDIF
