Cleanup unused hosting interfaces (#23091)
authorJan Kotas <jkotas@microsoft.com>
Thu, 7 Mar 2019 15:37:04 +0000 (07:37 -0800)
committerGitHub <noreply@github.com>
Thu, 7 Mar 2019 15:37:04 +0000 (07:37 -0800)
38 files changed:
src/debug/ee/debugger.cpp
src/debug/ee/debugger.h
src/inc/CMakeLists.txt
src/inc/MSCOREE.IDL
src/inc/corhost.h
src/inc/dacvars.h
src/inc/gchost.idl [deleted file]
src/inc/metahost.idl
src/inc/mscoreepriv.h [deleted file]
src/inc/utilcode.h
src/md/compiler/classfactory.cpp
src/pal/prebuilt/idl/gchost_i.cpp [deleted file]
src/pal/prebuilt/inc/gchost.h [deleted file]
src/pal/prebuilt/inc/metahost.h
src/pal/prebuilt/inc/mscoree.h
src/utilcode/util.cpp
src/vm/ceemain.cpp
src/vm/ceemain.h
src/vm/commtmemberinfomap.cpp
src/vm/corhost.cpp
src/vm/crossgencompile.cpp
src/vm/dbginterface.h
src/vm/dwbucketmanager.hpp
src/vm/eeconfig.cpp
src/vm/eeconfig.h
src/vm/eepolicy.cpp
src/vm/excep.cpp
src/vm/hosting.cpp
src/vm/jithelpers.cpp
src/vm/stdinterfaces.cpp
src/vm/stdinterfaces.h
src/vm/stdinterfaces_wrapper.cpp
src/vm/tlbexport.h [deleted file]
src/vm/typeparse.cpp
src/vm/typeparse.h
src/vm/typestring.cpp
src/vm/typestring.h
src/vm/util.hpp

index 86cd547..63aa8c2 100644 (file)
@@ -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
index 15299c0..3d3118e 100644 (file)
@@ -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:
     //
index c54b4f0..517ea8e 100644 (file)
@@ -6,7 +6,6 @@ set( CORGUIDS_IDL_SOURCES
   xclrdata.idl
   corprof.idl
   corpub.idl
-  gchost.idl
   mscorsvc.idl
   clrprivappxhosting.idl
   clrprivbinding.idl
index cfc0f6b..93e4042 100644 (file)
@@ -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")
index 3045dec..09ea994 100644 (file)
@@ -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(
index f4a04b2..fc5be15 100644 (file)
@@ -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 (file)
index 6d85f91..0000000
+++ /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
-{
-}
index 83f711a..b7c2e0b 100644 (file)
@@ -37,32 +37,15 @@ import "ocidl.idl";
 import "mscoree.idl";
 
 cpp_quote("#include <winapifamily.h>")
-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 <startup> 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. <policy>
-    // 4. ICLRRuntimeInfo::GetRuntimeDirectory
-    // 5. <modify the config file under the runtime dir>
-
-};  // 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 (file)
index df07612..0000000
+++ /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__
-
index cd84736..a3123ef 100644 (file)
@@ -4200,7 +4200,7 @@ void TrimWhiteSpace(__inout_ecount(*pcch)  LPCWSTR *pwsz, __inout LPDWORD pcch);
 HRESULT Utf2Quick(
     LPCUTF8     pStr,                   // The string to convert.
     CQuickArray<WCHAR> &rStr,           // The QuickArray<WCHAR> 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
index 338095a..af34970 100644 (file)
@@ -26,8 +26,6 @@
 
 #include "clrprivhosting.h"
 
-extern HRESULT TypeNameFactoryCreateObject(REFIID riid, void **ppUnk);
-
 #include <ndpversion.h>
 
 
diff --git a/src/pal/prebuilt/idl/gchost_i.cpp b/src/pal/prebuilt/idl/gchost_i.cpp
deleted file mode 100644 (file)
index 32ecfbe..0000000
+++ /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 <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#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 (file)
index c9e4fff..0000000
+++ /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 <rpcndr.h> 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 <rpcndr.h>
-#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
-
-
index aa6c78c..aae25d7 100644 (file)
@@ -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 <winapifamily.h>
-#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 */
index 13aab94..42a97c0 100644 (file)
@@ -22,7 +22,7 @@
 
 #ifndef __RPCNDR_H_VERSION__
 #error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
+#endif /* __RPCNDR_H_VERSION__ */
 
 #ifndef COM_NO_WINDOWS_H
 #include "windows.h"
 
 /* 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 */
 
index 9ebc401..d0a6035 100644 (file)
@@ -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
index 41b6fe0..e5267cf 100644 (file)
@@ -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;
index 451bbc5..2515256 100644 (file)
@@ -181,10 +181,6 @@ private:
     
 };
 
-#ifdef _DEBUG
-extern void DisableGlobalAllocStore ();
-#endif //_DEBUG 
-
 void SetLatchedExitCode (INT32 code);
 INT32 GetLatchedExitCode (void);
 
index 01904ef..e53cd2f 100644 (file)
@@ -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 
index 703e3a3..1a376f0 100644 (file)
@@ -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<BOOL> fOneOnly = 0;
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -1359,1068 +1299,16 @@ static Volatile<BOOL> 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<BucketParameterIndex>(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
index 1380c1f..d357bd7 100644 (file)
@@ -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;
index a75974a..13231c0 100644 (file)
@@ -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,
index 2e37e1b..0095eb6 100644 (file)
@@ -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);
 }
index a44f439..b5da7de 100644 (file)
@@ -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;
 }
 
index a63204f..dc6725f 100644 (file)
@@ -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.)
index ff61677..bba511a 100644 (file)
@@ -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);
 }
 
index f0b282b..8f5cc08 100644 (file)
@@ -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);
 }
 
index 720a691..5b44722 100644 (file)
 
 #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
index 0144d96..04de717 100644 (file)
@@ -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
index 285f65f..1a9d0e2 100644 (file)
@@ -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"
index aa79d72..3ac0d5e 100644 (file)
@@ -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
 {
index cf0b1e6..429fef9 100644 (file)
@@ -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 (file)
index 32db10b..0000000
+++ /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<WCHAR> &rStr,           // The QuickArray<WCHAR> 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<CExportedTypesInfo, CExportedTypesHash>
-    {
-    protected:
-        friend class CSortByToken;
-        friend class CSortByName;
-
-        class CSortByToken : public CQuickSort<CExportedTypesInfo*>
-        {
-        public:
-            CSortByToken(CExportedTypesInfo **pBase, int iCount) :
-                CQuickSort<CExportedTypesInfo*>(pBase, iCount)
-            {
-                WRAPPER_NO_CONTRACT;
-            }
-            virtual int Compare(CExportedTypesInfo **ps1, CExportedTypesInfo **ps2);
-        };
-        
-        class CSortByName : public CQuickSort<CExportedTypesInfo*>
-        {
-        public:
-            CSortByName(CExportedTypesInfo **pBase, int iCount) :
-                CQuickSort<CExportedTypesInfo*>(pBase, iCount)
-            {
-                WRAPPER_NO_CONTRACT;
-            }
-            virtual int Compare(CExportedTypesInfo **ps1, CExportedTypesInfo **ps2);
-        };
-
-    public:
-        typedef CClosedHashEx<CExportedTypesInfo, CExportedTypesHash> 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<class CHrefOfTIHashKey>
-    {
-    public:
-        typedef CHrefOfTIHashKey T;
-
-        CHrefOfTIHash() :
-            CClosedHash<class CHrefOfTIHashKey>(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<class CHrefOfClassHashKey>
-    {
-    public:
-        typedef CHrefOfClassHashKey T;
-
-        CHrefOfClassHash() :
-            CClosedHash<class CHrefOfClassHashKey>(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 ------------------------------------------------------------------------
index 34bf964..9db4e8c 100644 (file)
 #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()
 {
index 171a22c..cf592d4 100644 (file)
@@ -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<typename PRODUCT>
@@ -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) 
     {
index bdf8cd9..bc7737e 100644 (file)
@@ -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();
-}
index 0ddec87..4b75b84 100644 (file)
 #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);
index 06afda6..2bbca2c 100644 (file)
@@ -735,10 +735,6 @@ typedef Wrapper<void *, DoNothing, DoNothing> 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)                     \