From: Jan Kotas Date: Thu, 7 Mar 2019 15:37:04 +0000 (-0800) Subject: Cleanup unused hosting interfaces (#23091) X-Git-Tag: accepted/tizen/unified/20190813.215958~61^2~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=70300c711b9e507d251f9a31d5c4be9653dd4c8a;p=platform%2Fupstream%2Fcoreclr.git Cleanup unused hosting interfaces (#23091) --- diff --git a/src/debug/ee/debugger.cpp b/src/debug/ee/debugger.cpp index 86cd547..63aa8c2 100644 --- a/src/debug/ee/debugger.cpp +++ b/src/debug/ee/debugger.cpp @@ -943,7 +943,6 @@ Debugger::Debugger() m_pModules(NULL), m_RSRequestedSync(FALSE), m_sendExceptionsOutsideOfJMC(TRUE), - m_pIDbgThreadControl(NULL), m_forceNonInterceptable(FALSE), m_pLazyData(NULL), m_defines(_defines), @@ -16083,24 +16082,6 @@ HRESULT Debugger::UpdateSpecialThreadList(DWORD cThreadArrayLength, return (S_OK); } -// Updates the pointer for the debugger services -void Debugger::SetIDbgThreadControl(IDebuggerThreadControl *pIDbgThreadControl) -{ - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - } - CONTRACTL_END; - if (m_pIDbgThreadControl) - m_pIDbgThreadControl->Release(); - - m_pIDbgThreadControl = pIDbgThreadControl; - - if (m_pIDbgThreadControl) - m_pIDbgThreadControl->AddRef(); -} - // // If a thread is Win32 suspended right after hitting a breakpoint instruction, but before the OS has transitioned the // thread over to the user-level exception dispatching logic, then we may see the IP pointing after the breakpoint diff --git a/src/debug/ee/debugger.h b/src/debug/ee/debugger.h index 15299c0..3d3118e 100644 --- a/src/debug/ee/debugger.h +++ b/src/debug/ee/debugger.h @@ -2579,9 +2579,6 @@ public: // Allows the debugger to keep an up to date list of special threads HRESULT UpdateSpecialThreadList(DWORD cThreadArrayLength, DWORD *rgdwThreadIDArray); - // Updates the pointer for the debugger services - void SetIDbgThreadControl(IDebuggerThreadControl *pIDbgThreadControl); - #ifndef DACCESS_COMPILE static void AcquireDebuggerDataLock(Debugger *pDebugger); @@ -2897,10 +2894,6 @@ private: public: - - IDebuggerThreadControl *m_pIDbgThreadControl; - - // Sometimes we force all exceptions to be non-interceptable. // There are currently three cases where we set this field to true: // diff --git a/src/inc/CMakeLists.txt b/src/inc/CMakeLists.txt index c54b4f0..517ea8e 100644 --- a/src/inc/CMakeLists.txt +++ b/src/inc/CMakeLists.txt @@ -6,7 +6,6 @@ set( CORGUIDS_IDL_SOURCES xclrdata.idl corprof.idl corpub.idl - gchost.idl mscorsvc.idl clrprivappxhosting.idl clrprivbinding.idl diff --git a/src/inc/MSCOREE.IDL b/src/inc/MSCOREE.IDL index cfc0f6b..93e4042 100644 --- a/src/inc/MSCOREE.IDL +++ b/src/inc/MSCOREE.IDL @@ -19,49 +19,18 @@ cpp_quote("") // Interface descriptions // import "unknwn.idl"; -#if defined(FEATURE_WINDOWSPHONE) -import "gchost.idl"; -#endif - -#include "product_version.h" cpp_quote("struct IActivationFactory;") interface IActivationFactory; -// CLSID TypeNameFactory : uuid{B81FF171-20F3-11d2-8DCC-00A0C9B00525} -cpp_quote("EXTERN_GUID(CLSID_TypeNameFactory, 0xB81FF171, 0x20F3, 0x11d2, 0x8d, 0xcc, 0x00, 0xa0, 0xc9, 0xb0, 0x05, 0x25);") - +cpp_quote("struct IHostControl;") +interface IHostControl; -#ifdef FEATURE_COMINTEROP -// CLSID ComCallUnmarshal -cpp_quote("EXTERN_GUID(CLSID_ComCallUnmarshal, 0x3F281000,0xE95A,0x11d2,0x88,0x6B,0x00,0xC0,0x4F,0x86,0x9F,0x04);") +cpp_quote("struct ICLRControl;") +interface ICLRControl; // CLSID ComCallUnmarshal2 cpp_quote("EXTERN_GUID(CLSID_ComCallUnmarshalV4, 0x45fb4600,0xe6e8,0x4928,0xb2,0x5e,0x50,0x47,0x6f,0xf7,0x94,0x25);") -#endif // FEATURE_COMINTEROP - -#ifdef FEATURE_APPDOMAIN_RESOURCE_MONITORING -// IID ICLRAppDomainResourceMonitor: uuid(C62DE18C-2E23-4AEA-8423-B40C1FC59EAE) -cpp_quote("EXTERN_GUID(IID_ICLRAppDomainResourceMonitor, 0XC62DE18C, 0X2E23, 0X4AEA, 0X84, 0X23, 0XB4, 0X0C, 0X1F, 0XC5, 0X9E, 0XAE);") -#endif //FEATURE_APPDOMAIN_RESOURCE_MONITORING - -// {7D290010-D781-45da-A6F8-AA5D711A730E} -cpp_quote("EXTERN_GUID(IID_ICLRPolicyManager, 0x7D290010, 0xD781, 0x45da, 0xA6, 0xF8, 0xAA, 0x5D, 0x71, 0x1A, 0x73, 0x0E);") - -#if defined (FEATURE_WINDOWSPHONE) -// IID_ICLRGCManager : uuid(54D9007E-A8E2-4885-B7BF-F998DEEE4F2A) -cpp_quote("EXTERN_GUID(IID_ICLRGCManager, 0x54D9007E, 0xA8E2, 0x4885, 0xB7, 0xBF, 0xF9, 0x98, 0xDE, 0xEE, 0x4F, 0x2A);") -// IID_ICLRGCManager2 : uuid(0603B793-A97A-4712-9CB4-0CD1C74C0F7C) -cpp_quote("EXTERN_GUID(IID_ICLRGCManager2, 0x0603B793, 0xA97A, 0x4712, 0x9C, 0xB4, 0x0C, 0xD1, 0xC7, 0x4C, 0x0F, 0x7C);") -// IID_ICLRErrorReportingManager : uuid(980D2F1A-BF79-4c08-812A-BB9778928F78) -cpp_quote("EXTERN_GUID(IID_ICLRErrorReportingManager, 0x980d2f1a, 0xbf79, 0x4c08, 0x81, 0x2a, 0xbb, 0x97, 0x78, 0x92, 0x8f, 0x78);") -#endif // FEATURE_WINDOWSPHONE - -#ifdef FEATURE_WINDOWSPHONE -// IID_ICLRErrorReportingManager2 : uuid(C68F63B1-4D8B-4E0B-9564-9D2EFE2FA18C) -cpp_quote("EXTERN_GUID(IID_ICLRErrorReportingManager2, 0xc68f63b1, 0x4d8b, 0x4e0b, 0x95, 0x64, 0x9d, 0x2e, 0xfe, 0x2f, 0xa1, 0x8c);") -#endif // FEATURE_WINDOWSPHONE - // IID ICLRRuntimeHost: uuid(90F1A06C-7712-4762-86B5-7A5EBA6BDB02) cpp_quote("EXTERN_GUID(IID_ICLRRuntimeHost, 0x90F1A06C, 0x7712, 0x4762, 0x86, 0xB5, 0x7A, 0x5E, 0xBA, 0x6B, 0xDB, 0x02);") @@ -72,48 +41,8 @@ cpp_quote("EXTERN_GUID(IID_ICLRRuntimeHost2, 0x712AB73F, 0x2C22, 0x4807, 0xAD, 0 // IID ICLRRuntimeHost4: uuid(64F6D366-D7C2-4F1F-B4B2-E8160CAC43AF) cpp_quote("EXTERN_GUID(IID_ICLRRuntimeHost4, 0x64F6D366, 0xD7C2, 0x4F1F, 0xB4, 0xB2, 0xE8, 0x16, 0x0C, 0xAC, 0x43, 0xAF);") - -// IID ITypeName : uuid{B81FF171-20F3-11d2-8DCC-00A0C9B00522} -cpp_quote("EXTERN_GUID(IID_ITypeName, 0xB81FF171, 0x20F3, 0x11d2, 0x8d, 0xcc, 0x00, 0xa0, 0xc9, 0xb0, 0x05, 0x22);") - - -// IID ITypeNameBuilder : uuid{B81FF171-20F3-11d2-8DCC-00A0C9B00523} -cpp_quote("EXTERN_GUID(IID_ITypeNameBuilder, 0xB81FF171, 0x20F3, 0x11d2, 0x8d, 0xcc, 0x00, 0xa0, 0xc9, 0xb0, 0x05, 0x23);") - -// IID ITypeNameFactory : uuid{B81FF171-20F3-11d2-8DCC-00A0C9B00521} -cpp_quote("EXTERN_GUID(IID_ITypeNameFactory, 0xB81FF171, 0x20F3, 0x11d2, 0x8d, 0xcc, 0x00, 0xa0, 0xc9, 0xb0, 0x05, 0x21);") - -#pragma midl_echo("DEPRECATED_CLR_STDAPI GetCORSystemDirectory(_Out_writes_to_(cchBuffer, *dwLength) LPWSTR pbuffer, DWORD cchBuffer, DWORD* dwLength);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI GetCORVersion(_Out_writes_to_(cchBuffer, *dwLength) LPWSTR pbBuffer, DWORD cchBuffer, DWORD* dwLength);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI GetFileVersion(LPCWSTR szFilename, _Out_writes_to_opt_(cchBuffer, *dwLength) LPWSTR szBuffer, DWORD cchBuffer, DWORD* dwLength);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI GetCORRequiredVersion(_Out_writes_to_(cchBuffer, *dwLength) LPWSTR pbuffer, DWORD cchBuffer, DWORD* dwLength);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI GetRequestedRuntimeInfo(LPCWSTR pExe, LPCWSTR pwszVersion, LPCWSTR pConfigurationFile, DWORD startupFlags, DWORD runtimeInfoFlags, _Out_writes_opt_(dwDirectory) LPWSTR pDirectory, DWORD dwDirectory, _Out_opt_ DWORD *dwDirectoryLength, _Out_writes_opt_(cchBuffer) LPWSTR pVersion, DWORD cchBuffer, _Out_opt_ DWORD* dwlength);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI GetRequestedRuntimeVersion(_In_ LPWSTR pExe, _Out_writes_to_(cchBuffer, *dwLength) LPWSTR pVersion, DWORD cchBuffer, _Out_ DWORD* dwLength);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI CorBindToRuntimeHost(LPCWSTR pwszVersion, LPCWSTR pwszBuildFlavor, LPCWSTR pwszHostConfigFile, VOID* pReserved, DWORD startupFlags, REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI CorBindToRuntimeEx(LPCWSTR pwszVersion, LPCWSTR pwszBuildFlavor, DWORD startupFlags, REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI CorBindToRuntimeByCfg(IStream* pCfgStream, DWORD reserved, DWORD startupFlags, REFCLSID rclsid,REFIID riid, LPVOID FAR* ppv);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI CorBindToRuntime(LPCWSTR pwszVersion, LPCWSTR pwszBuildFlavor, REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI CorBindToCurrentRuntime(LPCWSTR pwszFileName, REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI RunDll32ShimW(HWND hwnd, HINSTANCE hinst, LPCWSTR lpszCmdLine, int nCmdShow);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI LoadLibraryShim(LPCWSTR szDllName, LPCWSTR szVersion, LPVOID pvReserved, HMODULE *phModDll);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI CallFunctionShim(LPCWSTR szDllName, LPCSTR szFunctionName, LPVOID lpvArgument1, LPVOID lpvArgument2, LPCWSTR szVersion, LPVOID pvReserved);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI GetRealProcAddress(LPCSTR pwszProcName, VOID** ppv);") -#pragma midl_echo("DECLARE_DEPRECATED void STDMETHODCALLTYPE CorExitProcess(int exitCode);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI LoadStringRC(UINT iResouceID, _Out_writes_z_(iMax) LPWSTR szBuffer, int iMax, int bQuiet);") -#ifdef FEATURE_USE_LCID -#pragma midl_echo("DEPRECATED_CLR_STDAPI LoadStringRCEx(LCID lcid, UINT iResouceID, _Out_writes_z_(iMax) LPWSTR szBuffer, int iMax, int bQuiet, int *pcwchUsed);") -#endif - #pragma midl_echo("typedef HRESULT (STDAPICALLTYPE *FnGetCLRRuntimeHost)(REFIID riid, IUnknown **pUnk);") -typedef enum { - HOST_TYPE_DEFAULT = 0x0, - HOST_TYPE_APPLAUNCH = 0x1, - HOST_TYPE_CORFLAG = 0x2 -} HOST_TYPE; - -#pragma midl_echo("STDAPI CorLaunchApplication(HOST_TYPE dwClickOnceHost, LPCWSTR pwzAppFullName, DWORD dwManifestPaths, LPCWSTR* ppwzManifestPaths, DWORD dwActivationData, LPCWSTR* ppwzActivationData, LPPROCESS_INFORMATION lpProcessInformation);") - typedef HRESULT (__stdcall *FExecuteInAppDomainCallback) (void* cookie); // By default GC is concurrent and only the base system library is loaded into the domain-neutral area. @@ -145,26 +74,6 @@ typedef enum { STARTUP_DISABLE_RANDOMIZED_STRING_HASHING = 0x2000000 // Disable the randomized string hashing (not supported) } STARTUP_FLAGS; -typedef enum { - CLSID_RESOLUTION_DEFAULT = 0x0, // Standard behavior that interop uses - CLSID_RESOLUTION_REGISTERED = 0x1, // Searches the registry and applies shim policy -} CLSID_RESOLUTION_FLAGS; - -typedef enum -{ - RUNTIME_INFO_UPGRADE_VERSION = 0x001, // apply upgrades - i.e RTM->Everett - RUNTIME_INFO_REQUEST_IA64 = 0x002, // requesting a CLR for ia64 - RUNTIME_INFO_REQUEST_AMD64 = 0x004, // requesting a CLR for amd64 - RUNTIME_INFO_REQUEST_X86 = 0x008, // requesting a CLR for x86 - RUNTIME_INFO_DONT_RETURN_DIRECTORY = 0x010, // don't return directory information - RUNTIME_INFO_DONT_RETURN_VERSION = 0x020, // don't return version information - RUNTIME_INFO_DONT_SHOW_ERROR_DIALOG = 0x040, // don't pop up an error dialog on failure - RUNTIME_INFO_IGNORE_ERROR_MODE = 0x1000,// ignore SEM_FAILCRITICALERRORS - // (by default the error dialog is not shown if SEM_FAILCRITICALERRORS is set) - // Reserved values here - see mscoreepriv.h -} RUNTIME_INFO_FLAGS; - - typedef enum { APPDOMAIN_SECURITY_DEFAULT =0x0, @@ -182,85 +91,12 @@ typedef enum APPDOMAIN_DISABLE_TRANSPARENCY_ENFORCEMENT = 0x100, } APPDOMAIN_SECURITY_FLAGS; -#pragma midl_echo("STDAPI GetRequestedRuntimeVersionForCLSID(REFCLSID rclsid, _Out_writes_opt_(cchBuffer) LPWSTR pVersion, DWORD cchBuffer, _Out_opt_ DWORD* dwLength, CLSID_RESOLUTION_FLAGS dwResolutionFlags);") - - -cpp_quote("EXTERN_GUID(IID_IDebuggerThreadControl, 0x23d86786, 0x0bb5, 0x4774, 0x8f, 0xb5, 0xe3, 0x52, 0x2a, 0xdd, 0x62, 0x46);") -[ - uuid(23D86786-0BB5-4774-8FB5-E3522ADD6246), - version(1.0), - helpstring("Control over threads blocked in debugging services"), - pointer_default(unique), - local -] -interface IDebuggerThreadControl : IUnknown -{ - // Notification that the thread making the call is about to - // block within the debugging services. This gives the host - // an opportunity to perform another action while the thread - // blocks. This will always be called on a Runtime thread. - HRESULT ThreadIsBlockingForDebugger(); - - // Notification that the debugging services is about to - // release all threads it has blocked. This will never be - // called on a Runtime thread. If the host has a Runtime - // thread blocked in ThreadIsBlockingForDebugger() then it - // should release it now. - HRESULT ReleaseAllRuntimeThreads(); - - // Notification that the debugging services are about to - // start blocking all threads. This could be called on a - // Runtime thread. This is the signal to the host to - // start blocking threads in ThreadIsBlockingForDebugger(). - HRESULT StartBlockingForDebugger(DWORD dwUnused); -} - -cpp_quote("EXTERN_GUID(IID_IDebuggerInfo, 0xbf24142d, 0xa47d, 0x4d24, 0xa6, 0x6d, 0x8c, 0x21, 0x41, 0x94, 0x4e, 0x44);") -[ - uuid(BF24142D-A47D-4d24-A66D-8C2141944E44), - version(1.0), - helpstring("Information on the state of the debugging services"), - pointer_default(unique), - local -] -interface IDebuggerInfo : IUnknown -{ - // Indicates whether or not a managed debugger is attached to this process. - HRESULT IsDebuggerAttached([out] BOOL *pbAttached); -} - - -//***************************************************************************** -// Interface for hosting mscoree -//***************************************************************************** -typedef void* HDOMAINENUM; - - -typedef enum -{ - eMemoryAvailableLow = 1, - eMemoryAvailableNeutral = 2, - eMemoryAvailableHigh = 3 -} EMemoryAvailable; - -typedef enum -{ - eTaskCritical = 0, - eAppDomainCritical = 1, - eProcessCritical = 2 -} EMemoryCriticalLevel; - typedef enum { WAIT_MSGPUMP = 0x1, WAIT_ALERTABLE = 0x2, WAIT_NOTINDEADLOCK = 0x4 }WAIT_OPTION; - -typedef UINT64 TASKID; -typedef DWORD CONNID; - - typedef enum ETaskType { TT_DEBUGGERHELPER = 0x1, @@ -277,14 +113,6 @@ typedef enum ETaskType TT_UNKNOWN = 0x80000000, } ETaskType; - -typedef enum { - eSymbolReadingNever = 0, // Never read PDBs - eSymbolReadingAlways = 1, // Always read PDBs - eSymbolReadingFullTrustOnly = 2 // Only read PDBs that correspond to full-trust assemblies -} ESymbolReadingPolicy; - - typedef enum { // Default to minidump DUMP_FLAVOR_Mini = 0, @@ -300,26 +128,6 @@ typedef enum { } ECustomDumpFlavor; -// reserved for future extension -typedef enum -{ - DUMP_ITEM_None = 0 -} ECustomDumpItemKind; - -// -// The CustomDumpItem structure describes an item to be added to a dump. -// It is defined for future expansion and is not presently used. -// -typedef struct -{ - ECustomDumpItemKind itemKind; //this affects how next fields are interpreted. - union - { - // Union to be expanded later if need be - UINT_PTR pReserved; - }; -} CustomDumpItem; - const DWORD BucketParamsCount = 10; const DWORD BucketParamLength = 255; @@ -345,112 +153,6 @@ typedef struct _BucketParameters WCHAR pszParams[BucketParamsCount][BucketParamLength]; // Parameter strings. } BucketParameters; -#if defined(FEATURE_WINDOWSPHONE) -[ - uuid(980D2F1A-BF79-4c08-812A-BB9778928F78), - version(1.0), - helpstring("CLR error reporting manager"), - pointer_default(unique), - local -] -interface ICLRErrorReportingManager : IUnknown -{ - // Get Watson bucket parameters for "current" exception (on calling thread). - HRESULT GetBucketParametersForCurrentException([out] BucketParameters *pParams); - - // The BeginCustomDump function configures the custom dump support - HRESULT BeginCustomDump( [in] ECustomDumpFlavor dwFlavor, - [in] DWORD dwNumItems, - [in, size_is(dwNumItems), length_is(dwNumItems)] CustomDumpItem *items, - DWORD dwReserved); - - // EndCustomDump clears the custom dump configuration - HRESULT EndCustomDump(); -} - -#ifdef FEATURE_WINDOWSPHONE -typedef enum -{ - // indicates that the specified value is the Application ID - ApplicationID = 0x1, - - // indicates that the specified value is the application's Instance ID - InstanceID = 0x2, - - // additional values are reserved for future use -} ApplicationDataKey; - -[ - uuid(C68F63B1-4D8B-4E0B-9564-9D2EFE2FA18C), - version(1.0), - helpstring("CLR error reporting manager 2"), - pointer_default(unique), - local -] -interface ICLRErrorReportingManager2 : ICLRErrorReportingManager -{ - // This API will allow the host to specify key/value pairs of data to be consumed by the CLR. - // - // Parameters: - // [in] key - One of the values specified in the ApplicationDataKey enumerated type. - // - // [in] pValue - A NULL-terminated WCHAR string with a maximum length of MAX_PATH containing the corresponding - // value. Note that the CLR maintains its own copy of the data so this structure does not need - // to persist after the API call returns. - // - // Return values: - // S_OK upon success. - // - // Any other return value indicates that the API did not complete successfully and no value was set. - // - // Well-defined errors: - // E_INVALIDOPERATION if the CLR has already started. - // E_INVALIDARG for any of the following: - // key is not within the range of valid values for ApplicationDataKey - // pValue == NULL - // length of pValue is greater than MAX_PATH - HRESULT SetApplicationData([in] ApplicationDataKey key, [in] WCHAR const* pValue); - - // This API will allow the host to specify pre-defined Watson bucket data in the event of an unhandled - // exception, allowing the host to override Watson bucket parameter data that is usually collected and - // populated by the CLR. It should be called before the CLR has started. - // The BucketParameters data structure must be properly initialized before calling this API by zeroing - // out all fields, setting pszParams entries as required, then setting fInited to TRUE. - // A NULL pszParams entry indicates that the bucket parameter should not be overridden, and if all pszParams - // entries are NULL then the API call will fail. - // To override a bucket parameter with an empty string specify a pszParams entry with a blank string (one or - // more whitespace characters). - // - // NOTE: The current implementation allows overriding of the first bucket parameter only (pszParams[0]). - // Any other non-NULL pszParams entries will be ignored. This is subject to change in future releases. - // - // Parameters: - // [in] pBucketParams - A pointer to an initialized BucketParameters structure which contains the data to be - // reported in the event of an unhandled exception. Note that the CLR maintains its own - // copy of the data so this structure does not need to persist after the API call returns. - // - // [out] pCountParams - A pointer to a DWORD indicating the number of bucket parameter values that have - // been overridden by the host. A count of 0 indicates that no parameters were - // overridden. - // - // Return values: - // S_OK upon success. In this case the value pointed to by pCountParams will be greater than 0. - // - // Any other return value indicates that the API did not complete successfully. In this case the value - // pointed to by pCountParams will be 0. - // - // Well-defined errors: - // E_INVALIDOPERATION if the CLR has already started. - // E_INVALIDARG for any of the following: - // pBucketParams or pCountParams is NULL - // pBucketParams->fInited != TRUE - // if all BucketParameters.pszParams are NULL - HRESULT SetBucketParametersForUnhandledException([in] BucketParameters const* pBucketParams, [out] DWORD* pCountParams); -} -#endif // FEATURE_WINDOWSPHONE - -#endif // defined(FEATURE_WINDOWSPHONE) - typedef enum { @@ -506,225 +208,6 @@ typedef enum MaxPolicyAction } EPolicyAction; -[ - uuid(7D290010-D781-45da-A6F8-AA5D711A730E), - version(1.0), - helpstring("Allow host to specify policy for CLR to follow in abnormal condition"), - pointer_default(unique), - local -] -interface ICLRPolicyManager: IUnknown -{ - HRESULT SetDefaultAction( - [in] EClrOperation operation, - [in] EPolicyAction action); - - HRESULT SetTimeout( - [in] EClrOperation operation, - [in] DWORD dwMilliseconds); - - HRESULT SetActionOnTimeout( - [in] EClrOperation operation, - [in] EPolicyAction action); - - HRESULT SetTimeoutAndAction( - [in] EClrOperation operation, - [in] DWORD dwMilliseconds, - [in] EPolicyAction action); - - HRESULT SetActionOnFailure( - [in] EClrFailure failure, - [in] EPolicyAction action); - - HRESULT SetUnhandledExceptionPolicy( - [in] EClrUnhandledException policy); -} - - -typedef enum -{ - Event_DomainUnload, - Event_ClrDisabled, - Event_MDAFired, - Event_StackOverflow, - MaxClrEvent - // Do not add anything after this -} EClrEvent; - -// An MDAInfo is passed via OnEvent for Event_MDAFired events. -typedef struct _MDAInfo -{ - LPCWSTR lpMDACaption; - LPCWSTR lpMDAMessage; - LPCWSTR lpStackTrace; -} MDAInfo; - -// An StackOverflowInfo is passed via OnEvent for Event_StackOverflow events. -typedef enum -{ - SO_Managed, - SO_ClrEngine, - SO_Other, -} StackOverflowType; - -cpp_quote("typedef struct _StackOverflowInfo") -cpp_quote("{") -cpp_quote(" StackOverflowType soType;") -cpp_quote(" EXCEPTION_POINTERS *pExceptionInfo;") -cpp_quote("} StackOverflowInfo;") - - -#if defined(FEATURE_WINDOWSPHONE) - -/* - * This interface is used to get information about the GC system and - * control some aspects of the GC. This interface is for expert usage - * only, and can severely impact the performance of an application if - * used improperly!! - */ -[ - uuid(54D9007E-A8E2-4885-B7BF-F998DEEE4F2A), - version(1.0), - pointer_default(unique), - local -] -interface ICLRGCManager : IUnknown -{ - /* - * Forces a collection to occur for the given generation, regardless of - * current GC statistics. A value of -1 means collect all generations. - */ - HRESULT Collect([in] LONG Generation); - - /* - * Returns a set of current statistics about the state of the GC system. - * These values can then be used by a smart allocation system to help the - * GC run, by say adding more memory or forcing a collection. - */ - HRESULT GetStats([in][out] COR_GC_STATS *pStats); - - /* - * Sets the segment size and gen 0 maximum size. This value may only be - * specified once and will not change if called later. - */ - HRESULT SetGCStartupLimits([in] DWORD SegmentSize, [in] DWORD MaxGen0Size); -} - -/* - * This interface is added to allow users to specify 64-bit numbers on 64-bit OSs - * for the parameters to SetGCStartupLimits. - */ -[ - uuid(0603B793-A97A-4712-9CB4-0CD1C74C0F7C), - version(2.0), - pointer_default(unique), - local -] -interface ICLRGCManager2 : ICLRGCManager -{ - /* - * Sets the segment size and gen 0 maximum size. This value may only be - * specified once and will not change if called later. - */ - HRESULT SetGCStartupLimitsEx([in] SIZE_T SegmentSize, [in] SIZE_T MaxGen0Size); -}; - - -#endif // FEATURE_WINDOWSPHONE - -/////////////////////////////////////////////////////////////////////////////// -// -// enum EBindPolicyLevels -// -/////////////////////////////////////////////////////////////////////////////// -typedef enum -{ - ePolicyLevelNone = 0x0, - ePolicyLevelRetargetable = 0x1, - ePolicyUnifiedToCLR = 0x2, - ePolicyLevelApp = 0x4, - ePolicyLevelPublisher = 0x8, - ePolicyLevelHost = 0x10, - ePolicyLevelAdmin = 0x20, - ePolicyPortability = 0x40, -} EBindPolicyLevels; -/////////////////////////////////////////////////////////////////////////////// -// -// struct AssemblyBindInfo -// -/////////////////////////////////////////////////////////////////////////////// -typedef struct _AssemblyBindInfo -{ - DWORD dwAppDomainId; - LPCWSTR lpReferencedIdentity; - LPCWSTR lpPostPolicyIdentity; - DWORD ePolicyLevel; -}AssemblyBindInfo; -/////////////////////////////////////////////////////////////////////////////// -// -// struct ModuleBindInfo -// -/////////////////////////////////////////////////////////////////////////////// -typedef struct _ModuleBindInfo -{ - DWORD dwAppDomainId; - LPCWSTR lpAssemblyIdentity; - LPCWSTR lpModuleName; -} ModuleBindInfo; - - -typedef enum _HostApplicationPolicy -{ - HOST_APPLICATION_BINDING_POLICY = 1 -}EHostApplicationPolicy; - - - -// Implemented in mscorwks.dll, use mscoree!GetRealProcAddress to get -// a function pointer of this API. -#pragma midl_echo("STDAPI GetCLRIdentityManager(REFIID riid, IUnknown **ppManager);") - -// {02CA073D-7079-4860-880A-C2F7A449C991} -cpp_quote("EXTERN_GUID(IID_IHostControl, 0x02CA073C, 0x7079, 0x4860, 0x88, 0x0A, 0xC2, 0xF7, 0xA4, 0x49, 0xC9, 0x91);") -[ - uuid(02CA073C-7079-4860-880A-C2F7A449C991), - version(1.0), - helpstring("Common Language Runtime Host Control Interface"), - pointer_default(unique), - local -] -interface IHostControl : IUnknown -{ - HRESULT GetHostManager( - [in] REFIID riid, - [out] void **ppObject); - - /* Notify Host with IUnknown with the pointer to AppDomainManager */ - HRESULT SetAppDomainManager( - [in] DWORD dwAppDomainID, - [in] IUnknown* pUnkAppDomainManager); -} - -cpp_quote("EXTERN_GUID(IID_ICLRControl, 0x9065597E, 0xD1A1, 0x4fb2, 0xB6, 0xBA, 0x7E, 0x1F, 0xCE, 0x23, 0x0F, 0x61);") -[ - uuid(9065597E-D1A1-4fb2-B6BA-7E1FCE230F61), - version(1.0), - helpstring("Common Language Runtime Control Interface"), - pointer_default(unique), - local -] -interface ICLRControl : IUnknown -{ - HRESULT GetCLRManager( - [in] REFIID riid, - [out] void **ppObject); - - HRESULT SetAppDomainManagerType( - [in] LPCWSTR pwzAppDomainManagerAssembly, - [in] LPCWSTR pwzAppDomainManagerType); -} - - //***************************************************************************** // New interface for hosting mscoree @@ -774,10 +257,6 @@ interface ICLRRuntimeHost : IUnknown [out] DWORD *pReturnValue); }; -// Keys for ICLRRuntmeHost2::Authenticate. No longer required. -cpp_quote("#define CORECLR_HOST_AUTHENTICATION_KEY 0x1C6CA6F94025800LL") -cpp_quote("#define CORECLR_HOST_AUTHENTICATION_KEY_NONGEN 0x1C6CA6F94025801LL") - //***************************************************************************** // New interface for hosting mscoree //***************************************************************************** @@ -843,209 +322,6 @@ interface ICLRRuntimeHost4 : ICLRRuntimeHost2 [out] int *pLatchedExitCode); }; -//***************************************************************************** -// Interface to utilize HostProtection -//***************************************************************************** -typedef enum -{ - eNoChecks = 0, - //--------------------------------- - eSynchronization = 0x1, - eSharedState = 0x2, - eExternalProcessMgmt = 0x4, - eSelfAffectingProcessMgmt = 0x8, - eExternalThreading = 0x10, - eSelfAffectingThreading = 0x20, - eSecurityInfrastructure = 0x40, - eUI = 0x80, - eMayLeakOnAbort = 0x100, - //---------------------------------- - eAll = 0x1ff -} EApiCategories; - - -// -// Interface for configuring the default AppDomain -// - -typedef enum -{ - eInitializeNewDomainFlags_None = 0x0000, - - // InitializeNewDomain will not make changes to the security state of the AppDomain - eInitializeNewDomainFlags_NoSecurityChanges = 0x0002 -} -EInitializeNewDomainFlags; - - -//***************************************************************************** -// mscoree typelib definition -//***************************************************************************** - -[ - uuid(5477469e-83b1-11d2-8b49-00a0c9b7c9c4), - version(2.4), - helpstring("Common Language Runtime Execution Engine 2.4 Library") -] -library mscoree -{ - importlib("stdole32.tlb"); - - //***************************************************************************** - // - //***************************************************************************** - [ - object, - oleautomation, - uuid(B81FF171-20F3-11d2-8DCC-00A0C9B00522), - helpstring("Type name parser"), - pointer_default(unique) - ] - interface ITypeName : IUnknown - { - HRESULT GetNameCount([out, retval] DWORD* pCount); - HRESULT GetNames([in] DWORD count, [out] BSTR* rgbszNames, [out, retval] DWORD* pCount); - HRESULT GetTypeArgumentCount([out, retval] DWORD* pCount); - HRESULT GetTypeArguments([in] DWORD count, [out] ITypeName** rgpArguments, [out, retval] DWORD* pCount); - HRESULT GetModifierLength([out, retval] DWORD* pCount); - HRESULT GetModifiers([in] DWORD count, [out] DWORD* rgModifiers, [out, retval] DWORD* pCount); - HRESULT GetAssemblyName([out, retval] BSTR* rgbszAssemblyNames); - }; - - //***************************************************************************** - // - //***************************************************************************** - [ - object, - oleautomation, - uuid(B81FF171-20F3-11d2-8DCC-00A0C9B00523), - helpstring("Type name builder"), - pointer_default(unique) - ] - interface ITypeNameBuilder : IUnknown - { - HRESULT OpenGenericArguments(); - HRESULT CloseGenericArguments(); - HRESULT OpenGenericArgument(); - HRESULT CloseGenericArgument(); - HRESULT AddName([in] LPCWSTR szName); - HRESULT AddPointer(); - HRESULT AddByRef(); - HRESULT AddSzArray(); - HRESULT AddArray([in] DWORD rank); - HRESULT AddAssemblySpec([in] LPCWSTR szAssemblySpec); - HRESULT ToString([out, retval] BSTR* pszStringRepresentation); - HRESULT Clear(); - }; - - //***************************************************************************** - // - //***************************************************************************** - [ - object, - oleautomation, - uuid(B81FF171-20F3-11d2-8DCC-00A0C9B00521), - helpstring("Type name builder and parser factory"), - pointer_default(unique) - ] - interface ITypeNameFactory : IUnknown - { - HRESULT ParseTypeName([in] LPCWSTR szName, [out] DWORD* pError, [out, retval] ITypeName** ppTypeName); - HRESULT GetTypeNameBuilder([out, retval] ITypeNameBuilder** ppTypeBuilder); - }; - - -#ifdef _WIN64 - #define CCW_PTR __int64 * - cpp_quote("#define CCW_PTR __int64 *") -#else // WIN64 - #define CCW_PTR int * - cpp_quote("#define CCW_PTR int *") -#endif // WIN64 - -#ifdef FEATURE_COMINTEROP - //***************************************************************************** - // IMarshal implementation for 1.0, 1.1, and 2.0 COM callable wrappers - //***************************************************************************** - [ - uuid(3F281000-E95A-11d2-886B-00C04F869F04), - helpstring("Com Call Wrapper Unmarshalling Class") - ] - coclass ComCallUnmarshal - { - [default] interface IMarshal; - }; - - //***************************************************************************** - // IMarshal implementation for 4.0 COM callable wrappers - //***************************************************************************** - [ - uuid(45FB4600-E6E8-4928-B25E-50476FF79425), - helpstring("Com Call Wrapper Unmarshalling Class 4.0") - ] - coclass ComCallUnmarshalV4 - { - [default] interface IMarshal; - }; -#endif // FEATURE_COMINTEROP - - - [ - uuid(90F1A06E-7712-4762-86B5-7A5EBA6BDB02), - helpstring("CLR Runtime Hosting Class V2") - ] - coclass CLRRuntimeHost - { - [default] interface ICLRRuntimeHost; - interface ICLRValidator; - }; - - [ - uuid(B81FF171-20F3-11d2-8DCC-00A0C9B00525), - helpstring("TypeName parser and builder") - ] - coclass TypeNameFactory - { - [default] interface ITypeNameFactory; - }; -}; - -typedef enum -{ - eCurrentContext=0x00, - eRestrictedContext=0x01 -} EContextType; - - -#ifdef FEATURE_APPDOMAIN_RESOURCE_MONITORING -/////////////////////////////////////////////////////////////////////////////// -// -// ICLRAppDomainResourceMonitor -// -/////////////////////////////////////////////////////////////////////////////// -[ - version(1.0), - uuid(c62de18c-2e23-4aea-8423-b40c1fc59eae), - helpstring("ARM interface"), - pointer_default(unique), - local -] -interface ICLRAppDomainResourceMonitor: IUnknown -{ - HRESULT GetCurrentAllocated([in] DWORD dwAppDomainId, - [out] ULONGLONG* pBytesAllocated); - - HRESULT GetCurrentSurvived([in] DWORD dwAppDomainId, - [out] ULONGLONG* pAppDomainBytesSurvived, - [out] ULONGLONG* pTotalBytesSurvived); - - HRESULT GetCurrentCpuTime([in] DWORD dwAppDomainId, - [out] ULONGLONG* pMilliseconds); - - -}; -#endif //FEATURE_APPDOMAIN_RESOURCE_MONITORING - cpp_quote("#undef DEPRECATED_CLR_STDAPI") cpp_quote("#undef DECLARE_DEPRECATED") cpp_quote("#undef DEPRECATED_CLR_API_MESG") diff --git a/src/inc/corhost.h b/src/inc/corhost.h index 3045dec..09ea994 100644 --- a/src/inc/corhost.h +++ b/src/inc/corhost.h @@ -55,47 +55,6 @@ protected: // Starts the runtime. This is equivalent to CoInitializeCor() STDMETHODIMP Start(); -#ifdef FEATURE_COMINTEROP - // Creates a domain in the runtime. The identity array is - // a pointer to an array TYPE containing IIdentity objects defining - // the security identity. - STDMETHODIMP CreateDomain(LPCWSTR pwzFriendlyName, // Optional - IUnknown* pIdentityArray, // Optional - IUnknown ** pAppDomain); - - // Returns the default domain. - STDMETHODIMP GetDefaultDomain(IUnknown ** pAppDomain); - - // Enumerate currently existing domains. - STDMETHODIMP EnumDomains(HDOMAINENUM *hEnum); - - // Returns S_FALSE when there are no more domains. A domain - // is passed out only when S_OK is returned. - STDMETHODIMP NextDomain(HDOMAINENUM hEnum, - IUnknown** pAppDomain); - - // Close the enumeration releasing resources - STDMETHODIMP CloseEnum(HDOMAINENUM hEnum); - - STDMETHODIMP CreateDomainEx(LPCWSTR pwzFriendlyName, - IUnknown* pSetup, // Optional - IUnknown* pEvidence, // Optional - IUnknown ** pAppDomain); - - // Create appdomain setup object that can be passed into CreateDomainEx - STDMETHODIMP CreateDomainSetup(IUnknown** pAppDomainSetup); - - // Create Evidence object that can be passed into CreateDomainEx - STDMETHODIMP CreateEvidence(IUnknown** pEvidence); - - // Unload a domain, releasing the reference will only release the - // the wrapper to the domain not unload the domain. - STDMETHODIMP UnloadDomain(IUnknown* pAppDomain); - - // Returns the threads domain if there is one. - STDMETHODIMP CurrentDomain(IUnknown ** pAppDomain); -#endif // FEATURE_COMINTEROP - STDMETHODIMP MapFile( // Return code. HANDLE hFile, // [in] Handle for file HMODULE *hMapAddress // [out] HINSTANCE for mapped file @@ -142,79 +101,6 @@ enum ESymbolReadingSetBy eSymbolReadingSetBy_COUNT }; - -#if defined(FEATURE_WINDOWSPHONE) -class CCLRErrorReportingManager : -#ifdef FEATURE_WINDOWSPHONE - public ICLRErrorReportingManager2 -#else - public ICLRErrorReportingManager -#endif // FEATURE_WINDOWSPHONE -{ - friend class ClrDataAccess; - friend struct _DacGlobals; - - SVAL_DECL(ECustomDumpFlavor, g_ECustomDumpFlavor); - -#ifdef FEATURE_WINDOWSPHONE - WCHAR* m_pApplicationId; - WCHAR* m_pInstanceId; - - class BucketParamsCache - { - private: - WCHAR** m_pParams; - DWORD const m_cMaxParams; - public: - BucketParamsCache(DWORD maxNumParams); - ~BucketParamsCache(); - - WCHAR const* GetAt(BucketParameterIndex index); - HRESULT SetAt(BucketParameterIndex index, WCHAR const* val); - }; - - BucketParamsCache* m_pBucketParamsCache; - - HRESULT CopyToDataCache(_In_ WCHAR** pTarget, WCHAR const* pSource); -#endif // FEATURE_WINDOWSPHONE - -public: - CCLRErrorReportingManager(); - ~CCLRErrorReportingManager(); - - STDMETHODIMP QueryInterface(REFIID riid, void** ppv); - STDMETHODIMP_(ULONG) AddRef(void); - STDMETHODIMP_(ULONG) Release(void); - - // ICLRErrorReportingManager APIs // - - // Get Watson bucket parameters for "current" exception (on calling thread). - STDMETHODIMP GetBucketParametersForCurrentException(BucketParameters *pParams); - STDMETHODIMP BeginCustomDump( ECustomDumpFlavor dwFlavor, - DWORD dwNumItems, - CustomDumpItem items[], - DWORD dwReserved); - STDMETHODIMP EndCustomDump(); - -#ifdef FEATURE_WINDOWSPHONE - // ICLRErrorReportingManager2 APIs // - - STDMETHODIMP SetApplicationData(ApplicationDataKey key, WCHAR const* pValue); - STDMETHODIMP SetBucketParametersForUnhandledException(BucketParameters const* pBucketParams, DWORD* pCountParams); - - // internal APIs - - // returns the application data for the specified key if available, else returns NULL. - WCHAR const* GetApplicationData(ApplicationDataKey key); - - // returns bucket parameter override data if available, else returns NULL. - WCHAR const* GetBucketParamOverride(BucketParameterIndex bucketParamId); -#endif // FEATURE_WINDOWSPHONE -}; - -extern CCLRErrorReportingManager g_CLRErrorReportingManager; -#endif // defined(FEATURE_WINDOWSPHONE) - class CorHost2 : public CorRuntimeHostBase #ifndef FEATURE_PAL @@ -334,8 +220,6 @@ public: static STARTUP_FLAGS GetStartupFlags(); - static EInitializeNewDomainFlags GetAppDomainManagerInitializeNewDomainFlags(); - static BOOL HasStarted() { return m_RefCount != 0; @@ -372,39 +256,9 @@ private: static LONG m_RefCount; - static IHostControl *m_HostControl; - SVAL_DECL(STARTUP_FLAGS, m_dwStartupFlags); }; -class CorHostProtectionManager -{ -private: - EApiCategories m_eProtectedCategories; - bool m_fEagerSerializeGrantSet; - bool m_fFrozen; - -public: - CorHostProtectionManager(); - - // IUnknown methods - HRESULT STDMETHODCALLTYPE QueryInterface( - REFIID id, - void **pInterface); - ULONG STDMETHODCALLTYPE AddRef(); - ULONG STDMETHODCALLTYPE Release(); - - // Interface methods - virtual HRESULT STDMETHODCALLTYPE SetProtectedCategories(/* [in] */ EApiCategories eFullTrustOnlyResources); - virtual HRESULT STDMETHODCALLTYPE SetEagerSerializeGrantSets(); - - // Getters - EApiCategories GetProtectedCategories(); - bool GetEagerSerializeGrantSets() const; - - void Freeze(); -}; - #ifdef FEATURE_COMINTEROP extern "C" HRESULT STDMETHODCALLTYPE DllGetActivationFactoryImpl( diff --git a/src/inc/dacvars.h b/src/inc/dacvars.h index f4a04b2..fc5be15 100644 --- a/src/inc/dacvars.h +++ b/src/inc/dacvars.h @@ -131,10 +131,6 @@ DEFINE_DACVAR(ULONG, DWORD, dac__g_debuggerWordTLSIndex, g_debuggerWordTLSIndex) #endif DEFINE_DACVAR(ULONG, DWORD, dac__g_TlsIndex, g_TlsIndex) -#if defined(FEATURE_WINDOWSPHONE) -DEFINE_DACVAR(ULONG, int, CCLRErrorReportingManager__g_ECustomDumpFlavor, CCLRErrorReportingManager::g_ECustomDumpFlavor) -#endif - DEFINE_DACVAR(ULONG, PTR_SString, SString__s_Empty, SString::s_Empty) #ifdef FEATURE_APPX diff --git a/src/inc/gchost.idl b/src/inc/gchost.idl deleted file mode 100644 index 6d85f91..0000000 --- a/src/inc/gchost.idl +++ /dev/null @@ -1,55 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -/* -------------------------------------------------------------------------- * - * Common Language Runtime Profiling interfaces - * - * The IGCHost allows a host environment to get statistics about the - * garbage collector as well as to gain some limited control over collections. - * This interface can be QueryInterface'd for on from the CorHost object. - * -------------------------------------------------------------------------- */ -import "unknwn.idl"; - - -#if defined(FEATURE_WINDOWSPHONE) -/* - * This structure is used to return statics for the GC system. Set the Flags - * value to a bitmask of values that should be returned. Only those values which - * are requested are calculated and returned to the caller. - */ -typedef struct _COR_GC_STATS -{ - ULONG Flags; // What values to get. - - // Value when COR_GC_COUNTS is specified. - SIZE_T ExplicitGCCount; // How many times was GC forced to run by external request. - SIZE_T GenCollectionsTaken[3]; // Number of collections done for each generation - - // Memory sizes, valid for COR_GC_MEMORYUSAGE. - SIZE_T CommittedKBytes; // Total committed bytes from all heaps. - SIZE_T ReservedKBytes; // Total reserved bytes from all heaps. - SIZE_T Gen0HeapSizeKBytes; // Size of gen 0 heap. - SIZE_T Gen1HeapSizeKBytes; // Size of gen 1 heap. - SIZE_T Gen2HeapSizeKBytes; // Size of gen 2 heap. - SIZE_T LargeObjectHeapSizeKBytes; // Size of large object heap. - SIZE_T KBytesPromotedFromGen0; // How many bytes promoted to next generation. - SIZE_T KBytesPromotedFromGen1; - -} COR_GC_STATS; -#endif // FEATURE_WINDOWSPHONE - -cpp_quote("/*") -cpp_quote(" * WARNING - This is a dummy interface that should never be used.") -cpp_quote(" * The code is written this way because Midl requires a CoClass, Interface, etc... that generates") -cpp_quote(" * a guid. Removing the IGCHost interface removes the only guid") -cpp_quote(" * This option was selected because ifdefs are not simple to implement for excluding files in SOURCES") -cpp_quote("*/") -[ - object, - uuid(F9423916-2A35-4f03-9EE9-DDAFA3C8AEE0), - pointer_default(unique), - local -] -interface IDummyDoNotUse : IUnknown -{ -} diff --git a/src/inc/metahost.idl b/src/inc/metahost.idl index 83f711a..b7c2e0b 100644 --- a/src/inc/metahost.idl +++ b/src/inc/metahost.idl @@ -37,32 +37,15 @@ import "ocidl.idl"; import "mscoree.idl"; cpp_quote("#include ") -cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") -/************************************************************************************** - ** This should be the only flat public API exposed from mscoree going forward. ** - ** The returned interface is likely to be implemented in a separate versioned DLL ** - ** (mscorhst.dll living in the versioned directory for instance). Acceptable values ** - ** for riid in v4.0 are IID_ICLRMetaHost, IID_ICLRMetaHostPolicy and ** - ** IID_ICLRDebugging. ** - **************************************************************************************/ cpp_quote("STDAPI CLRCreateInstance(REFCLSID clsid, REFIID riid, /*iid_is(riid)*/ LPVOID *ppInterface);") -// CLSID CLRStrongName : uuid(B79B0ACD-F5CD-409b-B5A5-A16244610B92) -cpp_quote("EXTERN_GUID(CLSID_CLRStrongName, 0xB79B0ACD, 0xF5CD, 0x409b, 0xB5, 0xA5, 0xA1, 0x62, 0x44, 0x61, 0x0B, 0x92);") - // IID ICLRMetaHost : uuid(D332DB9E-B9B3-4125-8207-A14884F53216) cpp_quote("EXTERN_GUID(IID_ICLRMetaHost, 0xD332DB9E, 0xB9B3, 0x4125, 0x82, 0x07, 0xA1, 0x48, 0x84, 0xF5, 0x32, 0x16);") // CLSID_CLRMetaHost : uuid(9280188D-0E8E-4867-B30C-7FA83884E8DE) cpp_quote("EXTERN_GUID(CLSID_CLRMetaHost, 0x9280188d, 0xe8e, 0x4867, 0xb3, 0xc, 0x7f, 0xa8, 0x38, 0x84, 0xe8, 0xde);") -// IID ICLRMetaHostPolicy : uuid(E2190695-77B2-492e-8E14-C4B3A7FDD593) -cpp_quote("EXTERN_GUID(IID_ICLRMetaHostPolicy, 0xE2190695, 0x77B2, 0x492e, 0x8E, 0x14, 0xC4, 0xB3, 0xA7, 0xFD, 0xD5, 0x93);") - -// CLSID_CLRMetaHostPolicy : uuid(2EBCD49A-1B47-4a61-B13A-4A03701E594B) -cpp_quote("EXTERN_GUID(CLSID_CLRMetaHostPolicy, 0x2ebcd49a, 0x1b47, 0x4a61, 0xb1, 0x3a, 0x4a, 0x3, 0x70, 0x1e, 0x59, 0x4b);") - // IID ICLRDebugging : uuid(D28F3C5A-9634-4206-A509-477552EEFB10) cpp_quote("EXTERN_GUID(IID_ICLRDebugging, 0xd28f3c5a, 0x9634, 0x4206, 0xa5, 0x9, 0x47, 0x75, 0x52, 0xee, 0xfb, 0x10);") @@ -72,37 +55,12 @@ cpp_quote("EXTERN_GUID(CLSID_CLRDebugging, 0xbacc578d, 0xfbdd, 0x48a4, 0x96, 0x9 // IID ICLRRuntimeInfo : uuid(BD39D1D2-BA2F-486a-89B0-B4B0CB466891) cpp_quote("EXTERN_GUID(IID_ICLRRuntimeInfo, 0xBD39D1D2, 0xBA2F, 0x486a, 0x89, 0xB0, 0xB4, 0xB0, 0xCB, 0x46, 0x68, 0x91);") -// IID ICLRStrongName : uuid(9FD93CCF-3280-4391-B3A9-96E1CDE77C8D) -cpp_quote("EXTERN_GUID(IID_ICLRStrongName, 0x9FD93CCF, 0x3280, 0x4391, 0xB3, 0xA9, 0x96, 0xE1, 0xCD, 0xE7, 0x7C, 0x8D);") - -// IID ICLRStrongName2 : uuid(C22ED5C5-4B59-4975-90EB-85EA55C0069B) -cpp_quote("EXTERN_GUID(IID_ICLRStrongName2, 0xC22ED5C5, 0x4B59, 0x4975, 0x90, 0xEB, 0x85, 0xEA, 0x55, 0xC0, 0x06, 0x9B);") - -// IID ICLRStrongName3 : uuid(22c7089b-bbd3-414a-b698-210f263f1fed) -cpp_quote("EXTERN_GUID(IID_ICLRStrongName3, 0x22c7089b, 0xbbd3, 0x414a, 0xb6, 0x98, 0x21, 0x0f, 0x26, 0x3f, 0x1f, 0xed);") - -// CLSID for legacy debugging interface : uuid(DF8395B5-A4BA-450b-A77C-A9A47762C520} -cpp_quote("EXTERN_GUID(CLSID_CLRDebuggingLegacy, 0xDF8395B5, 0xA4BA, 0x450b, 0xA7, 0x7C, 0xA9, 0xA4, 0x77, 0x62, 0xC5, 0x20);") - -// CLSID CLRProfiling interface : uuid{BD097ED8-733E-43fe-8ED7-A95FF9A8448C} -cpp_quote("EXTERN_GUID(CLSID_CLRProfiling, 0xbd097ed8, 0x733e, 0x43fe, 0x8e, 0xd7, 0xa9, 0x5f, 0xf9, 0xa8, 0x44, 0x8c);") - // IID ICLRDebuggingLibraryProvider interface : uuid{3151C08D-4D09-4f9b-8838-2880BF18FE51} cpp_quote("EXTERN_GUID(IID_ICLRDebuggingLibraryProvider, 0x3151c08d, 0x4d09, 0x4f9b, 0x88, 0x38, 0x28, 0x80, 0xbf, 0x18, 0xfe, 0x51);") // IID ICLRDebuggingLibraryProvider2 interface : uuid{E04E2FF1-DCFD-45D5-BCD1-16FFF2FAF7BA} cpp_quote("EXTERN_GUID(IID_ICLRDebuggingLibraryProvider2, 0xE04E2FF1, 0xDCFD, 0x45D5, 0xBC, 0xD1, 0x16, 0xFF, 0xF2, 0xFA, 0xF7, 0xBA);") -typedef HRESULT(__stdcall * CLRCreateInstanceFnPtr)( - REFCLSID clsid, - REFIID riid, - LPVOID *ppInterface); - -typedef HRESULT(__stdcall * CreateInterfaceFnPtr)( - REFCLSID clsid, - REFIID riid, - LPVOID *ppInterface); - // For use in ICLRMetaHost::RequestRuntimeLoadedNotification interface ICLRRuntimeInfo; @@ -211,125 +169,6 @@ interface ICLRMetaHost : IUnknown [in] INT32 iExitCode); } // interface ICLRMetaHost -typedef enum -{ - /********************************************************************************** - ** Functions will not take into account runtimes already loaded into the ** - ** process (thus guaranteed to give the same answer regardless of load order). ** - **********************************************************************************/ - METAHOST_POLICY_HIGHCOMPAT = 0x00000000, - - /********************************************************************************** - ** 0x00000000 - 0x00000004 reserved for future policies. ** - **********************************************************************************/ - - /********************************************************************************** - ** Applies upgrade policy when an exact match is not found. ** - **********************************************************************************/ - METAHOST_POLICY_APPLY_UPGRADE_POLICY = 0x00000008, - - /********************************************************************************** - ** Binds as if the provided information were being use in a new process. This ** - ** allows a host to determine what runtime an EXE will bind to when launched. ** - **********************************************************************************/ - METAHOST_POLICY_EMULATE_EXE_LAUNCH = 0x00000010, - - /********************************************************************************** - ** Produces an error dialog if GetRequestedRuntime is unable to find a runtime ** - ** compatible with the input parameters. This error dialog can take the form ** - ** of a dialog box that takes a user to an fwlink, or as a Windows feature ** - ** dialog asking if the user would like to enable the appropriate feature (when ** - ** available, this dialog is preferred over the fwlink dialog). ** - **********************************************************************************/ - METAHOST_POLICY_SHOW_ERROR_DIALOG = 0x00000020, - - /********************************************************************************** - ** By default, GetRequestedRuntime will not fall back to the process image path ** - ** (typically the EXE that was used to launch the process) when determining the ** - ** runtime to bind to. Specify this flag to have GetRequestedRuntime implicitly ** - ** use the process image (and any corresponding configuration file) as ** - ** additional input to the binding process. ** - **********************************************************************************/ - METAHOST_POLICY_USE_PROCESS_IMAGE_PATH = 0x00000040, - - /********************************************************************************** - ** By default, we will not check whether the appropriate SKU is installed ** - ** unless SKU is specified in the config file entry. ** - ** Setting this flag forces the check when no information is available in the ** - ** config file, allowing applications without config files to fail gracefully ** - ** on smaller SKUs than the default install of .NET ** - **********************************************************************************/ - METAHOST_POLICY_ENSURE_SKU_SUPPORTED = 0x00000080, - - /********************************************************************************** - ** By default, we ignore METAHOST_POLICY_SHOW_ERROR_DIALOG if ** - ** SEM_FAILCRITICALERRORS is set ** - ** This flag tell us that a silent failure would be so undesirable that ** - ** the METAHOST_POLICY_SHOW_ERROR_DIALOG should be honored, even if for some ** - ** reason (e.g. inheritance from another process) SEM_FAILCRITICALERRORS is set ** - **********************************************************************************/ - METAHOST_POLICY_IGNORE_ERROR_MODE = 0x00001000, - -} -METAHOST_POLICY_FLAGS; - -/************************************************************************************** - ** This enum describes the possible flags returned in GetRequestedRuntinme's ** - ** pdwConfigFlags out parameter. - **************************************************************************************/ -typedef enum -{ - /********************************************************************************** - ** If a config file is used during GetRequestedRuntime's binding process, these ** - ** values indicate whether or not the startup tag has the ** - ** useLegacyV2RuntimeActivationPolicy attribute set, and if so to what value. ** - **********************************************************************************/ - - // Indicates presence and value of useLegacyV2RuntimeActivationPolicy attr - METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_UNSET = 0x00000000, - METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_TRUE = 0x00000001, - METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_FALSE = 0x00000002, - METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_MASK = 0x00000003, -} -METAHOST_CONFIG_FLAGS; - -/************************************************************************************** - ** ICLRMetaHostPolicy ** - ** Activated using mscoree!CLRCreateInstance. Implements a policy for determining ** - ** a runtime based on various inputs (metadata, config stream, ...). ** - **************************************************************************************/ -[ - uuid(E2190695-77B2-492e-8E14-C4B3A7FDD593), - version(1.0), - helpstring("CLR meta hosting policy"), - local -] -interface ICLRMetaHostPolicy : IUnknown -{ - /********************************************************************************** - ** Returns requested runtime version and runtime (not necessarily of that ** - ** version) based on a managed binary, version, and config file. ** - ** The return value is S_OK if a compatible runtime was found and S_FALSE if ** - ** not. *ppRuntime will be NULL in the latter case. ** - ** Supersedes: GetRequestedRuntimeInfo, GetRequestedRuntimeVersion, ** - ** CorBindToRuntimeHost, CorBindToRuntimeByCfg, ** - ** GetCORRequiredVersion ** - **********************************************************************************/ - HRESULT GetRequestedRuntime( - [in] METAHOST_POLICY_FLAGS dwPolicyFlags, - [in] LPCWSTR pwzBinary, // optional - [in] IStream *pCfgStream, // optional - [in, out, size_is(*pcchVersion), annotation("_Inout_updates_all_opt_(*pcchVersion)")] - LPWSTR pwzVersion, // optional - [in, out] DWORD *pcchVersion, - [out, size_is(*pcchImageVersion), annotation("_Out_writes_all_opt_(*pcchImageVersion)")] - LPWSTR pwzImageVersion, // image version to be used by compilers - [in, out] DWORD *pcchImageVersion, - [out] DWORD *pdwConfigFlags, - [in] REFIID riid, // IID_ICLRRuntimeInfo - [out, iid_is(riid), retval] LPVOID *ppRuntime); -} // interface ICLRMetaHostPolicy - /************************************************************************************* ** This structure defines the version of a CLR for debugging purposes. ** ** The wStructVersion field allows for future revisions to this structure to be ** @@ -708,403 +547,3 @@ interface ICLRRuntimeInfo : IUnknown [out] BOOL *pbStarted, [out] DWORD *pdwStartupFlags); }; - -/************************************************************************************** - ** ICLRStrongName ** - ** These are the strong name APIs exposed by mscoree refactored into an interface. ** - ** The only change is the omission of StrongNameErrorInfo and having all methods ** - ** return the COM standard HRESULT. TODO (low-pri): ** - ** ideas what could be done here - we have an opportunity to make breaking changes, ** - ** cleanup etc. - **************************************************************************************/ -[ - uuid(9FD93CCF-3280-4391-B3A9-96E1CDE77C8D), - version(1.0), - helpstring("CLR strong name interface"), - local -] -interface ICLRStrongName : IUnknown -{ - /********************************************************************************** - ** Gets a hash of the specified assembly file, using the specified hash ** - ** algorithm. ** - ** Supersedes: GetHashFromAssemblyFile ** - **********************************************************************************/ - HRESULT GetHashFromAssemblyFile( - [in] LPCSTR pszFilePath, - [in, out] unsigned int *piHashAlg, - [out, size_is(cchHash), length_is(*pchHash)] BYTE *pbHash, - [in] DWORD cchHash, - [out] DWORD *pchHash); - - /********************************************************************************** - ** Gets a hash of the specified assembly file, using the specified hash ** - ** algorithm (Unicode version). ** - ** Supersedes: GetHashFromAssemblyFileW ** - **********************************************************************************/ - HRESULT GetHashFromAssemblyFileW( - [in] LPCWSTR pwzFilePath, - [in, out] unsigned int *piHashAlg, - [out, size_is(cchHash), length_is(*pchHash)] BYTE *pbHash, - [in] DWORD cchHash, - [out] DWORD *pchHash); - - /********************************************************************************** - ** Gets a hash of the assembly at the specified memory address, using the ** - ** specified hash algorithm. ** - ** Supersedes: GetHashFromBlob ** - **********************************************************************************/ - HRESULT GetHashFromBlob( - [in] BYTE *pbBlob, - [in] DWORD cchBlob, - [in, out] unsigned int *piHashAlg, - [out, size_is(cchHash), length_is(*pchHash)] BYTE *pbHash, - [in] DWORD cchHash, - [out] DWORD *pchHash); - - /********************************************************************************** - ** Generates a hash over the contents of the specified file. ** - ** Supersedes: GetHashFromFile ** - **********************************************************************************/ - HRESULT GetHashFromFile( - [in] LPCSTR pszFilePath, - [in, out] unsigned int *piHashAlg, - [out, size_is(cchHash), length_is(*pchHash)] BYTE *pbHash, - [in] DWORD cchHash, - [out] DWORD *pchHash); - - /********************************************************************************** - ** Generates a hash over the contents of the specified file (Unicode version). ** - ** Supersedes: GetHashFromFileW ** - **********************************************************************************/ - HRESULT GetHashFromFileW( - [in] LPCWSTR pwzFilePath, - [in, out] unsigned int *piHashAlg, - [out, size_is(cchHash), length_is(*pchHash)] BYTE *pbHash, - [in] DWORD cchHash, - [out] DWORD *pchHash); - - /********************************************************************************** - ** Generates a hash over the contents of the file with the specified file ** - ** handle, using the specified hash algorithm. ** - ** Supersedes: GetHashFromHandle ** - **********************************************************************************/ - HRESULT GetHashFromHandle( - [in] HANDLE hFile, - [in, out] unsigned int *piHashAlg, - [out, size_is(cchHash), length_is(*pchHash)] BYTE *pbHash, - [in] DWORD cchHash, - [out] DWORD *pchHash); - - /********************************************************************************** - ** Determines whether two assemblies differ only by their strong name ** - ** signatures. ** - ** Supersedes: StrongNameCompareAssemblies ** - **********************************************************************************/ - HRESULT StrongNameCompareAssemblies( - [in] LPCWSTR pwzAssembly1, - [in] LPCWSTR pwzAssembly2, - [out, retval] DWORD *pdwResult); - - /********************************************************************************** - ** Frees memory that was allocated with a previous call to a strong name ** - ** function such as StrongNameGetPublicKey, StrongNameTokenFromPublicKey, or ** - ** StrongNameSignatureGeneration. ** - ** Supersedes: StrongNameFreeBuffer ** - **********************************************************************************/ - HRESULT StrongNameFreeBuffer( - [in] BYTE *pbMemory); - - /********************************************************************************** - ** Fills the specified buffer with the binary representation of the executable. ** - ** Supersedes: StrongNameGetBlob ** - **********************************************************************************/ - HRESULT StrongNameGetBlob( - [in] LPCWSTR pwzFilePath, - [in, out, size_is(*pcbBlob), length_is(*pcbBlob)] BYTE *pbBlob, - [in, out] DWORD *pcbBlob); - - /********************************************************************************** - ** Gets a binary representation of the assembly image at the specified memory ** - ** address. ** - ** Supersedes: StrongNameGetBlobFromImage ** - **********************************************************************************/ - HRESULT StrongNameGetBlobFromImage( - [in, size_is(dwLength)] BYTE *pbBase, - [in] DWORD dwLength, - [out, size_is(*pcbBlob), length_is(*pcbBlob)] BYTE *pbBlob, - [in, out] DWORD *pcbBlob); - - /********************************************************************************** - ** Gets the public key from a private/public key pair. ** - ** Supersedes: StrongNameGetPublicKey ** - **********************************************************************************/ - HRESULT StrongNameGetPublicKey( - [in] LPCWSTR pwzKeyContainer, - [in] BYTE *pbKeyBlob, - [in] ULONG cbKeyBlob, - [out] BYTE **ppbPublicKeyBlob, - [out] ULONG *pcbPublicKeyBlob); - - /********************************************************************************** - ** Gets the buffer size required for a hash, using the specified hash ** - ** algorithm. ** - ** Supersedes: StrongNameHashSize ** - **********************************************************************************/ - HRESULT StrongNameHashSize( - [in] ULONG ulHashAlg, - [out, retval] DWORD *pcbSize); - - /********************************************************************************** - ** Deletes the specified key container. ** - ** Supersedes: StrongNameKeyDelete ** - **********************************************************************************/ - HRESULT StrongNameKeyDelete( - [in] LPCWSTR pwzKeyContainer); - - /********************************************************************************** - ** Creates a new public/private key pair for strong name use. ** - ** Supersedes: StrongNameKeyGen ** - **********************************************************************************/ - HRESULT StrongNameKeyGen( - [in] LPCWSTR pwzKeyContainer, - [in] DWORD dwFlags, - [out] BYTE **ppbKeyBlob, - [out] ULONG *pcbKeyBlob); - - /********************************************************************************** - ** Generates a new public/private key pair with the specified key size, for ** - ** strong name use. ** - ** Supersedes: StrongNameKeyGenEx ** - **********************************************************************************/ - HRESULT StrongNameKeyGenEx( - [in] LPCWSTR pwzKeyContainer, - [in] DWORD dwFlags, - [in] DWORD dwKeySize, - [out] BYTE **ppbKeyBlob, - [out] ULONG *pcbKeyBlob); - - /********************************************************************************** - ** Imports a public/private key pair into a container. ** - ** Supersedes: StrongNameKeyInstall ** - **********************************************************************************/ - HRESULT StrongNameKeyInstall( - [in] LPCWSTR pwzKeyContainer, - [in] BYTE *pbKeyBlob, - [in] ULONG cbKeyBlob); - - /********************************************************************************** - ** Generates a strong name signature for the specified assembly. ** - ** Supersedes: StrongNameSignatureGeneration ** - **********************************************************************************/ - HRESULT StrongNameSignatureGeneration( - [in] LPCWSTR pwzFilePath, - [in] LPCWSTR pwzKeyContainer, - [in] BYTE *pbKeyBlob, - [in] ULONG cbKeyBlob, - [out] BYTE **ppbSignatureBlob, - [out] ULONG *pcbSignatureBlob); - - /********************************************************************************** - ** Generates a strong name signature for the specified assembly, according to ** - ** the specified flags. ** - ** Supersedes: StrongNameSignatureGenerationEx ** - **********************************************************************************/ - HRESULT StrongNameSignatureGenerationEx( - [in] LPCWSTR wszFilePath, - [in] LPCWSTR wszKeyContainer, - [in] BYTE *pbKeyBlob, - [in] ULONG cbKeyBlob, - [out] BYTE **ppbSignatureBlob, - [out] ULONG *pcbSignatureBlob, - [in] DWORD dwFlags); - - /********************************************************************************** - ** Returns the size of the strong name signature. ** - ** Supersedes: StrongNameSignatureSize ** - **********************************************************************************/ - HRESULT StrongNameSignatureSize( - [in] BYTE *pbPublicKeyBlob, - [in] ULONG cbPublicKeyBlob, - [in] DWORD *pcbSize); - - /********************************************************************************** - ** Gets a value indicating whether the assembly manifest at the supplied path ** - ** contains a strong name signature, which is verified according to the ** - ** specified flags. ** - ** Supersedes: StrongNameSignatureVerification ** - **********************************************************************************/ - HRESULT StrongNameSignatureVerification( - [in] LPCWSTR pwzFilePath, - [in] DWORD dwInFlags, - [out, retval] DWORD *pdwOutFlags); - - /********************************************************************************** - ** Gets a value indicating whether the assembly manifest at the supplied path ** - ** contains a strong name signature. ** - ** Supersedes: StrongNameSignatureVerificationEx ** - **********************************************************************************/ - HRESULT StrongNameSignatureVerificationEx( - [in] LPCWSTR pwzFilePath, - [in] BOOLEAN fForceVerification, - [out, retval] BOOLEAN *pfWasVerified); - - /********************************************************************************** - ** Verifies that an assembly that has already been mapped to memory is valid ** - ** for the associated public key. ** - ** Supersedes: StrongNameSignatureVerificationFromImage ** - **********************************************************************************/ - HRESULT StrongNameSignatureVerificationFromImage( - [in] BYTE *pbBase, - [in] DWORD dwLength, - [in] DWORD dwInFlags, - [out, retval] DWORD *pdwOutFlags); - - /********************************************************************************** - ** Creates a strong name token from the specified assembly file. ** - ** Supersedes: StrongNameTokenFromAssembly ** - **********************************************************************************/ - HRESULT StrongNameTokenFromAssembly( - [in] LPCWSTR pwzFilePath, - [out] BYTE **ppbStrongNameToken, - [out] ULONG *pcbStrongNameToken); - - /********************************************************************************** - ** Creates a strong name token from the specified assembly file, and returns ** - ** the public key that the token represents. ** - ** Supersedes: StrongNameTokenFromAssemblyEx ** - **********************************************************************************/ - HRESULT StrongNameTokenFromAssemblyEx( - [in] LPCWSTR pwzFilePath, - [out] BYTE **ppbStrongNameToken, - [out] ULONG *pcbStrongNameToken, - [out] BYTE **ppbPublicKeyBlob, - [out] ULONG *pcbPublicKeyBlob); - /********************************************************************************** - ** Gets a token representing a public key. A strong name token is the shortened ** - ** form of a public key. ** - ** Supersedes: StrongNameTokenFromPublicKey ** - **********************************************************************************/ - HRESULT StrongNameTokenFromPublicKey( - [in] BYTE *pbPublicKeyBlob, - [in] ULONG cbPublicKeyBlob, - [out] BYTE **ppbStrongNameToken, - [out] ULONG *pcbStrongNameToken); -}; // interface ICLRStrongName - -/************************************************************************************** - ** ICLRStrongName2 ** - ** Strongname Api's ** - **************************************************************************************/ -[ - uuid(C22ED5C5-4B59-4975-90EB-85EA55C0069B), - version(1.0), - helpstring("CLR strong name interface 2"), - local -] -interface ICLRStrongName2 : IUnknown -{ - /********************************************************************************** - ** Gets the public key from a private/public key pair, specifying a hash ** - ** algorithm and a signature algorithm. ** - **********************************************************************************/ - HRESULT StrongNameGetPublicKeyEx( - [in] LPCWSTR pwzKeyContainer, - [in] BYTE *pbKeyBlob, - [in] ULONG cbKeyBlob, - [out] BYTE **ppbPublicKeyBlob, - [out] ULONG *pcbPublicKeyBlob, - [in] ULONG uHashAlgId, // specify algorithm, or set to 0 for default - [in] ULONG uReserved); // reserved for future use, always set to 0 - - /********************************************************************************** - ** Verify the signature of a strongly named assembly, providing a mapping from ** - ** the ECMA key to a real key ** - **********************************************************************************/ - HRESULT StrongNameSignatureVerificationEx2( - [in] LPCWSTR wszFilePath, - [in] BOOLEAN fForceVerification, - [in] BYTE *pbEcmaPublicKey, - [in] DWORD cbEcmaPublicKey, - [out] BOOLEAN *pfWasVerified); -}; // interface ICLRStrongName2 - -/************************************************************************************* -** ICLRStrongName3 ** -** StrongName digest signing APIs ** -**************************************************************************************/ -[ - uuid(22c7089b-bbd3-414a-b698-210f263f1fed), - version(1.0), - helpstring("CLR strong name digest signing interface"), - local -] -interface ICLRStrongName3 : IUnknown -{ - // Generate the digest of an input assembly, which can be signed with StrongNameDigestSign - HRESULT StrongNameDigestGenerate( - [in] LPCWSTR wszFilePath, - [out] BYTE** ppbDigestBlob, - [out] ULONG* pcbDigestBlob, - [in] DWORD dwFlags); - - // Sign an the digest of an assembly calculated by StrongNameDigestGenerate - HRESULT StrongNameDigestSign( - [in] LPCWSTR wszKeyContainer, - [in, size_is(cbKeyBlob)] BYTE* pbKeyBlob, - [in] ULONG cbKeyBlob, - [in, size_is(cbDigestBlob)] BYTE* pbDigestBlob, - [in] ULONG cbDigestBlob, - [in] DWORD hashAlgId, - [out] BYTE** ppbSignatureBlob, - [out] ULONG* pcbSignatureBlob, - [in] DWORD dwFlags); - - // Embed a digest signature generated with StrongNameDigestSign into an assembly - HRESULT StrongNameDigestEmbed( - [in] LPCWSTR wszFilePath, - [in, size_is(cbSignatureBlob)] BYTE* pbSignatureBlob, - [in] ULONG cbSignatureBlob); -}; - -[ - uuid(5288DA6A-A8D3-43a1-8365-37DB0E7D5943), - version(1.0), -] -library CLRMetaHost -{ - interface ICLRMetaHost; - interface ICLRMetaHostPolicy; - interface ICLRDebuggingLibraryProvider; - interface ICLRDebugging; - interface ICLRRuntimeInfo; - interface ICLRStrongName; - - // Scenario: EXE activation - // 1. ICLRMetaHostPolicy::GetRequestedRuntime - // 2. ICLRRuntimeInfo::GetProcAddress("ExeMain") - // 3. ExeMain() - TODO: Add a hosting API to execute an EXE? - - // Scenario: Hosting with custom policy - // 1. ICLRMetaHost::GetFileVersion - // 2. ICLRMetaHost::EnumerateInstalledRuntimes - // 3. ICLRRuntimeInfo::IsLoaded/IsStarted - // ... - - // Scenario: Debugger attach for v1.0 to v4 using v2 lookalike interface - // ICLRMetaHost::EnumerateLoadedRuntimes - // ICLRRuntimeInfo::GetInterface(CLSID_CLRDebuggingLegacy, IID_ICorDebug) - - // Scenario: Profiler attach for v4 - // ICLRMetaHost::EnumerateLoadedRuntimes - - // Scenario: An installer needs to modify configuration of supported runtimes - // 1. ICLRMetaHost::EnumerateInstalledRuntimes - // 2. ICLRRuntimeInfo::GetVersionString - // 3. - // 4. ICLRRuntimeInfo::GetRuntimeDirectory - // 5. - -}; // library CLRMetaHost - -cpp_quote("#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") diff --git a/src/inc/mscoreepriv.h b/src/inc/mscoreepriv.h deleted file mode 100644 index df07612..0000000 --- a/src/inc/mscoreepriv.h +++ /dev/null @@ -1,21 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// - -#ifndef __MSCOREEPRIV_H__ -#define __MSCOREEPRIV_H__ - - -typedef enum -{ - RUNTIME_INFO_CONSIDER_POST_2_0 = 0x80, // consider v4.0+ versions - RUNTIME_INFO_EMULATE_EXE_LAUNCH = 0x100, // Binds as if the provided information were being use in a new process - RUNTIME_INFO_APPEND_FORCE_PERFORMANCE_COUNTER_UNIQUE_SHARED_MEMORY_READS_SETTING_TO_VERSION // appends either !0 (false), !1 (true) or !2 (unset) depending on the value of forcePerformanceCounterUniqueSharedMemoryReads in the runtime section of the config - = 0x200, -} RUNTIME_INFO_FLAGS_FOR_SHARED_COMPONENTS; - - - -#endif //__MSCOREEPRIV_H__ - diff --git a/src/inc/utilcode.h b/src/inc/utilcode.h index cd84736..a3123ef 100644 --- a/src/inc/utilcode.h +++ b/src/inc/utilcode.h @@ -4200,7 +4200,7 @@ void TrimWhiteSpace(__inout_ecount(*pcch) LPCWSTR *pwsz, __inout LPDWORD pcch); HRESULT Utf2Quick( LPCUTF8 pStr, // The string to convert. CQuickArray &rStr, // The QuickArray to convert it into. - int iCurLen); // Inital characters in the array to leave (default 0). + int iCurLen = 0); // Initial characters in the array to leave (default 0). //***************************************************************************** // Extract the movl 64-bit unsigned immediate from an IA64 bundle @@ -5186,9 +5186,6 @@ HMODULE LoadLocalizedResourceDLLForSDK(_In_z_ LPCWSTR wzResourceDllName, _In_opt typedef void* (__cdecl *LocalizedFileHandler)(LPCWSTR); void* FindLocalizedFile(_In_z_ LPCWSTR wzResourceDllName, LocalizedFileHandler lfh, _In_opt_z_ LPCWSTR modulePath=NULL); -BOOL IsClrHostedLegacyComObject(REFCLSID rclsid); - - // Helper to support termination due to heap corruption diff --git a/src/md/compiler/classfactory.cpp b/src/md/compiler/classfactory.cpp index 338095a..af34970 100644 --- a/src/md/compiler/classfactory.cpp +++ b/src/md/compiler/classfactory.cpp @@ -26,8 +26,6 @@ #include "clrprivhosting.h" -extern HRESULT TypeNameFactoryCreateObject(REFIID riid, void **ppUnk); - #include diff --git a/src/pal/prebuilt/idl/gchost_i.cpp b/src/pal/prebuilt/idl/gchost_i.cpp deleted file mode 100644 index 32ecfbe..0000000 --- a/src/pal/prebuilt/idl/gchost_i.cpp +++ /dev/null @@ -1,73 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - - - -/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ - -/* link this file in with the server and any clients */ - - - /* File created by MIDL compiler version 8.00.0603 */ -/* @@MIDL_FILE_HEADING( ) */ - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ - - -#ifdef __cplusplus -extern "C"{ -#endif - - -#include -#include - -#ifdef _MIDL_USE_GUIDDEF_ - -#ifndef INITGUID -#define INITGUID -#include -#undef INITGUID -#else -#include -#endif - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) - -#else // !_MIDL_USE_GUIDDEF_ - -#ifndef __IID_DEFINED__ -#define __IID_DEFINED__ - -typedef struct _IID -{ - unsigned long x; - unsigned short s1; - unsigned short s2; - unsigned char c[8]; -} IID; - -#endif // __IID_DEFINED__ - -#ifndef CLSID_DEFINED -#define CLSID_DEFINED -typedef IID CLSID; -#endif // CLSID_DEFINED - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} - -#endif !_MIDL_USE_GUIDDEF_ - -MIDL_DEFINE_GUID(IID, IID_IDummyDoNotUse,0xF9423916,0x2A35,0x4f03,0x9E,0xE9,0xDD,0xAF,0xA3,0xC8,0xAE,0xE0); - -#undef MIDL_DEFINE_GUID - -#ifdef __cplusplus -} -#endif - - - diff --git a/src/pal/prebuilt/inc/gchost.h b/src/pal/prebuilt/inc/gchost.h deleted file mode 100644 index c9e4fff..0000000 --- a/src/pal/prebuilt/inc/gchost.h +++ /dev/null @@ -1,166 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.00.0603 */ -/* @@MIDL_FILE_HEADING( ) */ - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 475 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif // __RPCNDR_H_VERSION__ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __gchost_h__ -#define __gchost_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IDummyDoNotUse_FWD_DEFINED__ -#define __IDummyDoNotUse_FWD_DEFINED__ -typedef interface IDummyDoNotUse IDummyDoNotUse; - -#endif /* __IDummyDoNotUse_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "unknwn.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_gchost_0000_0000 */ -/* [local] */ - -typedef struct _COR_GC_STATS - { - ULONG Flags; - SIZE_T ExplicitGCCount; - SIZE_T GenCollectionsTaken[ 3 ]; - SIZE_T CommittedKBytes; - SIZE_T ReservedKBytes; - SIZE_T Gen0HeapSizeKBytes; - SIZE_T Gen1HeapSizeKBytes; - SIZE_T Gen2HeapSizeKBytes; - SIZE_T LargeObjectHeapSizeKBytes; - SIZE_T KBytesPromotedFromGen0; - SIZE_T KBytesPromotedFromGen1; - } COR_GC_STATS; - -/* - * WARNING - This is a dummy interface that should never be used. - * The code is written this way because Midl requires a CoClass, Interface, etc... that generates - * a guid. Removing the IGCHost interface removes the only guid - * This option was selected because ifdefs are not simple to implement for excluding files in SOURCES -*/ - - -extern RPC_IF_HANDLE __MIDL_itf_gchost_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_gchost_0000_0000_v0_0_s_ifspec; - -#ifndef __IDummyDoNotUse_INTERFACE_DEFINED__ -#define __IDummyDoNotUse_INTERFACE_DEFINED__ - -/* interface IDummyDoNotUse */ -/* [local][unique][uuid][object] */ - - -EXTERN_C const IID IID_IDummyDoNotUse; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("F9423916-2A35-4f03-9EE9-DDAFA3C8AEE0") - IDummyDoNotUse : public IUnknown - { - public: - }; - - -#else /* C style interface */ - - typedef struct IDummyDoNotUseVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDummyDoNotUse * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDummyDoNotUse * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDummyDoNotUse * This); - - END_INTERFACE - } IDummyDoNotUseVtbl; - - interface IDummyDoNotUse - { - CONST_VTBL struct IDummyDoNotUseVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDummyDoNotUse_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDummyDoNotUse_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDummyDoNotUse_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDummyDoNotUse_INTERFACE_DEFINED__ */ - - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/src/pal/prebuilt/inc/metahost.h b/src/pal/prebuilt/inc/metahost.h index aa6c78c..aae25d7 100644 --- a/src/pal/prebuilt/inc/metahost.h +++ b/src/pal/prebuilt/inc/metahost.h @@ -6,7 +6,7 @@ /* File created by MIDL compiler version 8.01.0622 */ /* at Mon Jan 18 19:14:07 2038 */ -/* Compiler settings for C:/ssd/coreclr/src/inc/metahost.idl: +/* Compiler settings for metahost.idl: Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data @@ -52,13 +52,6 @@ typedef interface ICLRMetaHost ICLRMetaHost; #endif /* __ICLRMetaHost_FWD_DEFINED__ */ -#ifndef __ICLRMetaHostPolicy_FWD_DEFINED__ -#define __ICLRMetaHostPolicy_FWD_DEFINED__ -typedef interface ICLRMetaHostPolicy ICLRMetaHostPolicy; - -#endif /* __ICLRMetaHostPolicy_FWD_DEFINED__ */ - - #ifndef __ICLRDebuggingLibraryProvider_FWD_DEFINED__ #define __ICLRDebuggingLibraryProvider_FWD_DEFINED__ typedef interface ICLRDebuggingLibraryProvider ICLRDebuggingLibraryProvider; @@ -87,69 +80,6 @@ typedef interface ICLRRuntimeInfo ICLRRuntimeInfo; #endif /* __ICLRRuntimeInfo_FWD_DEFINED__ */ -#ifndef __ICLRStrongName_FWD_DEFINED__ -#define __ICLRStrongName_FWD_DEFINED__ -typedef interface ICLRStrongName ICLRStrongName; - -#endif /* __ICLRStrongName_FWD_DEFINED__ */ - - -#ifndef __ICLRStrongName2_FWD_DEFINED__ -#define __ICLRStrongName2_FWD_DEFINED__ -typedef interface ICLRStrongName2 ICLRStrongName2; - -#endif /* __ICLRStrongName2_FWD_DEFINED__ */ - - -#ifndef __ICLRStrongName3_FWD_DEFINED__ -#define __ICLRStrongName3_FWD_DEFINED__ -typedef interface ICLRStrongName3 ICLRStrongName3; - -#endif /* __ICLRStrongName3_FWD_DEFINED__ */ - - -#ifndef __ICLRMetaHost_FWD_DEFINED__ -#define __ICLRMetaHost_FWD_DEFINED__ -typedef interface ICLRMetaHost ICLRMetaHost; - -#endif /* __ICLRMetaHost_FWD_DEFINED__ */ - - -#ifndef __ICLRMetaHostPolicy_FWD_DEFINED__ -#define __ICLRMetaHostPolicy_FWD_DEFINED__ -typedef interface ICLRMetaHostPolicy ICLRMetaHostPolicy; - -#endif /* __ICLRMetaHostPolicy_FWD_DEFINED__ */ - - -#ifndef __ICLRDebuggingLibraryProvider_FWD_DEFINED__ -#define __ICLRDebuggingLibraryProvider_FWD_DEFINED__ -typedef interface ICLRDebuggingLibraryProvider ICLRDebuggingLibraryProvider; - -#endif /* __ICLRDebuggingLibraryProvider_FWD_DEFINED__ */ - - -#ifndef __ICLRDebugging_FWD_DEFINED__ -#define __ICLRDebugging_FWD_DEFINED__ -typedef interface ICLRDebugging ICLRDebugging; - -#endif /* __ICLRDebugging_FWD_DEFINED__ */ - - -#ifndef __ICLRRuntimeInfo_FWD_DEFINED__ -#define __ICLRRuntimeInfo_FWD_DEFINED__ -typedef interface ICLRRuntimeInfo ICLRRuntimeInfo; - -#endif /* __ICLRRuntimeInfo_FWD_DEFINED__ */ - - -#ifndef __ICLRStrongName_FWD_DEFINED__ -#define __ICLRStrongName_FWD_DEFINED__ -typedef interface ICLRStrongName ICLRStrongName; - -#endif /* __ICLRStrongName_FWD_DEFINED__ */ - - /* header files for imported files */ #include "unknwn.h" #include "oaidl.h" @@ -165,33 +95,14 @@ extern "C"{ /* [local] */ #include -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) STDAPI CLRCreateInstance(REFCLSID clsid, REFIID riid, /*iid_is(riid)*/ LPVOID *ppInterface); -EXTERN_GUID(CLSID_CLRStrongName, 0xB79B0ACD, 0xF5CD, 0x409b, 0xB5, 0xA5, 0xA1, 0x62, 0x44, 0x61, 0x0B, 0x92); EXTERN_GUID(IID_ICLRMetaHost, 0xD332DB9E, 0xB9B3, 0x4125, 0x82, 0x07, 0xA1, 0x48, 0x84, 0xF5, 0x32, 0x16); EXTERN_GUID(CLSID_CLRMetaHost, 0x9280188d, 0xe8e, 0x4867, 0xb3, 0xc, 0x7f, 0xa8, 0x38, 0x84, 0xe8, 0xde); -EXTERN_GUID(IID_ICLRMetaHostPolicy, 0xE2190695, 0x77B2, 0x492e, 0x8E, 0x14, 0xC4, 0xB3, 0xA7, 0xFD, 0xD5, 0x93); -EXTERN_GUID(CLSID_CLRMetaHostPolicy, 0x2ebcd49a, 0x1b47, 0x4a61, 0xb1, 0x3a, 0x4a, 0x3, 0x70, 0x1e, 0x59, 0x4b); EXTERN_GUID(IID_ICLRDebugging, 0xd28f3c5a, 0x9634, 0x4206, 0xa5, 0x9, 0x47, 0x75, 0x52, 0xee, 0xfb, 0x10); EXTERN_GUID(CLSID_CLRDebugging, 0xbacc578d, 0xfbdd, 0x48a4, 0x96, 0x9f, 0x2, 0xd9, 0x32, 0xb7, 0x46, 0x34); EXTERN_GUID(IID_ICLRRuntimeInfo, 0xBD39D1D2, 0xBA2F, 0x486a, 0x89, 0xB0, 0xB4, 0xB0, 0xCB, 0x46, 0x68, 0x91); -EXTERN_GUID(IID_ICLRStrongName, 0x9FD93CCF, 0x3280, 0x4391, 0xB3, 0xA9, 0x96, 0xE1, 0xCD, 0xE7, 0x7C, 0x8D); -EXTERN_GUID(IID_ICLRStrongName2, 0xC22ED5C5, 0x4B59, 0x4975, 0x90, 0xEB, 0x85, 0xEA, 0x55, 0xC0, 0x06, 0x9B); -EXTERN_GUID(IID_ICLRStrongName3, 0x22c7089b, 0xbbd3, 0x414a, 0xb6, 0x98, 0x21, 0x0f, 0x26, 0x3f, 0x1f, 0xed); -EXTERN_GUID(CLSID_CLRDebuggingLegacy, 0xDF8395B5, 0xA4BA, 0x450b, 0xA7, 0x7C, 0xA9, 0xA4, 0x77, 0x62, 0xC5, 0x20); -EXTERN_GUID(CLSID_CLRProfiling, 0xbd097ed8, 0x733e, 0x43fe, 0x8e, 0xd7, 0xa9, 0x5f, 0xf9, 0xa8, 0x44, 0x8c); EXTERN_GUID(IID_ICLRDebuggingLibraryProvider, 0x3151c08d, 0x4d09, 0x4f9b, 0x88, 0x38, 0x28, 0x80, 0xbf, 0x18, 0xfe, 0x51); EXTERN_GUID(IID_ICLRDebuggingLibraryProvider2, 0xE04E2FF1, 0xDCFD, 0x45D5, 0xBC, 0xD1, 0x16, 0xFF, 0xF2, 0xFA, 0xF7, 0xBA); -typedef HRESULT ( __stdcall *CLRCreateInstanceFnPtr )( - REFCLSID clsid, - REFIID riid, - LPVOID *ppInterface); - -typedef HRESULT ( __stdcall *CreateInterfaceFnPtr )( - REFCLSID clsid, - REFIID riid, - LPVOID *ppInterface); - typedef HRESULT ( __stdcall *CallbackThreadSetFnPtr )( void); @@ -364,137 +275,6 @@ EXTERN_C const IID IID_ICLRMetaHost; /* interface __MIDL_itf_metahost_0000_0001 */ /* [local] */ -typedef /* [public][public] */ -enum __MIDL___MIDL_itf_metahost_0000_0001_0001 - { - METAHOST_POLICY_HIGHCOMPAT = 0, - METAHOST_POLICY_APPLY_UPGRADE_POLICY = 0x8, - METAHOST_POLICY_EMULATE_EXE_LAUNCH = 0x10, - METAHOST_POLICY_SHOW_ERROR_DIALOG = 0x20, - METAHOST_POLICY_USE_PROCESS_IMAGE_PATH = 0x40, - METAHOST_POLICY_ENSURE_SKU_SUPPORTED = 0x80, - METAHOST_POLICY_IGNORE_ERROR_MODE = 0x1000 - } METAHOST_POLICY_FLAGS; - -typedef /* [public] */ -enum __MIDL___MIDL_itf_metahost_0000_0001_0002 - { - METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_UNSET = 0, - METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_TRUE = 0x1, - METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_FALSE = 0x2, - METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_MASK = 0x3 - } METAHOST_CONFIG_FLAGS; - - - -extern RPC_IF_HANDLE __MIDL_itf_metahost_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_metahost_0000_0001_v0_0_s_ifspec; - -#ifndef __ICLRMetaHostPolicy_INTERFACE_DEFINED__ -#define __ICLRMetaHostPolicy_INTERFACE_DEFINED__ - -/* interface ICLRMetaHostPolicy */ -/* [object][local][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRMetaHostPolicy; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("E2190695-77B2-492e-8E14-C4B3A7FDD593") - ICLRMetaHostPolicy : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetRequestedRuntime( - /* [in] */ METAHOST_POLICY_FLAGS dwPolicyFlags, - /* [in] */ LPCWSTR pwzBinary, - /* [in] */ IStream *pCfgStream, - /* [annotation][size_is][out][in] */ - _Inout_updates_all_opt_(*pcchVersion) LPWSTR pwzVersion, - /* [out][in] */ DWORD *pcchVersion, - /* [annotation][size_is][out] */ - _Out_writes_all_opt_(*pcchImageVersion) LPWSTR pwzImageVersion, - /* [out][in] */ DWORD *pcchImageVersion, - /* [out] */ DWORD *pdwConfigFlags, - /* [in] */ REFIID riid, - /* [retval][iid_is][out] */ LPVOID *ppRuntime) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRMetaHostPolicyVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRMetaHostPolicy * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRMetaHostPolicy * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRMetaHostPolicy * This); - - HRESULT ( STDMETHODCALLTYPE *GetRequestedRuntime )( - ICLRMetaHostPolicy * This, - /* [in] */ METAHOST_POLICY_FLAGS dwPolicyFlags, - /* [in] */ LPCWSTR pwzBinary, - /* [in] */ IStream *pCfgStream, - /* [annotation][size_is][out][in] */ - _Inout_updates_all_opt_(*pcchVersion) LPWSTR pwzVersion, - /* [out][in] */ DWORD *pcchVersion, - /* [annotation][size_is][out] */ - _Out_writes_all_opt_(*pcchImageVersion) LPWSTR pwzImageVersion, - /* [out][in] */ DWORD *pcchImageVersion, - /* [out] */ DWORD *pdwConfigFlags, - /* [in] */ REFIID riid, - /* [retval][iid_is][out] */ LPVOID *ppRuntime); - - END_INTERFACE - } ICLRMetaHostPolicyVtbl; - - interface ICLRMetaHostPolicy - { - CONST_VTBL struct ICLRMetaHostPolicyVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRMetaHostPolicy_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRMetaHostPolicy_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRMetaHostPolicy_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRMetaHostPolicy_GetRequestedRuntime(This,dwPolicyFlags,pwzBinary,pCfgStream,pwzVersion,pcchVersion,pwzImageVersion,pcchImageVersion,pdwConfigFlags,riid,ppRuntime) \ - ( (This)->lpVtbl -> GetRequestedRuntime(This,dwPolicyFlags,pwzBinary,pCfgStream,pwzVersion,pcchVersion,pwzImageVersion,pcchImageVersion,pdwConfigFlags,riid,ppRuntime) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRMetaHostPolicy_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_metahost_0000_0003 */ -/* [local] */ - typedef struct _CLR_DEBUGGING_VERSION { WORD wStructVersion; @@ -505,7 +285,7 @@ typedef struct _CLR_DEBUGGING_VERSION } CLR_DEBUGGING_VERSION; typedef /* [public][public] */ -enum __MIDL___MIDL_itf_metahost_0000_0003_0001 +enum __MIDL___MIDL_itf_metahost_0000_0001_0001 { CLR_DEBUGGING_MANAGED_EVENT_PENDING = 1, CLR_DEBUGGING_MANAGED_EVENT_DEBUGGER_LAUNCH = 2 @@ -513,8 +293,8 @@ enum __MIDL___MIDL_itf_metahost_0000_0003_0001 -extern RPC_IF_HANDLE __MIDL_itf_metahost_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_metahost_0000_0003_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_metahost_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_metahost_0000_0001_v0_0_s_ifspec; #ifndef __ICLRDebuggingLibraryProvider_INTERFACE_DEFINED__ #define __ICLRDebuggingLibraryProvider_INTERFACE_DEFINED__ @@ -1016,739 +796,6 @@ EXTERN_C const IID IID_ICLRRuntimeInfo; #endif /* __ICLRRuntimeInfo_INTERFACE_DEFINED__ */ -#ifndef __ICLRStrongName_INTERFACE_DEFINED__ -#define __ICLRStrongName_INTERFACE_DEFINED__ - -/* interface ICLRStrongName */ -/* [object][local][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRStrongName; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9FD93CCF-3280-4391-B3A9-96E1CDE77C8D") - ICLRStrongName : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetHashFromAssemblyFile( - /* [in] */ LPCSTR pszFilePath, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHashFromAssemblyFileW( - /* [in] */ LPCWSTR pwzFilePath, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHashFromBlob( - /* [in] */ BYTE *pbBlob, - /* [in] */ DWORD cchBlob, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHashFromFile( - /* [in] */ LPCSTR pszFilePath, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHashFromFileW( - /* [in] */ LPCWSTR pwzFilePath, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHashFromHandle( - /* [in] */ HANDLE hFile, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameCompareAssemblies( - /* [in] */ LPCWSTR pwzAssembly1, - /* [in] */ LPCWSTR pwzAssembly2, - /* [retval][out] */ DWORD *pdwResult) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameFreeBuffer( - /* [in] */ BYTE *pbMemory) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameGetBlob( - /* [in] */ LPCWSTR pwzFilePath, - /* [length_is][size_is][out][in] */ BYTE *pbBlob, - /* [out][in] */ DWORD *pcbBlob) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameGetBlobFromImage( - /* [size_is][in] */ BYTE *pbBase, - /* [in] */ DWORD dwLength, - /* [length_is][size_is][out] */ BYTE *pbBlob, - /* [out][in] */ DWORD *pcbBlob) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameGetPublicKey( - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [out] */ BYTE **ppbPublicKeyBlob, - /* [out] */ ULONG *pcbPublicKeyBlob) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameHashSize( - /* [in] */ ULONG ulHashAlg, - /* [retval][out] */ DWORD *pcbSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameKeyDelete( - /* [in] */ LPCWSTR pwzKeyContainer) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameKeyGen( - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ DWORD dwFlags, - /* [out] */ BYTE **ppbKeyBlob, - /* [out] */ ULONG *pcbKeyBlob) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameKeyGenEx( - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwKeySize, - /* [out] */ BYTE **ppbKeyBlob, - /* [out] */ ULONG *pcbKeyBlob) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameKeyInstall( - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameSignatureGeneration( - /* [in] */ LPCWSTR pwzFilePath, - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [out] */ BYTE **ppbSignatureBlob, - /* [out] */ ULONG *pcbSignatureBlob) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameSignatureGenerationEx( - /* [in] */ LPCWSTR wszFilePath, - /* [in] */ LPCWSTR wszKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [out] */ BYTE **ppbSignatureBlob, - /* [out] */ ULONG *pcbSignatureBlob, - /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameSignatureSize( - /* [in] */ BYTE *pbPublicKeyBlob, - /* [in] */ ULONG cbPublicKeyBlob, - /* [in] */ DWORD *pcbSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameSignatureVerification( - /* [in] */ LPCWSTR pwzFilePath, - /* [in] */ DWORD dwInFlags, - /* [retval][out] */ DWORD *pdwOutFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameSignatureVerificationEx( - /* [in] */ LPCWSTR pwzFilePath, - /* [in] */ BOOLEAN fForceVerification, - /* [retval][out] */ BOOLEAN *pfWasVerified) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameSignatureVerificationFromImage( - /* [in] */ BYTE *pbBase, - /* [in] */ DWORD dwLength, - /* [in] */ DWORD dwInFlags, - /* [retval][out] */ DWORD *pdwOutFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameTokenFromAssembly( - /* [in] */ LPCWSTR pwzFilePath, - /* [out] */ BYTE **ppbStrongNameToken, - /* [out] */ ULONG *pcbStrongNameToken) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameTokenFromAssemblyEx( - /* [in] */ LPCWSTR pwzFilePath, - /* [out] */ BYTE **ppbStrongNameToken, - /* [out] */ ULONG *pcbStrongNameToken, - /* [out] */ BYTE **ppbPublicKeyBlob, - /* [out] */ ULONG *pcbPublicKeyBlob) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameTokenFromPublicKey( - /* [in] */ BYTE *pbPublicKeyBlob, - /* [in] */ ULONG cbPublicKeyBlob, - /* [out] */ BYTE **ppbStrongNameToken, - /* [out] */ ULONG *pcbStrongNameToken) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRStrongNameVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRStrongName * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRStrongName * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRStrongName * This); - - HRESULT ( STDMETHODCALLTYPE *GetHashFromAssemblyFile )( - ICLRStrongName * This, - /* [in] */ LPCSTR pszFilePath, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash); - - HRESULT ( STDMETHODCALLTYPE *GetHashFromAssemblyFileW )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzFilePath, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash); - - HRESULT ( STDMETHODCALLTYPE *GetHashFromBlob )( - ICLRStrongName * This, - /* [in] */ BYTE *pbBlob, - /* [in] */ DWORD cchBlob, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash); - - HRESULT ( STDMETHODCALLTYPE *GetHashFromFile )( - ICLRStrongName * This, - /* [in] */ LPCSTR pszFilePath, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash); - - HRESULT ( STDMETHODCALLTYPE *GetHashFromFileW )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzFilePath, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash); - - HRESULT ( STDMETHODCALLTYPE *GetHashFromHandle )( - ICLRStrongName * This, - /* [in] */ HANDLE hFile, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash); - - HRESULT ( STDMETHODCALLTYPE *StrongNameCompareAssemblies )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzAssembly1, - /* [in] */ LPCWSTR pwzAssembly2, - /* [retval][out] */ DWORD *pdwResult); - - HRESULT ( STDMETHODCALLTYPE *StrongNameFreeBuffer )( - ICLRStrongName * This, - /* [in] */ BYTE *pbMemory); - - HRESULT ( STDMETHODCALLTYPE *StrongNameGetBlob )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzFilePath, - /* [length_is][size_is][out][in] */ BYTE *pbBlob, - /* [out][in] */ DWORD *pcbBlob); - - HRESULT ( STDMETHODCALLTYPE *StrongNameGetBlobFromImage )( - ICLRStrongName * This, - /* [size_is][in] */ BYTE *pbBase, - /* [in] */ DWORD dwLength, - /* [length_is][size_is][out] */ BYTE *pbBlob, - /* [out][in] */ DWORD *pcbBlob); - - HRESULT ( STDMETHODCALLTYPE *StrongNameGetPublicKey )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [out] */ BYTE **ppbPublicKeyBlob, - /* [out] */ ULONG *pcbPublicKeyBlob); - - HRESULT ( STDMETHODCALLTYPE *StrongNameHashSize )( - ICLRStrongName * This, - /* [in] */ ULONG ulHashAlg, - /* [retval][out] */ DWORD *pcbSize); - - HRESULT ( STDMETHODCALLTYPE *StrongNameKeyDelete )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzKeyContainer); - - HRESULT ( STDMETHODCALLTYPE *StrongNameKeyGen )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ DWORD dwFlags, - /* [out] */ BYTE **ppbKeyBlob, - /* [out] */ ULONG *pcbKeyBlob); - - HRESULT ( STDMETHODCALLTYPE *StrongNameKeyGenEx )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwKeySize, - /* [out] */ BYTE **ppbKeyBlob, - /* [out] */ ULONG *pcbKeyBlob); - - HRESULT ( STDMETHODCALLTYPE *StrongNameKeyInstall )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob); - - HRESULT ( STDMETHODCALLTYPE *StrongNameSignatureGeneration )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzFilePath, - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [out] */ BYTE **ppbSignatureBlob, - /* [out] */ ULONG *pcbSignatureBlob); - - HRESULT ( STDMETHODCALLTYPE *StrongNameSignatureGenerationEx )( - ICLRStrongName * This, - /* [in] */ LPCWSTR wszFilePath, - /* [in] */ LPCWSTR wszKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [out] */ BYTE **ppbSignatureBlob, - /* [out] */ ULONG *pcbSignatureBlob, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *StrongNameSignatureSize )( - ICLRStrongName * This, - /* [in] */ BYTE *pbPublicKeyBlob, - /* [in] */ ULONG cbPublicKeyBlob, - /* [in] */ DWORD *pcbSize); - - HRESULT ( STDMETHODCALLTYPE *StrongNameSignatureVerification )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzFilePath, - /* [in] */ DWORD dwInFlags, - /* [retval][out] */ DWORD *pdwOutFlags); - - HRESULT ( STDMETHODCALLTYPE *StrongNameSignatureVerificationEx )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzFilePath, - /* [in] */ BOOLEAN fForceVerification, - /* [retval][out] */ BOOLEAN *pfWasVerified); - - HRESULT ( STDMETHODCALLTYPE *StrongNameSignatureVerificationFromImage )( - ICLRStrongName * This, - /* [in] */ BYTE *pbBase, - /* [in] */ DWORD dwLength, - /* [in] */ DWORD dwInFlags, - /* [retval][out] */ DWORD *pdwOutFlags); - - HRESULT ( STDMETHODCALLTYPE *StrongNameTokenFromAssembly )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzFilePath, - /* [out] */ BYTE **ppbStrongNameToken, - /* [out] */ ULONG *pcbStrongNameToken); - - HRESULT ( STDMETHODCALLTYPE *StrongNameTokenFromAssemblyEx )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzFilePath, - /* [out] */ BYTE **ppbStrongNameToken, - /* [out] */ ULONG *pcbStrongNameToken, - /* [out] */ BYTE **ppbPublicKeyBlob, - /* [out] */ ULONG *pcbPublicKeyBlob); - - HRESULT ( STDMETHODCALLTYPE *StrongNameTokenFromPublicKey )( - ICLRStrongName * This, - /* [in] */ BYTE *pbPublicKeyBlob, - /* [in] */ ULONG cbPublicKeyBlob, - /* [out] */ BYTE **ppbStrongNameToken, - /* [out] */ ULONG *pcbStrongNameToken); - - END_INTERFACE - } ICLRStrongNameVtbl; - - interface ICLRStrongName - { - CONST_VTBL struct ICLRStrongNameVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRStrongName_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRStrongName_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRStrongName_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRStrongName_GetHashFromAssemblyFile(This,pszFilePath,piHashAlg,pbHash,cchHash,pchHash) \ - ( (This)->lpVtbl -> GetHashFromAssemblyFile(This,pszFilePath,piHashAlg,pbHash,cchHash,pchHash) ) - -#define ICLRStrongName_GetHashFromAssemblyFileW(This,pwzFilePath,piHashAlg,pbHash,cchHash,pchHash) \ - ( (This)->lpVtbl -> GetHashFromAssemblyFileW(This,pwzFilePath,piHashAlg,pbHash,cchHash,pchHash) ) - -#define ICLRStrongName_GetHashFromBlob(This,pbBlob,cchBlob,piHashAlg,pbHash,cchHash,pchHash) \ - ( (This)->lpVtbl -> GetHashFromBlob(This,pbBlob,cchBlob,piHashAlg,pbHash,cchHash,pchHash) ) - -#define ICLRStrongName_GetHashFromFile(This,pszFilePath,piHashAlg,pbHash,cchHash,pchHash) \ - ( (This)->lpVtbl -> GetHashFromFile(This,pszFilePath,piHashAlg,pbHash,cchHash,pchHash) ) - -#define ICLRStrongName_GetHashFromFileW(This,pwzFilePath,piHashAlg,pbHash,cchHash,pchHash) \ - ( (This)->lpVtbl -> GetHashFromFileW(This,pwzFilePath,piHashAlg,pbHash,cchHash,pchHash) ) - -#define ICLRStrongName_GetHashFromHandle(This,hFile,piHashAlg,pbHash,cchHash,pchHash) \ - ( (This)->lpVtbl -> GetHashFromHandle(This,hFile,piHashAlg,pbHash,cchHash,pchHash) ) - -#define ICLRStrongName_StrongNameCompareAssemblies(This,pwzAssembly1,pwzAssembly2,pdwResult) \ - ( (This)->lpVtbl -> StrongNameCompareAssemblies(This,pwzAssembly1,pwzAssembly2,pdwResult) ) - -#define ICLRStrongName_StrongNameFreeBuffer(This,pbMemory) \ - ( (This)->lpVtbl -> StrongNameFreeBuffer(This,pbMemory) ) - -#define ICLRStrongName_StrongNameGetBlob(This,pwzFilePath,pbBlob,pcbBlob) \ - ( (This)->lpVtbl -> StrongNameGetBlob(This,pwzFilePath,pbBlob,pcbBlob) ) - -#define ICLRStrongName_StrongNameGetBlobFromImage(This,pbBase,dwLength,pbBlob,pcbBlob) \ - ( (This)->lpVtbl -> StrongNameGetBlobFromImage(This,pbBase,dwLength,pbBlob,pcbBlob) ) - -#define ICLRStrongName_StrongNameGetPublicKey(This,pwzKeyContainer,pbKeyBlob,cbKeyBlob,ppbPublicKeyBlob,pcbPublicKeyBlob) \ - ( (This)->lpVtbl -> StrongNameGetPublicKey(This,pwzKeyContainer,pbKeyBlob,cbKeyBlob,ppbPublicKeyBlob,pcbPublicKeyBlob) ) - -#define ICLRStrongName_StrongNameHashSize(This,ulHashAlg,pcbSize) \ - ( (This)->lpVtbl -> StrongNameHashSize(This,ulHashAlg,pcbSize) ) - -#define ICLRStrongName_StrongNameKeyDelete(This,pwzKeyContainer) \ - ( (This)->lpVtbl -> StrongNameKeyDelete(This,pwzKeyContainer) ) - -#define ICLRStrongName_StrongNameKeyGen(This,pwzKeyContainer,dwFlags,ppbKeyBlob,pcbKeyBlob) \ - ( (This)->lpVtbl -> StrongNameKeyGen(This,pwzKeyContainer,dwFlags,ppbKeyBlob,pcbKeyBlob) ) - -#define ICLRStrongName_StrongNameKeyGenEx(This,pwzKeyContainer,dwFlags,dwKeySize,ppbKeyBlob,pcbKeyBlob) \ - ( (This)->lpVtbl -> StrongNameKeyGenEx(This,pwzKeyContainer,dwFlags,dwKeySize,ppbKeyBlob,pcbKeyBlob) ) - -#define ICLRStrongName_StrongNameKeyInstall(This,pwzKeyContainer,pbKeyBlob,cbKeyBlob) \ - ( (This)->lpVtbl -> StrongNameKeyInstall(This,pwzKeyContainer,pbKeyBlob,cbKeyBlob) ) - -#define ICLRStrongName_StrongNameSignatureGeneration(This,pwzFilePath,pwzKeyContainer,pbKeyBlob,cbKeyBlob,ppbSignatureBlob,pcbSignatureBlob) \ - ( (This)->lpVtbl -> StrongNameSignatureGeneration(This,pwzFilePath,pwzKeyContainer,pbKeyBlob,cbKeyBlob,ppbSignatureBlob,pcbSignatureBlob) ) - -#define ICLRStrongName_StrongNameSignatureGenerationEx(This,wszFilePath,wszKeyContainer,pbKeyBlob,cbKeyBlob,ppbSignatureBlob,pcbSignatureBlob,dwFlags) \ - ( (This)->lpVtbl -> StrongNameSignatureGenerationEx(This,wszFilePath,wszKeyContainer,pbKeyBlob,cbKeyBlob,ppbSignatureBlob,pcbSignatureBlob,dwFlags) ) - -#define ICLRStrongName_StrongNameSignatureSize(This,pbPublicKeyBlob,cbPublicKeyBlob,pcbSize) \ - ( (This)->lpVtbl -> StrongNameSignatureSize(This,pbPublicKeyBlob,cbPublicKeyBlob,pcbSize) ) - -#define ICLRStrongName_StrongNameSignatureVerification(This,pwzFilePath,dwInFlags,pdwOutFlags) \ - ( (This)->lpVtbl -> StrongNameSignatureVerification(This,pwzFilePath,dwInFlags,pdwOutFlags) ) - -#define ICLRStrongName_StrongNameSignatureVerificationEx(This,pwzFilePath,fForceVerification,pfWasVerified) \ - ( (This)->lpVtbl -> StrongNameSignatureVerificationEx(This,pwzFilePath,fForceVerification,pfWasVerified) ) - -#define ICLRStrongName_StrongNameSignatureVerificationFromImage(This,pbBase,dwLength,dwInFlags,pdwOutFlags) \ - ( (This)->lpVtbl -> StrongNameSignatureVerificationFromImage(This,pbBase,dwLength,dwInFlags,pdwOutFlags) ) - -#define ICLRStrongName_StrongNameTokenFromAssembly(This,pwzFilePath,ppbStrongNameToken,pcbStrongNameToken) \ - ( (This)->lpVtbl -> StrongNameTokenFromAssembly(This,pwzFilePath,ppbStrongNameToken,pcbStrongNameToken) ) - -#define ICLRStrongName_StrongNameTokenFromAssemblyEx(This,pwzFilePath,ppbStrongNameToken,pcbStrongNameToken,ppbPublicKeyBlob,pcbPublicKeyBlob) \ - ( (This)->lpVtbl -> StrongNameTokenFromAssemblyEx(This,pwzFilePath,ppbStrongNameToken,pcbStrongNameToken,ppbPublicKeyBlob,pcbPublicKeyBlob) ) - -#define ICLRStrongName_StrongNameTokenFromPublicKey(This,pbPublicKeyBlob,cbPublicKeyBlob,ppbStrongNameToken,pcbStrongNameToken) \ - ( (This)->lpVtbl -> StrongNameTokenFromPublicKey(This,pbPublicKeyBlob,cbPublicKeyBlob,ppbStrongNameToken,pcbStrongNameToken) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRStrongName_INTERFACE_DEFINED__ */ - - -#ifndef __ICLRStrongName2_INTERFACE_DEFINED__ -#define __ICLRStrongName2_INTERFACE_DEFINED__ - -/* interface ICLRStrongName2 */ -/* [object][local][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRStrongName2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("C22ED5C5-4B59-4975-90EB-85EA55C0069B") - ICLRStrongName2 : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE StrongNameGetPublicKeyEx( - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [out] */ BYTE **ppbPublicKeyBlob, - /* [out] */ ULONG *pcbPublicKeyBlob, - /* [in] */ ULONG uHashAlgId, - /* [in] */ ULONG uReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameSignatureVerificationEx2( - /* [in] */ LPCWSTR wszFilePath, - /* [in] */ BOOLEAN fForceVerification, - /* [in] */ BYTE *pbEcmaPublicKey, - /* [in] */ DWORD cbEcmaPublicKey, - /* [out] */ BOOLEAN *pfWasVerified) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRStrongName2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRStrongName2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRStrongName2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRStrongName2 * This); - - HRESULT ( STDMETHODCALLTYPE *StrongNameGetPublicKeyEx )( - ICLRStrongName2 * This, - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [out] */ BYTE **ppbPublicKeyBlob, - /* [out] */ ULONG *pcbPublicKeyBlob, - /* [in] */ ULONG uHashAlgId, - /* [in] */ ULONG uReserved); - - HRESULT ( STDMETHODCALLTYPE *StrongNameSignatureVerificationEx2 )( - ICLRStrongName2 * This, - /* [in] */ LPCWSTR wszFilePath, - /* [in] */ BOOLEAN fForceVerification, - /* [in] */ BYTE *pbEcmaPublicKey, - /* [in] */ DWORD cbEcmaPublicKey, - /* [out] */ BOOLEAN *pfWasVerified); - - END_INTERFACE - } ICLRStrongName2Vtbl; - - interface ICLRStrongName2 - { - CONST_VTBL struct ICLRStrongName2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRStrongName2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRStrongName2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRStrongName2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRStrongName2_StrongNameGetPublicKeyEx(This,pwzKeyContainer,pbKeyBlob,cbKeyBlob,ppbPublicKeyBlob,pcbPublicKeyBlob,uHashAlgId,uReserved) \ - ( (This)->lpVtbl -> StrongNameGetPublicKeyEx(This,pwzKeyContainer,pbKeyBlob,cbKeyBlob,ppbPublicKeyBlob,pcbPublicKeyBlob,uHashAlgId,uReserved) ) - -#define ICLRStrongName2_StrongNameSignatureVerificationEx2(This,wszFilePath,fForceVerification,pbEcmaPublicKey,cbEcmaPublicKey,pfWasVerified) \ - ( (This)->lpVtbl -> StrongNameSignatureVerificationEx2(This,wszFilePath,fForceVerification,pbEcmaPublicKey,cbEcmaPublicKey,pfWasVerified) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRStrongName2_INTERFACE_DEFINED__ */ - - -#ifndef __ICLRStrongName3_INTERFACE_DEFINED__ -#define __ICLRStrongName3_INTERFACE_DEFINED__ - -/* interface ICLRStrongName3 */ -/* [object][local][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRStrongName3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("22c7089b-bbd3-414a-b698-210f263f1fed") - ICLRStrongName3 : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE StrongNameDigestGenerate( - /* [in] */ LPCWSTR wszFilePath, - /* [out] */ BYTE **ppbDigestBlob, - /* [out] */ ULONG *pcbDigestBlob, - /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameDigestSign( - /* [in] */ LPCWSTR wszKeyContainer, - /* [size_is][in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [size_is][in] */ BYTE *pbDigestBlob, - /* [in] */ ULONG cbDigestBlob, - /* [in] */ DWORD hashAlgId, - /* [out] */ BYTE **ppbSignatureBlob, - /* [out] */ ULONG *pcbSignatureBlob, - /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameDigestEmbed( - /* [in] */ LPCWSTR wszFilePath, - /* [size_is][in] */ BYTE *pbSignatureBlob, - /* [in] */ ULONG cbSignatureBlob) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRStrongName3Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRStrongName3 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRStrongName3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRStrongName3 * This); - - HRESULT ( STDMETHODCALLTYPE *StrongNameDigestGenerate )( - ICLRStrongName3 * This, - /* [in] */ LPCWSTR wszFilePath, - /* [out] */ BYTE **ppbDigestBlob, - /* [out] */ ULONG *pcbDigestBlob, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *StrongNameDigestSign )( - ICLRStrongName3 * This, - /* [in] */ LPCWSTR wszKeyContainer, - /* [size_is][in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [size_is][in] */ BYTE *pbDigestBlob, - /* [in] */ ULONG cbDigestBlob, - /* [in] */ DWORD hashAlgId, - /* [out] */ BYTE **ppbSignatureBlob, - /* [out] */ ULONG *pcbSignatureBlob, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *StrongNameDigestEmbed )( - ICLRStrongName3 * This, - /* [in] */ LPCWSTR wszFilePath, - /* [size_is][in] */ BYTE *pbSignatureBlob, - /* [in] */ ULONG cbSignatureBlob); - - END_INTERFACE - } ICLRStrongName3Vtbl; - - interface ICLRStrongName3 - { - CONST_VTBL struct ICLRStrongName3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRStrongName3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRStrongName3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRStrongName3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRStrongName3_StrongNameDigestGenerate(This,wszFilePath,ppbDigestBlob,pcbDigestBlob,dwFlags) \ - ( (This)->lpVtbl -> StrongNameDigestGenerate(This,wszFilePath,ppbDigestBlob,pcbDigestBlob,dwFlags) ) - -#define ICLRStrongName3_StrongNameDigestSign(This,wszKeyContainer,pbKeyBlob,cbKeyBlob,pbDigestBlob,cbDigestBlob,hashAlgId,ppbSignatureBlob,pcbSignatureBlob,dwFlags) \ - ( (This)->lpVtbl -> StrongNameDigestSign(This,wszKeyContainer,pbKeyBlob,cbKeyBlob,pbDigestBlob,cbDigestBlob,hashAlgId,ppbSignatureBlob,pcbSignatureBlob,dwFlags) ) - -#define ICLRStrongName3_StrongNameDigestEmbed(This,wszFilePath,pbSignatureBlob,cbSignatureBlob) \ - ( (This)->lpVtbl -> StrongNameDigestEmbed(This,wszFilePath,pbSignatureBlob,cbSignatureBlob) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRStrongName3_INTERFACE_DEFINED__ */ - - - -#ifndef __CLRMetaHost_LIBRARY_DEFINED__ -#define __CLRMetaHost_LIBRARY_DEFINED__ - -/* library CLRMetaHost */ -/* [version][uuid] */ - - - - - - - - - -EXTERN_C const IID LIBID_CLRMetaHost; -#endif /* __CLRMetaHost_LIBRARY_DEFINED__ */ - -/* interface __MIDL_itf_metahost_0000_0011 */ -/* [local] */ - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - - -extern RPC_IF_HANDLE __MIDL_itf_metahost_0000_0011_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_metahost_0000_0011_v0_0_s_ifspec; - /* Additional Prototypes for ALL interfaces */ /* end of Additional Prototypes */ diff --git a/src/pal/prebuilt/inc/mscoree.h b/src/pal/prebuilt/inc/mscoree.h index 13aab94..42a97c0 100644 --- a/src/pal/prebuilt/inc/mscoree.h +++ b/src/pal/prebuilt/inc/mscoree.h @@ -22,7 +22,7 @@ #ifndef __RPCNDR_H_VERSION__ #error this stub requires an updated version of -#endif // __RPCNDR_H_VERSION__ +#endif /* __RPCNDR_H_VERSION__ */ #ifndef COM_NO_WINDOWS_H #include "windows.h" @@ -38,69 +38,6 @@ /* Forward Declarations */ -#ifndef __IDebuggerThreadControl_FWD_DEFINED__ -#define __IDebuggerThreadControl_FWD_DEFINED__ -typedef interface IDebuggerThreadControl IDebuggerThreadControl; - -#endif /* __IDebuggerThreadControl_FWD_DEFINED__ */ - - -#ifndef __IDebuggerInfo_FWD_DEFINED__ -#define __IDebuggerInfo_FWD_DEFINED__ -typedef interface IDebuggerInfo IDebuggerInfo; - -#endif /* __IDebuggerInfo_FWD_DEFINED__ */ - - -#ifndef __ICLRErrorReportingManager_FWD_DEFINED__ -#define __ICLRErrorReportingManager_FWD_DEFINED__ -typedef interface ICLRErrorReportingManager ICLRErrorReportingManager; - -#endif /* __ICLRErrorReportingManager_FWD_DEFINED__ */ - - -#ifndef __ICLRErrorReportingManager2_FWD_DEFINED__ -#define __ICLRErrorReportingManager2_FWD_DEFINED__ -typedef interface ICLRErrorReportingManager2 ICLRErrorReportingManager2; - -#endif /* __ICLRErrorReportingManager2_FWD_DEFINED__ */ - - -#ifndef __ICLRPolicyManager_FWD_DEFINED__ -#define __ICLRPolicyManager_FWD_DEFINED__ -typedef interface ICLRPolicyManager ICLRPolicyManager; - -#endif /* __ICLRPolicyManager_FWD_DEFINED__ */ - - -#ifndef __ICLRGCManager_FWD_DEFINED__ -#define __ICLRGCManager_FWD_DEFINED__ -typedef interface ICLRGCManager ICLRGCManager; - -#endif /* __ICLRGCManager_FWD_DEFINED__ */ - - -#ifndef __ICLRGCManager2_FWD_DEFINED__ -#define __ICLRGCManager2_FWD_DEFINED__ -typedef interface ICLRGCManager2 ICLRGCManager2; - -#endif /* __ICLRGCManager2_FWD_DEFINED__ */ - - -#ifndef __IHostControl_FWD_DEFINED__ -#define __IHostControl_FWD_DEFINED__ -typedef interface IHostControl IHostControl; - -#endif /* __IHostControl_FWD_DEFINED__ */ - - -#ifndef __ICLRControl_FWD_DEFINED__ -#define __ICLRControl_FWD_DEFINED__ -typedef interface ICLRControl ICLRControl; - -#endif /* __ICLRControl_FWD_DEFINED__ */ - - #ifndef __ICLRRuntimeHost_FWD_DEFINED__ #define __ICLRRuntimeHost_FWD_DEFINED__ typedef interface ICLRRuntimeHost ICLRRuntimeHost; @@ -119,102 +56,11 @@ typedef interface ICLRRuntimeHost2 ICLRRuntimeHost2; #define __ICLRRuntimeHost4_FWD_DEFINED__ typedef interface ICLRRuntimeHost4 ICLRRuntimeHost4; -#endif /* __ICLRRuntimeHost4_FWD_DEFINED__ */ - - -#ifndef __IHostNetCFDebugControlManager_FWD_DEFINED__ -#define __IHostNetCFDebugControlManager_FWD_DEFINED__ -typedef interface IHostNetCFDebugControlManager IHostNetCFDebugControlManager; - -#endif /* __IHostNetCFDebugControlManager_FWD_DEFINED__ */ - - -#ifndef __ITypeName_FWD_DEFINED__ -#define __ITypeName_FWD_DEFINED__ -typedef interface ITypeName ITypeName; - -#endif /* __ITypeName_FWD_DEFINED__ */ - - -#ifndef __ITypeNameBuilder_FWD_DEFINED__ -#define __ITypeNameBuilder_FWD_DEFINED__ -typedef interface ITypeNameBuilder ITypeNameBuilder; - -#endif /* __ITypeNameBuilder_FWD_DEFINED__ */ - - -#ifndef __ITypeNameFactory_FWD_DEFINED__ -#define __ITypeNameFactory_FWD_DEFINED__ -typedef interface ITypeNameFactory ITypeNameFactory; - -#endif /* __ITypeNameFactory_FWD_DEFINED__ */ - - -#ifndef __IManagedObject_FWD_DEFINED__ -#define __IManagedObject_FWD_DEFINED__ -typedef interface IManagedObject IManagedObject; - -#endif /* __IManagedObject_FWD_DEFINED__ */ - - -#ifndef __ComCallUnmarshal_FWD_DEFINED__ -#define __ComCallUnmarshal_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class ComCallUnmarshal ComCallUnmarshal; -#else -typedef struct ComCallUnmarshal ComCallUnmarshal; -#endif /* __cplusplus */ - -#endif /* __ComCallUnmarshal_FWD_DEFINED__ */ - - -#ifndef __ComCallUnmarshalV4_FWD_DEFINED__ -#define __ComCallUnmarshalV4_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class ComCallUnmarshalV4 ComCallUnmarshalV4; -#else -typedef struct ComCallUnmarshalV4 ComCallUnmarshalV4; -#endif /* __cplusplus */ - -#endif /* __ComCallUnmarshalV4_FWD_DEFINED__ */ - - -#ifndef __CLRRuntimeHost_FWD_DEFINED__ -#define __CLRRuntimeHost_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class CLRRuntimeHost CLRRuntimeHost; -#else -typedef struct CLRRuntimeHost CLRRuntimeHost; -#endif /* __cplusplus */ - -#endif /* __CLRRuntimeHost_FWD_DEFINED__ */ - - -#ifndef __TypeNameFactory_FWD_DEFINED__ -#define __TypeNameFactory_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class TypeNameFactory TypeNameFactory; -#else -typedef struct TypeNameFactory TypeNameFactory; -#endif /* __cplusplus */ - -#endif /* __TypeNameFactory_FWD_DEFINED__ */ - - -#ifndef __ICLRAppDomainResourceMonitor_FWD_DEFINED__ -#define __ICLRAppDomainResourceMonitor_FWD_DEFINED__ -typedef interface ICLRAppDomainResourceMonitor ICLRAppDomainResourceMonitor; - -#endif /* __ICLRAppDomainResourceMonitor_FWD_DEFINED__ */ +#endif /* __ICLRRuntimeHost4_FWD_DEFINED__ */ /* header files for imported files */ #include "unknwn.h" -#include "gchost.h" #ifdef __cplusplus extern "C"{ @@ -229,54 +75,20 @@ extern "C"{ struct IActivationFactory; -EXTERN_GUID(CLSID_TypeNameFactory, 0xB81FF171, 0x20F3, 0x11d2, 0x8d, 0xcc, 0x00, 0xa0, 0xc9, 0xb0, 0x05, 0x25); -EXTERN_GUID(CLSID_ComCallUnmarshal, 0x3F281000,0xE95A,0x11d2,0x88,0x6B,0x00,0xC0,0x4F,0x86,0x9F,0x04); +struct IHostControl; + +struct ICLRControl; + EXTERN_GUID(CLSID_ComCallUnmarshalV4, 0x45fb4600,0xe6e8,0x4928,0xb2,0x5e,0x50,0x47,0x6f,0xf7,0x94,0x25); -EXTERN_GUID(IID_IManagedObject, 0xc3fcc19e, 0xa970, 0x11d2, 0x8b, 0x5a, 0x00, 0xa0, 0xc9, 0xb7, 0xc9, 0xc4); -EXTERN_GUID(IID_ICLRAppDomainResourceMonitor, 0XC62DE18C, 0X2E23, 0X4AEA, 0X84, 0X23, 0XB4, 0X0C, 0X1F, 0XC5, 0X9E, 0XAE); -EXTERN_GUID(IID_ICLRPolicyManager, 0x7D290010, 0xD781, 0x45da, 0xA6, 0xF8, 0xAA, 0x5D, 0x71, 0x1A, 0x73, 0x0E); -EXTERN_GUID(IID_ICLRGCManager, 0x54D9007E, 0xA8E2, 0x4885, 0xB7, 0xBF, 0xF9, 0x98, 0xDE, 0xEE, 0x4F, 0x2A); -EXTERN_GUID(IID_ICLRGCManager2, 0x0603B793, 0xA97A, 0x4712, 0x9C, 0xB4, 0x0C, 0xD1, 0xC7, 0x4C, 0x0F, 0x7C); -EXTERN_GUID(IID_ICLRErrorReportingManager, 0x980d2f1a, 0xbf79, 0x4c08, 0x81, 0x2a, 0xbb, 0x97, 0x78, 0x92, 0x8f, 0x78); -EXTERN_GUID(IID_ICLRErrorReportingManager2, 0xc68f63b1, 0x4d8b, 0x4e0b, 0x95, 0x64, 0x9d, 0x2e, 0xfe, 0x2f, 0xa1, 0x8c); EXTERN_GUID(IID_ICLRRuntimeHost, 0x90F1A06C, 0x7712, 0x4762, 0x86, 0xB5, 0x7A, 0x5E, 0xBA, 0x6B, 0xDB, 0x02); EXTERN_GUID(IID_ICLRRuntimeHost2, 0x712AB73F, 0x2C22, 0x4807, 0xAD, 0x7E, 0xF5, 0x01, 0xD7, 0xb7, 0x2C, 0x2D); EXTERN_GUID(IID_ICLRRuntimeHost4, 0x64F6D366, 0xD7C2, 0x4F1F, 0xB4, 0xB2, 0xE8, 0x16, 0x0C, 0xAC, 0x43, 0xAF); -EXTERN_GUID(IID_ITypeName, 0xB81FF171, 0x20F3, 0x11d2, 0x8d, 0xcc, 0x00, 0xa0, 0xc9, 0xb0, 0x05, 0x22); -EXTERN_GUID(IID_ITypeNameBuilder, 0xB81FF171, 0x20F3, 0x11d2, 0x8d, 0xcc, 0x00, 0xa0, 0xc9, 0xb0, 0x05, 0x23); -EXTERN_GUID(IID_ITypeNameFactory, 0xB81FF171, 0x20F3, 0x11d2, 0x8d, 0xcc, 0x00, 0xa0, 0xc9, 0xb0, 0x05, 0x21); -DEPRECATED_CLR_STDAPI GetCORSystemDirectory(_Out_writes_to_(cchBuffer, *dwLength) LPWSTR pbuffer, DWORD cchBuffer, DWORD* dwLength); -DEPRECATED_CLR_STDAPI GetCORVersion(_Out_writes_to_(cchBuffer, *dwLength) LPWSTR pbBuffer, DWORD cchBuffer, DWORD* dwLength); -DEPRECATED_CLR_STDAPI GetFileVersion(LPCWSTR szFilename, _Out_writes_to_opt_(cchBuffer, *dwLength) LPWSTR szBuffer, DWORD cchBuffer, DWORD* dwLength); -DEPRECATED_CLR_STDAPI GetCORRequiredVersion(_Out_writes_to_(cchBuffer, *dwLength) LPWSTR pbuffer, DWORD cchBuffer, DWORD* dwLength); -DEPRECATED_CLR_STDAPI GetRequestedRuntimeInfo(LPCWSTR pExe, LPCWSTR pwszVersion, LPCWSTR pConfigurationFile, DWORD startupFlags, DWORD runtimeInfoFlags, _Out_writes_opt_(dwDirectory) LPWSTR pDirectory, DWORD dwDirectory, _Out_opt_ DWORD *dwDirectoryLength, _Out_writes_opt_(cchBuffer) LPWSTR pVersion, DWORD cchBuffer, _Out_opt_ DWORD* dwlength); -DEPRECATED_CLR_STDAPI GetRequestedRuntimeVersion(_In_ LPWSTR pExe, _Out_writes_to_(cchBuffer, *dwLength) LPWSTR pVersion, DWORD cchBuffer, _Out_ DWORD* dwLength); -DEPRECATED_CLR_STDAPI CorBindToRuntimeHost(LPCWSTR pwszVersion, LPCWSTR pwszBuildFlavor, LPCWSTR pwszHostConfigFile, VOID* pReserved, DWORD startupFlags, REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv); -DEPRECATED_CLR_STDAPI CorBindToRuntimeEx(LPCWSTR pwszVersion, LPCWSTR pwszBuildFlavor, DWORD startupFlags, REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv); -DEPRECATED_CLR_STDAPI CorBindToRuntimeByCfg(IStream* pCfgStream, DWORD reserved, DWORD startupFlags, REFCLSID rclsid,REFIID riid, LPVOID FAR* ppv); -DEPRECATED_CLR_STDAPI CorBindToRuntime(LPCWSTR pwszVersion, LPCWSTR pwszBuildFlavor, REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv); -DEPRECATED_CLR_STDAPI CorBindToCurrentRuntime(LPCWSTR pwszFileName, REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv); -DEPRECATED_CLR_STDAPI RunDll32ShimW(HWND hwnd, HINSTANCE hinst, LPCWSTR lpszCmdLine, int nCmdShow); -DEPRECATED_CLR_STDAPI LoadLibraryShim(LPCWSTR szDllName, LPCWSTR szVersion, LPVOID pvReserved, HMODULE *phModDll); -DEPRECATED_CLR_STDAPI CallFunctionShim(LPCWSTR szDllName, LPCSTR szFunctionName, LPVOID lpvArgument1, LPVOID lpvArgument2, LPCWSTR szVersion, LPVOID pvReserved); -DEPRECATED_CLR_STDAPI GetRealProcAddress(LPCSTR pwszProcName, VOID** ppv); -DECLARE_DEPRECATED void STDMETHODCALLTYPE CorExitProcess(int exitCode); -DEPRECATED_CLR_STDAPI LoadStringRC(UINT iResouceID, _Out_writes_z_(iMax) LPWSTR szBuffer, int iMax, int bQuiet); typedef HRESULT (STDAPICALLTYPE *FnGetCLRRuntimeHost)(REFIID riid, IUnknown **pUnk); -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0000_0001 - { - HOST_TYPE_DEFAULT = 0, - HOST_TYPE_APPLAUNCH = 0x1, - HOST_TYPE_CORFLAG = 0x2 - } HOST_TYPE; - -STDAPI CorLaunchApplication(HOST_TYPE dwClickOnceHost, LPCWSTR pwzAppFullName, DWORD dwManifestPaths, LPCWSTR* ppwzManifestPaths, DWORD dwActivationData, LPCWSTR* ppwzActivationData, LPPROCESS_INFORMATION lpProcessInformation); typedef HRESULT ( __stdcall *FExecuteInAppDomainCallback )( void *cookie); typedef /* [public][public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0000_0002 +enum __MIDL___MIDL_itf_mscoree_0000_0000_0001 { STARTUP_CONCURRENT_GC = 0x1, STARTUP_LOADER_OPTIMIZATION_MASK = ( 0x3 << 1 ) , @@ -296,31 +108,11 @@ enum __MIDL___MIDL_itf_mscoree_0000_0000_0002 STARTUP_ARM = 0x400000, STARTUP_SINGLE_APPDOMAIN = 0x800000, STARTUP_APPX_APP_MODEL = 0x1000000, - STARTUP_DISABLE_RANDOMIZED_STRING_HASHING = 0x2000000 // not supported + STARTUP_DISABLE_RANDOMIZED_STRING_HASHING = 0x2000000 } STARTUP_FLAGS; typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0000_0003 - { - CLSID_RESOLUTION_DEFAULT = 0, - CLSID_RESOLUTION_REGISTERED = 0x1 - } CLSID_RESOLUTION_FLAGS; - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0000_0004 - { - RUNTIME_INFO_UPGRADE_VERSION = 0x1, - RUNTIME_INFO_REQUEST_IA64 = 0x2, - RUNTIME_INFO_REQUEST_AMD64 = 0x4, - RUNTIME_INFO_REQUEST_X86 = 0x8, - RUNTIME_INFO_DONT_RETURN_DIRECTORY = 0x10, - RUNTIME_INFO_DONT_RETURN_VERSION = 0x20, - RUNTIME_INFO_DONT_SHOW_ERROR_DIALOG = 0x40, - RUNTIME_INFO_IGNORE_ERROR_MODE = 0x1000 - } RUNTIME_INFO_FLAGS; - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0000_0005 +enum __MIDL___MIDL_itf_mscoree_0000_0000_0002 { APPDOMAIN_SECURITY_DEFAULT = 0, APPDOMAIN_SECURITY_SANDBOXED = 0x1, @@ -328,237 +120,19 @@ enum __MIDL___MIDL_itf_mscoree_0000_0000_0005 APPDOMAIN_IGNORE_UNHANDLED_EXCEPTIONS = 0x4, APPDOMAIN_FORCE_TRIVIAL_WAIT_OPERATIONS = 0x8, APPDOMAIN_ENABLE_PINVOKE_AND_CLASSIC_COMINTEROP = 0x10, - APPDOMAIN_SET_TEST_KEY = 0x20, APPDOMAIN_ENABLE_PLATFORM_SPECIFIC_APPS = 0x40, APPDOMAIN_ENABLE_ASSEMBLY_LOADFILE = 0x80, APPDOMAIN_DISABLE_TRANSPARENCY_ENFORCEMENT = 0x100 } APPDOMAIN_SECURITY_FLAGS; -STDAPI GetRequestedRuntimeVersionForCLSID(REFCLSID rclsid, _Out_writes_opt_(cchBuffer) LPWSTR pVersion, DWORD cchBuffer, _Out_opt_ DWORD* dwLength, CLSID_RESOLUTION_FLAGS dwResolutionFlags); -EXTERN_GUID(IID_IDebuggerThreadControl, 0x23d86786, 0x0bb5, 0x4774, 0x8f, 0xb5, 0xe3, 0x52, 0x2a, 0xdd, 0x62, 0x46); - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0000_v0_0_s_ifspec; - -#ifndef __IDebuggerThreadControl_INTERFACE_DEFINED__ -#define __IDebuggerThreadControl_INTERFACE_DEFINED__ - -/* interface IDebuggerThreadControl */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_IDebuggerThreadControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("23D86786-0BB5-4774-8FB5-E3522ADD6246") - IDebuggerThreadControl : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE ThreadIsBlockingForDebugger( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReleaseAllRuntimeThreads( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE StartBlockingForDebugger( - DWORD dwUnused) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDebuggerThreadControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDebuggerThreadControl * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDebuggerThreadControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDebuggerThreadControl * This); - - HRESULT ( STDMETHODCALLTYPE *ThreadIsBlockingForDebugger )( - IDebuggerThreadControl * This); - - HRESULT ( STDMETHODCALLTYPE *ReleaseAllRuntimeThreads )( - IDebuggerThreadControl * This); - - HRESULT ( STDMETHODCALLTYPE *StartBlockingForDebugger )( - IDebuggerThreadControl * This, - DWORD dwUnused); - - END_INTERFACE - } IDebuggerThreadControlVtbl; - - interface IDebuggerThreadControl - { - CONST_VTBL struct IDebuggerThreadControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDebuggerThreadControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDebuggerThreadControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDebuggerThreadControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDebuggerThreadControl_ThreadIsBlockingForDebugger(This) \ - ( (This)->lpVtbl -> ThreadIsBlockingForDebugger(This) ) - -#define IDebuggerThreadControl_ReleaseAllRuntimeThreads(This) \ - ( (This)->lpVtbl -> ReleaseAllRuntimeThreads(This) ) - -#define IDebuggerThreadControl_StartBlockingForDebugger(This,dwUnused) \ - ( (This)->lpVtbl -> StartBlockingForDebugger(This,dwUnused) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDebuggerThreadControl_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0001 */ -/* [local] */ - -EXTERN_GUID(IID_IDebuggerInfo, 0xbf24142d, 0xa47d, 0x4d24, 0xa6, 0x6d, 0x8c, 0x21, 0x41, 0x94, 0x4e, 0x44); - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0001_v0_0_s_ifspec; - -#ifndef __IDebuggerInfo_INTERFACE_DEFINED__ -#define __IDebuggerInfo_INTERFACE_DEFINED__ - -/* interface IDebuggerInfo */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_IDebuggerInfo; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("BF24142D-A47D-4d24-A66D-8C2141944E44") - IDebuggerInfo : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE IsDebuggerAttached( - /* [out] */ BOOL *pbAttached) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDebuggerInfoVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDebuggerInfo * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDebuggerInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDebuggerInfo * This); - - HRESULT ( STDMETHODCALLTYPE *IsDebuggerAttached )( - IDebuggerInfo * This, - /* [out] */ BOOL *pbAttached); - - END_INTERFACE - } IDebuggerInfoVtbl; - - interface IDebuggerInfo - { - CONST_VTBL struct IDebuggerInfoVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDebuggerInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDebuggerInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDebuggerInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDebuggerInfo_IsDebuggerAttached(This,pbAttached) \ - ( (This)->lpVtbl -> IsDebuggerAttached(This,pbAttached) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDebuggerInfo_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0002 */ -/* [local] */ - -typedef void *HDOMAINENUM; - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0002_0001 - { - eMemoryAvailableLow = 1, - eMemoryAvailableNeutral = 2, - eMemoryAvailableHigh = 3 - } EMemoryAvailable; - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0002_0002 - { - eTaskCritical = 0, - eAppDomainCritical = 1, - eProcessCritical = 2 - } EMemoryCriticalLevel; - typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0002_0003 +enum __MIDL___MIDL_itf_mscoree_0000_0000_0003 { WAIT_MSGPUMP = 0x1, WAIT_ALERTABLE = 0x2, WAIT_NOTINDEADLOCK = 0x4 } WAIT_OPTION; -typedef UINT64 TASKID; - -typedef DWORD CONNID; - typedef enum ETaskType { @@ -576,15 +150,7 @@ enum ETaskType } ETaskType; typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0002_0004 - { - eSymbolReadingNever = 0, - eSymbolReadingAlways = 1, - eSymbolReadingFullTrustOnly = 2 - } ESymbolReadingPolicy; - -typedef /* [public][public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0002_0005 +enum __MIDL___MIDL_itf_mscoree_0000_0000_0004 { DUMP_FLAVOR_Mini = 0, DUMP_FLAVOR_CriticalCLRState = 1, @@ -592,27 +158,12 @@ enum __MIDL___MIDL_itf_mscoree_0000_0002_0005 DUMP_FLAVOR_Default = DUMP_FLAVOR_Mini } ECustomDumpFlavor; -typedef /* [public][public][public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0002_0006 - { - DUMP_ITEM_None = 0 - } ECustomDumpItemKind; - -typedef /* [public][public] */ struct __MIDL___MIDL_itf_mscoree_0000_0002_0007 - { - ECustomDumpItemKind itemKind; - union - { - UINT_PTR pReserved; - } ; - } CustomDumpItem; - #define BucketParamsCount ( 10 ) #define BucketParamLength ( 255 ) typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0002_0009 +enum __MIDL___MIDL_itf_mscoree_0000_0000_0005 { Parameter1 = 0, Parameter2 = ( Parameter1 + 1 ) , @@ -633,1773 +184,185 @@ typedef struct _BucketParameters WCHAR pszParams[ 10 ][ 255 ]; } BucketParameters; +typedef /* [public] */ +enum __MIDL___MIDL_itf_mscoree_0000_0000_0006 + { + OPR_ThreadAbort = 0, + OPR_ThreadRudeAbortInNonCriticalRegion = ( OPR_ThreadAbort + 1 ) , + OPR_ThreadRudeAbortInCriticalRegion = ( OPR_ThreadRudeAbortInNonCriticalRegion + 1 ) , + OPR_AppDomainUnload = ( OPR_ThreadRudeAbortInCriticalRegion + 1 ) , + OPR_AppDomainRudeUnload = ( OPR_AppDomainUnload + 1 ) , + OPR_ProcessExit = ( OPR_AppDomainRudeUnload + 1 ) , + OPR_FinalizerRun = ( OPR_ProcessExit + 1 ) , + MaxClrOperation = ( OPR_FinalizerRun + 1 ) + } EClrOperation; - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0002_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0002_v0_0_s_ifspec; - -#ifndef __ICLRErrorReportingManager_INTERFACE_DEFINED__ -#define __ICLRErrorReportingManager_INTERFACE_DEFINED__ - -/* interface ICLRErrorReportingManager */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRErrorReportingManager; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("980D2F1A-BF79-4c08-812A-BB9778928F78") - ICLRErrorReportingManager : public IUnknown +typedef /* [public] */ +enum __MIDL___MIDL_itf_mscoree_0000_0000_0007 { - public: - virtual HRESULT STDMETHODCALLTYPE GetBucketParametersForCurrentException( - /* [out] */ BucketParameters *pParams) = 0; - - virtual HRESULT STDMETHODCALLTYPE BeginCustomDump( - /* [in] */ ECustomDumpFlavor dwFlavor, - /* [in] */ DWORD dwNumItems, - /* [length_is][size_is][in] */ CustomDumpItem *items, - DWORD dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE EndCustomDump( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRErrorReportingManagerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRErrorReportingManager * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRErrorReportingManager * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRErrorReportingManager * This); - - HRESULT ( STDMETHODCALLTYPE *GetBucketParametersForCurrentException )( - ICLRErrorReportingManager * This, - /* [out] */ BucketParameters *pParams); - - HRESULT ( STDMETHODCALLTYPE *BeginCustomDump )( - ICLRErrorReportingManager * This, - /* [in] */ ECustomDumpFlavor dwFlavor, - /* [in] */ DWORD dwNumItems, - /* [length_is][size_is][in] */ CustomDumpItem *items, - DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *EndCustomDump )( - ICLRErrorReportingManager * This); - - END_INTERFACE - } ICLRErrorReportingManagerVtbl; - - interface ICLRErrorReportingManager - { - CONST_VTBL struct ICLRErrorReportingManagerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRErrorReportingManager_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRErrorReportingManager_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRErrorReportingManager_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRErrorReportingManager_GetBucketParametersForCurrentException(This,pParams) \ - ( (This)->lpVtbl -> GetBucketParametersForCurrentException(This,pParams) ) - -#define ICLRErrorReportingManager_BeginCustomDump(This,dwFlavor,dwNumItems,items,dwReserved) \ - ( (This)->lpVtbl -> BeginCustomDump(This,dwFlavor,dwNumItems,items,dwReserved) ) - -#define ICLRErrorReportingManager_EndCustomDump(This) \ - ( (This)->lpVtbl -> EndCustomDump(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRErrorReportingManager_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0003 */ -/* [local] */ - -typedef /* [public][public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0003_0001 - { - ApplicationID = 0x1, - InstanceID = 0x2 - } ApplicationDataKey; - - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0003_v0_0_s_ifspec; - -#ifndef __ICLRErrorReportingManager2_INTERFACE_DEFINED__ -#define __ICLRErrorReportingManager2_INTERFACE_DEFINED__ - -/* interface ICLRErrorReportingManager2 */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRErrorReportingManager2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("C68F63B1-4D8B-4E0B-9564-9D2EFE2FA18C") - ICLRErrorReportingManager2 : public ICLRErrorReportingManager - { - public: - virtual HRESULT STDMETHODCALLTYPE SetApplicationData( - /* [in] */ ApplicationDataKey key, - /* [in] */ const WCHAR *pValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetBucketParametersForUnhandledException( - /* [in] */ const BucketParameters *pBucketParams, - /* [out] */ DWORD *pCountParams) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRErrorReportingManager2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRErrorReportingManager2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRErrorReportingManager2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRErrorReportingManager2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetBucketParametersForCurrentException )( - ICLRErrorReportingManager2 * This, - /* [out] */ BucketParameters *pParams); - - HRESULT ( STDMETHODCALLTYPE *BeginCustomDump )( - ICLRErrorReportingManager2 * This, - /* [in] */ ECustomDumpFlavor dwFlavor, - /* [in] */ DWORD dwNumItems, - /* [length_is][size_is][in] */ CustomDumpItem *items, - DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *EndCustomDump )( - ICLRErrorReportingManager2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetApplicationData )( - ICLRErrorReportingManager2 * This, - /* [in] */ ApplicationDataKey key, - /* [in] */ const WCHAR *pValue); - - HRESULT ( STDMETHODCALLTYPE *SetBucketParametersForUnhandledException )( - ICLRErrorReportingManager2 * This, - /* [in] */ const BucketParameters *pBucketParams, - /* [out] */ DWORD *pCountParams); - - END_INTERFACE - } ICLRErrorReportingManager2Vtbl; - - interface ICLRErrorReportingManager2 - { - CONST_VTBL struct ICLRErrorReportingManager2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRErrorReportingManager2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRErrorReportingManager2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRErrorReportingManager2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRErrorReportingManager2_GetBucketParametersForCurrentException(This,pParams) \ - ( (This)->lpVtbl -> GetBucketParametersForCurrentException(This,pParams) ) - -#define ICLRErrorReportingManager2_BeginCustomDump(This,dwFlavor,dwNumItems,items,dwReserved) \ - ( (This)->lpVtbl -> BeginCustomDump(This,dwFlavor,dwNumItems,items,dwReserved) ) - -#define ICLRErrorReportingManager2_EndCustomDump(This) \ - ( (This)->lpVtbl -> EndCustomDump(This) ) - - -#define ICLRErrorReportingManager2_SetApplicationData(This,key,pValue) \ - ( (This)->lpVtbl -> SetApplicationData(This,key,pValue) ) - -#define ICLRErrorReportingManager2_SetBucketParametersForUnhandledException(This,pBucketParams,pCountParams) \ - ( (This)->lpVtbl -> SetBucketParametersForUnhandledException(This,pBucketParams,pCountParams) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRErrorReportingManager2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0004 */ -/* [local] */ - -typedef /* [public][public][public][public][public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0004_0001 - { - OPR_ThreadAbort = 0, - OPR_ThreadRudeAbortInNonCriticalRegion = ( OPR_ThreadAbort + 1 ) , - OPR_ThreadRudeAbortInCriticalRegion = ( OPR_ThreadRudeAbortInNonCriticalRegion + 1 ) , - OPR_AppDomainUnload = ( OPR_ThreadRudeAbortInCriticalRegion + 1 ) , - OPR_AppDomainRudeUnload = ( OPR_AppDomainUnload + 1 ) , - OPR_ProcessExit = ( OPR_AppDomainRudeUnload + 1 ) , - OPR_FinalizerRun = ( OPR_ProcessExit + 1 ) , - MaxClrOperation = ( OPR_FinalizerRun + 1 ) - } EClrOperation; - -typedef /* [public][public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0004_0002 - { - FAIL_NonCriticalResource = 0, - FAIL_CriticalResource = ( FAIL_NonCriticalResource + 1 ) , - FAIL_FatalRuntime = ( FAIL_CriticalResource + 1 ) , - FAIL_OrphanedLock = ( FAIL_FatalRuntime + 1 ) , - FAIL_StackOverflow = ( FAIL_OrphanedLock + 1 ) , - FAIL_AccessViolation = ( FAIL_StackOverflow + 1 ) , - FAIL_CodeContract = ( FAIL_AccessViolation + 1 ) , - MaxClrFailure = ( FAIL_CodeContract + 1 ) - } EClrFailure; - -typedef /* [public][public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0004_0003 - { - eRuntimeDeterminedPolicy = 0, - eHostDeterminedPolicy = ( eRuntimeDeterminedPolicy + 1 ) - } EClrUnhandledException; - -typedef /* [public][public][public][public][public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0004_0004 - { - eNoAction = 0, - eThrowException = ( eNoAction + 1 ) , - eAbortThread = ( eThrowException + 1 ) , - eRudeAbortThread = ( eAbortThread + 1 ) , - eUnloadAppDomain = ( eRudeAbortThread + 1 ) , - eRudeUnloadAppDomain = ( eUnloadAppDomain + 1 ) , - eExitProcess = ( eRudeUnloadAppDomain + 1 ) , - eFastExitProcess = ( eExitProcess + 1 ) , - eRudeExitProcess = ( eFastExitProcess + 1 ) , - eDisableRuntime = ( eRudeExitProcess + 1 ) , - MaxPolicyAction = ( eDisableRuntime + 1 ) - } EPolicyAction; - - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0004_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0004_v0_0_s_ifspec; - -#ifndef __ICLRPolicyManager_INTERFACE_DEFINED__ -#define __ICLRPolicyManager_INTERFACE_DEFINED__ - -/* interface ICLRPolicyManager */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRPolicyManager; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("7D290010-D781-45da-A6F8-AA5D711A730E") - ICLRPolicyManager : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetDefaultAction( - /* [in] */ EClrOperation operation, - /* [in] */ EPolicyAction action) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetTimeout( - /* [in] */ EClrOperation operation, - /* [in] */ DWORD dwMilliseconds) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetActionOnTimeout( - /* [in] */ EClrOperation operation, - /* [in] */ EPolicyAction action) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetTimeoutAndAction( - /* [in] */ EClrOperation operation, - /* [in] */ DWORD dwMilliseconds, - /* [in] */ EPolicyAction action) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetActionOnFailure( - /* [in] */ EClrFailure failure, - /* [in] */ EPolicyAction action) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetUnhandledExceptionPolicy( - /* [in] */ EClrUnhandledException policy) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRPolicyManagerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRPolicyManager * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRPolicyManager * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRPolicyManager * This); - - HRESULT ( STDMETHODCALLTYPE *SetDefaultAction )( - ICLRPolicyManager * This, - /* [in] */ EClrOperation operation, - /* [in] */ EPolicyAction action); - - HRESULT ( STDMETHODCALLTYPE *SetTimeout )( - ICLRPolicyManager * This, - /* [in] */ EClrOperation operation, - /* [in] */ DWORD dwMilliseconds); - - HRESULT ( STDMETHODCALLTYPE *SetActionOnTimeout )( - ICLRPolicyManager * This, - /* [in] */ EClrOperation operation, - /* [in] */ EPolicyAction action); - - HRESULT ( STDMETHODCALLTYPE *SetTimeoutAndAction )( - ICLRPolicyManager * This, - /* [in] */ EClrOperation operation, - /* [in] */ DWORD dwMilliseconds, - /* [in] */ EPolicyAction action); - - HRESULT ( STDMETHODCALLTYPE *SetActionOnFailure )( - ICLRPolicyManager * This, - /* [in] */ EClrFailure failure, - /* [in] */ EPolicyAction action); - - HRESULT ( STDMETHODCALLTYPE *SetUnhandledExceptionPolicy )( - ICLRPolicyManager * This, - /* [in] */ EClrUnhandledException policy); - - END_INTERFACE - } ICLRPolicyManagerVtbl; - - interface ICLRPolicyManager - { - CONST_VTBL struct ICLRPolicyManagerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRPolicyManager_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRPolicyManager_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRPolicyManager_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRPolicyManager_SetDefaultAction(This,operation,action) \ - ( (This)->lpVtbl -> SetDefaultAction(This,operation,action) ) - -#define ICLRPolicyManager_SetTimeout(This,operation,dwMilliseconds) \ - ( (This)->lpVtbl -> SetTimeout(This,operation,dwMilliseconds) ) - -#define ICLRPolicyManager_SetActionOnTimeout(This,operation,action) \ - ( (This)->lpVtbl -> SetActionOnTimeout(This,operation,action) ) - -#define ICLRPolicyManager_SetTimeoutAndAction(This,operation,dwMilliseconds,action) \ - ( (This)->lpVtbl -> SetTimeoutAndAction(This,operation,dwMilliseconds,action) ) - -#define ICLRPolicyManager_SetActionOnFailure(This,failure,action) \ - ( (This)->lpVtbl -> SetActionOnFailure(This,failure,action) ) - -#define ICLRPolicyManager_SetUnhandledExceptionPolicy(This,policy) \ - ( (This)->lpVtbl -> SetUnhandledExceptionPolicy(This,policy) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRPolicyManager_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0005 */ -/* [local] */ - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0005_0001 - { - Event_DomainUnload = 0, - Event_ClrDisabled = ( Event_DomainUnload + 1 ) , - Event_MDAFired = ( Event_ClrDisabled + 1 ) , - Event_StackOverflow = ( Event_MDAFired + 1 ) , - MaxClrEvent = ( Event_StackOverflow + 1 ) - } EClrEvent; - -typedef struct _MDAInfo - { - LPCWSTR lpMDACaption; - LPCWSTR lpMDAMessage; - LPCWSTR lpStackTrace; - } MDAInfo; - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0005_0002 - { - SO_Managed = 0, - SO_ClrEngine = ( SO_Managed + 1 ) , - SO_Other = ( SO_ClrEngine + 1 ) - } StackOverflowType; - -typedef struct _StackOverflowInfo -{ - StackOverflowType soType; - EXCEPTION_POINTERS *pExceptionInfo; -} StackOverflowInfo; - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0005_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0005_v0_0_s_ifspec; - -#ifndef __ICLRGCManager_INTERFACE_DEFINED__ -#define __ICLRGCManager_INTERFACE_DEFINED__ - -/* interface ICLRGCManager */ -/* [object][local][unique][version][uuid] */ - - -EXTERN_C const IID IID_ICLRGCManager; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("54D9007E-A8E2-4885-B7BF-F998DEEE4F2A") - ICLRGCManager : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Collect( - /* [in] */ LONG Generation) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStats( - /* [out][in] */ COR_GC_STATS *pStats) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetGCStartupLimits( - /* [in] */ DWORD SegmentSize, - /* [in] */ DWORD MaxGen0Size) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRGCManagerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRGCManager * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRGCManager * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRGCManager * This); - - HRESULT ( STDMETHODCALLTYPE *Collect )( - ICLRGCManager * This, - /* [in] */ LONG Generation); - - HRESULT ( STDMETHODCALLTYPE *GetStats )( - ICLRGCManager * This, - /* [out][in] */ COR_GC_STATS *pStats); - - HRESULT ( STDMETHODCALLTYPE *SetGCStartupLimits )( - ICLRGCManager * This, - /* [in] */ DWORD SegmentSize, - /* [in] */ DWORD MaxGen0Size); - - END_INTERFACE - } ICLRGCManagerVtbl; - - interface ICLRGCManager - { - CONST_VTBL struct ICLRGCManagerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRGCManager_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRGCManager_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRGCManager_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRGCManager_Collect(This,Generation) \ - ( (This)->lpVtbl -> Collect(This,Generation) ) - -#define ICLRGCManager_GetStats(This,pStats) \ - ( (This)->lpVtbl -> GetStats(This,pStats) ) - -#define ICLRGCManager_SetGCStartupLimits(This,SegmentSize,MaxGen0Size) \ - ( (This)->lpVtbl -> SetGCStartupLimits(This,SegmentSize,MaxGen0Size) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRGCManager_INTERFACE_DEFINED__ */ - - -#ifndef __ICLRGCManager2_INTERFACE_DEFINED__ -#define __ICLRGCManager2_INTERFACE_DEFINED__ - -/* interface ICLRGCManager2 */ -/* [object][local][unique][version][uuid] */ - - -EXTERN_C const IID IID_ICLRGCManager2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0603B793-A97A-4712-9CB4-0CD1C74C0F7C") - ICLRGCManager2 : public ICLRGCManager - { - public: - virtual HRESULT STDMETHODCALLTYPE SetGCStartupLimitsEx( - /* [in] */ SIZE_T SegmentSize, - /* [in] */ SIZE_T MaxGen0Size) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRGCManager2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRGCManager2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRGCManager2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRGCManager2 * This); - - HRESULT ( STDMETHODCALLTYPE *Collect )( - ICLRGCManager2 * This, - /* [in] */ LONG Generation); - - HRESULT ( STDMETHODCALLTYPE *GetStats )( - ICLRGCManager2 * This, - /* [out][in] */ COR_GC_STATS *pStats); - - HRESULT ( STDMETHODCALLTYPE *SetGCStartupLimits )( - ICLRGCManager2 * This, - /* [in] */ DWORD SegmentSize, - /* [in] */ DWORD MaxGen0Size); - - HRESULT ( STDMETHODCALLTYPE *SetGCStartupLimitsEx )( - ICLRGCManager2 * This, - /* [in] */ SIZE_T SegmentSize, - /* [in] */ SIZE_T MaxGen0Size); - - END_INTERFACE - } ICLRGCManager2Vtbl; - - interface ICLRGCManager2 - { - CONST_VTBL struct ICLRGCManager2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRGCManager2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRGCManager2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRGCManager2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRGCManager2_Collect(This,Generation) \ - ( (This)->lpVtbl -> Collect(This,Generation) ) - -#define ICLRGCManager2_GetStats(This,pStats) \ - ( (This)->lpVtbl -> GetStats(This,pStats) ) - -#define ICLRGCManager2_SetGCStartupLimits(This,SegmentSize,MaxGen0Size) \ - ( (This)->lpVtbl -> SetGCStartupLimits(This,SegmentSize,MaxGen0Size) ) - - -#define ICLRGCManager2_SetGCStartupLimitsEx(This,SegmentSize,MaxGen0Size) \ - ( (This)->lpVtbl -> SetGCStartupLimitsEx(This,SegmentSize,MaxGen0Size) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRGCManager2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0007 */ -/* [local] */ - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0007_0001 - { - ePolicyLevelNone = 0, - ePolicyLevelRetargetable = 0x1, - ePolicyUnifiedToCLR = 0x2, - ePolicyLevelApp = 0x4, - ePolicyLevelPublisher = 0x8, - ePolicyLevelHost = 0x10, - ePolicyLevelAdmin = 0x20, - ePolicyPortability = 0x40 - } EBindPolicyLevels; - -typedef struct _AssemblyBindInfo - { - DWORD dwAppDomainId; - LPCWSTR lpReferencedIdentity; - LPCWSTR lpPostPolicyIdentity; - DWORD ePolicyLevel; - } AssemblyBindInfo; - -typedef struct _ModuleBindInfo - { - DWORD dwAppDomainId; - LPCWSTR lpAssemblyIdentity; - LPCWSTR lpModuleName; - } ModuleBindInfo; - -typedef -enum _HostApplicationPolicy - { - HOST_APPLICATION_BINDING_POLICY = 1 - } EHostApplicationPolicy; - -STDAPI GetCLRIdentityManager(REFIID riid, IUnknown **ppManager); -EXTERN_GUID(IID_IHostControl, 0x02CA073C, 0x7079, 0x4860, 0x88, 0x0A, 0xC2, 0xF7, 0xA4, 0x49, 0xC9, 0x91); - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0007_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0007_v0_0_s_ifspec; - -#ifndef __IHostControl_INTERFACE_DEFINED__ -#define __IHostControl_INTERFACE_DEFINED__ - -/* interface IHostControl */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_IHostControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("02CA073C-7079-4860-880A-C2F7A449C991") - IHostControl : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetHostManager( - /* [in] */ REFIID riid, - /* [out] */ void **ppObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetAppDomainManager( - /* [in] */ DWORD dwAppDomainID, - /* [in] */ IUnknown *pUnkAppDomainManager) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IHostControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IHostControl * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IHostControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IHostControl * This); - - HRESULT ( STDMETHODCALLTYPE *GetHostManager )( - IHostControl * This, - /* [in] */ REFIID riid, - /* [out] */ void **ppObject); - - HRESULT ( STDMETHODCALLTYPE *SetAppDomainManager )( - IHostControl * This, - /* [in] */ DWORD dwAppDomainID, - /* [in] */ IUnknown *pUnkAppDomainManager); - - END_INTERFACE - } IHostControlVtbl; - - interface IHostControl - { - CONST_VTBL struct IHostControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IHostControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IHostControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IHostControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IHostControl_GetHostManager(This,riid,ppObject) \ - ( (This)->lpVtbl -> GetHostManager(This,riid,ppObject) ) - -#define IHostControl_SetAppDomainManager(This,dwAppDomainID,pUnkAppDomainManager) \ - ( (This)->lpVtbl -> SetAppDomainManager(This,dwAppDomainID,pUnkAppDomainManager) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IHostControl_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0008 */ -/* [local] */ - -EXTERN_GUID(IID_ICLRControl, 0x9065597E, 0xD1A1, 0x4fb2, 0xB6, 0xBA, 0x7E, 0x1F, 0xCE, 0x23, 0x0F, 0x61); - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0008_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0008_v0_0_s_ifspec; - -#ifndef __ICLRControl_INTERFACE_DEFINED__ -#define __ICLRControl_INTERFACE_DEFINED__ - -/* interface ICLRControl */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9065597E-D1A1-4fb2-B6BA-7E1FCE230F61") - ICLRControl : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetCLRManager( - /* [in] */ REFIID riid, - /* [out] */ void **ppObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetAppDomainManagerType( - /* [in] */ LPCWSTR pwzAppDomainManagerAssembly, - /* [in] */ LPCWSTR pwzAppDomainManagerType) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRControl * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRControl * This); - - HRESULT ( STDMETHODCALLTYPE *GetCLRManager )( - ICLRControl * This, - /* [in] */ REFIID riid, - /* [out] */ void **ppObject); - - HRESULT ( STDMETHODCALLTYPE *SetAppDomainManagerType )( - ICLRControl * This, - /* [in] */ LPCWSTR pwzAppDomainManagerAssembly, - /* [in] */ LPCWSTR pwzAppDomainManagerType); - - END_INTERFACE - } ICLRControlVtbl; - - interface ICLRControl - { - CONST_VTBL struct ICLRControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRControl_GetCLRManager(This,riid,ppObject) \ - ( (This)->lpVtbl -> GetCLRManager(This,riid,ppObject) ) - -#define ICLRControl_SetAppDomainManagerType(This,pwzAppDomainManagerAssembly,pwzAppDomainManagerType) \ - ( (This)->lpVtbl -> SetAppDomainManagerType(This,pwzAppDomainManagerAssembly,pwzAppDomainManagerType) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRControl_INTERFACE_DEFINED__ */ - - -#ifndef __ICLRRuntimeHost_INTERFACE_DEFINED__ -#define __ICLRRuntimeHost_INTERFACE_DEFINED__ - -/* interface ICLRRuntimeHost */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRRuntimeHost; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("90F1A06C-7712-4762-86B5-7A5EBA6BDB02") - ICLRRuntimeHost : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Start( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Stop( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetHostControl( - /* [in] */ IHostControl *pHostControl) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCLRControl( - /* [out] */ ICLRControl **pCLRControl) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnloadAppDomain( - /* [in] */ DWORD dwAppDomainId, - /* [in] */ BOOL fWaitUntilDone) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExecuteInAppDomain( - /* [in] */ DWORD dwAppDomainId, - /* [in] */ FExecuteInAppDomainCallback pCallback, - /* [in] */ void *cookie) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentAppDomainId( - /* [out] */ DWORD *pdwAppDomainId) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExecuteApplication( - /* [in] */ LPCWSTR pwzAppFullName, - /* [in] */ DWORD dwManifestPaths, - /* [in] */ LPCWSTR *ppwzManifestPaths, - /* [in] */ DWORD dwActivationData, - /* [in] */ LPCWSTR *ppwzActivationData, - /* [out] */ int *pReturnValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExecuteInDefaultAppDomain( - /* [in] */ LPCWSTR pwzAssemblyPath, - /* [in] */ LPCWSTR pwzTypeName, - /* [in] */ LPCWSTR pwzMethodName, - /* [in] */ LPCWSTR pwzArgument, - /* [out] */ DWORD *pReturnValue) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRRuntimeHostVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRRuntimeHost * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRRuntimeHost * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRRuntimeHost * This); - - HRESULT ( STDMETHODCALLTYPE *Start )( - ICLRRuntimeHost * This); - - HRESULT ( STDMETHODCALLTYPE *Stop )( - ICLRRuntimeHost * This); - - HRESULT ( STDMETHODCALLTYPE *SetHostControl )( - ICLRRuntimeHost * This, - /* [in] */ IHostControl *pHostControl); - - HRESULT ( STDMETHODCALLTYPE *GetCLRControl )( - ICLRRuntimeHost * This, - /* [out] */ ICLRControl **pCLRControl); - - HRESULT ( STDMETHODCALLTYPE *UnloadAppDomain )( - ICLRRuntimeHost * This, - /* [in] */ DWORD dwAppDomainId, - /* [in] */ BOOL fWaitUntilDone); - - HRESULT ( STDMETHODCALLTYPE *ExecuteInAppDomain )( - ICLRRuntimeHost * This, - /* [in] */ DWORD dwAppDomainId, - /* [in] */ FExecuteInAppDomainCallback pCallback, - /* [in] */ void *cookie); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentAppDomainId )( - ICLRRuntimeHost * This, - /* [out] */ DWORD *pdwAppDomainId); - - HRESULT ( STDMETHODCALLTYPE *ExecuteApplication )( - ICLRRuntimeHost * This, - /* [in] */ LPCWSTR pwzAppFullName, - /* [in] */ DWORD dwManifestPaths, - /* [in] */ LPCWSTR *ppwzManifestPaths, - /* [in] */ DWORD dwActivationData, - /* [in] */ LPCWSTR *ppwzActivationData, - /* [out] */ int *pReturnValue); - - HRESULT ( STDMETHODCALLTYPE *ExecuteInDefaultAppDomain )( - ICLRRuntimeHost * This, - /* [in] */ LPCWSTR pwzAssemblyPath, - /* [in] */ LPCWSTR pwzTypeName, - /* [in] */ LPCWSTR pwzMethodName, - /* [in] */ LPCWSTR pwzArgument, - /* [out] */ DWORD *pReturnValue); - - END_INTERFACE - } ICLRRuntimeHostVtbl; - - interface ICLRRuntimeHost - { - CONST_VTBL struct ICLRRuntimeHostVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRRuntimeHost_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRRuntimeHost_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRRuntimeHost_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRRuntimeHost_Start(This) \ - ( (This)->lpVtbl -> Start(This) ) - -#define ICLRRuntimeHost_Stop(This) \ - ( (This)->lpVtbl -> Stop(This) ) - -#define ICLRRuntimeHost_SetHostControl(This,pHostControl) \ - ( (This)->lpVtbl -> SetHostControl(This,pHostControl) ) - -#define ICLRRuntimeHost_GetCLRControl(This,pCLRControl) \ - ( (This)->lpVtbl -> GetCLRControl(This,pCLRControl) ) - -#define ICLRRuntimeHost_UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) \ - ( (This)->lpVtbl -> UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) ) - -#define ICLRRuntimeHost_ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) \ - ( (This)->lpVtbl -> ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) ) - -#define ICLRRuntimeHost_GetCurrentAppDomainId(This,pdwAppDomainId) \ - ( (This)->lpVtbl -> GetCurrentAppDomainId(This,pdwAppDomainId) ) - -#define ICLRRuntimeHost_ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) \ - ( (This)->lpVtbl -> ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) ) - -#define ICLRRuntimeHost_ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) \ - ( (This)->lpVtbl -> ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRRuntimeHost_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0010 */ -/* [local] */ - -#define CORECLR_HOST_AUTHENTICATION_KEY 0x1C6CA6F94025800LL -#define CORECLR_HOST_AUTHENTICATION_KEY_NONGEN 0x1C6CA6F94025801LL - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0010_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0010_v0_0_s_ifspec; - -#ifndef __ICLRRuntimeHost2_INTERFACE_DEFINED__ -#define __ICLRRuntimeHost2_INTERFACE_DEFINED__ - -/* interface ICLRRuntimeHost2 */ -/* [local][unique][helpstring][version][uuid][object] */ - - -EXTERN_C const IID IID_ICLRRuntimeHost2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("712AB73F-2C22-4807-AD7E-F501D7B72C2D") - ICLRRuntimeHost2 : public ICLRRuntimeHost - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateAppDomainWithManager( - /* [in] */ LPCWSTR wszFriendlyName, - /* [in] */ DWORD dwFlags, - /* [in] */ LPCWSTR wszAppDomainManagerAssemblyName, - /* [in] */ LPCWSTR wszAppDomainManagerTypeName, - /* [in] */ int nProperties, - /* [in] */ LPCWSTR *pPropertyNames, - /* [in] */ LPCWSTR *pPropertyValues, - /* [out] */ DWORD *pAppDomainID) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateDelegate( - /* [in] */ DWORD appDomainID, - /* [in] */ LPCWSTR wszAssemblyName, - /* [in] */ LPCWSTR wszClassName, - /* [in] */ LPCWSTR wszMethodName, - /* [out] */ INT_PTR *fnPtr) = 0; - - virtual HRESULT STDMETHODCALLTYPE Authenticate( - /* [in] */ ULONGLONG authKey) = 0; - - virtual HRESULT STDMETHODCALLTYPE RegisterMacEHPort( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetStartupFlags( - /* [in] */ STARTUP_FLAGS dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE DllGetActivationFactory( - /* [in] */ DWORD appDomainID, - /* [in] */ LPCWSTR wszTypeName, - /* [out] */ IActivationFactory **factory) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExecuteAssembly( - /* [in] */ DWORD dwAppDomainId, - /* [in] */ LPCWSTR pwzAssemblyPath, - /* [in] */ int argc, - /* [in] */ LPCWSTR *argv, - /* [out] */ DWORD *pReturnValue) = 0; - - }; - - MIDL_INTERFACE("64F6D366-D7C2-4F1F-B4B2-E8160CAC43AF") - ICLRRuntimeHost4 : public ICLRRuntimeHost2 - { - virtual HRESULT STDMETHODCALLTYPE UnloadAppDomain2( - /* [in] */ DWORD dwAppDomainId, - /* [in] */ BOOL fWaitUntilDone, - /* [out] */ int *pLatchedExitCode) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRRuntimeHost2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRRuntimeHost2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRRuntimeHost2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRRuntimeHost2 * This); - - HRESULT ( STDMETHODCALLTYPE *Start )( - ICLRRuntimeHost2 * This); - - HRESULT ( STDMETHODCALLTYPE *Stop )( - ICLRRuntimeHost2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetHostControl )( - ICLRRuntimeHost2 * This, - /* [in] */ IHostControl *pHostControl); - - HRESULT ( STDMETHODCALLTYPE *GetCLRControl )( - ICLRRuntimeHost2 * This, - /* [out] */ ICLRControl **pCLRControl); - - HRESULT ( STDMETHODCALLTYPE *UnloadAppDomain )( - ICLRRuntimeHost2 * This, - /* [in] */ DWORD dwAppDomainId, - /* [in] */ BOOL fWaitUntilDone); - - HRESULT ( STDMETHODCALLTYPE *ExecuteInAppDomain )( - ICLRRuntimeHost2 * This, - /* [in] */ DWORD dwAppDomainId, - /* [in] */ FExecuteInAppDomainCallback pCallback, - /* [in] */ void *cookie); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentAppDomainId )( - ICLRRuntimeHost2 * This, - /* [out] */ DWORD *pdwAppDomainId); - - HRESULT ( STDMETHODCALLTYPE *ExecuteApplication )( - ICLRRuntimeHost2 * This, - /* [in] */ LPCWSTR pwzAppFullName, - /* [in] */ DWORD dwManifestPaths, - /* [in] */ LPCWSTR *ppwzManifestPaths, - /* [in] */ DWORD dwActivationData, - /* [in] */ LPCWSTR *ppwzActivationData, - /* [out] */ int *pReturnValue); - - HRESULT ( STDMETHODCALLTYPE *ExecuteInDefaultAppDomain )( - ICLRRuntimeHost2 * This, - /* [in] */ LPCWSTR pwzAssemblyPath, - /* [in] */ LPCWSTR pwzTypeName, - /* [in] */ LPCWSTR pwzMethodName, - /* [in] */ LPCWSTR pwzArgument, - /* [out] */ DWORD *pReturnValue); - - HRESULT ( STDMETHODCALLTYPE *CreateAppDomainWithManager )( - ICLRRuntimeHost2 * This, - /* [in] */ LPCWSTR wszFriendlyName, - /* [in] */ DWORD dwFlags, - /* [in] */ LPCWSTR wszAppDomainManagerAssemblyName, - /* [in] */ LPCWSTR wszAppDomainManagerTypeName, - /* [in] */ int nProperties, - /* [in] */ LPCWSTR *pPropertyNames, - /* [in] */ LPCWSTR *pPropertyValues, - /* [out] */ DWORD *pAppDomainID); - - HRESULT ( STDMETHODCALLTYPE *CreateDelegate )( - ICLRRuntimeHost2 * This, - /* [in] */ DWORD appDomainID, - /* [in] */ LPCWSTR wszAssemblyName, - /* [in] */ LPCWSTR wszClassName, - /* [in] */ LPCWSTR wszMethodName, - /* [out] */ INT_PTR *fnPtr); - - HRESULT ( STDMETHODCALLTYPE *Authenticate )( - ICLRRuntimeHost2 * This, - /* [in] */ ULONGLONG authKey); - - HRESULT ( STDMETHODCALLTYPE *RegisterMacEHPort )( - ICLRRuntimeHost2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetStartupFlags )( - ICLRRuntimeHost2 * This, - /* [in] */ STARTUP_FLAGS dwFlags); - - HRESULT ( STDMETHODCALLTYPE *DllGetActivationFactory )( - ICLRRuntimeHost2 * This, - /* [in] */ DWORD appDomainID, - /* [in] */ LPCWSTR wszTypeName, - /* [out] */ IActivationFactory **factory); - - HRESULT ( STDMETHODCALLTYPE *ExecuteAssembly )( - ICLRRuntimeHost2 * This, - /* [in] */ DWORD dwAppDomainId, - /* [in] */ LPCWSTR pwzAssemblyPath, - /* [in] */ int argc, - /* [in] */ LPCWSTR *argv, - /* [out] */ DWORD *pReturnValue); - - END_INTERFACE - } ICLRRuntimeHost2Vtbl; - - interface ICLRRuntimeHost2 - { - CONST_VTBL struct ICLRRuntimeHost2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRRuntimeHost2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRRuntimeHost2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRRuntimeHost2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRRuntimeHost2_Start(This) \ - ( (This)->lpVtbl -> Start(This) ) - -#define ICLRRuntimeHost2_Stop(This) \ - ( (This)->lpVtbl -> Stop(This) ) - -#define ICLRRuntimeHost2_SetHostControl(This,pHostControl) \ - ( (This)->lpVtbl -> SetHostControl(This,pHostControl) ) - -#define ICLRRuntimeHost2_GetCLRControl(This,pCLRControl) \ - ( (This)->lpVtbl -> GetCLRControl(This,pCLRControl) ) - -#define ICLRRuntimeHost2_UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) \ - ( (This)->lpVtbl -> UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) ) - -#define ICLRRuntimeHost2_ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) \ - ( (This)->lpVtbl -> ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) ) - -#define ICLRRuntimeHost2_GetCurrentAppDomainId(This,pdwAppDomainId) \ - ( (This)->lpVtbl -> GetCurrentAppDomainId(This,pdwAppDomainId) ) - -#define ICLRRuntimeHost2_ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) \ - ( (This)->lpVtbl -> ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) ) - -#define ICLRRuntimeHost2_ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) \ - ( (This)->lpVtbl -> ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) ) - - -#define ICLRRuntimeHost2_CreateAppDomainWithManager(This,wszFriendlyName,dwFlags,wszAppDomainManagerAssemblyName,wszAppDomainManagerTypeName,nProperties,pPropertyNames,pPropertyValues,pAppDomainID) \ - ( (This)->lpVtbl -> CreateAppDomainWithManager(This,wszFriendlyName,dwFlags,wszAppDomainManagerAssemblyName,wszAppDomainManagerTypeName,nProperties,pPropertyNames,pPropertyValues,pAppDomainID) ) - -#define ICLRRuntimeHost2_CreateDelegate(This,appDomainID,wszAssemblyName,wszClassName,wszMethodName,fnPtr) \ - ( (This)->lpVtbl -> CreateDelegate(This,appDomainID,wszAssemblyName,wszClassName,wszMethodName,fnPtr) ) - -#define ICLRRuntimeHost2_Authenticate(This,authKey) \ - ( (This)->lpVtbl -> Authenticate(This,authKey) ) - -#define ICLRRuntimeHost2_RegisterMacEHPort(This) \ - ( (This)->lpVtbl -> RegisterMacEHPort(This) ) - -#define ICLRRuntimeHost2_SetStartupFlags(This,dwFlags) \ - ( (This)->lpVtbl -> SetStartupFlags(This,dwFlags) ) - -#define ICLRRuntimeHost2_DllGetActivationFactory(This,appDomainID,wszTypeName,factory) \ - ( (This)->lpVtbl -> DllGetActivationFactory(This,appDomainID,wszTypeName,factory) ) - -#define ICLRRuntimeHost2_ExecuteAssembly(This,dwAppDomainId,pwzAssemblyPath,argc,argv,pReturnValue) \ - ( (This)->lpVtbl -> ExecuteAssembly(This,dwAppDomainId,pwzAssemblyPath,argc,argv,pReturnValue) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRRuntimeHost2_INTERFACE_DEFINED__ */ - - -#ifndef __IHostNetCFDebugControlManager_INTERFACE_DEFINED__ -#define __IHostNetCFDebugControlManager_INTERFACE_DEFINED__ - -/* interface IHostNetCFDebugControlManager */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_IHostNetCFDebugControlManager; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("F2833A0C-F944-48d8-940E-F59425EDBFCF") - IHostNetCFDebugControlManager : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE NotifyPause( - DWORD dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE NotifyResume( - DWORD dwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IHostNetCFDebugControlManagerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IHostNetCFDebugControlManager * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IHostNetCFDebugControlManager * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IHostNetCFDebugControlManager * This); - - HRESULT ( STDMETHODCALLTYPE *NotifyPause )( - IHostNetCFDebugControlManager * This, - DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *NotifyResume )( - IHostNetCFDebugControlManager * This, - DWORD dwReserved); - - END_INTERFACE - } IHostNetCFDebugControlManagerVtbl; - - interface IHostNetCFDebugControlManager - { - CONST_VTBL struct IHostNetCFDebugControlManagerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IHostNetCFDebugControlManager_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IHostNetCFDebugControlManager_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IHostNetCFDebugControlManager_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IHostNetCFDebugControlManager_NotifyPause(This,dwReserved) \ - ( (This)->lpVtbl -> NotifyPause(This,dwReserved) ) - -#define IHostNetCFDebugControlManager_NotifyResume(This,dwReserved) \ - ( (This)->lpVtbl -> NotifyResume(This,dwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IHostNetCFDebugControlManager_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0013 */ -/* [local] */ - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0013_0001 - { - eNoChecks = 0, - eSynchronization = 0x1, - eSharedState = 0x2, - eExternalProcessMgmt = 0x4, - eSelfAffectingProcessMgmt = 0x8, - eExternalThreading = 0x10, - eSelfAffectingThreading = 0x20, - eSecurityInfrastructure = 0x40, - eUI = 0x80, - eMayLeakOnAbort = 0x100, - eAll = 0x1ff - } EApiCategories; - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0013_0002 - { - eInitializeNewDomainFlags_None = 0, - eInitializeNewDomainFlags_NoSecurityChanges = 0x2 - } EInitializeNewDomainFlags; - - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0013_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0013_v0_0_s_ifspec; - - -#ifndef __mscoree_LIBRARY_DEFINED__ -#define __mscoree_LIBRARY_DEFINED__ - -/* library mscoree */ -/* [helpstring][version][uuid] */ - -#define CCW_PTR int * - -EXTERN_C const IID LIBID_mscoree; - -#ifndef __ITypeName_INTERFACE_DEFINED__ -#define __ITypeName_INTERFACE_DEFINED__ - -/* interface ITypeName */ -/* [unique][helpstring][uuid][oleautomation][object] */ - - -EXTERN_C const IID IID_ITypeName; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("B81FF171-20F3-11d2-8DCC-00A0C9B00522") - ITypeName : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetNameCount( - /* [retval][out] */ DWORD *pCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetNames( - /* [in] */ DWORD count, - /* [out] */ BSTR *rgbszNames, - /* [retval][out] */ DWORD *pCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeArgumentCount( - /* [retval][out] */ DWORD *pCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeArguments( - /* [in] */ DWORD count, - /* [out] */ ITypeName **rgpArguments, - /* [retval][out] */ DWORD *pCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetModifierLength( - /* [retval][out] */ DWORD *pCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetModifiers( - /* [in] */ DWORD count, - /* [out] */ DWORD *rgModifiers, - /* [retval][out] */ DWORD *pCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAssemblyName( - /* [retval][out] */ BSTR *rgbszAssemblyNames) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ITypeNameVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ITypeName * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ITypeName * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ITypeName * This); - - HRESULT ( STDMETHODCALLTYPE *GetNameCount )( - ITypeName * This, - /* [retval][out] */ DWORD *pCount); - - HRESULT ( STDMETHODCALLTYPE *GetNames )( - ITypeName * This, - /* [in] */ DWORD count, - /* [out] */ BSTR *rgbszNames, - /* [retval][out] */ DWORD *pCount); - - HRESULT ( STDMETHODCALLTYPE *GetTypeArgumentCount )( - ITypeName * This, - /* [retval][out] */ DWORD *pCount); - - HRESULT ( STDMETHODCALLTYPE *GetTypeArguments )( - ITypeName * This, - /* [in] */ DWORD count, - /* [out] */ ITypeName **rgpArguments, - /* [retval][out] */ DWORD *pCount); - - HRESULT ( STDMETHODCALLTYPE *GetModifierLength )( - ITypeName * This, - /* [retval][out] */ DWORD *pCount); - - HRESULT ( STDMETHODCALLTYPE *GetModifiers )( - ITypeName * This, - /* [in] */ DWORD count, - /* [out] */ DWORD *rgModifiers, - /* [retval][out] */ DWORD *pCount); - - HRESULT ( STDMETHODCALLTYPE *GetAssemblyName )( - ITypeName * This, - /* [retval][out] */ BSTR *rgbszAssemblyNames); - - END_INTERFACE - } ITypeNameVtbl; + FAIL_NonCriticalResource = 0, + FAIL_CriticalResource = ( FAIL_NonCriticalResource + 1 ) , + FAIL_FatalRuntime = ( FAIL_CriticalResource + 1 ) , + FAIL_OrphanedLock = ( FAIL_FatalRuntime + 1 ) , + FAIL_StackOverflow = ( FAIL_OrphanedLock + 1 ) , + FAIL_AccessViolation = ( FAIL_StackOverflow + 1 ) , + FAIL_CodeContract = ( FAIL_AccessViolation + 1 ) , + MaxClrFailure = ( FAIL_CodeContract + 1 ) + } EClrFailure; - interface ITypeName +typedef /* [public] */ +enum __MIDL___MIDL_itf_mscoree_0000_0000_0008 { - CONST_VTBL struct ITypeNameVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ITypeName_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ITypeName_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ITypeName_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ITypeName_GetNameCount(This,pCount) \ - ( (This)->lpVtbl -> GetNameCount(This,pCount) ) - -#define ITypeName_GetNames(This,count,rgbszNames,pCount) \ - ( (This)->lpVtbl -> GetNames(This,count,rgbszNames,pCount) ) - -#define ITypeName_GetTypeArgumentCount(This,pCount) \ - ( (This)->lpVtbl -> GetTypeArgumentCount(This,pCount) ) - -#define ITypeName_GetTypeArguments(This,count,rgpArguments,pCount) \ - ( (This)->lpVtbl -> GetTypeArguments(This,count,rgpArguments,pCount) ) - -#define ITypeName_GetModifierLength(This,pCount) \ - ( (This)->lpVtbl -> GetModifierLength(This,pCount) ) - -#define ITypeName_GetModifiers(This,count,rgModifiers,pCount) \ - ( (This)->lpVtbl -> GetModifiers(This,count,rgModifiers,pCount) ) - -#define ITypeName_GetAssemblyName(This,rgbszAssemblyNames) \ - ( (This)->lpVtbl -> GetAssemblyName(This,rgbszAssemblyNames) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - + eRuntimeDeterminedPolicy = 0, + eHostDeterminedPolicy = ( eRuntimeDeterminedPolicy + 1 ) + } EClrUnhandledException; +typedef /* [public] */ +enum __MIDL___MIDL_itf_mscoree_0000_0000_0009 + { + eNoAction = 0, + eThrowException = ( eNoAction + 1 ) , + eAbortThread = ( eThrowException + 1 ) , + eRudeAbortThread = ( eAbortThread + 1 ) , + eUnloadAppDomain = ( eRudeAbortThread + 1 ) , + eRudeUnloadAppDomain = ( eUnloadAppDomain + 1 ) , + eExitProcess = ( eRudeUnloadAppDomain + 1 ) , + eFastExitProcess = ( eExitProcess + 1 ) , + eRudeExitProcess = ( eFastExitProcess + 1 ) , + eDisableRuntime = ( eRudeExitProcess + 1 ) , + MaxPolicyAction = ( eDisableRuntime + 1 ) + } EPolicyAction; -#endif /* __ITypeName_INTERFACE_DEFINED__ */ +extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0000_v0_0_s_ifspec; -#ifndef __ITypeNameBuilder_INTERFACE_DEFINED__ -#define __ITypeNameBuilder_INTERFACE_DEFINED__ +#ifndef __ICLRRuntimeHost_INTERFACE_DEFINED__ +#define __ICLRRuntimeHost_INTERFACE_DEFINED__ -/* interface ITypeNameBuilder */ -/* [unique][helpstring][uuid][oleautomation][object] */ +/* interface ICLRRuntimeHost */ +/* [object][local][unique][helpstring][version][uuid] */ -EXTERN_C const IID IID_ITypeNameBuilder; +EXTERN_C const IID IID_ICLRRuntimeHost; #if defined(__cplusplus) && !defined(CINTERFACE) - MIDL_INTERFACE("B81FF171-20F3-11d2-8DCC-00A0C9B00523") - ITypeNameBuilder : public IUnknown + MIDL_INTERFACE("90F1A06C-7712-4762-86B5-7A5EBA6BDB02") + ICLRRuntimeHost : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE OpenGenericArguments( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE CloseGenericArguments( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE OpenGenericArgument( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE CloseGenericArgument( void) = 0; + virtual HRESULT STDMETHODCALLTYPE Start( void) = 0; - virtual HRESULT STDMETHODCALLTYPE AddName( - /* [in] */ LPCWSTR szName) = 0; + virtual HRESULT STDMETHODCALLTYPE Stop( void) = 0; - virtual HRESULT STDMETHODCALLTYPE AddPointer( void) = 0; + virtual HRESULT STDMETHODCALLTYPE SetHostControl( + /* [in] */ IHostControl *pHostControl) = 0; - virtual HRESULT STDMETHODCALLTYPE AddByRef( void) = 0; + virtual HRESULT STDMETHODCALLTYPE GetCLRControl( + /* [out] */ ICLRControl **pCLRControl) = 0; - virtual HRESULT STDMETHODCALLTYPE AddSzArray( void) = 0; + virtual HRESULT STDMETHODCALLTYPE UnloadAppDomain( + /* [in] */ DWORD dwAppDomainId, + /* [in] */ BOOL fWaitUntilDone) = 0; - virtual HRESULT STDMETHODCALLTYPE AddArray( - /* [in] */ DWORD rank) = 0; + virtual HRESULT STDMETHODCALLTYPE ExecuteInAppDomain( + /* [in] */ DWORD dwAppDomainId, + /* [in] */ FExecuteInAppDomainCallback pCallback, + /* [in] */ void *cookie) = 0; - virtual HRESULT STDMETHODCALLTYPE AddAssemblySpec( - /* [in] */ LPCWSTR szAssemblySpec) = 0; + virtual HRESULT STDMETHODCALLTYPE GetCurrentAppDomainId( + /* [out] */ DWORD *pdwAppDomainId) = 0; - virtual HRESULT STDMETHODCALLTYPE ToString( - /* [retval][out] */ BSTR *pszStringRepresentation) = 0; + virtual HRESULT STDMETHODCALLTYPE ExecuteApplication( + /* [in] */ LPCWSTR pwzAppFullName, + /* [in] */ DWORD dwManifestPaths, + /* [in] */ LPCWSTR *ppwzManifestPaths, + /* [in] */ DWORD dwActivationData, + /* [in] */ LPCWSTR *ppwzActivationData, + /* [out] */ int *pReturnValue) = 0; - virtual HRESULT STDMETHODCALLTYPE Clear( void) = 0; + virtual HRESULT STDMETHODCALLTYPE ExecuteInDefaultAppDomain( + /* [in] */ LPCWSTR pwzAssemblyPath, + /* [in] */ LPCWSTR pwzTypeName, + /* [in] */ LPCWSTR pwzMethodName, + /* [in] */ LPCWSTR pwzArgument, + /* [out] */ DWORD *pReturnValue) = 0; }; #else /* C style interface */ - typedef struct ITypeNameBuilderVtbl + typedef struct ICLRRuntimeHostVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ITypeNameBuilder * This, + ICLRRuntimeHost * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( - ITypeNameBuilder * This); + ICLRRuntimeHost * This); ULONG ( STDMETHODCALLTYPE *Release )( - ITypeNameBuilder * This); - - HRESULT ( STDMETHODCALLTYPE *OpenGenericArguments )( - ITypeNameBuilder * This); - - HRESULT ( STDMETHODCALLTYPE *CloseGenericArguments )( - ITypeNameBuilder * This); - - HRESULT ( STDMETHODCALLTYPE *OpenGenericArgument )( - ITypeNameBuilder * This); + ICLRRuntimeHost * This); - HRESULT ( STDMETHODCALLTYPE *CloseGenericArgument )( - ITypeNameBuilder * This); + HRESULT ( STDMETHODCALLTYPE *Start )( + ICLRRuntimeHost * This); - HRESULT ( STDMETHODCALLTYPE *AddName )( - ITypeNameBuilder * This, - /* [in] */ LPCWSTR szName); + HRESULT ( STDMETHODCALLTYPE *Stop )( + ICLRRuntimeHost * This); - HRESULT ( STDMETHODCALLTYPE *AddPointer )( - ITypeNameBuilder * This); + HRESULT ( STDMETHODCALLTYPE *SetHostControl )( + ICLRRuntimeHost * This, + /* [in] */ IHostControl *pHostControl); - HRESULT ( STDMETHODCALLTYPE *AddByRef )( - ITypeNameBuilder * This); + HRESULT ( STDMETHODCALLTYPE *GetCLRControl )( + ICLRRuntimeHost * This, + /* [out] */ ICLRControl **pCLRControl); - HRESULT ( STDMETHODCALLTYPE *AddSzArray )( - ITypeNameBuilder * This); + HRESULT ( STDMETHODCALLTYPE *UnloadAppDomain )( + ICLRRuntimeHost * This, + /* [in] */ DWORD dwAppDomainId, + /* [in] */ BOOL fWaitUntilDone); - HRESULT ( STDMETHODCALLTYPE *AddArray )( - ITypeNameBuilder * This, - /* [in] */ DWORD rank); + HRESULT ( STDMETHODCALLTYPE *ExecuteInAppDomain )( + ICLRRuntimeHost * This, + /* [in] */ DWORD dwAppDomainId, + /* [in] */ FExecuteInAppDomainCallback pCallback, + /* [in] */ void *cookie); - HRESULT ( STDMETHODCALLTYPE *AddAssemblySpec )( - ITypeNameBuilder * This, - /* [in] */ LPCWSTR szAssemblySpec); + HRESULT ( STDMETHODCALLTYPE *GetCurrentAppDomainId )( + ICLRRuntimeHost * This, + /* [out] */ DWORD *pdwAppDomainId); - HRESULT ( STDMETHODCALLTYPE *ToString )( - ITypeNameBuilder * This, - /* [retval][out] */ BSTR *pszStringRepresentation); + HRESULT ( STDMETHODCALLTYPE *ExecuteApplication )( + ICLRRuntimeHost * This, + /* [in] */ LPCWSTR pwzAppFullName, + /* [in] */ DWORD dwManifestPaths, + /* [in] */ LPCWSTR *ppwzManifestPaths, + /* [in] */ DWORD dwActivationData, + /* [in] */ LPCWSTR *ppwzActivationData, + /* [out] */ int *pReturnValue); - HRESULT ( STDMETHODCALLTYPE *Clear )( - ITypeNameBuilder * This); + HRESULT ( STDMETHODCALLTYPE *ExecuteInDefaultAppDomain )( + ICLRRuntimeHost * This, + /* [in] */ LPCWSTR pwzAssemblyPath, + /* [in] */ LPCWSTR pwzTypeName, + /* [in] */ LPCWSTR pwzMethodName, + /* [in] */ LPCWSTR pwzArgument, + /* [out] */ DWORD *pReturnValue); END_INTERFACE - } ITypeNameBuilderVtbl; + } ICLRRuntimeHostVtbl; - interface ITypeNameBuilder + interface ICLRRuntimeHost { - CONST_VTBL struct ITypeNameBuilderVtbl *lpVtbl; + CONST_VTBL struct ICLRRuntimeHostVtbl *lpVtbl; }; @@ -2407,51 +370,42 @@ EXTERN_C const IID IID_ITypeNameBuilder; #ifdef COBJMACROS -#define ITypeNameBuilder_QueryInterface(This,riid,ppvObject) \ +#define ICLRRuntimeHost_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ITypeNameBuilder_AddRef(This) \ +#define ICLRRuntimeHost_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ITypeNameBuilder_Release(This) \ +#define ICLRRuntimeHost_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ITypeNameBuilder_OpenGenericArguments(This) \ - ( (This)->lpVtbl -> OpenGenericArguments(This) ) - -#define ITypeNameBuilder_CloseGenericArguments(This) \ - ( (This)->lpVtbl -> CloseGenericArguments(This) ) - -#define ITypeNameBuilder_OpenGenericArgument(This) \ - ( (This)->lpVtbl -> OpenGenericArgument(This) ) - -#define ITypeNameBuilder_CloseGenericArgument(This) \ - ( (This)->lpVtbl -> CloseGenericArgument(This) ) +#define ICLRRuntimeHost_Start(This) \ + ( (This)->lpVtbl -> Start(This) ) -#define ITypeNameBuilder_AddName(This,szName) \ - ( (This)->lpVtbl -> AddName(This,szName) ) +#define ICLRRuntimeHost_Stop(This) \ + ( (This)->lpVtbl -> Stop(This) ) -#define ITypeNameBuilder_AddPointer(This) \ - ( (This)->lpVtbl -> AddPointer(This) ) +#define ICLRRuntimeHost_SetHostControl(This,pHostControl) \ + ( (This)->lpVtbl -> SetHostControl(This,pHostControl) ) -#define ITypeNameBuilder_AddByRef(This) \ - ( (This)->lpVtbl -> AddByRef(This) ) +#define ICLRRuntimeHost_GetCLRControl(This,pCLRControl) \ + ( (This)->lpVtbl -> GetCLRControl(This,pCLRControl) ) -#define ITypeNameBuilder_AddSzArray(This) \ - ( (This)->lpVtbl -> AddSzArray(This) ) +#define ICLRRuntimeHost_UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) \ + ( (This)->lpVtbl -> UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) ) -#define ITypeNameBuilder_AddArray(This,rank) \ - ( (This)->lpVtbl -> AddArray(This,rank) ) +#define ICLRRuntimeHost_ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) \ + ( (This)->lpVtbl -> ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) ) -#define ITypeNameBuilder_AddAssemblySpec(This,szAssemblySpec) \ - ( (This)->lpVtbl -> AddAssemblySpec(This,szAssemblySpec) ) +#define ICLRRuntimeHost_GetCurrentAppDomainId(This,pdwAppDomainId) \ + ( (This)->lpVtbl -> GetCurrentAppDomainId(This,pdwAppDomainId) ) -#define ITypeNameBuilder_ToString(This,pszStringRepresentation) \ - ( (This)->lpVtbl -> ToString(This,pszStringRepresentation) ) +#define ICLRRuntimeHost_ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) \ + ( (This)->lpVtbl -> ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) ) -#define ITypeNameBuilder_Clear(This) \ - ( (This)->lpVtbl -> Clear(This) ) +#define ICLRRuntimeHost_ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) \ + ( (This)->lpVtbl -> ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) ) #endif /* COBJMACROS */ @@ -2461,163 +415,178 @@ EXTERN_C const IID IID_ITypeNameBuilder; -#endif /* __ITypeNameBuilder_INTERFACE_DEFINED__ */ +#endif /* __ICLRRuntimeHost_INTERFACE_DEFINED__ */ -#ifndef __ITypeNameFactory_INTERFACE_DEFINED__ -#define __ITypeNameFactory_INTERFACE_DEFINED__ +#ifndef __ICLRRuntimeHost2_INTERFACE_DEFINED__ +#define __ICLRRuntimeHost2_INTERFACE_DEFINED__ -/* interface ITypeNameFactory */ -/* [unique][helpstring][uuid][oleautomation][object] */ +/* interface ICLRRuntimeHost2 */ +/* [local][unique][helpstring][version][uuid][object] */ -EXTERN_C const IID IID_ITypeNameFactory; +EXTERN_C const IID IID_ICLRRuntimeHost2; #if defined(__cplusplus) && !defined(CINTERFACE) - MIDL_INTERFACE("B81FF171-20F3-11d2-8DCC-00A0C9B00521") - ITypeNameFactory : public IUnknown + MIDL_INTERFACE("712AB73F-2C22-4807-AD7E-F501D7B72C2D") + ICLRRuntimeHost2 : public ICLRRuntimeHost { public: - virtual HRESULT STDMETHODCALLTYPE ParseTypeName( - /* [in] */ LPCWSTR szName, - /* [out] */ DWORD *pError, - /* [retval][out] */ ITypeName **ppTypeName) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateAppDomainWithManager( + /* [in] */ LPCWSTR wszFriendlyName, + /* [in] */ DWORD dwFlags, + /* [in] */ LPCWSTR wszAppDomainManagerAssemblyName, + /* [in] */ LPCWSTR wszAppDomainManagerTypeName, + /* [in] */ int nProperties, + /* [in] */ LPCWSTR *pPropertyNames, + /* [in] */ LPCWSTR *pPropertyValues, + /* [out] */ DWORD *pAppDomainID) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateDelegate( + /* [in] */ DWORD appDomainID, + /* [in] */ LPCWSTR wszAssemblyName, + /* [in] */ LPCWSTR wszClassName, + /* [in] */ LPCWSTR wszMethodName, + /* [out] */ INT_PTR *fnPtr) = 0; + + virtual HRESULT STDMETHODCALLTYPE Authenticate( + /* [in] */ ULONGLONG authKey) = 0; + + virtual HRESULT STDMETHODCALLTYPE RegisterMacEHPort( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetStartupFlags( + /* [in] */ STARTUP_FLAGS dwFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DllGetActivationFactory( + /* [in] */ DWORD appDomainID, + /* [in] */ LPCWSTR wszTypeName, + /* [out] */ IActivationFactory **factory) = 0; - virtual HRESULT STDMETHODCALLTYPE GetTypeNameBuilder( - /* [retval][out] */ ITypeNameBuilder **ppTypeBuilder) = 0; + virtual HRESULT STDMETHODCALLTYPE ExecuteAssembly( + /* [in] */ DWORD dwAppDomainId, + /* [in] */ LPCWSTR pwzAssemblyPath, + /* [in] */ int argc, + /* [in] */ LPCWSTR *argv, + /* [out] */ DWORD *pReturnValue) = 0; }; #else /* C style interface */ - typedef struct ITypeNameFactoryVtbl + typedef struct ICLRRuntimeHost2Vtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ITypeNameFactory * This, + ICLRRuntimeHost2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( - ITypeNameFactory * This); + ICLRRuntimeHost2 * This); ULONG ( STDMETHODCALLTYPE *Release )( - ITypeNameFactory * This); + ICLRRuntimeHost2 * This); - HRESULT ( STDMETHODCALLTYPE *ParseTypeName )( - ITypeNameFactory * This, - /* [in] */ LPCWSTR szName, - /* [out] */ DWORD *pError, - /* [retval][out] */ ITypeName **ppTypeName); + HRESULT ( STDMETHODCALLTYPE *Start )( + ICLRRuntimeHost2 * This); - HRESULT ( STDMETHODCALLTYPE *GetTypeNameBuilder )( - ITypeNameFactory * This, - /* [retval][out] */ ITypeNameBuilder **ppTypeBuilder); + HRESULT ( STDMETHODCALLTYPE *Stop )( + ICLRRuntimeHost2 * This); - END_INTERFACE - } ITypeNameFactoryVtbl; - - interface ITypeNameFactory - { - CONST_VTBL struct ITypeNameFactoryVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ITypeNameFactory_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ITypeNameFactory_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ITypeNameFactory_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ITypeNameFactory_ParseTypeName(This,szName,pError,ppTypeName) \ - ( (This)->lpVtbl -> ParseTypeName(This,szName,pError,ppTypeName) ) - -#define ITypeNameFactory_GetTypeNameBuilder(This,ppTypeBuilder) \ - ( (This)->lpVtbl -> GetTypeNameBuilder(This,ppTypeBuilder) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ITypeNameFactory_INTERFACE_DEFINED__ */ - - -#ifndef __IManagedObject_INTERFACE_DEFINED__ -#define __IManagedObject_INTERFACE_DEFINED__ - -/* interface IManagedObject */ -/* [proxy][unique][helpstring][uuid][oleautomation][object] */ - - -EXTERN_C const IID IID_IManagedObject; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("C3FCC19E-A970-11d2-8B5A-00A0C9B7C9C4") - IManagedObject : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetSerializedBuffer( - /* [out] */ BSTR *pBSTR) = 0; + HRESULT ( STDMETHODCALLTYPE *SetHostControl )( + ICLRRuntimeHost2 * This, + /* [in] */ IHostControl *pHostControl); + + HRESULT ( STDMETHODCALLTYPE *GetCLRControl )( + ICLRRuntimeHost2 * This, + /* [out] */ ICLRControl **pCLRControl); - virtual HRESULT STDMETHODCALLTYPE GetObjectIdentity( - /* [out] */ BSTR *pBSTRGUID, - /* [out] */ int *AppDomainID, - /* [out] */ int *pCCW) = 0; + HRESULT ( STDMETHODCALLTYPE *UnloadAppDomain )( + ICLRRuntimeHost2 * This, + /* [in] */ DWORD dwAppDomainId, + /* [in] */ BOOL fWaitUntilDone); - }; - - -#else /* C style interface */ - - typedef struct IManagedObjectVtbl - { - BEGIN_INTERFACE + HRESULT ( STDMETHODCALLTYPE *ExecuteInAppDomain )( + ICLRRuntimeHost2 * This, + /* [in] */ DWORD dwAppDomainId, + /* [in] */ FExecuteInAppDomainCallback pCallback, + /* [in] */ void *cookie); - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IManagedObject * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); + HRESULT ( STDMETHODCALLTYPE *GetCurrentAppDomainId )( + ICLRRuntimeHost2 * This, + /* [out] */ DWORD *pdwAppDomainId); - ULONG ( STDMETHODCALLTYPE *AddRef )( - IManagedObject * This); + HRESULT ( STDMETHODCALLTYPE *ExecuteApplication )( + ICLRRuntimeHost2 * This, + /* [in] */ LPCWSTR pwzAppFullName, + /* [in] */ DWORD dwManifestPaths, + /* [in] */ LPCWSTR *ppwzManifestPaths, + /* [in] */ DWORD dwActivationData, + /* [in] */ LPCWSTR *ppwzActivationData, + /* [out] */ int *pReturnValue); - ULONG ( STDMETHODCALLTYPE *Release )( - IManagedObject * This); + HRESULT ( STDMETHODCALLTYPE *ExecuteInDefaultAppDomain )( + ICLRRuntimeHost2 * This, + /* [in] */ LPCWSTR pwzAssemblyPath, + /* [in] */ LPCWSTR pwzTypeName, + /* [in] */ LPCWSTR pwzMethodName, + /* [in] */ LPCWSTR pwzArgument, + /* [out] */ DWORD *pReturnValue); + + HRESULT ( STDMETHODCALLTYPE *CreateAppDomainWithManager )( + ICLRRuntimeHost2 * This, + /* [in] */ LPCWSTR wszFriendlyName, + /* [in] */ DWORD dwFlags, + /* [in] */ LPCWSTR wszAppDomainManagerAssemblyName, + /* [in] */ LPCWSTR wszAppDomainManagerTypeName, + /* [in] */ int nProperties, + /* [in] */ LPCWSTR *pPropertyNames, + /* [in] */ LPCWSTR *pPropertyValues, + /* [out] */ DWORD *pAppDomainID); + + HRESULT ( STDMETHODCALLTYPE *CreateDelegate )( + ICLRRuntimeHost2 * This, + /* [in] */ DWORD appDomainID, + /* [in] */ LPCWSTR wszAssemblyName, + /* [in] */ LPCWSTR wszClassName, + /* [in] */ LPCWSTR wszMethodName, + /* [out] */ INT_PTR *fnPtr); + + HRESULT ( STDMETHODCALLTYPE *Authenticate )( + ICLRRuntimeHost2 * This, + /* [in] */ ULONGLONG authKey); + + HRESULT ( STDMETHODCALLTYPE *RegisterMacEHPort )( + ICLRRuntimeHost2 * This); + + HRESULT ( STDMETHODCALLTYPE *SetStartupFlags )( + ICLRRuntimeHost2 * This, + /* [in] */ STARTUP_FLAGS dwFlags); - HRESULT ( STDMETHODCALLTYPE *GetSerializedBuffer )( - IManagedObject * This, - /* [out] */ BSTR *pBSTR); + HRESULT ( STDMETHODCALLTYPE *DllGetActivationFactory )( + ICLRRuntimeHost2 * This, + /* [in] */ DWORD appDomainID, + /* [in] */ LPCWSTR wszTypeName, + /* [out] */ IActivationFactory **factory); - HRESULT ( STDMETHODCALLTYPE *GetObjectIdentity )( - IManagedObject * This, - /* [out] */ BSTR *pBSTRGUID, - /* [out] */ int *AppDomainID, - /* [out] */ int *pCCW); + HRESULT ( STDMETHODCALLTYPE *ExecuteAssembly )( + ICLRRuntimeHost2 * This, + /* [in] */ DWORD dwAppDomainId, + /* [in] */ LPCWSTR pwzAssemblyPath, + /* [in] */ int argc, + /* [in] */ LPCWSTR *argv, + /* [out] */ DWORD *pReturnValue); END_INTERFACE - } IManagedObjectVtbl; + } ICLRRuntimeHost2Vtbl; - interface IManagedObject + interface ICLRRuntimeHost2 { - CONST_VTBL struct IManagedObjectVtbl *lpVtbl; + CONST_VTBL struct ICLRRuntimeHost2Vtbl *lpVtbl; }; @@ -2625,152 +594,219 @@ EXTERN_C const IID IID_IManagedObject; #ifdef COBJMACROS -#define IManagedObject_QueryInterface(This,riid,ppvObject) \ +#define ICLRRuntimeHost2_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define IManagedObject_AddRef(This) \ +#define ICLRRuntimeHost2_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define IManagedObject_Release(This) \ +#define ICLRRuntimeHost2_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define IManagedObject_GetSerializedBuffer(This,pBSTR) \ - ( (This)->lpVtbl -> GetSerializedBuffer(This,pBSTR) ) - -#define IManagedObject_GetObjectIdentity(This,pBSTRGUID,AppDomainID,pCCW) \ - ( (This)->lpVtbl -> GetObjectIdentity(This,pBSTRGUID,AppDomainID,pCCW) ) - -#endif /* COBJMACROS */ +#define ICLRRuntimeHost2_Start(This) \ + ( (This)->lpVtbl -> Start(This) ) +#define ICLRRuntimeHost2_Stop(This) \ + ( (This)->lpVtbl -> Stop(This) ) -#endif /* C style interface */ +#define ICLRRuntimeHost2_SetHostControl(This,pHostControl) \ + ( (This)->lpVtbl -> SetHostControl(This,pHostControl) ) +#define ICLRRuntimeHost2_GetCLRControl(This,pCLRControl) \ + ( (This)->lpVtbl -> GetCLRControl(This,pCLRControl) ) +#define ICLRRuntimeHost2_UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) \ + ( (This)->lpVtbl -> UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) ) +#define ICLRRuntimeHost2_ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) \ + ( (This)->lpVtbl -> ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) ) -#endif /* __IManagedObject_INTERFACE_DEFINED__ */ +#define ICLRRuntimeHost2_GetCurrentAppDomainId(This,pdwAppDomainId) \ + ( (This)->lpVtbl -> GetCurrentAppDomainId(This,pdwAppDomainId) ) +#define ICLRRuntimeHost2_ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) \ + ( (This)->lpVtbl -> ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) ) -EXTERN_C const CLSID CLSID_ComCallUnmarshal; +#define ICLRRuntimeHost2_ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) \ + ( (This)->lpVtbl -> ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) ) -#ifdef __cplusplus -class DECLSPEC_UUID("3F281000-E95A-11d2-886B-00C04F869F04") -ComCallUnmarshal; -#endif +#define ICLRRuntimeHost2_CreateAppDomainWithManager(This,wszFriendlyName,dwFlags,wszAppDomainManagerAssemblyName,wszAppDomainManagerTypeName,nProperties,pPropertyNames,pPropertyValues,pAppDomainID) \ + ( (This)->lpVtbl -> CreateAppDomainWithManager(This,wszFriendlyName,dwFlags,wszAppDomainManagerAssemblyName,wszAppDomainManagerTypeName,nProperties,pPropertyNames,pPropertyValues,pAppDomainID) ) -EXTERN_C const CLSID CLSID_ComCallUnmarshalV4; +#define ICLRRuntimeHost2_CreateDelegate(This,appDomainID,wszAssemblyName,wszClassName,wszMethodName,fnPtr) \ + ( (This)->lpVtbl -> CreateDelegate(This,appDomainID,wszAssemblyName,wszClassName,wszMethodName,fnPtr) ) -#ifdef __cplusplus +#define ICLRRuntimeHost2_Authenticate(This,authKey) \ + ( (This)->lpVtbl -> Authenticate(This,authKey) ) -class DECLSPEC_UUID("45FB4600-E6E8-4928-B25E-50476FF79425") -ComCallUnmarshalV4; -#endif +#define ICLRRuntimeHost2_RegisterMacEHPort(This) \ + ( (This)->lpVtbl -> RegisterMacEHPort(This) ) -EXTERN_C const CLSID CLSID_CLRRuntimeHost; +#define ICLRRuntimeHost2_SetStartupFlags(This,dwFlags) \ + ( (This)->lpVtbl -> SetStartupFlags(This,dwFlags) ) -#ifdef __cplusplus +#define ICLRRuntimeHost2_DllGetActivationFactory(This,appDomainID,wszTypeName,factory) \ + ( (This)->lpVtbl -> DllGetActivationFactory(This,appDomainID,wszTypeName,factory) ) -class DECLSPEC_UUID("90F1A06E-7712-4762-86B5-7A5EBA6BDB02") -CLRRuntimeHost; -#endif +#define ICLRRuntimeHost2_ExecuteAssembly(This,dwAppDomainId,pwzAssemblyPath,argc,argv,pReturnValue) \ + ( (This)->lpVtbl -> ExecuteAssembly(This,dwAppDomainId,pwzAssemblyPath,argc,argv,pReturnValue) ) -EXTERN_C const CLSID CLSID_TypeNameFactory; +#endif /* COBJMACROS */ -#ifdef __cplusplus -class DECLSPEC_UUID("B81FF171-20F3-11d2-8DCC-00A0C9B00525") -TypeNameFactory; -#endif -#endif /* __mscoree_LIBRARY_DEFINED__ */ +#endif /* C style interface */ -/* interface __MIDL_itf_mscoree_0000_0014 */ -/* [local] */ -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0014_0001 - { - eCurrentContext = 0, - eRestrictedContext = 0x1 - } EContextType; +#endif /* __ICLRRuntimeHost2_INTERFACE_DEFINED__ */ -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0014_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0014_v0_0_s_ifspec; -#ifndef __ICLRAppDomainResourceMonitor_INTERFACE_DEFINED__ -#define __ICLRAppDomainResourceMonitor_INTERFACE_DEFINED__ +#ifndef __ICLRRuntimeHost4_INTERFACE_DEFINED__ +#define __ICLRRuntimeHost4_INTERFACE_DEFINED__ -/* interface ICLRAppDomainResourceMonitor */ -/* [object][local][unique][helpstring][uuid][version] */ +/* interface ICLRRuntimeHost4 */ +/* [local][unique][helpstring][version][uuid][object] */ -EXTERN_C const IID IID_ICLRAppDomainResourceMonitor; +EXTERN_C const IID IID_ICLRRuntimeHost4; #if defined(__cplusplus) && !defined(CINTERFACE) - MIDL_INTERFACE("c62de18c-2e23-4aea-8423-b40c1fc59eae") - ICLRAppDomainResourceMonitor : public IUnknown + MIDL_INTERFACE("64F6D366-D7C2-4F1F-B4B2-E8160CAC43AF") + ICLRRuntimeHost4 : public ICLRRuntimeHost2 { public: - virtual HRESULT STDMETHODCALLTYPE GetCurrentAllocated( + virtual HRESULT STDMETHODCALLTYPE UnloadAppDomain2( /* [in] */ DWORD dwAppDomainId, - /* [out] */ ULONGLONG *pBytesAllocated) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentSurvived( - /* [in] */ DWORD dwAppDomainId, - /* [out] */ ULONGLONG *pAppDomainBytesSurvived, - /* [out] */ ULONGLONG *pTotalBytesSurvived) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentCpuTime( - /* [in] */ DWORD dwAppDomainId, - /* [out] */ ULONGLONG *pMilliseconds) = 0; + /* [in] */ BOOL fWaitUntilDone, + /* [out] */ int *pLatchedExitCode) = 0; }; #else /* C style interface */ - typedef struct ICLRAppDomainResourceMonitorVtbl + typedef struct ICLRRuntimeHost4Vtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRAppDomainResourceMonitor * This, + ICLRRuntimeHost4 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRAppDomainResourceMonitor * This); + ICLRRuntimeHost4 * This); ULONG ( STDMETHODCALLTYPE *Release )( - ICLRAppDomainResourceMonitor * This); + ICLRRuntimeHost4 * This); + + HRESULT ( STDMETHODCALLTYPE *Start )( + ICLRRuntimeHost4 * This); + + HRESULT ( STDMETHODCALLTYPE *Stop )( + ICLRRuntimeHost4 * This); + + HRESULT ( STDMETHODCALLTYPE *SetHostControl )( + ICLRRuntimeHost4 * This, + /* [in] */ IHostControl *pHostControl); + + HRESULT ( STDMETHODCALLTYPE *GetCLRControl )( + ICLRRuntimeHost4 * This, + /* [out] */ ICLRControl **pCLRControl); - HRESULT ( STDMETHODCALLTYPE *GetCurrentAllocated )( - ICLRAppDomainResourceMonitor * This, + HRESULT ( STDMETHODCALLTYPE *UnloadAppDomain )( + ICLRRuntimeHost4 * This, + /* [in] */ DWORD dwAppDomainId, + /* [in] */ BOOL fWaitUntilDone); + + HRESULT ( STDMETHODCALLTYPE *ExecuteInAppDomain )( + ICLRRuntimeHost4 * This, /* [in] */ DWORD dwAppDomainId, - /* [out] */ ULONGLONG *pBytesAllocated); + /* [in] */ FExecuteInAppDomainCallback pCallback, + /* [in] */ void *cookie); + + HRESULT ( STDMETHODCALLTYPE *GetCurrentAppDomainId )( + ICLRRuntimeHost4 * This, + /* [out] */ DWORD *pdwAppDomainId); + + HRESULT ( STDMETHODCALLTYPE *ExecuteApplication )( + ICLRRuntimeHost4 * This, + /* [in] */ LPCWSTR pwzAppFullName, + /* [in] */ DWORD dwManifestPaths, + /* [in] */ LPCWSTR *ppwzManifestPaths, + /* [in] */ DWORD dwActivationData, + /* [in] */ LPCWSTR *ppwzActivationData, + /* [out] */ int *pReturnValue); + + HRESULT ( STDMETHODCALLTYPE *ExecuteInDefaultAppDomain )( + ICLRRuntimeHost4 * This, + /* [in] */ LPCWSTR pwzAssemblyPath, + /* [in] */ LPCWSTR pwzTypeName, + /* [in] */ LPCWSTR pwzMethodName, + /* [in] */ LPCWSTR pwzArgument, + /* [out] */ DWORD *pReturnValue); + + HRESULT ( STDMETHODCALLTYPE *CreateAppDomainWithManager )( + ICLRRuntimeHost4 * This, + /* [in] */ LPCWSTR wszFriendlyName, + /* [in] */ DWORD dwFlags, + /* [in] */ LPCWSTR wszAppDomainManagerAssemblyName, + /* [in] */ LPCWSTR wszAppDomainManagerTypeName, + /* [in] */ int nProperties, + /* [in] */ LPCWSTR *pPropertyNames, + /* [in] */ LPCWSTR *pPropertyValues, + /* [out] */ DWORD *pAppDomainID); + + HRESULT ( STDMETHODCALLTYPE *CreateDelegate )( + ICLRRuntimeHost4 * This, + /* [in] */ DWORD appDomainID, + /* [in] */ LPCWSTR wszAssemblyName, + /* [in] */ LPCWSTR wszClassName, + /* [in] */ LPCWSTR wszMethodName, + /* [out] */ INT_PTR *fnPtr); + + HRESULT ( STDMETHODCALLTYPE *Authenticate )( + ICLRRuntimeHost4 * This, + /* [in] */ ULONGLONG authKey); + + HRESULT ( STDMETHODCALLTYPE *RegisterMacEHPort )( + ICLRRuntimeHost4 * This); + + HRESULT ( STDMETHODCALLTYPE *SetStartupFlags )( + ICLRRuntimeHost4 * This, + /* [in] */ STARTUP_FLAGS dwFlags); + + HRESULT ( STDMETHODCALLTYPE *DllGetActivationFactory )( + ICLRRuntimeHost4 * This, + /* [in] */ DWORD appDomainID, + /* [in] */ LPCWSTR wszTypeName, + /* [out] */ IActivationFactory **factory); - HRESULT ( STDMETHODCALLTYPE *GetCurrentSurvived )( - ICLRAppDomainResourceMonitor * This, + HRESULT ( STDMETHODCALLTYPE *ExecuteAssembly )( + ICLRRuntimeHost4 * This, /* [in] */ DWORD dwAppDomainId, - /* [out] */ ULONGLONG *pAppDomainBytesSurvived, - /* [out] */ ULONGLONG *pTotalBytesSurvived); + /* [in] */ LPCWSTR pwzAssemblyPath, + /* [in] */ int argc, + /* [in] */ LPCWSTR *argv, + /* [out] */ DWORD *pReturnValue); - HRESULT ( STDMETHODCALLTYPE *GetCurrentCpuTime )( - ICLRAppDomainResourceMonitor * This, + HRESULT ( STDMETHODCALLTYPE *UnloadAppDomain2 )( + ICLRRuntimeHost4 * This, /* [in] */ DWORD dwAppDomainId, - /* [out] */ ULONGLONG *pMilliseconds); + /* [in] */ BOOL fWaitUntilDone, + /* [out] */ int *pLatchedExitCode); END_INTERFACE - } ICLRAppDomainResourceMonitorVtbl; + } ICLRRuntimeHost4Vtbl; - interface ICLRAppDomainResourceMonitor + interface ICLRRuntimeHost4 { - CONST_VTBL struct ICLRAppDomainResourceMonitorVtbl *lpVtbl; + CONST_VTBL struct ICLRRuntimeHost4Vtbl *lpVtbl; }; @@ -2778,24 +814,68 @@ EXTERN_C const IID IID_ICLRAppDomainResourceMonitor; #ifdef COBJMACROS -#define ICLRAppDomainResourceMonitor_QueryInterface(This,riid,ppvObject) \ +#define ICLRRuntimeHost4_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICLRAppDomainResourceMonitor_AddRef(This) \ +#define ICLRRuntimeHost4_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICLRAppDomainResourceMonitor_Release(This) \ +#define ICLRRuntimeHost4_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICLRAppDomainResourceMonitor_GetCurrentAllocated(This,dwAppDomainId,pBytesAllocated) \ - ( (This)->lpVtbl -> GetCurrentAllocated(This,dwAppDomainId,pBytesAllocated) ) +#define ICLRRuntimeHost4_Start(This) \ + ( (This)->lpVtbl -> Start(This) ) + +#define ICLRRuntimeHost4_Stop(This) \ + ( (This)->lpVtbl -> Stop(This) ) + +#define ICLRRuntimeHost4_SetHostControl(This,pHostControl) \ + ( (This)->lpVtbl -> SetHostControl(This,pHostControl) ) + +#define ICLRRuntimeHost4_GetCLRControl(This,pCLRControl) \ + ( (This)->lpVtbl -> GetCLRControl(This,pCLRControl) ) + +#define ICLRRuntimeHost4_UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) \ + ( (This)->lpVtbl -> UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) ) + +#define ICLRRuntimeHost4_ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) \ + ( (This)->lpVtbl -> ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) ) + +#define ICLRRuntimeHost4_GetCurrentAppDomainId(This,pdwAppDomainId) \ + ( (This)->lpVtbl -> GetCurrentAppDomainId(This,pdwAppDomainId) ) + +#define ICLRRuntimeHost4_ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) \ + ( (This)->lpVtbl -> ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) ) + +#define ICLRRuntimeHost4_ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) \ + ( (This)->lpVtbl -> ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) ) + + +#define ICLRRuntimeHost4_CreateAppDomainWithManager(This,wszFriendlyName,dwFlags,wszAppDomainManagerAssemblyName,wszAppDomainManagerTypeName,nProperties,pPropertyNames,pPropertyValues,pAppDomainID) \ + ( (This)->lpVtbl -> CreateAppDomainWithManager(This,wszFriendlyName,dwFlags,wszAppDomainManagerAssemblyName,wszAppDomainManagerTypeName,nProperties,pPropertyNames,pPropertyValues,pAppDomainID) ) + +#define ICLRRuntimeHost4_CreateDelegate(This,appDomainID,wszAssemblyName,wszClassName,wszMethodName,fnPtr) \ + ( (This)->lpVtbl -> CreateDelegate(This,appDomainID,wszAssemblyName,wszClassName,wszMethodName,fnPtr) ) + +#define ICLRRuntimeHost4_Authenticate(This,authKey) \ + ( (This)->lpVtbl -> Authenticate(This,authKey) ) + +#define ICLRRuntimeHost4_RegisterMacEHPort(This) \ + ( (This)->lpVtbl -> RegisterMacEHPort(This) ) + +#define ICLRRuntimeHost4_SetStartupFlags(This,dwFlags) \ + ( (This)->lpVtbl -> SetStartupFlags(This,dwFlags) ) + +#define ICLRRuntimeHost4_DllGetActivationFactory(This,appDomainID,wszTypeName,factory) \ + ( (This)->lpVtbl -> DllGetActivationFactory(This,appDomainID,wszTypeName,factory) ) + +#define ICLRRuntimeHost4_ExecuteAssembly(This,dwAppDomainId,pwzAssemblyPath,argc,argv,pReturnValue) \ + ( (This)->lpVtbl -> ExecuteAssembly(This,dwAppDomainId,pwzAssemblyPath,argc,argv,pReturnValue) ) -#define ICLRAppDomainResourceMonitor_GetCurrentSurvived(This,dwAppDomainId,pAppDomainBytesSurvived,pTotalBytesSurvived) \ - ( (This)->lpVtbl -> GetCurrentSurvived(This,dwAppDomainId,pAppDomainBytesSurvived,pTotalBytesSurvived) ) -#define ICLRAppDomainResourceMonitor_GetCurrentCpuTime(This,dwAppDomainId,pMilliseconds) \ - ( (This)->lpVtbl -> GetCurrentCpuTime(This,dwAppDomainId,pMilliseconds) ) +#define ICLRRuntimeHost4_UnloadAppDomain2(This,dwAppDomainId,fWaitUntilDone,pLatchedExitCode) \ + ( (This)->lpVtbl -> UnloadAppDomain2(This,dwAppDomainId,fWaitUntilDone,pLatchedExitCode) ) #endif /* COBJMACROS */ @@ -2805,10 +885,10 @@ EXTERN_C const IID IID_ICLRAppDomainResourceMonitor; -#endif /* __ICLRAppDomainResourceMonitor_INTERFACE_DEFINED__ */ +#endif /* __ICLRRuntimeHost4_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_mscoree_0000_0015 */ +/* interface __MIDL_itf_mscoree_0000_0003 */ /* [local] */ #undef DEPRECATED_CLR_STDAPI @@ -2816,8 +896,8 @@ EXTERN_C const IID IID_ICLRAppDomainResourceMonitor; #undef DEPRECATED_CLR_API_MESG -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0015_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0015_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0003_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0003_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ diff --git a/src/utilcode/util.cpp b/src/utilcode/util.cpp index 9ebc401..d0a6035 100644 --- a/src/utilcode/util.cpp +++ b/src/utilcode/util.cpp @@ -3035,21 +3035,6 @@ void EnableTerminationOnHeapCorruption() HeapSetInformation(NULL, HeapEnableTerminationOnCorruption, NULL, 0); } -#ifdef FEATURE_COMINTEROP -BOOL IsClrHostedLegacyComObject(REFCLSID rclsid) -{ - // let's simply check for all CLSIDs that are known to be runtime implemented and capped to 2.0 - return ( - rclsid == CLSID_ComCallUnmarshal || - rclsid == CLSID_CorMetaDataDispenser || - rclsid == CLSID_CorMetaDataDispenserRuntime || - rclsid == CLSID_TypeNameFactory); -} -#endif // FEATURE_COMINTEROP - - - - namespace Clr { namespace Util diff --git a/src/vm/ceemain.cpp b/src/vm/ceemain.cpp index 41b6fe0..e5267cf 100644 --- a/src/vm/ceemain.cpp +++ b/src/vm/ceemain.cpp @@ -632,10 +632,6 @@ void EEStartupHelper(COINITIEE fFlags) #ifndef CROSSGEN_COMPILE -#ifdef _DEBUG - DisableGlobalAllocStore(); -#endif //_DEBUG - #ifndef FEATURE_PAL ::SetConsoleCtrlHandler(DbgCtrlCHandler, TRUE/*add*/); #endif @@ -1519,11 +1515,7 @@ void STDMETHODCALLTYPE EEShutDownHelper(BOOL fIsDllUnloading) { ClrFlsSetThreadType(ThreadType_Shutdown); - if (!fIsDllUnloading) - { - ProcessEventForHost(Event_ClrDisabled, NULL); - } - else if (g_fEEShutDown) + if (fIsDllUnloading && g_fEEShutDown) { // I'm in the final shutdown and the first part has already been run. goto part2; diff --git a/src/vm/ceemain.h b/src/vm/ceemain.h index 451bbc5..2515256 100644 --- a/src/vm/ceemain.h +++ b/src/vm/ceemain.h @@ -181,10 +181,6 @@ private: }; -#ifdef _DEBUG -extern void DisableGlobalAllocStore (); -#endif //_DEBUG - void SetLatchedExitCode (INT32 code); INT32 GetLatchedExitCode (void); diff --git a/src/vm/commtmemberinfomap.cpp b/src/vm/commtmemberinfomap.cpp index 01904ef..e53cd2f 100644 --- a/src/vm/commtmemberinfomap.cpp +++ b/src/vm/commtmemberinfomap.cpp @@ -13,7 +13,6 @@ #include "commtmemberinfomap.h" #include "comcallablewrapper.h" -#include "tlbexport.h" #include "field.h" #include "caparser.h" @@ -1381,6 +1380,67 @@ void ComMTMemberInfoMap::AssignNewEnumMember( } } // void ComMTMemberInfoMap::AssignNewEnumMember() +//***************************************************************************** +// Signature utilities. +//***************************************************************************** +class MetaSigExport : public MetaSig +{ +public: + MetaSigExport(MethodDesc *pMD) : + MetaSig(pMD) + { + WRAPPER_NO_CONTRACT; + } + + BOOL IsVbRefType() + { + CONTRACT(BOOL) + { + NOTHROW; + GC_NOTRIGGER; + MODE_ANY; + } + CONTRACT_END; + + // Get the arg, and skip decorations. + SigPointer pt = GetArgProps(); + CorElementType mt; + if (FAILED(pt.PeekElemType(&mt))) + return FALSE; + + while (mt == ELEMENT_TYPE_BYREF || mt == ELEMENT_TYPE_PTR) + { + // Eat the one just examined, and peek at the next one. + if (FAILED(pt.GetElemType(NULL)) || FAILED(pt.PeekElemType(&mt))) + return FALSE; + } + + // Is it just Object? + if (mt == ELEMENT_TYPE_OBJECT) + RETURN TRUE; + + // A particular class? + if (mt == ELEMENT_TYPE_CLASS) + { + // Exclude "string". + if (pt.IsStringType(m_pModule, GetSigTypeContext())) + RETURN FALSE; + RETURN TRUE; + } + + // A particular valuetype? + if (mt == ELEMENT_TYPE_VALUETYPE) + { + // Include "variant". + if (pt.IsClass(m_pModule, g_VariantClassName, GetSigTypeContext())) + RETURN TRUE; + RETURN FALSE; + } + + // An array, a string, or POD. + RETURN FALSE; + } +}; // class MetaSigExport : public MetaSig // ============================================================================ // For each property set and let functions, determine PROPERTYPUT and diff --git a/src/vm/corhost.cpp b/src/vm/corhost.cpp index 703e3a3..1a376f0 100644 --- a/src/vm/corhost.cpp +++ b/src/vm/corhost.cpp @@ -62,10 +62,6 @@ EXTERN_C UINT32 _tls_index; UINT32 _tls_index = 0; #endif // FEATURE_PAL -#if defined(FEATURE_WINDOWSPHONE) -SVAL_IMPL_INIT(ECustomDumpFlavor, CCLRErrorReportingManager, g_ECustomDumpFlavor, DUMP_FLAVOR_Default); -#endif - #ifndef DACCESS_COMPILE extern void STDMETHODCALLTYPE EEShutDown(BOOL fIsDllUnloading); @@ -78,11 +74,6 @@ extern BOOL g_fEEHostedStartup; ULONG CorRuntimeHostBase::m_Version = 0; - -#if defined(FEATURE_WINDOWSPHONE) -CCLRErrorReportingManager g_CLRErrorReportingManager; -#endif // defined(FEATURE_WINDOWSPHONE) - #endif // !DAC typedef DPTR(CONNID) PTR_CONNID; @@ -979,48 +970,6 @@ STARTUP_FLAGS CorHost2::GetStartupFlags() #ifndef DACCESS_COMPILE -#ifdef FEATURE_COMINTEROP - -// Enumerate currently existing domains. -HRESULT CorRuntimeHostBase::EnumDomains(HDOMAINENUM *hEnum) -{ - CONTRACTL - { - NOTHROW; - MODE_PREEMPTIVE; - WRAPPER(GC_TRIGGERS); - ENTRY_POINT; - } - CONTRACTL_END; - - if(hEnum == NULL) return E_POINTER; - - // Thread setup happens in BEGIN_EXTERNAL_ENTRYPOINT below. - // If the runtime has not started, we have nothing to do. - if (!g_fEEStarted) - { - return HOST_E_CLRNOTAVAILABLE; - } - - HRESULT hr = E_OUTOFMEMORY; - *hEnum = NULL; - BEGIN_ENTRYPOINT_NOTHROW; - - BEGIN_EXTERNAL_ENTRYPOINT(&hr) - - AppDomainIterator *pEnum = new (nothrow) AppDomainIterator(FALSE); - if(pEnum) { - *hEnum = (HDOMAINENUM) pEnum; - hr = S_OK; - } - END_EXTERNAL_ENTRYPOINT; - END_ENTRYPOINT_NOTHROW; - - return hr; -} - -#endif // FEATURE_COMINTEROP - extern "C" DLLEXPORT HRESULT GetCLRRuntimeHost(REFIID riid, IUnknown **ppUnk) @@ -1341,17 +1290,8 @@ HRESULT CorRuntimeHostBase::MapFile(HANDLE hFile, HMODULE* phHandle) return hr; } -/////////////////////////////////////////////////////////////////////////////// -// IDebuggerInfo::IsDebuggerAttached - LONG CorHost2::m_RefCount = 0; -IHostControl *CorHost2::m_HostControl = NULL; - -#ifdef _DEBUG -extern void ValidateHostInterface(); -#endif - static Volatile fOneOnly = 0; /////////////////////////////////////////////////////////////////////////////// @@ -1359,1068 +1299,16 @@ static Volatile fOneOnly = 0; /////////////////////////////////////////////////////////////////////////////// HRESULT CorHost2::SetHostControl(IHostControl* pHostControl) { - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - ENTRY_POINT; - } - CONTRACTL_END; - if (m_Version < 2) - // CLR is hosted with v1 hosting interface. Some part of v2 hosting API are disabled. - return HOST_E_INVALIDOPERATION; - - if (pHostControl == 0) - return E_INVALIDARG; - - // If Runtime has been started, do not allow setting HostMemoryManager - if (g_fEEStarted) - return E_ACCESSDENIED; - - HRESULT hr = S_OK; - - BEGIN_ENTRYPOINT_NOTHROW; - - DWORD dwSwitchCount = 0; - - while (FastInterlockExchange((LONG*)&fOneOnly, 1) == 1) - { - __SwitchToThread(0, ++dwSwitchCount); - } - - - if (m_HostControl == NULL) - { - m_HostControl = pHostControl; - m_HostControl->AddRef(); - } - - goto ErrExit; - -ErrExit: - fOneOnly = 0; - - END_ENTRYPOINT_NOTHROW; - - return hr; -} - -class CCLRPolicyManager: public ICLRPolicyManager -{ -public: - virtual HRESULT STDMETHODCALLTYPE SetDefaultAction(EClrOperation operation, - EPolicyAction action) - { - LIMITED_METHOD_CONTRACT; - return E_NOTIMPL; - } - - virtual HRESULT STDMETHODCALLTYPE SetTimeout(EClrOperation operation, - DWORD dwMilliseconds) - { - LIMITED_METHOD_CONTRACT; - return E_NOTIMPL; - } - - virtual HRESULT STDMETHODCALLTYPE SetActionOnTimeout(EClrOperation operation, - EPolicyAction action) - { - LIMITED_METHOD_CONTRACT; - return E_NOTIMPL; - } - - virtual HRESULT STDMETHODCALLTYPE SetTimeoutAndAction(EClrOperation operation, DWORD dwMilliseconds, - EPolicyAction action) - { - LIMITED_METHOD_CONTRACT; - return E_NOTIMPL; - } - - virtual HRESULT STDMETHODCALLTYPE SetActionOnFailure(EClrFailure failure, - EPolicyAction action) - { - // This is enabled for CoreCLR since a host can use this to - // specify action for handling AV. - STATIC_CONTRACT_ENTRY_POINT; - LIMITED_METHOD_CONTRACT; - HRESULT hr; - // For CoreCLR, this method just supports FAIL_AccessViolation as a valid - // failure input arg. The validation of the specified action for the failure - // will be done in EEPolicy::IsValidActionForFailure. - if (failure != FAIL_AccessViolation) - { - return E_INVALIDARG; - } - BEGIN_ENTRYPOINT_NOTHROW; - hr = GetEEPolicy()->SetActionOnFailure(failure,action); - END_ENTRYPOINT_NOTHROW; - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE SetUnhandledExceptionPolicy(EClrUnhandledException policy) - { - LIMITED_METHOD_CONTRACT; - return E_NOTIMPL; - } - - virtual ULONG STDMETHODCALLTYPE AddRef(void) - { - LIMITED_METHOD_CONTRACT; - return 1; - } - - virtual ULONG STDMETHODCALLTYPE Release(void) - { - LIMITED_METHOD_CONTRACT; - return 1; - } - - BEGIN_INTERFACE HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, - void **ppvObject) - { - LIMITED_METHOD_CONTRACT; - if (riid != IID_ICLRPolicyManager && riid != IID_IUnknown) - return (E_NOINTERFACE); - - // Ensure that the out going pointer is not null - if (ppvObject == NULL) - return E_POINTER; - - *ppvObject = this; - return S_OK; - } -}; - -static CCLRPolicyManager s_PolicyManager; - - - -void ProcessEventForHost(EClrEvent event, void *data) -{ -} - -// We do not call ProcessEventForHost for stack overflow, since we have limit stack -// and we should avoid calling GCX_PREEMPT -void ProcessSOEventForHost(EXCEPTION_POINTERS *pExceptionInfo, BOOL fInSoTolerant) -{ -} - -BOOL IsHostRegisteredForEvent(EClrEvent event) -{ - WRAPPER_NO_CONTRACT; - return FALSE; -} - -inline size_t SizeInKBytes(size_t cbSize) -{ - LIMITED_METHOD_CONTRACT; - size_t cb = (cbSize % 1024) ? 1 : 0; - return ((cbSize / 1024) + cb); -} - -SIZE_T Host_SegmentSize = 0; -SIZE_T Host_MaxGen0Size = 0; -BOOL Host_fSegmentSizeSet = FALSE; -BOOL Host_fMaxGen0SizeSet = FALSE; - -void UpdateGCSettingFromHost () -{ - WRAPPER_NO_CONTRACT; - _ASSERTE (g_pConfig); - if (Host_fSegmentSizeSet) - { - g_pConfig->SetSegmentSize(Host_SegmentSize); - } - if (Host_fMaxGen0SizeSet) - { - g_pConfig->SetGCgen0size(Host_MaxGen0Size); - } -} - -#if defined(FEATURE_WINDOWSPHONE) -class CCLRGCManager: public ICLRGCManager2 -{ -public: - virtual HRESULT STDMETHODCALLTYPE Collect(LONG Generation) - { - CONTRACTL - { - NOTHROW; - GC_TRIGGERS; - ENTRY_POINT; - } - CONTRACTL_END; - - HRESULT hr = S_OK; - - if (Generation > (int) GCHeapUtilities::GetGCHeap()->GetMaxGeneration()) - hr = E_INVALIDARG; - - if (SUCCEEDED(hr)) - { - // Set up a Thread object if this is called on a native thread. - Thread *pThread; - pThread = GetThread(); - if (pThread == NULL) - pThread = SetupThreadNoThrow(&hr); - if (pThread != NULL) - { - BEGIN_ENTRYPOINT_NOTHROW_WITH_THREAD(pThread); - GCX_COOP(); - - EX_TRY - { - STRESS_LOG0(LF_GC, LL_INFO100, "Host triggers GC\n"); - hr = GCHeapUtilities::GetGCHeap()->GarbageCollect(Generation); - } - EX_CATCH - { - hr = GET_EXCEPTION()->GetHR(); - } - EX_END_CATCH(SwallowAllExceptions); - - END_ENTRYPOINT_NOTHROW_WITH_THREAD; - } - } - - return (hr); - } - - virtual HRESULT STDMETHODCALLTYPE GetStats(COR_GC_STATS *pStats) - { - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - ENTRY_POINT; - } - CONTRACTL_END; - - return E_NOTIMPL; - } - virtual HRESULT STDMETHODCALLTYPE SetGCStartupLimits( - DWORD SegmentSize, - DWORD MaxGen0Size) - { - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - ENTRY_POINT; - - } - CONTRACTL_END; - - HRESULT hr = S_OK; - BEGIN_ENTRYPOINT_NOTHROW; - - // Set default overrides if specified by caller. - if (SegmentSize != (DWORD) ~0 && SegmentSize > 0) - { - hr = _SetGCSegmentSize(SegmentSize); - } - - if (SUCCEEDED(hr) && MaxGen0Size != (DWORD) ~0 && MaxGen0Size > 0) - { - hr = _SetGCMaxGen0Size(MaxGen0Size); - } - - END_ENTRYPOINT_NOTHROW; - - return (hr); - } - - virtual HRESULT STDMETHODCALLTYPE SetGCStartupLimitsEx( - SIZE_T SegmentSize, - SIZE_T MaxGen0Size) - { - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - ENTRY_POINT; - - } - CONTRACTL_END; - - HRESULT hr = S_OK; - BEGIN_ENTRYPOINT_NOTHROW; - - // Set default overrides if specified by caller. - if (SegmentSize != (SIZE_T) ~0 && SegmentSize > 0) - { - hr = _SetGCSegmentSize(SegmentSize); - } - - if (SUCCEEDED(hr) && MaxGen0Size != (SIZE_T) ~0 && MaxGen0Size > 0) - { - hr = _SetGCMaxGen0Size(MaxGen0Size); - } - - END_ENTRYPOINT_NOTHROW; - - return (hr); - } - - virtual ULONG STDMETHODCALLTYPE AddRef(void) - { - LIMITED_METHOD_CONTRACT; - return 1; - } - - virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, OUT PVOID *ppUnk) - { - LIMITED_METHOD_CONTRACT; - if (riid != IID_ICLRGCManager && riid != IID_ICLRGCManager2 && riid != IID_IUnknown) - return (E_NOINTERFACE); - *ppUnk = this; - return S_OK; - } - - virtual ULONG STDMETHODCALLTYPE Release(void) - { - LIMITED_METHOD_CONTRACT; - return 1; - } -private: - HRESULT _SetGCSegmentSize(SIZE_T SegmentSize); - HRESULT _SetGCMaxGen0Size(SIZE_T MaxGen0Size); -}; - - -HRESULT CCLRGCManager::_SetGCSegmentSize(SIZE_T SegmentSize) -{ - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - } - CONTRACTL_END; - - HRESULT hr = S_OK; - - // Sanity check the value, it must be a power of two and big enough. - if (!GCHeapUtilities::GetGCHeap()->IsValidSegmentSize(SegmentSize)) - { - hr = E_INVALIDARG; - } - else - { - Host_SegmentSize = SegmentSize; - Host_fSegmentSizeSet = TRUE; - } - - return (hr); + return E_NOTIMPL; } -HRESULT CCLRGCManager::_SetGCMaxGen0Size(SIZE_T MaxGen0Size) +/////////////////////////////////////////////////////////////////////////////// +// ICLRRuntimeHost::GetCLRControl +HRESULT CorHost2::GetCLRControl(ICLRControl** pCLRControl) { - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - } - CONTRACTL_END; - - HRESULT hr = S_OK; - - // Sanity check the value is at least large enough. - if (!GCHeapUtilities::GetGCHeap()->IsValidGen0MaxSize(MaxGen0Size)) - { - hr = E_INVALIDARG; - } - else - { - Host_MaxGen0Size = MaxGen0Size; - Host_fMaxGen0SizeSet = TRUE; - } - - return (hr); + return E_NOTIMPL; } -static CCLRGCManager s_GCManager; -#endif //FEATURE_WINDOWSPHONE - -#ifdef FEATURE_APPDOMAIN_RESOURCE_MONITORING -class CCLRAppDomainResourceMonitor : public ICLRAppDomainResourceMonitor -{ -public: - virtual HRESULT STDMETHODCALLTYPE GetCurrentAllocated(DWORD dwAppDomainId, - ULONGLONG* pBytesAllocated) - { - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - ENTRY_POINT; - } - CONTRACTL_END; - - HRESULT hr = S_OK; - - BEGIN_ENTRYPOINT_NOTHROW; - - SystemDomain::LockHolder lh; - - AppDomain* pAppDomain = SystemDomain::GetAppDomainFromId((ADID)dwAppDomainId, ADV_CURRENTAD); - if (pBytesAllocated) - { - *pBytesAllocated = pAppDomain->GetAllocBytes(); - } - - END_ENTRYPOINT_NOTHROW; - - return (hr); - } - - virtual HRESULT STDMETHODCALLTYPE GetCurrentSurvived(DWORD dwAppDomainId, - ULONGLONG* pAppDomainBytesSurvived, - ULONGLONG* pTotalBytesSurvived) - { - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - ENTRY_POINT; - } - CONTRACTL_END; - - HRESULT hr = S_OK; - BEGIN_ENTRYPOINT_NOTHROW; - - SystemDomain::LockHolder lh; - - AppDomain* pAppDomain = SystemDomain::GetAppDomainFromId((ADID)dwAppDomainId, ADV_CURRENTAD); - if (pAppDomainBytesSurvived) - { - *pAppDomainBytesSurvived = pAppDomain->GetSurvivedBytes(); - } - if (pTotalBytesSurvived) - { - *pTotalBytesSurvived = SystemDomain::GetTotalSurvivedBytes(); - } - - END_ENTRYPOINT_NOTHROW; - - return (hr); - } - - virtual HRESULT STDMETHODCALLTYPE GetCurrentCpuTime(DWORD dwAppDomainId, - ULONGLONG* pMilliseconds) - { - CONTRACTL - { - NOTHROW; - GC_TRIGGERS; - ENTRY_POINT; - } - CONTRACTL_END; - - HRESULT hr = S_OK; - - BEGIN_ENTRYPOINT_NOTHROW; - - { - SystemDomain::LockHolder lh; - - AppDomain* pAppDomain = SystemDomain::GetAppDomainFromId((ADID)dwAppDomainId, ADV_CURRENTAD); - if (pMilliseconds) - { - *pMilliseconds = pAppDomain->QueryProcessorUsage() / 10000; - } - } - - END_ENTRYPOINT_NOTHROW; - - return hr; - } - - virtual ULONG STDMETHODCALLTYPE AddRef(void) - { - LIMITED_METHOD_CONTRACT; - return 1; - } - - virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, OUT PVOID *ppUnk) - { - LIMITED_METHOD_CONTRACT; - *ppUnk = NULL; - if (riid == IID_IUnknown) - *ppUnk = (IUnknown*)this; - else if (riid == IID_ICLRAppDomainResourceMonitor) - *ppUnk = (ICLRAppDomainResourceMonitor*)this; - else - return E_NOINTERFACE; - return S_OK; - } - - virtual ULONG STDMETHODCALLTYPE Release(void) - { - LIMITED_METHOD_CONTRACT; - return 1; - } -}; -static CCLRAppDomainResourceMonitor s_Arm; -#endif //FEATURE_APPDOMAIN_RESOURCE_MONITORING - - -BOOL g_CLRPolicyRequested = FALSE; - -class CCorCLRControl: public ICLRControl -{ -public: - virtual HRESULT STDMETHODCALLTYPE GetCLRManager(REFIID riid, void **ppObject) - { - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - } - CONTRACTL_END; - - // Sanity check. - if (ppObject == NULL) - return E_INVALIDARG; - -#if defined(FEATURE_WINDOWSPHONE) - if (riid == IID_ICLRErrorReportingManager2) - { - *ppObject = &g_CLRErrorReportingManager; - return S_OK; - } - else -#endif //defined(FEATURE_WINDOWSPHONE) - if (g_fEEStarted && !m_fFullAccess) - { - // If runtime has been started, do not allow user to obtain CLR managers. - return HOST_E_INVALIDOPERATION; - } - - // CoreCLR supports ICLRPolicyManager since it allows the host - // to specify the policy for AccessViolation. - else if (riid == IID_ICLRPolicyManager) { - *ppObject = &s_PolicyManager; - FastInterlockExchange((LONG*)&g_CLRPolicyRequested, TRUE); - return S_OK; - } - -#if defined(FEATURE_WINDOWSPHONE) - else if ((riid == IID_ICLRGCManager) || (riid == IID_ICLRGCManager2)) - { - *ppObject = &s_GCManager; - return S_OK; - } -#endif //FEATURE_WINDOWSPHONE - -#ifdef FEATURE_APPDOMAIN_RESOURCE_MONITORING - else if (riid == IID_ICLRAppDomainResourceMonitor) - { - EnableARM(); - *ppObject = &s_Arm; - return S_OK; - } -#endif //FEATURE_APPDOMAIN_RESOURCE_MONITORING - else - return (E_NOINTERFACE); - } - - virtual HRESULT STDMETHODCALLTYPE SetAppDomainManagerType( - LPCWSTR pwzAppDomainManagerAssembly, - LPCWSTR pwzAppDomainManagerType) - { - - // CoreCLR does not support this method - return E_NOTIMPL; - } - - virtual ULONG STDMETHODCALLTYPE AddRef(void) - { - LIMITED_METHOD_CONTRACT; - return 1; - } - - virtual ULONG STDMETHODCALLTYPE Release(void) - { - LIMITED_METHOD_CONTRACT; - return 1; - } - - BEGIN_INTERFACE HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, - void **ppvObject) - { - LIMITED_METHOD_CONTRACT; - if (riid != IID_ICLRControl && riid != IID_IUnknown) - return (E_NOINTERFACE); - - // Ensure that the out going pointer is not null - if (ppvObject == NULL) - return E_POINTER; - - *ppvObject = this; - return S_OK; - } - - // This is to avoid having ctor. We have static objects, and it is - // difficult to support ctor on certain platform. - void SetAccess(BOOL fFullAccess) - { - LIMITED_METHOD_CONTRACT; - m_fFullAccess = fFullAccess; - } -private: - BOOL m_fFullAccess; -}; - -// Before CLR starts, we give out s_CorCLRControl which has full access to all managers. -// After CLR starts, we give out s_CorCLRControlLimited which allows limited access to managers. -static CCorCLRControl s_CorCLRControl; - - -/////////////////////////////////////////////////////////////////////////////// -// ICLRRuntimeHost::GetCLRControl -HRESULT CorHost2::GetCLRControl(ICLRControl** pCLRControl) -{ - LIMITED_METHOD_CONTRACT; - - // Ensure that we have a valid pointer - if (pCLRControl == NULL) - { - return E_POINTER; - } - - HRESULT hr = S_OK; - - STATIC_CONTRACT_ENTRY_POINT; - BEGIN_ENTRYPOINT_NOTHROW; - if (!g_fEEStarted && m_Version >= 2) - { - s_CorCLRControl.SetAccess(TRUE); - *pCLRControl = &s_CorCLRControl; - } - else - { - // If : - // 1) request comes for interface other than ICLRControl*, OR - // 2) runtime has already started, OR - // 3) version is not 2 - // - // we will return failure and set the out pointer to NULL - *pCLRControl = NULL; - if (g_fEEStarted) - { - // Return HOST_E_INVALIDOPERATION as per MSDN if runtime has already started - hr = HOST_E_INVALIDOPERATION; - } - else - { - hr = E_NOTIMPL; - } - } - END_ENTRYPOINT_NOTHROW; - - return hr; -} - -// static -EInitializeNewDomainFlags CorHost2::GetAppDomainManagerInitializeNewDomainFlags() -{ - LIMITED_METHOD_CONTRACT; - return eInitializeNewDomainFlags_None; -} - - -#endif // !DAC - - -#ifdef DACCESS_COMPILE - - -#endif //DACCESS_COMPILE - -#ifndef DACCESS_COMPILE - - -#if defined(FEATURE_WINDOWSPHONE) - -HRESULT CCLRErrorReportingManager::QueryInterface(REFIID riid, void** ppUnk) -{ - if (!ppUnk) - return E_POINTER; - - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - } - CONTRACTL_END; - - HRESULT hr = S_OK; - - if (ppUnk == NULL) - { - return E_POINTER; - } - - *ppUnk = 0; - - // Deliberately do NOT hand out ICorConfiguration. They must explicitly call - // GetConfiguration to obtain that interface. - if (riid == IID_IUnknown) - { - *ppUnk = (IUnknown *) this; - } - else if (riid == IID_ICLRErrorReportingManager) - { - *ppUnk = (ICLRErrorReportingManager *) this; - } -#ifdef FEATURE_WINDOWSPHONE - else if (riid == IID_ICLRErrorReportingManager2) - { - *ppUnk = (ICLRErrorReportingManager2 *) this; - } -#endif // FEATURE_WINDOWSPHONE - else - { - hr = E_NOINTERFACE; - } - - return hr; - -} // HRESULT CCLRErrorReportingManager::QueryInterface() - -ULONG CCLRErrorReportingManager::AddRef() -{ - LIMITED_METHOD_CONTRACT; - return 1; -} // HRESULT CCLRErrorReportingManager::AddRef() - -ULONG CCLRErrorReportingManager::Release() -{ - LIMITED_METHOD_CONTRACT; - return 1; -} // HRESULT CCLRErrorReportingManager::Release() - -// Get Watson bucket parameters for "current" exception (on calling thread). -HRESULT CCLRErrorReportingManager::GetBucketParametersForCurrentException( - BucketParameters *pParams) -{ - CONTRACTL - { - WRAPPER(THROWS); - WRAPPER(GC_TRIGGERS); - ENTRY_POINT; - } - CONTRACTL_END; - - HRESULT hr = S_OK; - BEGIN_ENTRYPOINT_NOTHROW; - - // To avoid confusion, clear the buckets. - memset(pParams, 0, sizeof(BucketParameters)); - -#ifndef FEATURE_PAL - // Defer to Watson helper. - hr = ::GetBucketParametersForCurrentException(pParams); - #else - // Watson doesn't exist on non-windows platforms - hr = E_NOTIMPL; -#endif // !FEATURE_PAL - - END_ENTRYPOINT_NOTHROW; - - return hr; - -} // HRESULT CCLRErrorReportingManager::GetBucketParametersForCurrentException() - -// -// The BeginCustomDump function configures the custom dump support -// -// Parameters - -// dwFlavor - The flavor of the dump -// dwNumItems - The number of items in the CustomDumpItem array. -// Should always be zero today, since no custom items are defined -// items - Array of CustomDumpItem structs specifying items to be added to the dump. -// Should always be NULL today, since no custom items are defined. -// dwReserved - reserved for future use. Must be zero today -// -HRESULT CCLRErrorReportingManager::BeginCustomDump( ECustomDumpFlavor dwFlavor, - DWORD dwNumItems, - CustomDumpItem items[], - DWORD dwReserved) -{ - STATIC_CONTRACT_ENTRY_POINT; - HRESULT hr = S_OK; - - BEGIN_ENTRYPOINT_NOTHROW; - - if (dwNumItems != 0 || items != NULL || dwReserved != 0) - { - IfFailGo(E_INVALIDARG); - } - if (g_ECustomDumpFlavor != DUMP_FLAVOR_Default) - { - // BeginCustomDump is called without matching EndCustomDump - IfFailGo(E_INVALIDARG); - } - g_ECustomDumpFlavor = dwFlavor; - -ErrExit: - END_ENTRYPOINT_NOTHROW; - - return hr; -} - -// -// EndCustomDump clears the custom dump configuration -// -HRESULT CCLRErrorReportingManager::EndCustomDump() -{ - STATIC_CONTRACT_ENTRY_POINT; - // NOT IMPLEMENTED YET - BEGIN_ENTRYPOINT_NOTHROW; - g_ECustomDumpFlavor = DUMP_FLAVOR_Default; - END_ENTRYPOINT_NOTHROW; - - return S_OK; -} - -#ifdef FEATURE_WINDOWSPHONE -HRESULT CopyStringWorker(_Out_ WCHAR** pTarget, WCHAR const* pSource) -{ - LIMITED_METHOD_CONTRACT; - - if (pTarget == NULL || pSource == NULL) - return E_INVALIDARG; - - if (*pTarget) - delete[] (*pTarget); - - // allocate space for the data plus one wchar for NULL - size_t sourceLen = wcslen(pSource); - *pTarget = new (nothrow) WCHAR[sourceLen + 1]; - - if (!(*pTarget)) - return E_OUTOFMEMORY; - - errno_t result = wcsncpy_s(*pTarget, sourceLen + 1, pSource, sourceLen); - _ASSERTE(result == 0); - - if (result != 0) - { - delete[] (*pTarget); - *pTarget = NULL; - - return E_FAIL; - } - - return S_OK; -} - -CCLRErrorReportingManager::BucketParamsCache::BucketParamsCache(DWORD maxNumParams) : m_pParams(NULL), m_cMaxParams(maxNumParams) -{ - LIMITED_METHOD_CONTRACT; -} - -CCLRErrorReportingManager::BucketParamsCache::~BucketParamsCache() -{ - LIMITED_METHOD_CONTRACT; - - if (m_pParams) - { - for (DWORD i = 0; i < m_cMaxParams; ++i) - if (m_pParams[i]) delete[] m_pParams[i]; - } -} - -WCHAR const* CCLRErrorReportingManager::BucketParamsCache::GetAt(BucketParameterIndex index) -{ - LIMITED_METHOD_CONTRACT; - - if (index >= InvalidBucketParamIndex) - { - _ASSERTE(!"bad bucket parameter index"); - return NULL; - } - - if (!m_pParams) - return NULL; - - return m_pParams[index]; -} - -HRESULT CCLRErrorReportingManager::BucketParamsCache::SetAt(BucketParameterIndex index, WCHAR const* val) -{ - LIMITED_METHOD_CONTRACT; - - if (index < 0 || index >= InvalidBucketParamIndex) - { - _ASSERTE(!"bad bucket parameter index"); - return E_INVALIDARG; - } - - if (!val) - return E_INVALIDARG; - - if (!m_pParams) - { - m_pParams = new (nothrow) WCHAR*[m_cMaxParams]; - if (!m_pParams) - return E_OUTOFMEMORY; - - for (DWORD i = 0; i < m_cMaxParams; ++i) - m_pParams[i] = NULL; - } - - return CopyStringWorker(&m_pParams[index], val); -} - -HRESULT CCLRErrorReportingManager::CopyToDataCache(_Out_ WCHAR** pTarget, WCHAR const* pSource) -{ - LIMITED_METHOD_CONTRACT; - - return CopyStringWorker(pTarget, pSource); -} - -HRESULT CCLRErrorReportingManager::SetApplicationData(ApplicationDataKey key, WCHAR const* pValue) -{ - STATIC_CONTRACT_ENTRY_POINT; - - BEGIN_ENTRYPOINT_NOTHROW; - - if(g_fEEStarted) - return HOST_E_INVALIDOPERATION; - - if (pValue == NULL || wcslen(pValue) > MAX_LONGPATH) - return E_INVALIDARG; - - HRESULT hr = S_OK; - - switch (key) - { - case ApplicationID: - hr = CopyToDataCache(&m_pApplicationId, pValue); - break; - - case InstanceID: - hr = CopyToDataCache(&m_pInstanceId, pValue); - break; - - default: - hr = E_INVALIDARG; - } - - END_ENTRYPOINT_NOTHROW; - - return hr; -} - -HRESULT CCLRErrorReportingManager::SetBucketParametersForUnhandledException(BucketParameters const* pBucketParams, DWORD* pCountParams) -{ - STATIC_CONTRACT_ENTRY_POINT; - - BEGIN_ENTRYPOINT_NOTHROW; - - if(g_fEEStarted) - return HOST_E_INVALIDOPERATION; - - if (pBucketParams == NULL || pCountParams == NULL || pBucketParams->fInited != TRUE) - return E_INVALIDARG; - - *pCountParams = 0; - - if (!m_pBucketParamsCache) - { - m_pBucketParamsCache = new (nothrow) BucketParamsCache(InvalidBucketParamIndex); - if (!m_pBucketParamsCache) - return E_OUTOFMEMORY; - } - - HRESULT hr = S_OK; - bool hasOverride = false; - - for (DWORD i = 0; i < InvalidBucketParamIndex; ++i) - { - if (pBucketParams->pszParams[i][0] != W('\0')) - { - hasOverride = true; - hr = m_pBucketParamsCache->SetAt(static_cast(i), pBucketParams->pszParams[i]); - if (SUCCEEDED(hr)) - *pCountParams += 1; - else - break; - } - } - - if (!hasOverride) - return E_INVALIDARG; - - END_ENTRYPOINT_NOTHROW; - - return hr; -} - -WCHAR const* CCLRErrorReportingManager::GetApplicationData(ApplicationDataKey key) -{ - LIMITED_METHOD_CONTRACT; - - WCHAR* pValue = NULL; - - switch (key) - { - case ApplicationID: - pValue = m_pApplicationId; - break; - - case InstanceID: - pValue = m_pInstanceId; - break; - - default: - _ASSERTE(!"invalid key specified"); - } - - return pValue; -} - -WCHAR const* CCLRErrorReportingManager::GetBucketParamOverride(BucketParameterIndex bucketParamId) -{ - LIMITED_METHOD_CONTRACT; - - if (!m_pBucketParamsCache) - return NULL; - - return m_pBucketParamsCache->GetAt(bucketParamId); -} - -#endif // FEATURE_WINDOWSPHONE - -CCLRErrorReportingManager::CCLRErrorReportingManager() -{ - LIMITED_METHOD_CONTRACT; -#ifdef FEATURE_WINDOWSPHONE - m_pApplicationId = NULL; - m_pInstanceId = NULL; - m_pBucketParamsCache = NULL; -#endif -} - -CCLRErrorReportingManager::~CCLRErrorReportingManager() -{ - LIMITED_METHOD_CONTRACT; -#ifdef FEATURE_WINDOWSPHONE - if (m_pApplicationId) - delete[] m_pApplicationId; - - if (m_pInstanceId) - delete[] m_pInstanceId; - - if (m_pBucketParamsCache) - delete m_pBucketParamsCache; -#endif -} - -#endif // defined(FEATURE_WINDOWSPHONE) - void GetProcessMemoryLoad(LPMEMORYSTATUSEX pMSEX) { CONTRACTL diff --git a/src/vm/crossgencompile.cpp b/src/vm/crossgencompile.cpp index 1380c1f..d357bd7 100644 --- a/src/vm/crossgencompile.cpp +++ b/src/vm/crossgencompile.cpp @@ -113,10 +113,6 @@ GVAL_IMPL_INIT(DWORD, g_fHostConfig, 0); GVAL_IMPL_INIT(GCHeapType, g_heap_type, GC_HEAP_WKS); -void UpdateGCSettingFromHost() -{ -} - HRESULT GetExceptionHResult(OBJECTREF throwable) { return E_FAIL; diff --git a/src/vm/dbginterface.h b/src/vm/dbginterface.h index a75974a..13231c0 100644 --- a/src/vm/dbginterface.h +++ b/src/vm/dbginterface.h @@ -343,9 +343,6 @@ public: virtual HRESULT UpdateSpecialThreadList(DWORD cThreadArrayLength, DWORD *rgdwThreadIDArray) = 0; - // Updates the pointer for the debugger services - virtual void SetIDbgThreadControl(IDebuggerThreadControl *pIDbgThreadControl) = 0; - virtual DWORD GetRCThreadId(void) = 0; virtual HRESULT GetVariablesFromOffset(MethodDesc *pMD, diff --git a/src/vm/dwbucketmanager.hpp b/src/vm/dwbucketmanager.hpp index 2e37e1b..0095eb6 100644 --- a/src/vm/dwbucketmanager.hpp +++ b/src/vm/dwbucketmanager.hpp @@ -458,17 +458,7 @@ void BaseBucketParamsManager::PopulateBucketParameter(BucketParameterIndex param // verify that we haven't already written data to this param _ASSERTE(targetParam && targetParam[0] == W('\0')); -#ifdef FEATURE_WINDOWSPHONE - WCHAR const* overrideParam = g_CLRErrorReportingManager.GetBucketParamOverride(paramIndex); - if (overrideParam != NULL) - { - CopyStringToBucket(targetParam, maxLength, overrideParam, false); - } - else -#endif // FEATURE_WINDOWSPHONE - { - (this->*pFnDataPopulator)(targetParam, maxLength); - } + (this->*pFnDataPopulator)(targetParam, maxLength); LogParam(targetParam, paramIndex); } diff --git a/src/vm/eeconfig.cpp b/src/vm/eeconfig.cpp index a44f439..b5da7de 100644 --- a/src/vm/eeconfig.cpp +++ b/src/vm/eeconfig.cpp @@ -122,8 +122,6 @@ LPUTF8 NarrowWideChar(__inout_z LPWSTR str) RETURN NULL; } -extern void UpdateGCSettingFromHost (); - HRESULT EEConfig::Setup() { STANDARD_VM_CONTRACT; @@ -144,8 +142,6 @@ HRESULT EEConfig::Setup() _ASSERTE(pConfigOld == NULL && "EEConfig::Setup called multiple times!"); - UpdateGCSettingFromHost(); - return S_OK; } diff --git a/src/vm/eeconfig.h b/src/vm/eeconfig.h index a63204f..dc6725f 100644 --- a/src/vm/eeconfig.h +++ b/src/vm/eeconfig.h @@ -1141,8 +1141,6 @@ public: #endif -extern BOOL g_CLRPolicyRequested; - // NGENImagesAllowed is the safe way to determine if NGEN Images are allowed to be loaded. (Defined as // a macro instead of an inlined function to avoid compilation errors due to dependent // definitions not being available to this header.) diff --git a/src/vm/eepolicy.cpp b/src/vm/eepolicy.cpp index ff61677..bba511a 100644 --- a/src/vm/eepolicy.cpp +++ b/src/vm/eepolicy.cpp @@ -455,9 +455,7 @@ void SafeExitProcess(UINT exitCode, BOOL fAbort = FALSE, ShutdownCompleteAction GCX_PREEMP_NO_DTOR(); FastInterlockExchange((LONG*)&g_fForbidEnterEE, TRUE); - - ProcessEventForHost(Event_ClrDisabled, NULL); - + // Note that for free and retail builds StressLog must also be enabled if (g_pConfig && g_pConfig->StressLog()) { @@ -580,7 +578,6 @@ void DisableRuntime(ShutdownCompleteAction sca) GCX_PREEMP_NO_DTOR(); - ProcessEventForHost(Event_ClrDisabled, NULL); ClrFlsClearThreadType(ThreadType_Shutdown); if (g_pDebugInterface != NULL) @@ -757,12 +754,7 @@ void EEPolicy::HandleStackOverflow(StackOverflowDetector detector, void * pLimit if (pThread == NULL) { - //_ASSERTE (detector != SOD_ManagedFrameHandler); - // ProcessSOEventForHost(NULL, FALSE); - // For security reason, it is not safe to continue execution if stack overflow happens - // unless a host tells us to do something different. - // EEPolicy::HandleFatalStackOverflow(NULL); return; } @@ -771,8 +763,6 @@ void EEPolicy::HandleStackOverflow(StackOverflowDetector detector, void * pLimit _ASSERTE(exceptionInfo.ExceptionRecord); - ProcessSOEventForHost(&exceptionInfo, false /* fInSoTolerant */); - EEPolicy::HandleFatalStackOverflow(&exceptionInfo); } diff --git a/src/vm/excep.cpp b/src/vm/excep.cpp index f0b282b..8f5cc08 100644 --- a/src/vm/excep.cpp +++ b/src/vm/excep.cpp @@ -2755,13 +2755,6 @@ VOID DECLSPEC_NORETURN RaiseTheException(OBJECTREF throwable, BOOL rethrow EEPOLICY_HANDLE_FATAL_ERROR(COR_E_EXECUTIONENGINE); } - if (g_CLRPolicyRequested && - throwable->GetMethodTable() == g_pOutOfMemoryExceptionClass) - { - // We depends on UNINSTALL_UNWIND_AND_CONTINUE_HANDLER to handle out of memory escalation. - // We should throw c++ exception instead. - ThrowOutOfMemory(); - } _ASSERTE(throwable != CLRException::GetPreallocatedStackOverflowException()); #ifdef FEATURE_CORRUPTING_EXCEPTIONS @@ -3007,13 +3000,6 @@ static VOID DECLSPEC_NORETURN RealCOMPlusThrowWorker(OBJECTREF throwable, BOOL r // Unfortunately, COMPlusFrameHandler installed here, will try to create managed exception object. // We may hit a recursion. - if (g_CLRPolicyRequested && - throwable->GetMethodTable() == g_pOutOfMemoryExceptionClass) - { - // We depends on UNINSTALL_UNWIND_AND_CONTINUE_HANDLER to handle out of memory escalation. - // We should throw c++ exception instead. - ThrowOutOfMemory(); - } _ASSERTE(throwable != CLRException::GetPreallocatedStackOverflowException()); // TODO: Do we need to install COMPlusFrameHandler here? @@ -8287,19 +8273,6 @@ VOID DECLSPEC_NORETURN UnwindAndContinueRethrowHelperAfterCatch(Frame* pEntryFra Exception::Delete(pException); - if (orThrowable != NULL && g_CLRPolicyRequested) - { - if (orThrowable->GetMethodTable() == g_pOutOfMemoryExceptionClass) - { - EEPolicy::HandleOutOfMemory(); - } - else if (orThrowable->GetMethodTable() == g_pStackOverflowExceptionClass) - { - /* The parameters of the function do not matter here */ - EEPolicy::HandleStackOverflow(SOD_UnmanagedFrameHandler, NULL); - } - } - RaiseTheExceptionInternalOnly(orThrowable, FALSE); } diff --git a/src/vm/hosting.cpp b/src/vm/hosting.cpp index 720a691..5b44722 100644 --- a/src/vm/hosting.cpp +++ b/src/vm/hosting.cpp @@ -10,189 +10,12 @@ #include "hosting.h" #include "mscoree.h" -#include "mscoreepriv.h" #include "corhost.h" #include "threads.h" #define countof(x) (sizeof(x) / sizeof(x[0])) -//Copied from winbase.h -#ifndef STARTF_TITLEISAPPID -#define STARTF_TITLEISAPPID 0x00001000 -#endif -#ifndef STARTF_PREVENTPINNING -#define STARTF_PREVENTPINNING 0x00002000 -#endif - -//Flags encoded in the first parameter of CorLaunchApplication. -#define MASK_NOTPINNABLE 0x80000000 -#define MASK_HOSTTYPE 0x00000003 -#define MASK_DONT_SHOW_INSTALL_DIALOG 0x00000100 - -#ifdef _DEBUG -// This function adds a static annotation read by SCAN to indicate HOST_CALLS. Its -// purpose is to be called from the BEGIN_SO_TOLERANT_CODE_CALLING_HOST macro, to -// effectively mark all functions that use BEGIN_SO_TOLERANT_CODE_CALLING_HOST as being -// HOST_CALLS. If you hit a SCAN violation that references AddHostCallsStaticMarker, then -// you have a function marked as HOST_NOCALLS that eventually calls into a function that -// uses BEGIN_SO_TOLERANT_CODE_CALLING_HOST. -DEBUG_NOINLINE void AddHostCallsStaticMarker() -{ - STATIC_CONTRACT_NOTHROW; - STATIC_CONTRACT_CANNOT_TAKE_LOCK; - STATIC_CONTRACT_GC_NOTRIGGER; - STATIC_CONTRACT_HOST_CALLS; - - METHOD_CANNOT_BE_FOLDED_DEBUG; -} -#endif //_DEBUG - -// -// memory management functions -// - -// global debug only tracking utilities -#ifdef _DEBUG - -static const LONG MaxGlobalAllocCount = 8; - -class GlobalAllocStore { -public: - static void AddAlloc (LPVOID p) - { - LIMITED_METHOD_CONTRACT; - - if (!p) { - return; - } - if (m_Disabled) { - return; - } - - //InterlockedIncrement (&numMemWriter); - //if (CheckMemFree) { - // goto Return; - //} - - //m_Count is number of allocation we've ever tried, it's OK to be bigger than - //size of m_Alloc[] - InterlockedIncrement (&m_Count); - - //this is by no means an accurate record of heap allocation. - //the algorithm used here can't guarantee an allocation is saved in - //m_Alloc[] even there's enough free space. However this is only used - //for debugging purpose and most importantly, m_Count is accurate. - for (size_t n = 0; n < countof(m_Alloc); n ++) { - if (m_Alloc[n] == 0) { - if (InterlockedCompareExchangeT(&m_Alloc[n],p,0) == 0) { - return; - } - } - } - - //InterlockedDecrement (&numMemWriter); - } - - //this is called in non-host case where we don't care the free after - //alloc store is disabled - static BOOL RemoveAlloc (LPVOID p) - { - LIMITED_METHOD_CONTRACT; - - if (m_Disabled) - { - return TRUE; - } - //decrement the counter even we might not find the allocation - //in m_Alloc. Because it's possible for an allocation not to be saved - //in the array - InterlockedDecrement (&m_Count); - // Binary search - for (size_t n = 0; n < countof(m_Alloc); n ++) { - if (m_Alloc[n] == p) { - m_Alloc[n] = 0; - return TRUE; - } - } - return FALSE; - } - - //this is called in host case where if the store is disabled, we want to - //guarantee we don't try to free anything the host doesn't know about - static void ValidateFree(LPVOID p) - { - LIMITED_METHOD_CONTRACT; - - if (p == 0) { - return; - } - if (m_Disabled) { - for (size_t n = 0; n < countof(m_Alloc); n ++) { - //there could be miss, because an allocation might not be saved - //in the array - if (m_Alloc[n] == p) { - _ASSERTE (!"Free a memory that host interface does not know"); - return; - } - } - } - } - - static void Validate() - { - LIMITED_METHOD_CONTRACT; - - if (m_Count > MaxGlobalAllocCount) { - _ASSERTE (!"Using too many memory allocator before Host Interface is set up"); - } - - //while (numMemWriter != 0) { - // Sleep(5); - //} - //qsort (GlobalMemAddr, (MemAllocCount>MaxAllocCount)?MaxAllocCount:MemAllocCount, sizeof(LPVOID), MemAddrCompare); - } - - static void Disable () - { - LIMITED_METHOD_CONTRACT; - if (!m_Disabled) - { - // Let all threads know - InterlockedIncrement((LONG*)&m_Disabled); - } - } - -private: - static BOOL m_Disabled; - static LPVOID m_Alloc[MaxGlobalAllocCount]; - //m_Count is number of allocation we tried, it's legal to be bigger than - //size of m_Alloc[] - static LONG m_Count; - // static LONG numMemWriter = 0; -}; - -// used from corhost.cpp -void ValidateHostInterface() -{ - WRAPPER_NO_CONTRACT; - - GlobalAllocStore::Validate(); - GlobalAllocStore::Disable(); -} - -void DisableGlobalAllocStore () -{ - WRAPPER_NO_CONTRACT; - GlobalAllocStore::Disable(); -} -LPVOID GlobalAllocStore::m_Alloc[MaxGlobalAllocCount]; -LONG GlobalAllocStore::m_Count = 0; -BOOL GlobalAllocStore::m_Disabled = FALSE; - -#endif - - HANDLE g_ExecutableHeapHandle = NULL; @@ -255,10 +78,6 @@ LPVOID EEVirtualAlloc(LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, D p = ::VirtualAlloc (lpAddress, dwSize, flAllocationType, flProtect); } -#ifdef _DEBUG - GlobalAllocStore::AddAlloc (p); -#endif - if(p == NULL){ STRESS_LOG_OOM_STACK(dwSize); } @@ -278,17 +97,7 @@ BOOL EEVirtualFree(LPVOID lpAddress, SIZE_T dwSize, DWORD dwFreeType) { } CONTRACTL_END; - BOOL retVal = FALSE; - - { -#ifdef _DEBUG - GlobalAllocStore::RemoveAlloc (lpAddress); -#endif - - retVal = (BOOL)(BYTE)::VirtualFree (lpAddress, dwSize, dwFreeType); - } - - return retVal; + return (BOOL)(BYTE)::VirtualFree (lpAddress, dwSize, dwFreeType); } #define VirtualFree(lpAddress, dwSize, dwFreeType) Dont_Use_VirtualFree(lpAddress, dwSize, dwFreeType) @@ -408,7 +217,6 @@ LPVOID EEHeapAlloc(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes) *((HANDLE*)p) = hHeap; p = (BYTE*)p + OS_HEAP_ALIGN; } - GlobalAllocStore::AddAlloc (p); #else p = ::HeapAlloc (hHeap, dwFlags, dwBytes); #endif @@ -455,8 +263,6 @@ BOOL EEHeapFree(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem) { #ifdef _DEBUG - GlobalAllocStore::RemoveAlloc (lpMem); - if (lpMem != NULL) { // Check the heap handle to detect heap contamination diff --git a/src/vm/jithelpers.cpp b/src/vm/jithelpers.cpp index 0144d96..04de717 100644 --- a/src/vm/jithelpers.cpp +++ b/src/vm/jithelpers.cpp @@ -4828,11 +4828,6 @@ HCIMPL1(void, IL_Throw, Object* obj) } else { // We know that the object derives from System.Exception - if (g_CLRPolicyRequested && - oref->GetMethodTable() == g_pOutOfMemoryExceptionClass) - { - EEPolicy::HandleOutOfMemory(); - } // If the flag indicating ForeignExceptionRaise has been set, // then do not clear the "_stackTrace" field of the exception object. @@ -4882,12 +4877,6 @@ HCIMPL0(void, IL_Rethrow) OBJECTREF throwable = GetThread()->GetThrowable(); if (throwable != NULL) { - if (g_CLRPolicyRequested && - throwable->GetMethodTable() == g_pOutOfMemoryExceptionClass) - { - EEPolicy::HandleOutOfMemory(); - } - RaiseTheExceptionInternalOnly(throwable, TRUE); } else diff --git a/src/vm/stdinterfaces.cpp b/src/vm/stdinterfaces.cpp index 285f65f..1a9d0e2 100644 --- a/src/vm/stdinterfaces.cpp +++ b/src/vm/stdinterfaces.cpp @@ -26,7 +26,6 @@ #include "field.h" #include "threads.h" #include "interoputil.h" -#include "tlbexport.h" #include "comdelegate.h" #include "olevariant.h" #include "eeconfig.h" diff --git a/src/vm/stdinterfaces.h b/src/vm/stdinterfaces.h index aa79d72..3ac0d5e 100644 --- a/src/vm/stdinterfaces.h +++ b/src/vm/stdinterfaces.h @@ -48,7 +48,6 @@ public: class Assembly; class Module; class MethodTable; -struct ITypeLibExporterNotifySink; typedef HRESULT (__stdcall* PCOMFN)(void); @@ -62,16 +61,6 @@ typedef HRESULT (__stdcall* PCOMFN)(void); extern BYTE g_UnmarshalSecret[sizeof(GUID)]; extern bool g_fInitedUnmarshalSecret; -struct ExportTypeLibFromLoadedAssembly_Args -{ - Assembly* pAssembly; - LPCWSTR szTlb; - ITypeLib** ppTlb; - ITypeLibExporterNotifySink* pINotify; - int flags; - HRESULT hr; -}; - // make sure to keep the following enum and the g_stdVtables array in sync enum Enum_StdInterfaces { diff --git a/src/vm/stdinterfaces_wrapper.cpp b/src/vm/stdinterfaces_wrapper.cpp index cf0b1e6..429fef9 100644 --- a/src/vm/stdinterfaces_wrapper.cpp +++ b/src/vm/stdinterfaces_wrapper.cpp @@ -25,7 +25,6 @@ #include "field.h" #include "threads.h" #include "interoputil.h" -#include "tlbexport.h" #include "comdelegate.h" #include "olevariant.h" #include "eeconfig.h" diff --git a/src/vm/tlbexport.h b/src/vm/tlbexport.h deleted file mode 100644 index 32db10b..0000000 --- a/src/vm/tlbexport.h +++ /dev/null @@ -1,484 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -//=========================================================================== -// File: TlbExport.h -// - -// -// Notes: Create a TypeLib from COM+ metadata. -//--------------------------------------------------------------------------- - - -#ifndef FEATURE_COMINTEROP -#error FEATURE_COMINTEROP is required for this file -#endif // FEATURE_COMINTEROP - -class ITypeCreateTypeLib2; -struct ICreateTypeInfo2; -struct ITypeInfo; -struct ITypeLibExporterNotifySink; - -class CDescPool; -struct ComMTMethodProps; -class ComMTMemberInfoMap; - -static LPCSTR szVariantClassFullQual = g_VariantClassName; - -//************************************************************************* -// Helper functions. -//************************************************************************* -HRESULT Utf2Quick( - LPCUTF8 pStr, // The string to convert. - CQuickArray &rStr, // The QuickArray to convert it into. - int iCurLen = 0); // Inital characters in the array to leave (default 0). - -//***************************************************************************** -// Signature utilities. -//***************************************************************************** -class MetaSigExport : public MetaSig -{ -public: - MetaSigExport(MethodDesc *pMD) : - MetaSig(pMD) - { - WRAPPER_NO_CONTRACT; - } - - BOOL IsVbRefType() - { - CONTRACT (BOOL) - { - NOTHROW; - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACT_END; - - // Get the arg, and skip decorations. - SigPointer pt = GetArgProps(); - CorElementType mt; - if (FAILED(pt.PeekElemType(&mt))) - return FALSE; - - while (mt == ELEMENT_TYPE_BYREF || mt == ELEMENT_TYPE_PTR) - { - // Eat the one just examined, and peek at the next one. - if (FAILED(pt.GetElemType(NULL)) || FAILED(pt.PeekElemType(&mt))) - return FALSE; - } - - // Is it just Object? - if (mt == ELEMENT_TYPE_OBJECT) - RETURN TRUE; - - // A particular class? - if (mt == ELEMENT_TYPE_CLASS) - { - // Exclude "string". - if (pt.IsStringType(m_pModule, GetSigTypeContext())) - RETURN FALSE; - RETURN TRUE; - } - - // A particular valuetype? - if (mt == ELEMENT_TYPE_VALUETYPE) - { - // Include "variant". - if (pt.IsClass(m_pModule, szVariantClassFullQual, GetSigTypeContext())) - RETURN TRUE; - RETURN FALSE; - } - - // An array, a string, or POD. - RETURN FALSE; - } -}; // class MetaSigExport : public MetaSig - - -//************************************************************************* -// Class to convert COM+ metadata to a TypeLib. -//************************************************************************* -class TypeLibExporter -{ -private: - class CExportedTypesInfo - { - public: - MethodTable* pClass; // The class being exported. - ICreateTypeInfo2* pCTI; // The ICreateTypeInfo2 for the EE class. - ICreateTypeInfo2* pCTIClassItf; // The ICreateTypeInfo2 for the IClassX. - TYPEKIND tkind; // Typekind of the exported class. - bool bAutoProxy; // If true, oleaut32 is the interface's proxy. - }; - - class CExportedTypesHash : public CClosedHashEx - { - protected: - friend class CSortByToken; - friend class CSortByName; - - class CSortByToken : public CQuickSort - { - public: - CSortByToken(CExportedTypesInfo **pBase, int iCount) : - CQuickSort(pBase, iCount) - { - WRAPPER_NO_CONTRACT; - } - virtual int Compare(CExportedTypesInfo **ps1, CExportedTypesInfo **ps2); - }; - - class CSortByName : public CQuickSort - { - public: - CSortByName(CExportedTypesInfo **pBase, int iCount) : - CQuickSort(pBase, iCount) - { - WRAPPER_NO_CONTRACT; - } - virtual int Compare(CExportedTypesInfo **ps1, CExportedTypesInfo **ps2); - }; - - public: - typedef CClosedHashEx Base; - typedef CExportedTypesInfo T; - - CExportedTypesHash() : - Base(1009), - m_iCount(0), - m_Array(NULL) - { - WRAPPER_NO_CONTRACT; - } - - ~CExportedTypesHash() - { - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACTL_END; - Clear(); - delete[] m_Array; - } - - virtual void Clear(); - - unsigned int Hash(const T *pData); - unsigned int Compare(const T *p1, T *p2); - ELEMENTSTATUS Status(T *p); - void SetStatus(T *p, ELEMENTSTATUS s); - void* GetKey(T *p); - - //@todo: move to CClosedHashEx - T* GetFirst() - { - WRAPPER_NO_CONTRACT; - return (T*)CClosedHashBase::GetFirst(); - } - T* GetNext(T*prev) - { - WRAPPER_NO_CONTRACT; - return (T*)CClosedHashBase::GetNext((BYTE*)prev); - } - - void InitArray(); - void UpdateArray(); - - T* operator[](ULONG ix) - { - CONTRACT (T*) - { - NOTHROW; - GC_NOTRIGGER; - MODE_ANY; - PRECONDITION(ix < m_iCount); - POSTCONDITION(CheckPointer(RETVAL)); - } - CONTRACT_END; - - RETURN m_Array[ix]; - } - int Count() - { - LIMITED_METHOD_CONTRACT; - return m_iCount; - } - - void SortByName(); - void SortByToken(); - - protected: - CExportedTypesInfo** m_Array; - ULONG m_iCount; - }; - -protected: - struct CErrorContext; - - class CHrefOfTIHashKey - { - public: - ITypeInfo* pITI; - HREFTYPE href; - }; - - class CHrefOfTIHash : public CClosedHash - { - public: - typedef CHrefOfTIHashKey T; - - CHrefOfTIHash() : - CClosedHash(101) - { - WRAPPER_NO_CONTRACT; - } - ~CHrefOfTIHash() - { - CONTRACTL { NOTHROW; } CONTRACTL_END; - Clear(); - } - - virtual void Clear(); - - unsigned int Hash(const T *pData); - unsigned int Hash(const void *pData) - { - WRAPPER_NO_CONTRACT; - return Hash((const T*)pData); - } - - unsigned int Compare(const T *p1, T *p2); - unsigned int Compare(const void *p1, BYTE *p2) - { - WRAPPER_NO_CONTRACT; - return Compare((const T*)p1, (T*)p2); - } - - ELEMENTSTATUS Status(T *p); - ELEMENTSTATUS Status(BYTE *p) - { - WRAPPER_NO_CONTRACT; - return Status((T*)p); - } - - void SetStatus(T *p, ELEMENTSTATUS s); - void SetStatus(BYTE *p, ELEMENTSTATUS s) - { - WRAPPER_NO_CONTRACT; - SetStatus((T*)p, s); - } - - void *GetKey(T *p); - void* GetKey(BYTE *p) - { - WRAPPER_NO_CONTRACT; - return GetKey((T*)p); - } - }; - - class CHrefOfClassHashKey - { - public: - MethodTable* pClass; - HREFTYPE href; - }; - - class CHrefOfClassHash : public CClosedHash - { - public: - typedef CHrefOfClassHashKey T; - - CHrefOfClassHash() : - CClosedHash(101) - { - WRAPPER_NO_CONTRACT; - } - ~CHrefOfClassHash() - { - WRAPPER_NO_CONTRACT; - Clear(); - } - - virtual void Clear(); - - unsigned int Hash(const T *pData); - unsigned int Hash(const void *pData) - { - WRAPPER_NO_CONTRACT; - return Hash((const T*)pData); - } - - - unsigned int Compare(const T *p1, T *p2); - unsigned int Compare(const void *p1, BYTE *p2) - { - WRAPPER_NO_CONTRACT; - return Compare((const T*)p1, (T*)p2); - } - - - ELEMENTSTATUS Status(T *p); - ELEMENTSTATUS Status(BYTE *p) - { - WRAPPER_NO_CONTRACT; - return Status((T*)p); - } - - - void SetStatus(T *p, ELEMENTSTATUS s); - void SetStatus(BYTE *p, ELEMENTSTATUS s) - { - WRAPPER_NO_CONTRACT; - SetStatus((T*)p, s); - } - - - void *GetKey(T *p); - void* GetKey(BYTE *p) - { - WRAPPER_NO_CONTRACT; - return GetKey((T*)p); - } - }; - - struct CErrorContext - { - CErrorContext() : - m_prev(0), - m_szAssembly(0), - m_tkType(mdTypeDefNil), - m_pScope(0), - m_szMember(0), - m_szParam(0), - m_ixParam(-1) - { - LIMITED_METHOD_CONTRACT; - } - - // The following variables hold context info for error reporting. - CErrorContext* m_prev; // A previous context. - LPCUTF8 m_szAssembly; // Current assembly name. - mdToken m_tkType; // Current type's metadata token. - IMDInternalImport *m_pScope; // Current type's scope. - LPCUTF8 m_szMember; // Current member's name. - LPCUTF8 m_szParam; // Current param's name. - int m_ixParam; // Current param index. - }; - -public: - TypeLibExporter(); - ~TypeLibExporter(); - - void Convert(Assembly *pAssembly, LPCWSTR szTlbName, ITypeLibExporterNotifySink *pNotify=0, int flags=0); - void LayOut(); - HRESULT GetTypeLib(REFGUID iid, IUnknown **ppTlb); - void ReleaseResources(); - -protected: - void PreLoadNames(); - - void UpdateBitness(Assembly* pAssembly); - HRESULT CheckBitness(Assembly* pAssembly); - - // TypeLib emit functions. - HRESULT TokenToHref(ICreateTypeInfo2 *pTI, MethodTable *pClass, mdToken tk, BOOL bWarnOnUsingIUnknown, HREFTYPE *pHref); - void GetWellKnownInterface(MethodTable *pClass, ITypeInfo **ppTI); - HRESULT EEClassToHref(ICreateTypeInfo2 *pTI, MethodTable *pClass, BOOL bWarnOnUsingIUnknown, HREFTYPE *pHref); - void StdOleTypeToHRef(ICreateTypeInfo2 *pCTI, REFGUID rGuid, HREFTYPE *pHref); - void ExportReferencedAssembly(Assembly *pAssembly); - - // Metadata import functions. - void AddModuleTypes(Module *pModule); - void AddAssemblyTypes(Assembly *pAssembly); - - void ConvertAllTypeDefs(); - HRESULT ConvertOneTypeDef(MethodTable *pClass); - - HRESULT GetTypeLibImportClassName(MethodTable *pClass, SString& pszName); - - void CreateITypeInfo(CExportedTypesInfo *pData, bool bNamespace=false, bool bResolveDup=true); - void CreateIClassXITypeInfo(CExportedTypesInfo *pData, bool bNamespace=false, bool bResolveDup=true); - void ConvertImplTypes(CExportedTypesInfo *pData); - void ConvertDetails(CExportedTypesInfo *pData); - - void ConvertInterfaceImplTypes(ICreateTypeInfo2 *pICTI, MethodTable *pClass); - void ConvertInterfaceDetails(ICreateTypeInfo2 *pICTI, MethodTable *pClass, int bAutoProxy); - void ConvertRecord(CExportedTypesInfo *pData); - void ConvertRecordBaseClass(CExportedTypesInfo *pData, MethodTable *pSubClass, ULONG &ixVar); - void ConvertEnum(ICreateTypeInfo2 *pICTI, MethodTable *pClass); - void ConvertClassImplTypes(ICreateTypeInfo2 *pICTI, ICreateTypeInfo2 *pIDefault, MethodTable *pClass); - void ConvertClassDetails(ICreateTypeInfo2 *pICTI, ICreateTypeInfo2 *pIDefault, MethodTable *pClass, int bAutoProxy); - - BOOL HasDefaultCtor(MethodTable *pMT); - - void ConvertIClassX(ICreateTypeInfo2 *pICTI, MethodTable *pClass, int bAutoProxy); - BOOL ConvertMethod(ICreateTypeInfo2 *pTI, ComMTMethodProps *pProps, ULONG iMD, ULONG ulIface); - BOOL ConvertFieldAsMethod(ICreateTypeInfo2 *pTI, ComMTMethodProps *pProps, ULONG iMD); - BOOL ConvertVariable(ICreateTypeInfo2 *pTI, MethodTable *pClass, mdFieldDef md, SString& sName, ULONG iMD); - BOOL ConvertEnumMember(ICreateTypeInfo2 *pTI, MethodTable *pClass, mdFieldDef md, SString& sName, ULONG iMD); - - // Error/status functions. - void InternalThrowHRWithContext(HRESULT hr, ...); - void FormatErrorContextString(CErrorContext *pContext, SString *pOut); - void FormatErrorContextString(SString *pOut); - void ReportError(HRESULT hr); - void ReportEvent(int ev, int hr, ...); - void ReportWarning(HRESULT hrReturn, HRESULT hrRpt, ...); - void PostClassLoadError(LPCUTF8 pszName, SString& message); - - // Utility functions. - void ClassHasIClassX(MethodTable *pClass, CorClassIfaceAttr *pRslt); - MethodTable * LoadClass(Module *pModule, mdToken tk); - TypeHandle LoadClass(Module *pModule, LPCUTF8 pszName); - HRESULT CorSigToTypeDesc(ICreateTypeInfo2 *pTI, MethodTable *pClass, PCCOR_SIGNATURE pbSig, PCCOR_SIGNATURE pbNativeSig, ULONG cbNativeSig, - ULONG *cbElem, TYPEDESC *ptdesc, CDescPool *ppool, BOOL bMethodSig, BOOL *pbByRef=0); - BOOL IsVbRefType(PCCOR_SIGNATURE pbSig, IMDInternalImport *pInternalImport); - - BOOL IsExportingAs64Bit(); - - void ArrayToTypeDesc(ICreateTypeInfo2 *pCTI, CDescPool *ppool, ArrayMarshalInfo *pArrayMarshalInfo, TYPEDESC *pElementTypeDesc); - - VARTYPE GetVtForIntPtr(); - VARTYPE GetVtForUIntPtr(); - - //BOOL ValidateSafeArrayElemVT(VARTYPE vt); - - BOOL GetDescriptionString(MethodTable *pClass, mdToken tk, BSTR &bstrDescr); - BOOL GetStringCustomAttribute(IMDInternalImport *pImport, LPCSTR szName, mdToken tk, BSTR &bstrDescr); - - BOOL GetAutomationProxyAttribute(IMDInternalImport *pImport, mdToken tk, int *bValue); - - TYPEKIND TKindFromClass(MethodTable *pClass); - -protected: - void GetRefTypeInfo(ICreateTypeInfo2 *pContainer, ITypeInfo *pReferenced, HREFTYPE *pHref); - - CHrefOfTIHash m_HrefHash; // Hashed table of HREFTYPEs of ITypeInfos - CHrefOfClassHash m_HrefOfClassHash; // Hashed table of HREFTYPEs of ITypeInfos - CErrorContext m_ErrorContext; - -private: - ClassLoader* m_pLoader; // Domain where the Module being converted was loaded - ITypeInfo* m_pIUnknown; // TypeInfo for IUnknown. - HREFTYPE m_hIUnknown; // href for IUnknown. - ITypeInfo* m_pIDispatch; // TypeInfo for IDispatch. - ITypeInfo* m_pGuid; // TypeInfo for GUID. - - ITypeLibExporterNotifySink* m_pNotify; // Notification callback. - - ICreateTypeLib2* m_pICreateTLB; // The created typelib. - - int m_flags; // Conversion flags. - int m_bAutomationProxy; // Should interfaces be marked such that oleaut32 is the proxy? - int m_bWarnedOfNonPublic; - - CExportedTypesHash m_Exports; - CExportedTypesHash m_InjectedExports; -}; - - -// eof ------------------------------------------------------------------------ diff --git a/src/vm/typeparse.cpp b/src/vm/typeparse.cpp index 34bf964..9db4e8c 100644 --- a/src/vm/typeparse.cpp +++ b/src/vm/typeparse.cpp @@ -18,122 +18,6 @@ #include "assemblynative.hpp" #include "fstring.h" -// -// TypeNameFactory -// -HRESULT STDMETHODCALLTYPE TypeNameFactory::QueryInterface(REFIID riid, void **ppUnk) -{ - WRAPPER_NO_CONTRACT; - - *ppUnk = 0; - - if (riid == IID_IUnknown) - *ppUnk = (IUnknown *)this; - else if (riid == IID_ITypeNameFactory) - *ppUnk = (ITypeNameFactory*)this; - else - return (E_NOINTERFACE); - - AddRef(); - return S_OK; -} - -HRESULT TypeNameFactoryCreateObject(REFIID riid, void **ppUnk) -{ - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - } - CONTRACTL_END; - - HRESULT hr = S_OK; - - TypeNameFactory *pTypeNameFactory = new (nothrow) TypeNameFactory(); - - if (!pTypeNameFactory) - return (E_OUTOFMEMORY); - - hr = pTypeNameFactory->QueryInterface(riid, ppUnk); - - if (FAILED(hr)) - delete pTypeNameFactory; - - return hr; -} - - -HRESULT STDMETHODCALLTYPE TypeNameFactory::ParseTypeName(LPCWSTR szTypeName, DWORD* pError, ITypeName** ppTypeName) -{ - CONTRACTL - { - WRAPPER(THROWS); - }CONTRACTL_END; - - if (!ppTypeName || !pError) - return E_INVALIDARG; - - HRESULT hr = S_OK; - - *ppTypeName = NULL; - *pError = (DWORD)-1; - - ITypeName* pTypeName = new (nothrow) TypeName(szTypeName, pError); - - if (! pTypeName) - { - hr = E_OUTOFMEMORY; - } - else - { - pTypeName->AddRef(); - - if (*pError != (DWORD)-1) - { - pTypeName->Release(); - hr = S_FALSE; - } - else - { - *ppTypeName = pTypeName; - } - } - - return hr; -} - -HRESULT STDMETHODCALLTYPE TypeNameFactory::GetTypeNameBuilder(ITypeNameBuilder** ppTypeNameBuilder) -{ - CONTRACTL - { - THROWS; // operator new has EX_TRY/EX_CATCH or other contract transitions(s) - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACTL_END; - - if (!ppTypeNameBuilder) - return E_INVALIDARG; - - *ppTypeNameBuilder = NULL; - - HRESULT hr = S_OK; - - ITypeNameBuilder* pTypeNameBuilder = new (nothrow) TypeNameBuilderWrapper(); - - if (pTypeNameBuilder) - { - pTypeNameBuilder->AddRef(); - - *ppTypeNameBuilder = pTypeNameBuilder; - } - else - { - hr = E_OUTOFMEMORY; - } - - return hr; -} // // TypeName @@ -153,7 +37,7 @@ SString* TypeName::ToString(SString* pBuf, BOOL bAssemblySpec, BOOL bSignature, } -DWORD STDMETHODCALLTYPE TypeName::AddRef() +DWORD TypeName::AddRef() { LIMITED_METHOD_CONTRACT; @@ -162,7 +46,7 @@ DWORD STDMETHODCALLTYPE TypeName::AddRef() return m_count; } -DWORD STDMETHODCALLTYPE TypeName::Release() +DWORD TypeName::Release() { CONTRACTL { @@ -193,149 +77,6 @@ TypeName::~TypeName() m_genericArguments[i]->Release(); } -HRESULT STDMETHODCALLTYPE TypeName::QueryInterface(REFIID riid, void **ppUnk) -{ - WRAPPER_NO_CONTRACT; - - *ppUnk = 0; - - if (riid == IID_IUnknown) - *ppUnk = (IUnknown *)this; - else if (riid == IID_ITypeName) - *ppUnk = (ITypeName*)this; - else - return (E_NOINTERFACE); - - AddRef(); - return S_OK; -} - -HRESULT STDMETHODCALLTYPE TypeName::GetNameCount(DWORD* pCount) -{ - WRAPPER_NO_CONTRACT; - - if (!pCount) - return E_INVALIDARG; - - *pCount = m_names.GetCount(); - - return S_OK; -} - -HRESULT STDMETHODCALLTYPE TypeName::GetNames(DWORD count, BSTR* bszName, DWORD* pFetched) -{ - CONTRACTL - { - WRAPPER(THROWS); - }CONTRACTL_END; - - HRESULT hr = S_OK; - - if (!pFetched) - return E_INVALIDARG; - - *pFetched = m_names.GetCount(); - - if (m_names.GetCount() > count) - return S_FALSE; - - if (!bszName) - return E_INVALIDARG; - - for (COUNT_T i = 0; i < m_names.GetCount(); i ++) - bszName[i] = SysAllocString(m_names[i]->GetUnicode()); - - return hr; -} - -HRESULT STDMETHODCALLTYPE TypeName::GetTypeArgumentCount(DWORD* pCount) -{ - WRAPPER_NO_CONTRACT; - - if (!pCount) - return E_INVALIDARG; - - *pCount = m_genericArguments.GetCount(); - - return S_OK; -} - -HRESULT STDMETHODCALLTYPE TypeName::GetTypeArguments(DWORD count, ITypeName** ppArguments, DWORD* pFetched) -{ - WRAPPER_NO_CONTRACT; - - if (!pFetched) - return E_INVALIDARG; - - *pFetched = m_genericArguments.GetCount(); - - if (m_genericArguments.GetCount() > count) - return S_FALSE; - - if (!ppArguments) - return E_INVALIDARG; - - for (COUNT_T i = 0; i < m_genericArguments.GetCount(); i ++) - { - ppArguments[i] = m_genericArguments[i]; - m_genericArguments[i]->AddRef(); - } - - return S_OK; -} - -HRESULT STDMETHODCALLTYPE TypeName::GetModifierLength(DWORD* pCount) -{ - WRAPPER_NO_CONTRACT; - - if (pCount == NULL) - return E_INVALIDARG; - - *pCount = m_signature.GetCount(); - - return S_OK; -} - -HRESULT STDMETHODCALLTYPE TypeName::GetModifiers(DWORD count, DWORD* pModifiers, DWORD* pFetched) -{ - WRAPPER_NO_CONTRACT; - - if (!pFetched) - return E_INVALIDARG; - - *pFetched = m_signature.GetCount(); - - if (m_signature.GetCount() > count) - return S_FALSE; - - if (!pModifiers) - return E_INVALIDARG; - - for (COUNT_T i = 0; i < m_signature.GetCount(); i ++) - pModifiers[i] = m_signature[i]; - - return S_OK; -} - -HRESULT STDMETHODCALLTYPE TypeName::GetAssemblyName(BSTR* pszAssemblyName) -{ - CONTRACTL - { - WRAPPER(THROWS); - }CONTRACTL_END; - - HRESULT hr = S_OK; - - if (pszAssemblyName == NULL) - return E_INVALIDARG; - - *pszAssemblyName = SysAllocString(m_assembly.GetUnicode()); - if (*pszAssemblyName == NULL) - hr = E_OUTOFMEMORY; - - return hr; -} - #if!defined(CROSSGEN_COMPILE) SAFEHANDLE TypeName::GetSafeHandle() { diff --git a/src/vm/typeparse.h b/src/vm/typeparse.h index 171a22c..cf592d4 100644 --- a/src/vm/typeparse.h +++ b/src/vm/typeparse.h @@ -52,34 +52,7 @@ DomainAssembly * LoadDomainAssembly( BOOL bThrowIfNotFound, SString * pssOuterTypeName); -class TypeNameFactory : public ITypeNameFactory -{ -public: - static HRESULT CreateObject(REFIID riid, void **ppUnk); - -public: - virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppUnk); - virtual ULONG STDMETHODCALLTYPE AddRef() { LIMITED_METHOD_CONTRACT; m_count++; return m_count; } - virtual ULONG STDMETHODCALLTYPE Release() { LIMITED_METHOD_CONTRACT; SUPPORTS_DAC_HOST_ONLY; m_count--; ULONG count = m_count; if (count == 0) delete this; return count; } - -public: - virtual HRESULT STDMETHODCALLTYPE ParseTypeName(LPCWSTR szName, DWORD* pError, ITypeName** ppTypeName); - virtual HRESULT STDMETHODCALLTYPE GetTypeNameBuilder(ITypeNameBuilder** ppTypeBuilder); - -public: - TypeNameFactory() : m_count(0) - { - WRAPPER_NO_CONTRACT; - SString::Startup(); - } - - virtual ~TypeNameFactory() {} - -private: - DWORD m_count; -}; - -class TypeName : public ITypeName +class TypeName { private: template @@ -282,21 +255,11 @@ private: TypeNameTokens m_nextToken; }; friend class TypeName::TypeNameParser; - -public: - virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppUnk); - virtual ULONG STDMETHODCALLTYPE AddRef(); - virtual ULONG STDMETHODCALLTYPE Release(); public: - virtual HRESULT STDMETHODCALLTYPE GetNameCount(DWORD* pCount); - virtual HRESULT STDMETHODCALLTYPE GetNames(DWORD count, BSTR* rgbszNames, DWORD* pFetched); - virtual HRESULT STDMETHODCALLTYPE GetTypeArgumentCount(DWORD* pCount); - virtual HRESULT STDMETHODCALLTYPE GetTypeArguments(DWORD count, ITypeName** rgpArguments, DWORD* pFetched); - virtual HRESULT STDMETHODCALLTYPE GetModifierLength(DWORD* pCount); - virtual HRESULT STDMETHODCALLTYPE GetModifiers(DWORD count, DWORD* rgModifiers, DWORD* pFetched); - virtual HRESULT STDMETHODCALLTYPE GetAssemblyName(BSTR* rgbszAssemblyNames); - + ULONG AddRef(); + ULONG Release(); + public: TypeName(LPCWSTR szTypeName, DWORD* pError) : m_bIsGenericArgument(FALSE), m_count(0) { diff --git a/src/vm/typestring.cpp b/src/vm/typestring.cpp index bdf8cd9..bc7737e 100644 --- a/src/vm/typestring.cpp +++ b/src/vm/typestring.cpp @@ -1388,218 +1388,3 @@ bool TypeString::ContainsReservedChar(LPCWSTR pTypeName) return false; } - -HRESULT STDMETHODCALLTYPE TypeNameBuilderWrapper::QueryInterface(REFIID riid, void **ppUnk) -{ - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACTL_END; - - *ppUnk = 0; - - if (riid == IID_IUnknown) - *ppUnk = (IUnknown *)this; - else if (riid == IID_ITypeNameBuilder) - *ppUnk = (ITypeNameBuilder*)this; - else - return (E_NOINTERFACE); - - AddRef(); - return S_OK; -} - -ULONG STDMETHODCALLTYPE TypeNameBuilderWrapper::AddRef() -{ - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACTL_END; - - return InterlockedIncrement(&m_ref); -} - -ULONG STDMETHODCALLTYPE TypeNameBuilderWrapper::Release() -{ - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - MODE_ANY; - SUPPORTS_DAC_HOST_ONLY; - } - CONTRACTL_END; - - LONG ref = 0; - - ref = InterlockedDecrement(&m_ref); - if (ref == 0) - delete this; - - return ref; -} - - -HRESULT STDMETHODCALLTYPE TypeNameBuilderWrapper::OpenGenericArguments() -{ - CONTRACTL - { - THROWS; - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACTL_END; - - HRESULT hr; - hr = m_tnb.OpenGenericArguments(); - return hr; -} - -HRESULT STDMETHODCALLTYPE TypeNameBuilderWrapper::CloseGenericArguments() -{ - CONTRACTL - { - THROWS; - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACTL_END; - - HRESULT hr; - hr = m_tnb.CloseGenericArguments(); - return hr; -} - -HRESULT STDMETHODCALLTYPE TypeNameBuilderWrapper::OpenGenericArgument() -{ - CONTRACTL - { - THROWS; - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACTL_END; - - HRESULT hr; - hr = m_tnb.OpenGenericArgument(); - return hr; -} - -HRESULT STDMETHODCALLTYPE TypeNameBuilderWrapper::CloseGenericArgument() -{ - CONTRACTL - { - THROWS; - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACTL_END; - - HRESULT hr; - hr = m_tnb.CloseGenericArgument(); - return hr; -} - -HRESULT STDMETHODCALLTYPE TypeNameBuilderWrapper::AddName(LPCWSTR szName) -{ - CONTRACTL - { - THROWS; - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACTL_END; - - return m_tnb.AddName(szName); -} - -HRESULT STDMETHODCALLTYPE TypeNameBuilderWrapper::AddPointer() -{ - CONTRACTL - { - THROWS; - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACTL_END; - - return m_tnb.AddPointer(); -} - -HRESULT STDMETHODCALLTYPE TypeNameBuilderWrapper::AddByRef() -{ - CONTRACTL - { - THROWS; - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACTL_END; - - return m_tnb.AddByRef(); -} - -HRESULT STDMETHODCALLTYPE TypeNameBuilderWrapper::AddSzArray() -{ - CONTRACTL - { - THROWS; - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACTL_END; - - return m_tnb.AddSzArray(); -} - -HRESULT STDMETHODCALLTYPE TypeNameBuilderWrapper::AddArray(DWORD rank) -{ - CONTRACTL - { - THROWS; - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACTL_END; - - return m_tnb.AddArray(rank); -} - -HRESULT STDMETHODCALLTYPE TypeNameBuilderWrapper::AddAssemblySpec(LPCWSTR szAssemblySpec) -{ - CONTRACTL - { - THROWS; - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACTL_END; - - return m_tnb.AddAssemblySpec(szAssemblySpec); -} - -HRESULT STDMETHODCALLTYPE TypeNameBuilderWrapper::ToString(BSTR* pszStringRepresentation) -{ - WRAPPER_NO_CONTRACT; - - return m_tnb.ToString(pszStringRepresentation); -} - -HRESULT STDMETHODCALLTYPE TypeNameBuilderWrapper::Clear() -{ - CONTRACTL - { - THROWS; - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACTL_END; - - return m_tnb.Clear(); -} diff --git a/src/vm/typestring.h b/src/vm/typestring.h index 0ddec87..4b75b84 100644 --- a/src/vm/typestring.h +++ b/src/vm/typestring.h @@ -28,13 +28,10 @@ #include "typeparse.h" #include "field.h" -class TypeLibExporter; class TypeString; class TypeNameBuilder { - friend class TypeNameBuilderWrapper; - public: static void QCALLTYPE _ReleaseTypeNameBuilder(TypeNameBuilder * pTnb); static TypeNameBuilder * QCALLTYPE _CreateTypeNameBuilder(); @@ -148,36 +145,6 @@ private: Stack m_stack; }; -// Class that's exposed to COM and wraps TypeNameBuilder (so that it can thunk -// all the entry points in order to perform stack probes). -class TypeNameBuilderWrapper : public ITypeNameBuilder -{ -public: - virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppUnk); - virtual ULONG STDMETHODCALLTYPE AddRef(); - virtual ULONG STDMETHODCALLTYPE Release(); - - virtual HRESULT STDMETHODCALLTYPE OpenGenericArguments(); - virtual HRESULT STDMETHODCALLTYPE CloseGenericArguments(); - virtual HRESULT STDMETHODCALLTYPE OpenGenericArgument(); - virtual HRESULT STDMETHODCALLTYPE CloseGenericArgument(); - virtual HRESULT STDMETHODCALLTYPE AddName(LPCWSTR szName); - virtual HRESULT STDMETHODCALLTYPE AddPointer(); - virtual HRESULT STDMETHODCALLTYPE AddByRef(); - virtual HRESULT STDMETHODCALLTYPE AddSzArray(); - virtual HRESULT STDMETHODCALLTYPE AddArray(DWORD rank); - virtual HRESULT STDMETHODCALLTYPE AddAssemblySpec(LPCWSTR szAssemblySpec); - virtual HRESULT STDMETHODCALLTYPE ToString(BSTR* pszStringRepresentation); - virtual HRESULT STDMETHODCALLTYPE Clear(); - - TypeNameBuilderWrapper() : m_ref(0) { WRAPPER_NO_CONTRACT; } - virtual ~TypeNameBuilderWrapper() {} - -private: - LONG m_ref; - TypeNameBuilder m_tnb; -}; - // -------------------------------------------------------------------------- // This type can generate names for types. It is used by reflection methods // like System.RuntimeType.RuntimeTypeCache.ConstructName @@ -249,7 +216,6 @@ public: #endif private: - friend class TypeLibExporter; friend class TypeNameBuilder; static void AppendMethodImpl(SString& s, MethodDesc *pMD, Instantiation typeInstantiation, const DWORD format); static void AppendTypeDef(TypeNameBuilder& tnb, IMDInternalImport *pImport, mdTypeDef td, DWORD format = FormatNamespace); diff --git a/src/vm/util.hpp b/src/vm/util.hpp index 06afda6..2bbca2c 100644 --- a/src/vm/util.hpp +++ b/src/vm/util.hpp @@ -735,10 +735,6 @@ typedef Wrapper PALPEFileHolder; void GetProcessMemoryLoad(LPMEMORYSTATUSEX pMSEX); -void ProcessEventForHost(EClrEvent event, void *data); -void ProcessSOEventForHost(EXCEPTION_POINTERS *pExceptionInfo, BOOL fInSoTolerant); -BOOL IsHostRegisteredForEvent(EClrEvent event); - #define SetupThreadForComCall(OOMRetVal) \ MAKE_CURRENT_THREAD_AVAILABLE_EX(GetThreadNULLOk()); \ if (CURRENT_THREAD == NULL) \