diff options
Diffstat (limited to 'src/vm/mscorlib.h')
-rw-r--r-- | src/vm/mscorlib.h | 2225 |
1 files changed, 2225 insertions, 0 deletions
diff --git a/src/vm/mscorlib.h b/src/vm/mscorlib.h new file mode 100644 index 0000000000..291c6abd47 --- /dev/null +++ b/src/vm/mscorlib.h @@ -0,0 +1,2225 @@ +// 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 file contains the classes, methods, and field used by the EE from mscorlib + +// +// To use this, define one of the following macros & include the file like so: +// +// #define DEFINE_CLASS(id, nameSpace, stringName) CLASS__ ## id, +// #define DEFINE_METHOD(classId, id, stringName, gSign) +// #define DEFINE_FIELD(classId, id, stringName) +// #include "mscorlib.h" +// +// Note: To determine if the namespace you want to use in DEFINE_CLASS is supported or not, +// examine vm\namespace.h. If it is not present, define it there and then proceed to use it below. +// + + +// +// Note: The SM_* and IM_* are signatures defined in file:metasig.h using IM() and SM() macros. +// + +#ifndef DEFINE_CLASS +#define DEFINE_CLASS(id, nameSpace, stringName) +#endif + +#ifndef DEFINE_METHOD +#define DEFINE_METHOD(classId, id, stringName, gSign) +#endif + +#ifndef DEFINE_FIELD +#define DEFINE_FIELD(classId, id, stringName) +#endif + +#ifndef DEFINE_PROPERTY +#define DEFINE_PROPERTY(classId, id, stringName, gSign) DEFINE_METHOD(classId, GET_ ## id, get_ ## stringName, IM_Ret ## gSign) +#endif + +#ifndef DEFINE_STATIC_PROPERTY +#define DEFINE_STATIC_PROPERTY(classId, id, stringName, gSign) DEFINE_METHOD(classId, GET_ ## id, get_ ## stringName, SM_Ret ## gSign) +#endif + +#ifndef DEFINE_SET_PROPERTY +#define DEFINE_SET_PROPERTY(classId, id, stringName, gSign) \ + DEFINE_PROPERTY(classId, id, stringName, gSign) \ + DEFINE_METHOD(classId, SET_ ## id, set_ ## stringName, IM_## gSign ## _RetVoid) +#endif + +// +// DEFINE_CLASS_U and DEFINE_FIELD_U are debug-only checks to verify that the managed and unmanaged layouts are in sync +// +#ifndef DEFINE_CLASS_U +#define DEFINE_CLASS_U(nameSpace, stringName, unmanagedType) +#endif + +#ifndef DEFINE_FIELD_U +#define DEFINE_FIELD_U(stringName, unmanagedContainingType, unmanagedOffset) +#endif + +// NOTE: Make this window really wide if you want to read the table... + +DEFINE_CLASS(ACTIVATOR, System, Activator) + +DEFINE_CLASS(ACCESS_VIOLATION_EXCEPTION, System, AccessViolationException) +DEFINE_FIELD(ACCESS_VIOLATION_EXCEPTION, IP, _ip) +DEFINE_FIELD(ACCESS_VIOLATION_EXCEPTION, TARGET, _target) +DEFINE_FIELD(ACCESS_VIOLATION_EXCEPTION, ACCESSTYPE, _accessType) + +DEFINE_CLASS_U(System, AppDomain, AppDomainBaseObject) +DEFINE_FIELD_U(_domainManager, AppDomainBaseObject, m_pDomainManager) +DEFINE_FIELD_U(_LocalStore, AppDomainBaseObject, m_LocalStore) +DEFINE_FIELD_U(_FusionStore, AppDomainBaseObject, m_FusionTable) +DEFINE_FIELD_U(_SecurityIdentity, AppDomainBaseObject, m_pSecurityIdentity) +DEFINE_FIELD_U(_Policies, AppDomainBaseObject, m_pPolicies) +DEFINE_FIELD_U(AssemblyLoad, AppDomainBaseObject, m_pAssemblyEventHandler) +DEFINE_FIELD_U(_TypeResolve, AppDomainBaseObject, m_pTypeEventHandler) +DEFINE_FIELD_U(_ResourceResolve, AppDomainBaseObject, m_pResourceEventHandler) +DEFINE_FIELD_U(_AssemblyResolve, AppDomainBaseObject, m_pAsmResolveEventHandler) +#ifdef FEATURE_REFLECTION_ONLY_LOAD +DEFINE_FIELD_U(ReflectionOnlyAssemblyResolve, AppDomainBaseObject, m_pReflectionAsmResolveEventHandler) +#endif +#ifdef FEATURE_REMOTING +DEFINE_FIELD_U(_DefaultContext, AppDomainBaseObject, m_pDefaultContext) +#endif +#if defined(FEATURE_CLICKONCE) +DEFINE_FIELD_U(_activationContext, AppDomainBaseObject, m_pActivationContext) +DEFINE_FIELD_U(_applicationIdentity, AppDomainBaseObject, m_pApplicationIdentity) +#endif +DEFINE_FIELD_U(_applicationTrust, AppDomainBaseObject, m_pApplicationTrust) +#ifdef FEATURE_IMPERSONATION +DEFINE_FIELD_U(_DefaultPrincipal, AppDomainBaseObject, m_pDefaultPrincipal) +#endif // FEATURE_IMPERSONATION +#ifdef FEATURE_REMOTING +DEFINE_FIELD_U(_RemotingData, AppDomainBaseObject, m_pURITable) +#endif +DEFINE_FIELD_U(_processExit, AppDomainBaseObject, m_pProcessExitEventHandler) +DEFINE_FIELD_U(_domainUnload, AppDomainBaseObject, m_pDomainUnloadEventHandler) +DEFINE_FIELD_U(_unhandledException, AppDomainBaseObject, m_pUnhandledExceptionEventHandler) +#ifdef FEATURE_APTCA +DEFINE_FIELD_U(_aptcaVisibleAssemblies, AppDomainBaseObject, m_aptcaVisibleAssemblies) +#endif +DEFINE_FIELD_U(_compatFlags, AppDomainBaseObject, m_compatFlags) +#ifdef FEATURE_EXCEPTION_NOTIFICATIONS +DEFINE_FIELD_U(_firstChanceException, AppDomainBaseObject, m_pFirstChanceExceptionHandler) +#endif // FEATURE_EXCEPTION_NOTIFICATIONS +DEFINE_FIELD_U(_pDomain, AppDomainBaseObject, m_pDomain) +#ifdef FEATURE_CAS_POLICY +DEFINE_FIELD_U(_PrincipalPolicy, AppDomainBaseObject, m_iPrincipalPolicy) +#endif +DEFINE_FIELD_U(_HasSetPolicy, AppDomainBaseObject, m_bHasSetPolicy) +DEFINE_FIELD_U(_IsFastFullTrustDomain, AppDomainBaseObject, m_bIsFastFullTrustDomain) +DEFINE_FIELD_U(_compatFlagsInitialized, AppDomainBaseObject, m_compatFlagsInitialized) + +DEFINE_CLASS(APP_DOMAIN, System, AppDomain) +DEFINE_METHOD(APP_DOMAIN, PREPARE_DATA_FOR_SETUP,PrepareDataForSetup,SM_Str_AppDomainSetup_Evidence_Evidence_IntPtr_Str_ArrStr_ArrStr_RetObj) +DEFINE_METHOD(APP_DOMAIN, SETUP,Setup,SM_Obj_RetObj) +DEFINE_METHOD(APP_DOMAIN, ON_ASSEMBLY_LOAD, OnAssemblyLoadEvent, IM_Assembly_RetVoid) +DEFINE_METHOD(APP_DOMAIN, ON_RESOURCE_RESOLVE, OnResourceResolveEvent, IM_Assembly_Str_RetAssembly) +DEFINE_METHOD(APP_DOMAIN, ON_TYPE_RESOLVE, OnTypeResolveEvent, IM_Assembly_Str_RetAssembly) +DEFINE_METHOD(APP_DOMAIN, ON_ASSEMBLY_RESOLVE, OnAssemblyResolveEvent, IM_Assembly_Str_RetAssembly) +#ifdef FEATURE_REFLECTION_ONLY_LOAD +DEFINE_METHOD(APP_DOMAIN, ON_REFLECTION_ONLY_ASSEMBLY_RESOLVE, OnReflectionOnlyAssemblyResolveEvent, IM_Assembly_Str_RetAssembly) +#ifdef FEATURE_COMINTEROP +DEFINE_METHOD(APP_DOMAIN, ON_REFLECTION_ONLY_NAMESPACE_RESOLVE, OnReflectionOnlyNamespaceResolveEvent, IM_Assembly_Str_RetArrAssembly) +#endif //FEATURE_COMINTEROP +DEFINE_METHOD(APP_DOMAIN, ENABLE_RESOLVE_ASSEMBLIES_FOR_INTROSPECTION, EnableResolveAssembliesForIntrospection, IM_Str_RetVoid) +#endif //FEATURE_REFLECTION_ONLY_LOAD +#ifdef FEATURE_COMINTEROP +DEFINE_METHOD(APP_DOMAIN, ON_DESIGNER_NAMESPACE_RESOLVE, OnDesignerNamespaceResolveEvent, IM_Str_RetArrStr) +#endif //FEATURE_COMINTEROP +DEFINE_METHOD(APP_DOMAIN, SETUP_DOMAIN, SetupDomain, IM_Bool_Str_Str_ArrStr_ArrStr_RetVoid) +#ifdef FEATURE_FUSION +DEFINE_METHOD(APP_DOMAIN, SETUP_LOADER_OPTIMIZATION,SetupLoaderOptimization, IM_LoaderOptimization_RetVoid) +DEFINE_METHOD(APP_DOMAIN, SET_DOMAIN_CONTEXT, InternalSetDomainContext, IM_Str_RetVoid) +#endif // FEATURE_FUSION +#ifdef FEATURE_REMOTING +DEFINE_METHOD(APP_DOMAIN, CREATE_DOMAIN, CreateDomain, SM_Str_Evidence_AppDomainSetup_RetAppDomain) +#ifdef FEATURE_CAS_POLICY +DEFINE_METHOD(APP_DOMAIN, CREATE_DOMAINEX, CreateDomain, SM_Str_Evidence_Str_Str_Bool_RetAppDomain) +#endif // FEATURE_CAS_POLICY +DEFINE_METHOD(APP_DOMAIN, VAL_CREATE_DOMAIN, InternalCreateDomain, SM_Str_RetAppDomain) +#endif +#ifdef FEATURE_REMOTING +DEFINE_METHOD(APP_DOMAIN, MARSHAL_OBJECT, MarshalObject, SM_Obj_RetArrByte) +DEFINE_METHOD(APP_DOMAIN, MARSHAL_OBJECTS, MarshalObjects, SM_Obj_Obj_RefArrByte_RetArrByte) +DEFINE_METHOD(APP_DOMAIN, UNMARSHAL_OBJECT, UnmarshalObject, SM_ArrByte_RetObj) +DEFINE_METHOD(APP_DOMAIN, UNMARSHAL_OBJECTS, UnmarshalObjects, SM_ArrByte_ArrByte_RefObj_RetObj) +#endif +#ifdef FEATURE_FUSION +DEFINE_METHOD(APP_DOMAIN, TURN_ON_BINDING_REDIRECTS, TurnOnBindingRedirects, IM_RetVoid) +#endif // FEATURE_FUSION +DEFINE_METHOD(APP_DOMAIN, CREATE_APP_DOMAIN_MANAGER, CreateAppDomainManager, IM_RetVoid) +DEFINE_METHOD(APP_DOMAIN, INITIALIZE_COMPATIBILITY_FLAGS, InitializeCompatibilityFlags, IM_RetVoid) +DEFINE_METHOD(APP_DOMAIN, INITIALIZE_DOMAIN_SECURITY, InitializeDomainSecurity, IM_Evidence_Evidence_Bool_IntPtr_Bool_RetVoid) +#ifdef FEATURE_CLICKONCE +DEFINE_METHOD(APP_DOMAIN, SETUP_DEFAULT_CLICKONCE_DOMAIN, SetupDefaultClickOnceDomain, IM_Str_ArrStr_ArrStr_RetVoid) +DEFINE_METHOD(APP_DOMAIN, ACTIVATE_APPLICATION, ActivateApplication, IM_RetInt) +#endif // FEATURE_CLICKONCE +#ifdef FEATURE_APTCA +DEFINE_METHOD(APP_DOMAIN, IS_ASSEMBLY_ON_APTCA_VISIBLE_LIST, IsAssemblyOnAptcaVisibleList, IM_Assembly_RetBool) +DEFINE_METHOD(APP_DOMAIN, IS_ASSEMBLY_ON_APTCA_VISIBLE_LIST_RAW, IsAssemblyOnAptcaVisibleListRaw, IM_PtrChar_Int_PtrByte_Int_RetBool) +#endif // FEATURE_APTCA +#ifndef FEATURE_CORECLR +DEFINE_METHOD(APP_DOMAIN, PAUSE, Pause, SM_RetVoid) +DEFINE_METHOD(APP_DOMAIN, RESUME, Resume, SM_RetVoid) +DEFINE_CLASS(APPDOMAIN_MANAGER, System, AppDomainManager) +DEFINE_PROPERTY(APPDOMAIN_MANAGER, ENTRY_ASSEMBLY, EntryAssembly, AssemblyBase) +#endif // FEATURE_CORECLR + +DEFINE_CLASS(CLEANUP_WORK_LIST, StubHelpers, CleanupWorkList) + +#ifdef FEATURE_COMINTEROP +// Define earlier in mscorlib.h to avoid BinderClassID to const BYTE truncation warning +DEFINE_CLASS(DATETIMENATIVE, StubHelpers, DateTimeNative) +DEFINE_CLASS(TYPENAMENATIVE, StubHelpers, TypeNameNative) + +DEFINE_CLASS_U(StubHelpers, TypeNameNative, TypeNameNative) +DEFINE_FIELD_U(typeName, TypeNameNative, typeName) +DEFINE_FIELD_U(typeKind, TypeNameNative, typeKind) + +#endif + +DEFINE_CLASS_U(Policy, ApplicationTrust, ApplicationTrustObject) + +#ifdef FEATURE_CLICKONCE +DEFINE_FIELD_U(m_appId, ApplicationTrustObject, _appId) +DEFINE_FIELD_U(m_extraInfo, ApplicationTrustObject, _extraInfo) +DEFINE_FIELD_U(m_elExtraInfo, ApplicationTrustObject, _elExtraInfo) +#endif // FEATURE_CLICKONCE + +DEFINE_FIELD_U(m_psDefaultGrant, ApplicationTrustObject, _psDefaultGrant) +DEFINE_FIELD_U(m_fullTrustAssemblies, ApplicationTrustObject, _fullTrustAssemblies) +DEFINE_FIELD_U(m_grantSetSpecialFlags, ApplicationTrustObject, _grantSetSpecialFlags) + +#ifdef FEATURE_CLICKONCE +DEFINE_FIELD_U(m_appTrustedToRun, ApplicationTrustObject, _appTrustedToRun) +DEFINE_FIELD_U(m_persist, ApplicationTrustObject, _persist) +#endif // FEATURE_CLICKONCE + +DEFINE_CLASS_U(Policy, PolicyStatement, PolicyStatementObject) +DEFINE_FIELD_U(m_permSet, PolicyStatementObject, _permSet) +DEFINE_FIELD_U(m_attributes, PolicyStatementObject, _attributes) + +DEFINE_CLASS(APPDOMAIN_SETUP, System, AppDomainSetup) +DEFINE_CLASS_U(System, AppDomainSetup, AppDomainSetupObject) +DEFINE_FIELD_U(_Entries, AppDomainSetupObject, m_Entries) +DEFINE_FIELD_U(_AppBase, AppDomainSetupObject, m_AppBase) +DEFINE_FIELD_U(_AppDomainInitializer, AppDomainSetupObject, m_AppDomainInitializer) +DEFINE_FIELD_U(_AppDomainInitializerArguments, AppDomainSetupObject, m_AppDomainInitializerArguments) +#ifdef FEATURE_CLICKONCE +DEFINE_FIELD_U(_ActivationArguments, AppDomainSetupObject, m_ActivationArguments) +#endif // FEATURE_CLICKONCE +DEFINE_FIELD_U(_ApplicationTrust, AppDomainSetupObject, m_ApplicationTrust) +DEFINE_FIELD_U(_ConfigurationBytes, AppDomainSetupObject, m_ConfigurationBytes) +DEFINE_FIELD_U(_AppDomainManagerAssembly, AppDomainSetupObject, m_AppDomainManagerAssembly) +DEFINE_FIELD_U(_AppDomainManagerType, AppDomainSetupObject, m_AppDomainManagerType) +#if FEATURE_APTCA +DEFINE_FIELD_U(_AptcaVisibleAssemblies, AppDomainSetupObject, m_AptcaVisibleAssemblies) +#endif +DEFINE_FIELD_U(_CompatFlags, AppDomainSetupObject, m_CompatFlags) +DEFINE_FIELD_U(_TargetFrameworkName, AppDomainSetupObject, m_TargetFrameworkName) +DEFINE_FIELD_U(_LoaderOptimization, AppDomainSetupObject, m_LoaderOptimization) +#ifndef FEATURE_CORECLR +DEFINE_FIELD_U(_AppDomainSortingSetupInfo, AppDomainSetupObject, m_AppDomainSortingSetupInfo) +#endif // FEATURE_CORECLR +#ifdef FEATURE_COMINTEROP +DEFINE_FIELD_U(_DisableInterfaceCache, AppDomainSetupObject, m_DisableInterfaceCache) +#endif // FEATURE_COMINTEROP +DEFINE_FIELD_U(_CheckedForTargetFrameworkName, AppDomainSetupObject, m_CheckedForTargetFrameworkName) +#ifdef FEATURE_RANDOMIZED_STRING_HASHING +DEFINE_FIELD_U(_UseRandomizedStringHashing, AppDomainSetupObject, m_UseRandomizedStringHashing) +#endif + +DEFINE_CLASS(ARG_ITERATOR, System, ArgIterator) +DEFINE_CLASS_U(System, ArgIterator, VARARGS) // Includes a SigPointer. +DEFINE_METHOD(ARG_ITERATOR, CTOR2, .ctor, IM_RuntimeArgumentHandle_PtrVoid_RetVoid) + +DEFINE_CLASS(ARGUMENT_HANDLE, System, RuntimeArgumentHandle) + +DEFINE_CLASS(ARRAY, System, Array) +DEFINE_PROPERTY(ARRAY, LENGTH, Length, Int) +DEFINE_METHOD(ARRAY, GET_DATA_PTR_OFFSET_INTERNAL, GetDataPtrOffsetInternal, IM_RetInt) + +#ifdef FEATURE_NONGENERIC_COLLECTIONS +DEFINE_CLASS(ARRAY_LIST, Collections, ArrayList) +DEFINE_METHOD(ARRAY_LIST, CTOR, .ctor, IM_RetVoid) +DEFINE_METHOD(ARRAY_LIST, ADD, Add, IM_Obj_RetInt) +#endif // FEATURE_NONGENERIC_COLLECTIONS + +DEFINE_CLASS(ARRAY_WITH_OFFSET, Interop, ArrayWithOffset) +DEFINE_FIELD(ARRAY_WITH_OFFSET, M_ARRAY, m_array) +DEFINE_FIELD(ARRAY_WITH_OFFSET, M_OFFSET, m_offset) +DEFINE_FIELD(ARRAY_WITH_OFFSET, M_COUNT, m_count) + + +DEFINE_CLASS(ASSEMBLY_BUILDER, ReflectionEmit, AssemblyBuilder) +DEFINE_CLASS(INTERNAL_ASSEMBLY_BUILDER, ReflectionEmit, InternalAssemblyBuilder) + +DEFINE_CLASS(ASSEMBLY_HASH_ALGORITHM, Assemblies, AssemblyHashAlgorithm) +DEFINE_CLASS(PORTABLE_EXECUTABLE_KINDS, Reflection, PortableExecutableKinds) +DEFINE_CLASS(IMAGE_FILE_MACHINE, Reflection, ImageFileMachine) + +DEFINE_CLASS_U(Reflection, AssemblyName, AssemblyNameBaseObject) +DEFINE_FIELD_U(_Name, AssemblyNameBaseObject, m_pSimpleName) +DEFINE_FIELD_U(_PublicKey, AssemblyNameBaseObject, m_pPublicKey) +DEFINE_FIELD_U(_PublicKeyToken, AssemblyNameBaseObject, m_pPublicKeyToken) +DEFINE_FIELD_U(_CultureInfo, AssemblyNameBaseObject, m_pCultureInfo) +DEFINE_FIELD_U(_CodeBase, AssemblyNameBaseObject, m_pCodeBase) +DEFINE_FIELD_U(_Version, AssemblyNameBaseObject, m_pVersion) +DEFINE_FIELD_U(m_siInfo, AssemblyNameBaseObject, m_siInfo) +DEFINE_FIELD_U(_HashForControl, AssemblyNameBaseObject, m_HashForControl) +DEFINE_FIELD_U(_HashAlgorithm, AssemblyNameBaseObject, m_HashAlgorithm) +DEFINE_FIELD_U(_HashAlgorithmForControl, AssemblyNameBaseObject, m_HashAlgorithmForControl) +DEFINE_FIELD_U(_VersionCompatibility, AssemblyNameBaseObject, m_VersionCompatibility) +DEFINE_FIELD_U(_Flags, AssemblyNameBaseObject, m_Flags) +DEFINE_CLASS(ASSEMBLY_NAME, Reflection, AssemblyName) +DEFINE_METHOD(ASSEMBLY_NAME, INIT, Init, IM_Str_ArrB_ArrB_Ver_CI_AHA_AVC_Str_ANF_SNKP_RetV) +DEFINE_METHOD(ASSEMBLY_NAME, SET_PROC_ARCH_INDEX, SetProcArchIndex, IM_PEK_IFM_RetV) +#ifdef FEATURE_APTCA +DEFINE_METHOD(ASSEMBLY_NAME, GET_NAME_WITH_PUBLIC_KEY, GetNameWithPublicKey, IM_RetStr) +#endif // FEATURE_APTCA + +DEFINE_CLASS_U(System, Version, VersionBaseObject) +DEFINE_FIELD_U(_Major, VersionBaseObject, m_Major) +DEFINE_FIELD_U(_Minor, VersionBaseObject, m_Minor) +DEFINE_FIELD_U(_Build, VersionBaseObject, m_Build) +DEFINE_FIELD_U(_Revision, VersionBaseObject, m_Revision) +DEFINE_CLASS(VERSION, System, Version) +DEFINE_METHOD(VERSION, CTOR, .ctor, IM_Int_Int_Int_Int_RetVoid) + +DEFINE_CLASS(ASSEMBLY_VERSION_COMPATIBILITY, Assemblies, AssemblyVersionCompatibility) + +DEFINE_CLASS(ASSEMBLY_NAME_FLAGS, Reflection, AssemblyNameFlags) + +// ASSEMBLYBASE is System.ReflectionAssembly while ASSEMBLY is System.Reflection.RuntimeAssembly +// Maybe we should reverse these two names +DEFINE_CLASS(ASSEMBLYBASE, Reflection, Assembly) + +DEFINE_CLASS_U(Reflection, RuntimeAssembly, AssemblyBaseObject) +DEFINE_FIELD_U(_ModuleResolve, AssemblyBaseObject, m_pModuleEventHandler) +DEFINE_FIELD_U(m_fullname, AssemblyBaseObject, m_fullname) +DEFINE_FIELD_U(m_syncRoot, AssemblyBaseObject, m_pSyncRoot) +DEFINE_FIELD_U(m_assembly, AssemblyBaseObject, m_pAssembly) +#ifndef FEATURE_CORECLR +DEFINE_FIELD_U(m_flags, AssemblyBaseObject, m_flags) +#endif +DEFINE_CLASS(ASSEMBLY, Reflection, RuntimeAssembly) +DEFINE_FIELD(ASSEMBLY, HANDLE, m_assembly) +DEFINE_METHOD(ASSEMBLY, GET_NAME, GetName, IM_RetAssemblyName) +#ifdef FEATURE_APTCA +DEFINE_METHOD(ASSEMBLY, GET_NAME_FOR_CONDITIONAL_APTCA, GetNameForConditionalAptca, IM_RetStr) +#endif // FEATURE_APTCA +#ifdef FEATURE_FUSION +DEFINE_METHOD(ASSEMBLY, LOAD_WITH_PARTIAL_NAME_HACK, LoadWithPartialNameHack, SM_Str_Bool_RetAssembly) +#endif // FEATURE_FUSION +DEFINE_METHOD(ASSEMBLY, ON_MODULE_RESOLVE, OnModuleResolveEvent, IM_Str_RetModule) +#ifdef FEATURE_FUSION +DEFINE_METHOD(ASSEMBLY, DEMAND_PERMISSION, DemandPermission, SM_Str_Bool_Int_RetV) +#endif + +#ifdef FEATURE_CAS_POLICY +DEFINE_CLASS(ASSEMBLY_EVIDENCE_FACTORY, Policy, AssemblyEvidenceFactory) +DEFINE_METHOD(ASSEMBLY_EVIDENCE_FACTORY, UPGRADE_SECURITY_IDENTITY, UpgradeSecurityIdentity, SM_Evidence_Asm_RetEvidence) +#endif // FEATURE_CAS_POLICY + +#ifdef FEATURE_COMINTEROP_REGISTRATION +DEFINE_CLASS(ASSEMBLY_REGISTRATION_FLAGS, Interop, AssemblyRegistrationFlags) +#endif // FEATURE_COMINTEROP_REGISTRATION + +#ifdef FEATURE_REMOTING +DEFINE_CLASS(ACTIVATION_SERVICES, Activation, ActivationServices) +DEFINE_METHOD(ACTIVATION_SERVICES, IS_CURRENT_CONTEXT_OK, IsCurrentContextOK, SM_Class_ArrObject_Bool_RetMarshalByRefObject) + +#ifdef FEATURE_CLASSIC_COMINTEROP +DEFINE_METHOD(ACTIVATION_SERVICES, CREATE_OBJECT_FOR_COM, CreateObjectForCom, SM_Class_ArrObject_Bool_RetMarshalByRefObject) + +#endif // FEATURE_CLASSIC_COMINTEROP +#endif // FEATURE_REMOTING + +DEFINE_CLASS(ASYNCCALLBACK, System, AsyncCallback) +DEFINE_CLASS(ATTRIBUTE, System, Attribute) + + +DEFINE_CLASS(BINDER, Reflection, Binder) +DEFINE_METHOD(BINDER, CHANGE_TYPE, ChangeType, IM_Obj_Type_CultureInfo_RetObj) + +DEFINE_CLASS(BINDING_FLAGS, Reflection, BindingFlags) + +#ifdef FEATURE_COMINTEROP +DEFINE_CLASS(BSTR_WRAPPER, Interop, BStrWrapper) +#endif // FEATURE_COMINTEROP + +DEFINE_CLASS_U(System, RuntimeType, ReflectClassBaseObject) +DEFINE_FIELD_U(m_cache, ReflectClassBaseObject, m_cache) +DEFINE_FIELD_U(m_handle, ReflectClassBaseObject, m_typeHandle) +DEFINE_FIELD_U(m_keepalive, ReflectClassBaseObject, m_keepalive) +#ifdef FEATURE_APPX +DEFINE_FIELD_U(m_invocationFlags, ReflectClassBaseObject, m_invocationFlags) +#endif +DEFINE_CLASS(CLASS, System, RuntimeType) +DEFINE_FIELD(CLASS, TYPEHANDLE, m_handle) +DEFINE_METHOD(CLASS, GET_PROPERTIES, GetProperties, IM_BindingFlags_RetArrPropertyInfo) +DEFINE_METHOD(CLASS, GET_FIELDS, GetFields, IM_BindingFlags_RetArrFieldInfo) +DEFINE_METHOD(CLASS, GET_METHODS, GetMethods, IM_BindingFlags_RetArrMethodInfo) +DEFINE_METHOD(CLASS, INVOKE_MEMBER, InvokeMember, IM_Str_BindingFlags_Binder_Obj_ArrObj_ArrParameterModifier_CultureInfo_ArrStr_RetObj) +#if defined(FEATURE_CLASSIC_COMINTEROP) && defined(FEATURE_REMOTING) +DEFINE_METHOD(CLASS, FORWARD_CALL_TO_INVOKE, ForwardCallToInvokeMember, IM_Str_BindingFlags_Obj_ArrInt_RefMessageData_RetObj) +#endif +DEFINE_METHOD(CLASS, GET_METHOD_BASE, GetMethodBase, SM_RuntimeType_RuntimeMethodHandleInternal_RetMethodBase) +DEFINE_METHOD(CLASS, GET_FIELD_INFO, GetFieldInfo, SM_RuntimeType_IRuntimeFieldInfo_RetFieldInfo) +DEFINE_METHOD(CLASS, GET_PROPERTY_INFO, GetPropertyInfo, SM_RuntimeType_Int_RetPropertyInfo) + +DEFINE_CLASS(CLASS_INTROSPECTION_ONLY, System, ReflectionOnlyType) + +DEFINE_CLASS(CODE_ACCESS_PERMISSION, Security, CodeAccessPermission) + +#ifdef FEATURE_COMINTEROP +DEFINE_CLASS_U(System, __ComObject, ComObject) +DEFINE_FIELD_U(m_ObjectToDataMap, ComObject, m_ObjectToDataMap) +DEFINE_CLASS(COM_OBJECT, System, __ComObject) +DEFINE_METHOD(COM_OBJECT, RELEASE_ALL_DATA, ReleaseAllData, IM_RetVoid) +DEFINE_METHOD(COM_OBJECT, GET_EVENT_PROVIDER, GetEventProvider, IM_Class_RetObj) + +DEFINE_CLASS(RUNTIME_CLASS, WinRT, RuntimeClass) + +#ifdef FEATURE_COMINTEROP_TLB_SUPPORT +DEFINE_CLASS(ITYPE_LIB_IMPORTER_NOTIFY_SINK, Interop, ITypeLibImporterNotifySink) +DEFINE_CLASS(ITYPE_LIB_EXPORTER_NOTIFY_SINK, Interop, ITypeLibExporterNotifySink) +#endif //FEATURE_COMINTEROP_TLB_SUPPORT + +#endif // FEATURE_COMINTEROP + +DEFINE_CLASS_U(Interop, CriticalHandle, CriticalHandle) +#ifdef _DEBUG +DEFINE_FIELD_U(_stackTrace, CriticalHandle, m_debugStackTrace) +#endif +DEFINE_FIELD_U(handle, CriticalHandle, m_handle) +DEFINE_FIELD_U(_isClosed, CriticalHandle, m_isClosed) +DEFINE_CLASS(CRITICAL_HANDLE, Interop, CriticalHandle) +DEFINE_FIELD(CRITICAL_HANDLE, HANDLE, handle) +DEFINE_METHOD(CRITICAL_HANDLE, RELEASE_HANDLE, ReleaseHandle, IM_RetBool) +DEFINE_METHOD(CRITICAL_HANDLE, GET_IS_INVALID, get_IsInvalid, IM_RetBool) +DEFINE_METHOD(CRITICAL_HANDLE, DISPOSE, Dispose, IM_RetVoid) +DEFINE_METHOD(CRITICAL_HANDLE, DISPOSE_BOOL, Dispose, IM_Bool_RetVoid) + +DEFINE_CLASS(CRITICAL_FINALIZER_OBJECT, ConstrainedExecution, CriticalFinalizerObject) +DEFINE_METHOD(CRITICAL_FINALIZER_OBJECT, FINALIZE, Finalize, IM_RetVoid) + +DEFINE_CLASS_U(Reflection, RuntimeConstructorInfo, NoClass) +DEFINE_FIELD_U(m_handle, ReflectMethodObject, m_pMD) +DEFINE_CLASS(CONSTRUCTOR, Reflection, RuntimeConstructorInfo) + +DEFINE_CLASS_U(System, RuntimeMethodInfoStub, ReflectMethodObject) +DEFINE_FIELD_U(m_value, ReflectMethodObject, m_pMD) +DEFINE_CLASS(STUBMETHODINFO, System, RuntimeMethodInfoStub) +DEFINE_FIELD(STUBMETHODINFO, HANDLE, m_value) + +DEFINE_CLASS(CONSTRUCTOR_INFO, Reflection, ConstructorInfo) + +DEFINE_CLASS_U(Reflection, CustomAttributeEncodedArgument, CustomAttributeValue) +DEFINE_FIELD_U(m_primitiveValue, CustomAttributeValue, m_rawValue) +DEFINE_FIELD_U(m_arrayValue, CustomAttributeValue, m_value) +DEFINE_FIELD_U(m_stringValue, CustomAttributeValue, m_enumOrTypeName) +DEFINE_FIELD_U(m_type, CustomAttributeValue, m_type) +DEFINE_CLASS(CUSTOM_ATTRIBUTE_ENCODED_ARGUMENT, Reflection, CustomAttributeEncodedArgument) + +DEFINE_CLASS_U(Reflection, CustomAttributeNamedParameter, CustomAttributeNamedArgument) +DEFINE_FIELD_U(m_argumentName, CustomAttributeNamedArgument, m_argumentName) +DEFINE_FIELD_U(m_fieldOrProperty, CustomAttributeNamedArgument, m_propertyOrField) +DEFINE_FIELD_U(m_padding, CustomAttributeNamedArgument, m_padding) +DEFINE_FIELD_U(m_type, CustomAttributeNamedArgument, m_type) +DEFINE_FIELD_U(m_encodedArgument, CustomAttributeNamedArgument, m_value) + +DEFINE_CLASS_U(Reflection, CustomAttributeCtorParameter, CustomAttributeArgument) +DEFINE_FIELD_U(m_type, CustomAttributeArgument, m_type) +DEFINE_FIELD_U(m_encodedArgument, CustomAttributeArgument, m_value) + +DEFINE_CLASS_U(Reflection, CustomAttributeType, CustomAttributeType) +DEFINE_FIELD_U(m_enumName, CustomAttributeType, m_enumName) +DEFINE_FIELD_U(m_encodedType, CustomAttributeType, m_tag) +DEFINE_FIELD_U(m_encodedEnumType, CustomAttributeType, m_enumType) +DEFINE_FIELD_U(m_encodedArrayType, CustomAttributeType, m_arrayType) +DEFINE_FIELD_U(m_padding, CustomAttributeType, m_padding) + +#ifdef FEATURE_REMOTING +DEFINE_CLASS_U(Contexts, Context, ContextBaseObject) +DEFINE_FIELD_U(_ctxProps, ContextBaseObject, m_ctxProps) +DEFINE_FIELD_U(_dphCtx, ContextBaseObject, m_dphCtx) +DEFINE_FIELD_U(_localDataStore, ContextBaseObject, m_localDataStore) +DEFINE_FIELD_U(_serverContextChain, ContextBaseObject, m_serverContextChain) +DEFINE_FIELD_U(_clientContextChain, ContextBaseObject, m_clientContextChain) +DEFINE_FIELD_U(_appDomain, ContextBaseObject, m_exposedAppDomain) +DEFINE_FIELD_U(_ctxStatics, ContextBaseObject, m_ctxStatics) +DEFINE_FIELD_U(_internalContext, ContextBaseObject, m_internalContext) +DEFINE_FIELD_U(_ctxID, ContextBaseObject, _ctxID) +DEFINE_FIELD_U(_ctxFlags, ContextBaseObject, _ctxFlags) +DEFINE_FIELD_U(_numCtxProps, ContextBaseObject, _numCtxProps) +DEFINE_FIELD_U(_ctxStaticsCurrentBucket, ContextBaseObject, _ctxStaticsCurrentBucket) +DEFINE_FIELD_U(_ctxStaticsFreeIndex, ContextBaseObject, _ctxStaticsFreeIndex) +DEFINE_CLASS(CONTEXT, Contexts, Context) +DEFINE_METHOD(CONTEXT, CALLBACK, DoCallBackFromEE, SM_IntPtr_IntPtr_Int_RetVoid) +DEFINE_METHOD(CONTEXT, RESERVE_SLOT, ReserveSlot, IM_RetInt) +#endif + +DEFINE_CLASS(CONTEXT_BOUND_OBJECT, System, ContextBoundObject) + + +#ifdef FEATURE_CRYPTO +DEFINE_CLASS(CSP_PARAMETERS, Cryptography, CspParameters) + +DEFINE_FIELD(CSP_PARAMETERS, PROVIDER_TYPE, ProviderType) +DEFINE_FIELD(CSP_PARAMETERS, PROVIDER_NAME, ProviderName) +DEFINE_FIELD(CSP_PARAMETERS, KEY_CONTAINER_NAME, KeyContainerName) +DEFINE_FIELD(CSP_PARAMETERS, FLAGS, m_flags) +#endif //FEATURE_CRYPTO + +#if defined(FEATURE_X509) || defined(FEATURE_CRYPTO) +DEFINE_CLASS(CRYPTO_EXCEPTION, Cryptography, CryptographicException) +DEFINE_METHOD(CRYPTO_EXCEPTION, THROW, ThrowCryptographicException, SM_Int_RetVoid) +#endif // FEATURE_X509 || FEATURE_CRYPTO + +#ifndef FEATURE_CORECLR +DEFINE_CLASS_U(Globalization, AppDomainSortingSetupInfo, AppDomainSortingSetupInfoObject) +DEFINE_FIELD_U(_pfnIsNLSDefinedString, AppDomainSortingSetupInfoObject, m_pfnIsNLSDefinedString) +DEFINE_FIELD_U(_pfnCompareStringEx, AppDomainSortingSetupInfoObject, m_pfnCompareStringEx) +DEFINE_FIELD_U(_pfnLCMapStringEx, AppDomainSortingSetupInfoObject, m_pfnLCMapStringEx) +DEFINE_FIELD_U(_pfnFindNLSStringEx, AppDomainSortingSetupInfoObject, m_pfnFindNLSStringEx) +DEFINE_FIELD_U(_pfnCompareStringOrdinal, AppDomainSortingSetupInfoObject, m_pfnCompareStringOrdinal) +DEFINE_FIELD_U(_pfnGetNLSVersionEx, AppDomainSortingSetupInfoObject, m_pfnGetNLSVersionEx) +DEFINE_FIELD_U(_pfnFindStringOrdinal, AppDomainSortingSetupInfoObject, m_pfnFindStringOrdinal) +DEFINE_FIELD_U(_useV2LegacySorting, AppDomainSortingSetupInfoObject, m_useV2LegacySorting) +DEFINE_FIELD_U(_useV4LegacySorting, AppDomainSortingSetupInfoObject, m_useV4LegacySorting) +#endif // FEATURE_CORECLR + +#ifndef FEATURE_COREFX_GLOBALIZATION +DEFINE_CLASS_U(Globalization, CultureData, CultureDataBaseObject) +DEFINE_FIELD_U(sRealName, CultureDataBaseObject, sRealName) +DEFINE_FIELD_U(sWindowsName, CultureDataBaseObject, sWindowsName) +DEFINE_FIELD_U(sName, CultureDataBaseObject, sName) +DEFINE_FIELD_U(sParent, CultureDataBaseObject, sParent) +DEFINE_FIELD_U(sLocalizedDisplayName, CultureDataBaseObject, sLocalizedDisplayName) +DEFINE_FIELD_U(sEnglishDisplayName, CultureDataBaseObject, sEnglishDisplayName) +DEFINE_FIELD_U(sNativeDisplayName, CultureDataBaseObject, sNativeDisplayName) +DEFINE_FIELD_U(sSpecificCulture, CultureDataBaseObject, sSpecificCulture) +DEFINE_FIELD_U(sISO639Language, CultureDataBaseObject, sISO639Language) +DEFINE_FIELD_U(sLocalizedLanguage, CultureDataBaseObject, sLocalizedLanguage) +DEFINE_FIELD_U(sEnglishLanguage, CultureDataBaseObject, sEnglishLanguage) +DEFINE_FIELD_U(sNativeLanguage, CultureDataBaseObject, sNativeLanguage) +DEFINE_FIELD_U(sRegionName, CultureDataBaseObject, sRegionName) +//DEFINE_FIELD_U(iCountry, CultureDataBaseObject, iCountry) +DEFINE_FIELD_U(iGeoId, CultureDataBaseObject, iGeoId) +DEFINE_FIELD_U(sLocalizedCountry, CultureDataBaseObject, sLocalizedCountry) +DEFINE_FIELD_U(sEnglishCountry, CultureDataBaseObject, sEnglishCountry) +DEFINE_FIELD_U(sNativeCountry, CultureDataBaseObject, sNativeCountry) +DEFINE_FIELD_U(sISO3166CountryName, CultureDataBaseObject, sISO3166CountryName) +DEFINE_FIELD_U(sPositiveSign, CultureDataBaseObject, sPositiveSign) +DEFINE_FIELD_U(sNegativeSign, CultureDataBaseObject, sNegativeSign) +DEFINE_FIELD_U(saNativeDigits, CultureDataBaseObject, saNativeDigits) +DEFINE_FIELD_U(iDigitSubstitution, CultureDataBaseObject, iDigitSubstitution) +DEFINE_FIELD_U(iLeadingZeros, CultureDataBaseObject, iLeadingZeros) +DEFINE_FIELD_U(iDigits, CultureDataBaseObject, iDigits) +DEFINE_FIELD_U(iNegativeNumber, CultureDataBaseObject, iNegativeNumber) +DEFINE_FIELD_U(waGrouping, CultureDataBaseObject, waGrouping) +DEFINE_FIELD_U(sDecimalSeparator, CultureDataBaseObject, sDecimalSeparator) +DEFINE_FIELD_U(sThousandSeparator, CultureDataBaseObject, sThousandSeparator) +DEFINE_FIELD_U(sNaN, CultureDataBaseObject, sNaN) +DEFINE_FIELD_U(sPositiveInfinity, CultureDataBaseObject, sPositiveInfinity) +DEFINE_FIELD_U(sNegativeInfinity, CultureDataBaseObject, sNegativeInfinity) +DEFINE_FIELD_U(iNegativePercent, CultureDataBaseObject, iNegativePercent) +DEFINE_FIELD_U(iPositivePercent, CultureDataBaseObject, iPositivePercent) +DEFINE_FIELD_U(sPercent, CultureDataBaseObject, sPercent) +DEFINE_FIELD_U(sPerMille, CultureDataBaseObject, sPerMille) +DEFINE_FIELD_U(sCurrency, CultureDataBaseObject, sCurrency) +DEFINE_FIELD_U(sIntlMonetarySymbol, CultureDataBaseObject, sIntlMonetarySymbol) +DEFINE_FIELD_U(sEnglishCurrency, CultureDataBaseObject, sEnglishCurrency) +DEFINE_FIELD_U(sNativeCurrency, CultureDataBaseObject, sNativeCurrency) +DEFINE_FIELD_U(iCurrencyDigits, CultureDataBaseObject, iCurrencyDigits) +DEFINE_FIELD_U(iCurrency, CultureDataBaseObject, iCurrency) +DEFINE_FIELD_U(iNegativeCurrency, CultureDataBaseObject, iNegativeCurrency) +DEFINE_FIELD_U(waMonetaryGrouping, CultureDataBaseObject, waMonetaryGrouping) +DEFINE_FIELD_U(sMonetaryDecimal, CultureDataBaseObject, sMonetaryDecimal) +DEFINE_FIELD_U(sMonetaryThousand, CultureDataBaseObject, sMonetaryThousand) +DEFINE_FIELD_U(iMeasure, CultureDataBaseObject, iMeasure) +DEFINE_FIELD_U(sListSeparator, CultureDataBaseObject, sListSeparator) +//DEFINE_FIELD_U(iPaperSize, CultureDataBaseObject, iPaperSize) +//DEFINE_FIELD_U(waFontSignature, CultureDataBaseObject, waFontSignature) +DEFINE_FIELD_U(sAM1159, CultureDataBaseObject, sAM1159) +DEFINE_FIELD_U(sPM2359, CultureDataBaseObject, sPM2359) +DEFINE_FIELD_U(sTimeSeparator, CultureDataBaseObject, sTimeSeparator) +DEFINE_FIELD_U(saLongTimes, CultureDataBaseObject, saLongTimes) +DEFINE_FIELD_U(saShortTimes, CultureDataBaseObject, saShortTimes) +DEFINE_FIELD_U(saDurationFormats, CultureDataBaseObject, saDurationFormats) +DEFINE_FIELD_U(iFirstDayOfWeek, CultureDataBaseObject, iFirstDayOfWeek) +DEFINE_FIELD_U(iFirstWeekOfYear, CultureDataBaseObject, iFirstWeekOfYear) +DEFINE_FIELD_U(waCalendars, CultureDataBaseObject, waCalendars) +DEFINE_FIELD_U(calendars, CultureDataBaseObject, calendars) +DEFINE_FIELD_U(iReadingLayout, CultureDataBaseObject, iReadingLayout) +DEFINE_FIELD_U(sTextInfo, CultureDataBaseObject, sTextInfo) +DEFINE_FIELD_U(sCompareInfo, CultureDataBaseObject, sCompareInfo) +DEFINE_FIELD_U(sScripts, CultureDataBaseObject, sScripts) +DEFINE_FIELD_U(bUseOverrides, CultureDataBaseObject, bUseOverrides) +DEFINE_FIELD_U(bNeutral, CultureDataBaseObject, bNeutral) +DEFINE_FIELD_U(bWin32Installed, CultureDataBaseObject, bWin32Installed) +DEFINE_FIELD_U(bFramework, CultureDataBaseObject, bFramework) +#endif +#ifndef FEATURE_COREFX_GLOBALIZATION +DEFINE_CLASS_U(Globalization, CalendarData, CalendarDataBaseObject) +DEFINE_FIELD_U(sNativeName, CalendarDataBaseObject, sNativeName) +DEFINE_FIELD_U(saShortDates, CalendarDataBaseObject, saShortDates) +DEFINE_FIELD_U(saYearMonths, CalendarDataBaseObject, saYearMonths) +DEFINE_FIELD_U(saLongDates, CalendarDataBaseObject, saLongDates) +DEFINE_FIELD_U(sMonthDay, CalendarDataBaseObject, sMonthDay) +DEFINE_FIELD_U(saEraNames, CalendarDataBaseObject, saEraNames) +DEFINE_FIELD_U(saAbbrevEraNames, CalendarDataBaseObject, saAbbrevEraNames) +DEFINE_FIELD_U(saAbbrevEnglishEraNames,CalendarDataBaseObject, saAbbrevEnglishEraNames) +DEFINE_FIELD_U(saDayNames, CalendarDataBaseObject, saDayNames) +DEFINE_FIELD_U(saAbbrevDayNames, CalendarDataBaseObject, saAbbrevDayNames) +DEFINE_FIELD_U(saSuperShortDayNames, CalendarDataBaseObject, saSuperShortDayNames) +DEFINE_FIELD_U(saMonthNames, CalendarDataBaseObject, saMonthNames) +DEFINE_FIELD_U(saAbbrevMonthNames, CalendarDataBaseObject, saAbbrevMonthNames) +DEFINE_FIELD_U(saMonthGenitiveNames, CalendarDataBaseObject, saMonthGenitiveNames) +DEFINE_FIELD_U(saAbbrevMonthGenitiveNames, CalendarDataBaseObject, saAbbrevMonthGenitiveNames) +DEFINE_FIELD_U(saLeapYearMonthNames, CalendarDataBaseObject, saLeapYearMonthNames) +DEFINE_FIELD_U(iTwoDigitYearMax, CalendarDataBaseObject, iTwoDigitYearMax) +DEFINE_FIELD_U(iCurrentEra, CalendarDataBaseObject, iCurrentEra) +DEFINE_FIELD_U(bUseUserOverrides, CalendarDataBaseObject, bUseUserOverrides) +#endif + +DEFINE_CLASS_U(Globalization, CultureInfo, CultureInfoBaseObject) +DEFINE_FIELD_U(compareInfo, CultureInfoBaseObject, compareInfo) +DEFINE_FIELD_U(textInfo, CultureInfoBaseObject, textInfo) +DEFINE_FIELD_U(numInfo, CultureInfoBaseObject, numInfo) +DEFINE_FIELD_U(dateTimeInfo, CultureInfoBaseObject, dateTimeInfo) +DEFINE_FIELD_U(calendar, CultureInfoBaseObject, calendar) +#ifndef FEATURE_CORECLR +DEFINE_FIELD_U(m_consoleFallbackCulture, CultureInfoBaseObject, m_consoleFallbackCulture) +#endif // FEATURE_CORECLR +DEFINE_FIELD_U(m_name, CultureInfoBaseObject, m_name) +DEFINE_FIELD_U(m_nonSortName, CultureInfoBaseObject, m_nonSortName) +DEFINE_FIELD_U(m_sortName, CultureInfoBaseObject, m_sortName) +DEFINE_FIELD_U(m_parent, CultureInfoBaseObject, m_parent) +#ifdef FEATURE_LEAK_CULTURE_INFO +DEFINE_FIELD_U(m_createdDomainID, CultureInfoBaseObject, m_createdDomainID) +#endif // FEATURE_LEAK_CULTURE_INFO +DEFINE_FIELD_U(m_isReadOnly, CultureInfoBaseObject, m_isReadOnly) +DEFINE_FIELD_U(m_isInherited, CultureInfoBaseObject, m_isInherited) +#ifdef FEATURE_LEAK_CULTURE_INFO +DEFINE_FIELD_U(m_isSafeCrossDomain, CultureInfoBaseObject, m_isSafeCrossDomain) +#endif // FEATURE_LEAK_CULTURE_INFO +#ifndef FEATURE_COREFX_GLOBALIZATION +DEFINE_FIELD_U(m_useUserOverride, CultureInfoBaseObject, m_useUserOverride) +#endif +DEFINE_CLASS(CULTURE_INFO, Globalization, CultureInfo) +DEFINE_METHOD(CULTURE_INFO, STR_CTOR, .ctor, IM_Str_RetVoid) +DEFINE_FIELD(CULTURE_INFO, CURRENT_CULTURE, s_userDefaultCulture) +DEFINE_PROPERTY(CULTURE_INFO, NAME, Name, Str) +#ifdef FEATURE_USE_LCID +DEFINE_METHOD(CULTURE_INFO, INT_CTOR, .ctor, IM_Int_RetVoid) +DEFINE_PROPERTY(CULTURE_INFO, ID, LCID, Int) +#endif +DEFINE_PROPERTY(CULTURE_INFO, PARENT, Parent, CultureInfo) + +DEFINE_CLASS(CURRENCY, System, Currency) +DEFINE_METHOD(CURRENCY, DECIMAL_CTOR, .ctor, IM_Dec_RetVoid) + +#ifdef FEATURE_COMINTEROP +DEFINE_CLASS(CURRENCY_WRAPPER, Interop, CurrencyWrapper) +#endif + +DEFINE_CLASS(DATE_TIME, System, DateTime) +DEFINE_METHOD(DATE_TIME, LONG_CTOR, .ctor, IM_Long_RetVoid) + +#ifdef FEATURE_COMINTEROP +DEFINE_CLASS(DATE_TIME_OFFSET, System, DateTimeOffset) +#endif // FEATURE_COMINTEROP + +DEFINE_CLASS(DECIMAL, System, Decimal) +DEFINE_METHOD(DECIMAL, CURRENCY_CTOR, .ctor, IM_Currency_RetVoid) + +DEFINE_CLASS_U(System, Delegate, NoClass) +DEFINE_FIELD_U(_target, DelegateObject, _target) +DEFINE_FIELD_U(_methodBase, DelegateObject, _methodBase) +DEFINE_FIELD_U(_methodPtr, DelegateObject, _methodPtr) +DEFINE_FIELD_U(_methodPtrAux, DelegateObject, _methodPtrAux) +DEFINE_CLASS(DELEGATE, System, Delegate) +DEFINE_FIELD(DELEGATE, TARGET, _target) +DEFINE_FIELD(DELEGATE, METHOD_PTR, _methodPtr) +DEFINE_FIELD(DELEGATE, METHOD_PTR_AUX, _methodPtrAux) +DEFINE_METHOD(DELEGATE, CONSTRUCT_DELEGATE, DelegateConstruct, IM_Obj_IntPtr_RetVoid) +DEFINE_METHOD(DELEGATE, GET_INVOKE_METHOD, GetInvokeMethod, IM_RetIntPtr) + +#ifdef FEATURE_COMINTEROP +DEFINE_CLASS(DISPATCH_WRAPPER, Interop, DispatchWrapper) +#endif // FEATURE_COMINTEROP + +DEFINE_CLASS(DYNAMICMETHOD, ReflectionEmit, DynamicMethod) + +DEFINE_CLASS(DYNAMICRESOLVER, ReflectionEmit, DynamicResolver) +DEFINE_FIELD(DYNAMICRESOLVER, DYNAMIC_METHOD, m_method) + +DEFINE_CLASS(EMPTY, System, Empty) + +DEFINE_CLASS(ENC_HELPER, Diagnostics, EditAndContinueHelper) +DEFINE_FIELD(ENC_HELPER, OBJECT_REFERENCE, _objectReference) + +DEFINE_CLASS(ENCODING, Text, Encoding) + +DEFINE_CLASS(ENUM, System, Enum) + +DEFINE_CLASS(ENVIRONMENT, System, Environment) +DEFINE_METHOD(ENVIRONMENT, GET_RESOURCE_STRING_LOCAL, GetResourceStringLocal, SM_Str_RetStr) +#ifdef FEATURE_CORECLR +DEFINE_METHOD(ENVIRONMENT, SET_COMMAND_LINE_ARGS, SetCommandLineArgs, SM_ArrStr_RetVoid) +#endif + +#ifdef FEATURE_COMINTEROP +DEFINE_CLASS(ERROR_WRAPPER, Interop, ErrorWrapper) +#endif + +DEFINE_CLASS(EVENT, Reflection, RuntimeEventInfo) + +DEFINE_CLASS(EVENT_ARGS, System, EventArgs) + +DEFINE_CLASS(EVENT_HANDLERGENERIC, System, EventHandler`1) + +DEFINE_CLASS(EVENT_INFO, Reflection, EventInfo) + +DEFINE_CLASS(EVIDENCE, Policy, Evidence) +#ifdef FEATURE_CAS_POLICY +// .ctor support for ICorRuntimeHost::CreateEvidence +DEFINE_METHOD(EVIDENCE, CTOR, .ctor, IM_RetVoid) +DEFINE_METHOD(EVIDENCE, WAS_STRONGNAME_EVIDENCE_USED, WasStrongNameEvidenceUsed, IM_RetBool) +#endif // FEATURE_CAS_POLICY + +DEFINE_CLASS_U(System, Exception, ExceptionObject) +DEFINE_FIELD_U(_className, ExceptionObject, _className) +DEFINE_FIELD_U(_exceptionMethod, ExceptionObject, _exceptionMethod) +DEFINE_FIELD_U(_exceptionMethodString,ExceptionObject, _exceptionMethodString) +DEFINE_FIELD_U(_message, ExceptionObject, _message) +DEFINE_FIELD_U(_data, ExceptionObject, _data) +DEFINE_FIELD_U(_innerException, ExceptionObject, _innerException) +DEFINE_FIELD_U(_helpURL, ExceptionObject, _helpURL) +DEFINE_FIELD_U(_source, ExceptionObject, _source) +DEFINE_FIELD_U(_stackTrace, ExceptionObject, _stackTrace) +DEFINE_FIELD_U(_watsonBuckets, ExceptionObject, _watsonBuckets) +DEFINE_FIELD_U(_stackTraceString, ExceptionObject, _stackTraceString) +DEFINE_FIELD_U(_remoteStackTraceString, ExceptionObject, _remoteStackTraceString) +DEFINE_FIELD_U(_dynamicMethods, ExceptionObject, _dynamicMethods) +DEFINE_FIELD_U(_xptrs, ExceptionObject, _xptrs) +#ifdef FEATURE_SERIALIZATION +DEFINE_FIELD_U(_safeSerializationManager, ExceptionObject, _safeSerializationManager) +#endif // FEATURE_SERIALIZATION +DEFINE_FIELD_U(_HResult, ExceptionObject, _HResult) +DEFINE_FIELD_U(_xcode, ExceptionObject, _xcode) +DEFINE_FIELD_U(_remoteStackIndex, ExceptionObject, _remoteStackIndex) +DEFINE_FIELD_U(_ipForWatsonBuckets,ExceptionObject, _ipForWatsonBuckets) +DEFINE_CLASS(EXCEPTION, System, Exception) +DEFINE_METHOD(EXCEPTION, GET_CLASS_NAME, GetClassName, IM_RetStr) +DEFINE_PROPERTY(EXCEPTION, MESSAGE, Message, Str) +DEFINE_PROPERTY(EXCEPTION, SOURCE, Source, Str) +DEFINE_PROPERTY(EXCEPTION, HELP_LINK, HelpLink, Str) +DEFINE_METHOD(EXCEPTION, INTERNAL_TO_STRING, InternalToString, IM_RetStr) +DEFINE_METHOD(EXCEPTION, TO_STRING, ToString, IM_Bool_Bool_RetStr) +DEFINE_METHOD(EXCEPTION, INTERNAL_PRESERVE_STACK_TRACE, InternalPreserveStackTrace, IM_RetVoid) +#ifdef FEATURE_COMINTEROP +DEFINE_METHOD(EXCEPTION, ADD_EXCEPTION_DATA_FOR_RESTRICTED_ERROR_INFO, AddExceptionDataForRestrictedErrorInfo, IM_Str_Str_Str_Obj_Bool_RetVoid) +DEFINE_METHOD(EXCEPTION, TRY_GET_RESTRICTED_LANGUAGE_ERROR_OBJECT, TryGetRestrictedLanguageErrorObject, IM_RefObject_RetBool) +#endif // FEATURE_COMINTEROP + +#ifdef FEATURE_CORECLR + +DEFINE_CLASS(CROSSAPPDOMAINMARSHALEDEXCEPTION, System, CrossAppDomainMarshaledException) +DEFINE_METHOD(CROSSAPPDOMAINMARSHALEDEXCEPTION, STR_INT_CTOR, .ctor, IM_Str_Int_RetVoid) + +#endif //FEATURE_CORECLR + + +DEFINE_CLASS(SYSTEM_EXCEPTION, System, SystemException) +DEFINE_METHOD(SYSTEM_EXCEPTION, STR_EX_CTOR, .ctor, IM_Str_Exception_RetVoid) + + +DEFINE_CLASS(TYPE_INIT_EXCEPTION, System, TypeInitializationException) +DEFINE_METHOD(TYPE_INIT_EXCEPTION, STR_EX_CTOR, .ctor, IM_Str_Exception_RetVoid) + +DEFINE_CLASS(THREAD_START_EXCEPTION,Threading, ThreadStartException) +DEFINE_METHOD(THREAD_START_EXCEPTION,EX_CTOR, .ctor, IM_Exception_RetVoid) + +DEFINE_CLASS(TYPE_HANDLE, System, RuntimeTypeHandle) +DEFINE_CLASS(RT_TYPE_HANDLE, System, RuntimeTypeHandle) +DEFINE_METHOD(RT_TYPE_HANDLE, GET_TYPE_HELPER, GetTypeHelper, SM_Type_ArrType_IntPtr_int_RetType) +DEFINE_METHOD(RT_TYPE_HANDLE, PVOID_CTOR, .ctor, IM_RuntimeType_RetVoid) +DEFINE_METHOD(RT_TYPE_HANDLE, GETVALUEINTERNAL, GetValueInternal, SM_RuntimeTypeHandle_RetIntPtr) +DEFINE_FIELD(RT_TYPE_HANDLE, M_TYPE, m_type) + +DEFINE_CLASS_U(Reflection, RtFieldInfo, NoClass) +DEFINE_FIELD_U(m_fieldHandle, ReflectFieldObject, m_pFD) +DEFINE_CLASS(RT_FIELD_INFO, Reflection, RtFieldInfo) +DEFINE_FIELD(RT_FIELD_INFO, HANDLE, m_fieldHandle) + +DEFINE_CLASS_U(System, RuntimeFieldInfoStub, ReflectFieldObject) +DEFINE_FIELD_U(m_fieldHandle, ReflectFieldObject, m_pFD) +DEFINE_CLASS(STUBFIELDINFO, System, RuntimeFieldInfoStub) + +DEFINE_CLASS(FIELD, Reflection, RuntimeFieldInfo) +DEFINE_METHOD(FIELD, SET_VALUE, SetValue, IM_Obj_Obj_BindingFlags_Binder_CultureInfo_RetVoid) +DEFINE_METHOD(FIELD, GET_VALUE, GetValue, IM_Obj_RetObj) + +DEFINE_CLASS(FIELD_HANDLE, System, RuntimeFieldHandle) +DEFINE_FIELD(FIELD_HANDLE, M_FIELD, m_ptr) + +DEFINE_CLASS(I_RT_FIELD_INFO, System, IRuntimeFieldInfo) + +DEFINE_CLASS(FIELD_INFO, Reflection, FieldInfo) + +DEFINE_CLASS_U(IO, FileStreamAsyncResult, AsyncResultBase) +DEFINE_FIELD_U(_userCallback, AsyncResultBase, _userCallback) +DEFINE_FIELD_U(_userStateObject, AsyncResultBase, _userStateObject) +DEFINE_FIELD_U(_waitHandle, AsyncResultBase, _waitHandle) +DEFINE_FIELD_U(_handle, AsyncResultBase, _fileHandle) +DEFINE_FIELD_U(_overlapped, AsyncResultBase, _overlapped) +DEFINE_FIELD_U(_EndXxxCalled, AsyncResultBase, _EndXxxCalled) +DEFINE_FIELD_U(_numBytes, AsyncResultBase, _numBytes) +DEFINE_FIELD_U(_errorCode, AsyncResultBase, _errorCode) +DEFINE_FIELD_U(_numBufferedBytes, AsyncResultBase, _numBufferedBytes) +DEFINE_FIELD_U(_isWrite, AsyncResultBase, _isWrite) +DEFINE_FIELD_U(_isComplete, AsyncResultBase, _isComplete) +DEFINE_FIELD_U(_completedSynchronously, AsyncResultBase, _completedSynchronously) +DEFINE_CLASS(FILESTREAM_ASYNCRESULT, IO, FileStreamAsyncResult) + +DEFINE_CLASS_U(Security, FrameSecurityDescriptor, FrameSecurityDescriptorBaseObject) +DEFINE_FIELD_U(m_assertions, FrameSecurityDescriptorBaseObject, m_assertions) +DEFINE_FIELD_U(m_denials, FrameSecurityDescriptorBaseObject, m_denials) +DEFINE_FIELD_U(m_restriction, FrameSecurityDescriptorBaseObject, m_restriction) +DEFINE_FIELD_U(m_AssertFT, FrameSecurityDescriptorBaseObject, m_assertFT) +DEFINE_FIELD_U(m_assertAllPossible,FrameSecurityDescriptorBaseObject, m_assertAllPossible) +DEFINE_FIELD_U(m_DeclarativeAssertions, FrameSecurityDescriptorBaseObject, m_DeclarativeAssertions) +DEFINE_FIELD_U(m_DeclarativeDenials, FrameSecurityDescriptorBaseObject, m_DeclarativeDenials) +DEFINE_FIELD_U(m_DeclarativeRestrictions, FrameSecurityDescriptorBaseObject, m_DeclarativeRestrictions) +#ifndef FEATURE_PAL +DEFINE_FIELD_U(m_callerToken, FrameSecurityDescriptorBaseObject, m_callerToken) +DEFINE_FIELD_U(m_impToken, FrameSecurityDescriptorBaseObject, m_impToken) +#endif +DEFINE_CLASS(FRAME_SECURITY_DESCRIPTOR, Security, FrameSecurityDescriptor) + +DEFINE_CLASS(GUID, System, Guid) + +#ifdef FEATURE_COMINTEROP +DEFINE_CLASS(HSTRING_HEADER_MANAGED, WinRT, HSTRING_HEADER) + +DEFINE_CLASS(ICUSTOMPROPERTY, WinRT, ICustomProperty) +DEFINE_CLASS(ICUSTOMPROPERTYPROVIDERIMPL, WinRT, ICustomPropertyProviderImpl) +DEFINE_METHOD(ICUSTOMPROPERTYPROVIDERIMPL, CREATE_PROPERTY, CreateProperty, SM_Obj_Str_RetICustomProperty) +DEFINE_METHOD(ICUSTOMPROPERTYPROVIDERIMPL, CREATE_INDEXED_PROPERTY, CreateIndexedProperty, SM_Obj_Str_PtrTypeName_RetICustomProperty) +DEFINE_METHOD(ICUSTOMPROPERTYPROVIDERIMPL, GET_TYPE, GetType, SM_Obj_PtrTypeName_RetVoid) +DEFINE_CLASS(ICUSTOMPROPERTYPROVIDERPROXY, WinRT, ICustomPropertyProviderProxy`2) +DEFINE_METHOD(ICUSTOMPROPERTYPROVIDERPROXY, CREATE_INSTANCE, CreateInstance, SM_Obj_RetObj) + +DEFINE_CLASS(FACTORYFORIREFERENCE, WinRT, IReferenceFactory) +DEFINE_METHOD(FACTORYFORIREFERENCE, CREATE_IREFERENCE, CreateIReference, SM_Obj_RetObj) +DEFINE_CLASS(CLRIREFERENCEIMPL, WinRT, CLRIReferenceImpl`1) +DEFINE_METHOD(CLRIREFERENCEIMPL, UNBOXHELPER, UnboxHelper, SM_Obj_RetObj) +DEFINE_CLASS(CLRIREFERENCEARRAYIMPL, WinRT, CLRIReferenceArrayImpl`1) +DEFINE_METHOD(CLRIREFERENCEARRAYIMPL,UNBOXHELPER, UnboxHelper, SM_Obj_RetObj) +DEFINE_CLASS(IREFERENCE, WinRT, IReference`1) +DEFINE_CLASS(CLRIKEYVALUEPAIRIMPL, WinRT, CLRIKeyValuePairImpl`2) +DEFINE_METHOD(CLRIKEYVALUEPAIRIMPL, BOXHELPER, BoxHelper, SM_Obj_RetObj) +DEFINE_METHOD(CLRIKEYVALUEPAIRIMPL, UNBOXHELPER, UnboxHelper, SM_Obj_RetObj) + +DEFINE_CLASS(WINDOWS_FOUNDATION_EVENTHANDLER, WinRT, WindowsFoundationEventHandler`1) + +DEFINE_CLASS(VARIANT, System, Variant) +DEFINE_METHOD(VARIANT, CONVERT_OBJECT_TO_VARIANT,MarshalHelperConvertObjectToVariant,SM_Obj_RefVariant_RetVoid) +DEFINE_METHOD(VARIANT, CAST_VARIANT, MarshalHelperCastVariant, SM_Obj_Int_RefVariant_RetVoid) +DEFINE_METHOD(VARIANT, CONVERT_VARIANT_TO_OBJECT,MarshalHelperConvertVariantToObject,SM_RefVariant_RetObject) +#endif // FEATURE_COMINTEROP + +DEFINE_CLASS(IASYNCRESULT, System, IAsyncResult) + +DEFINE_CLASS(ICUSTOM_ATTR_PROVIDER, Reflection, ICustomAttributeProvider) +DEFINE_METHOD(ICUSTOM_ATTR_PROVIDER,GET_CUSTOM_ATTRIBUTES, GetCustomAttributes, IM_Type_RetArrObj) + +DEFINE_CLASS(ICUSTOM_MARSHALER, Interop, ICustomMarshaler) +DEFINE_METHOD(ICUSTOM_MARSHALER, MARSHAL_NATIVE_TO_MANAGED,MarshalNativeToManaged, IM_IntPtr_RetObj) +DEFINE_METHOD(ICUSTOM_MARSHALER, MARSHAL_MANAGED_TO_NATIVE,MarshalManagedToNative, IM_Obj_RetIntPtr) +DEFINE_METHOD(ICUSTOM_MARSHALER, CLEANUP_NATIVE_DATA, CleanUpNativeData, IM_IntPtr_RetVoid) +DEFINE_METHOD(ICUSTOM_MARSHALER, CLEANUP_MANAGED_DATA, CleanUpManagedData, IM_Obj_RetVoid) +DEFINE_METHOD(ICUSTOM_MARSHALER, GET_NATIVE_DATA_SIZE, GetNativeDataSize, IM_RetInt) + +#ifdef FEATURE_COMINTEROP +DEFINE_CLASS(ICUSTOM_QUERYINTERFACE, Interop, ICustomQueryInterface) +DEFINE_METHOD(ICUSTOM_QUERYINTERFACE, GET_INTERFACE, GetInterface, IM_RefGuid_OutIntPtr_RetCustomQueryInterfaceResult) +DEFINE_CLASS(CUSTOMQUERYINTERFACERESULT, Interop, CustomQueryInterfaceResult) +#endif //FEATURE_COMINTEROP + +#ifdef FEATURE_REMOTING +DEFINE_CLASS(IDENTITY, Remoting, Identity) +DEFINE_FIELD(IDENTITY, TP_OR_OBJECT, _tpOrObject) +DEFINE_FIELD(IDENTITY, LEASE, _lease) +DEFINE_FIELD(IDENTITY, OBJURI, _ObjURI) +#endif + +DEFINE_CLASS(ISERIALIZABLE, Serialization, ISerializable) +DEFINE_CLASS(IOBJECTREFERENCE, Serialization, IObjectReference) +DEFINE_CLASS(IDESERIALIZATIONCB, Serialization, IDeserializationCallback) +DEFINE_CLASS(STREAMING_CONTEXT, Serialization, StreamingContext) +DEFINE_CLASS(SERIALIZATION_INFO, Serialization, SerializationInfo) + +#ifdef FEATURE_REMOTING +DEFINE_CLASS(OBJECTCLONEHELPER, Serialization, ObjectCloneHelper) +DEFINE_METHOD(OBJECTCLONEHELPER, GET_OBJECT_DATA, GetObjectData, SM_Obj_OutStr_OutStr_OutArrStr_OutArrObj_RetObj) +DEFINE_METHOD(OBJECTCLONEHELPER, PREPARE_DATA, PrepareConstructorArgs, SM_Obj_ArrStr_ArrObj_OutStreamingContext_RetSerializationInfo) +#endif + + +DEFINE_CLASS(IENUMERATOR, Collections, IEnumerator) + +DEFINE_CLASS(IENUMERABLE, Collections, IEnumerable) +DEFINE_CLASS(ICOLLECTION, Collections, ICollection) +DEFINE_CLASS(ILIST, Collections, IList) +DEFINE_CLASS(IDISPOSABLE, System, IDisposable) + +DEFINE_CLASS(IEXPANDO, Expando, IExpando) +DEFINE_METHOD(IEXPANDO, ADD_FIELD, AddField, IM_Str_RetFieldInfo) +DEFINE_METHOD(IEXPANDO, REMOVE_MEMBER, RemoveMember, IM_MemberInfo_RetVoid) + +DEFINE_CLASS(IPERMISSION, Security, IPermission) + +DEFINE_CLASS(IPRINCIPAL, Principal, IPrincipal) + +DEFINE_CLASS(IREFLECT, Reflection, IReflect) +DEFINE_METHOD(IREFLECT, GET_PROPERTIES, GetProperties, IM_BindingFlags_RetArrPropertyInfo) +DEFINE_METHOD(IREFLECT, GET_FIELDS, GetFields, IM_BindingFlags_RetArrFieldInfo) +DEFINE_METHOD(IREFLECT, GET_METHODS, GetMethods, IM_BindingFlags_RetArrMethodInfo) +DEFINE_METHOD(IREFLECT, INVOKE_MEMBER, InvokeMember, IM_Str_BindingFlags_Binder_Obj_ArrObj_ArrParameterModifier_CultureInfo_ArrStr_RetObj) + +#ifdef FEATURE_ISOSTORE +#ifndef FEATURE_ISOSTORE_LIGHT +DEFINE_CLASS(ISS_STORE, IsolatedStorage, IsolatedStorage) +#endif // !FEATURE_ISOSTORE_LIGHT +DEFINE_CLASS(ISS_STORE_FILE, IsolatedStorage, IsolatedStorageFile) +DEFINE_CLASS(ISS_STORE_FILE_STREAM, IsolatedStorage, IsolatedStorageFileStream) +#endif + +#ifdef FEATURE_COMINTEROP +DEFINE_CLASS(LCID_CONVERSION_TYPE, Interop, LCIDConversionAttribute) +#endif // FEATURE_COMINTEROP + +DEFINE_CLASS(LOADER_OPTIMIZATION, System, LoaderOptimization) + +#ifdef FEATURE_REMOTING +DEFINE_CLASS_U(Messaging, LogicalCallContext, LogicalCallContextObject) +DEFINE_FIELD_U(m_Datastore, LogicalCallContextObject, m_Datastore) +DEFINE_FIELD_U(m_RemotingData, LogicalCallContextObject, m_RemotingData) +DEFINE_FIELD_U(m_SecurityData, LogicalCallContextObject, m_SecurityData) +DEFINE_FIELD_U(m_HostContext, LogicalCallContextObject, m_HostContext) +DEFINE_FIELD_U(m_IsCorrelationMgr, LogicalCallContextObject, m_IsCorrelationMgr) +DEFINE_FIELD_U(_sendHeaders, LogicalCallContextObject, _sendHeaders) +DEFINE_FIELD_U(_recvHeaders, LogicalCallContextObject, _recvHeaders) +#endif + +DEFINE_CLASS(MARSHAL, Interop, Marshal) +#ifdef FEATURE_COMINTEROP +DEFINE_METHOD(MARSHAL, LOAD_LICENSE_MANAGER, LoadLicenseManager, SM_Void_RetIntPtr) +DEFINE_METHOD(MARSHAL, INITIALIZE_WRAPPER_FOR_WINRT, InitializeWrapperForWinRT, SM_Obj_RefIntPtr_RetVoid) +DEFINE_METHOD(MARSHAL, GET_HR_FOR_EXCEPTION, GetHRForException, SM_Exception_RetInt) +DEFINE_METHOD(MARSHAL, GET_HR_FOR_EXCEPTION_WINRT, GetHRForException_WinRT, SM_Exception_RetInt) +#endif // FEATURE_COMINTEROP +DEFINE_METHOD(MARSHAL, GET_FUNCTION_POINTER_FOR_DELEGATE, GetFunctionPointerForDelegate, SM_Delegate_RetIntPtr) +DEFINE_METHOD(MARSHAL, GET_DELEGATE_FOR_FUNCTION_POINTER, GetDelegateForFunctionPointer, SM_IntPtr_Type_RetDelegate) +DEFINE_METHOD(MARSHAL, ALLOC_CO_TASK_MEM, AllocCoTaskMem, SM_Int_RetIntPtr) +DEFINE_FIELD(MARSHAL, SYSTEM_MAX_DBCS_CHAR_SIZE, SystemMaxDBCSCharSize) + +#ifdef FEATURE_REMOTING +DEFINE_CLASS_U(System, MarshalByRefObject, MarshalByRefObjectBaseObject) +DEFINE_FIELD_U(__identity, MarshalByRefObjectBaseObject, m_ServerIdentity) +DEFINE_CLASS(MARSHAL_BY_REF_OBJECT, System, MarshalByRefObject) +#endif + +DEFINE_CLASS(MEMBER, Reflection, MemberInfo) + +#ifdef FEATURE_REMOTING +DEFINE_CLASS_U(Messaging, Message, MessageObject) +DEFINE_FIELD_U(_MethodName, MessageObject, pMethodName) +DEFINE_FIELD_U(_MethodSignature, MessageObject, pMethodSig) +DEFINE_FIELD_U(_MethodBase, MessageObject, pMethodBase) +DEFINE_FIELD_U(_properties, MessageObject, pHashTable) +DEFINE_FIELD_U(_URI, MessageObject, pURI) +DEFINE_FIELD_U(_typeName, MessageObject, pTypeName) +DEFINE_FIELD_U(_Fault, MessageObject, pFault) +DEFINE_FIELD_U(_ID, MessageObject, pID) +DEFINE_FIELD_U(_srvID, MessageObject, pSrvID) +DEFINE_FIELD_U(_argMapper, MessageObject, pArgMapper) +DEFINE_FIELD_U(_callContext, MessageObject, pCallCtx) +DEFINE_FIELD_U(_frame, MessageObject, pFrame) +DEFINE_FIELD_U(_methodDesc, MessageObject, pMethodDesc) +DEFINE_FIELD_U(_metaSigHolder, MessageObject, pMetaSigHolder) +DEFINE_FIELD_U(_delegateMD, MessageObject, pDelegateMD) +DEFINE_FIELD_U(_governingType, MessageObject, thGoverningType) +DEFINE_FIELD_U(_flags, MessageObject, iFlags) +DEFINE_FIELD_U(_initDone, MessageObject, initDone) + +DEFINE_CLASS(MESSAGE_DATA, Proxies, MessageData) +#endif // FEATURE_REMOTING + +DEFINE_CLASS_U(Reflection, RuntimeMethodInfo, NoClass) +DEFINE_FIELD_U(m_handle, ReflectMethodObject, m_pMD) +DEFINE_CLASS(METHOD, Reflection, RuntimeMethodInfo) +DEFINE_METHOD(METHOD, INVOKE, Invoke, IM_Obj_BindingFlags_Binder_ArrObj_CultureInfo_RetObj) +DEFINE_METHOD(METHOD, GET_PARAMETERS, GetParameters, IM_RetArrParameterInfo) + +DEFINE_CLASS(METHOD_BASE, Reflection, MethodBase) +DEFINE_METHOD(METHOD_BASE, GET_METHODDESC, GetMethodDesc, IM_RetIntPtr) + +DEFINE_CLASS_U(Reflection, ExceptionHandlingClause, ExceptionHandlingClause) +DEFINE_FIELD_U(m_methodBody, ExceptionHandlingClause, m_methodBody) +DEFINE_FIELD_U(m_flags, ExceptionHandlingClause, m_flags) +DEFINE_FIELD_U(m_tryOffset, ExceptionHandlingClause, m_tryOffset) +DEFINE_FIELD_U(m_tryLength, ExceptionHandlingClause, m_tryLength) +DEFINE_FIELD_U(m_handlerOffset, ExceptionHandlingClause, m_handlerOffset) +DEFINE_FIELD_U(m_handlerLength, ExceptionHandlingClause, m_handlerLength) +DEFINE_FIELD_U(m_catchMetadataToken, ExceptionHandlingClause, m_catchToken) +DEFINE_FIELD_U(m_filterOffset, ExceptionHandlingClause, m_filterOffset) +DEFINE_CLASS(EH_CLAUSE, Reflection, ExceptionHandlingClause) + +DEFINE_CLASS_U(Reflection, LocalVariableInfo, LocalVariableInfo) +DEFINE_FIELD_U(m_type, LocalVariableInfo, m_type) +DEFINE_FIELD_U(m_isPinned, LocalVariableInfo, m_bIsPinned) +DEFINE_FIELD_U(m_localIndex, LocalVariableInfo, m_localIndex) +DEFINE_CLASS(LOCAL_VARIABLE_INFO, Reflection, LocalVariableInfo) + +DEFINE_CLASS_U(Reflection, MethodBody, MethodBody) +DEFINE_FIELD_U(m_IL, MethodBody, m_IL) +DEFINE_FIELD_U(m_exceptionHandlingClauses, MethodBody, m_exceptionClauses) +DEFINE_FIELD_U(m_localVariables, MethodBody, m_localVariables) +DEFINE_FIELD_U(m_methodBase, MethodBody, m_methodBase) +DEFINE_FIELD_U(m_localSignatureMetadataToken, MethodBody, m_localVarSigToken) +DEFINE_FIELD_U(m_maxStackSize, MethodBody, m_maxStackSize) +DEFINE_FIELD_U(m_initLocals, MethodBody, m_initLocals) +DEFINE_CLASS(METHOD_BODY, Reflection, MethodBody) + +DEFINE_CLASS(METHOD_INFO, Reflection, MethodInfo) + +DEFINE_CLASS(METHOD_HANDLE_INTERNAL,System, RuntimeMethodHandleInternal) + +DEFINE_CLASS(METHOD_HANDLE, System, RuntimeMethodHandle) +DEFINE_FIELD(METHOD_HANDLE, METHOD, m_value) +DEFINE_METHOD(METHOD_HANDLE, GETVALUEINTERNAL, GetValueInternal, SM_RuntimeMethodHandle_RetIntPtr) + +#ifdef FEATURE_METHOD_RENTAL +DEFINE_CLASS(METHOD_RENTAL, ReflectionEmit, MethodRental) +#endif // FEATURE_METHOD_RENTAL + +DEFINE_CLASS(MISSING, Reflection, Missing) +DEFINE_FIELD(MISSING, VALUE, Value) + +DEFINE_CLASS_U(Reflection, RuntimeModule, ReflectModuleBaseObject) +DEFINE_FIELD_U(m_runtimeType, ReflectModuleBaseObject, m_runtimeType) +DEFINE_FIELD_U(m_pRefClass, ReflectModuleBaseObject, m_ReflectClass) +DEFINE_FIELD_U(m_pData, ReflectModuleBaseObject, m_pData) +DEFINE_FIELD_U(m_pGlobals, ReflectModuleBaseObject, m_pGlobals) +DEFINE_FIELD_U(m_pFields, ReflectModuleBaseObject, m_pGlobalsFlds) +DEFINE_CLASS(MODULE, Reflection, RuntimeModule) +DEFINE_FIELD(MODULE, DATA, m_pData) + +DEFINE_CLASS(MODULE_BUILDER, ReflectionEmit, InternalModuleBuilder) +DEFINE_CLASS(TYPE_BUILDER, ReflectionEmit, TypeBuilder) +DEFINE_CLASS(ENUM_BUILDER, ReflectionEmit, EnumBuilder) + +DEFINE_CLASS_U(System, MulticastDelegate, DelegateObject) +DEFINE_FIELD_U(_invocationList, DelegateObject, _invocationList) +DEFINE_FIELD_U(_invocationCount, DelegateObject, _invocationCount) +DEFINE_CLASS(MULTICAST_DELEGATE, System, MulticastDelegate) +DEFINE_FIELD(MULTICAST_DELEGATE, INVOCATION_LIST, _invocationList) +DEFINE_FIELD(MULTICAST_DELEGATE, INVOCATION_COUNT, _invocationCount) +DEFINE_METHOD(MULTICAST_DELEGATE, CTOR_CLOSED, CtorClosed, IM_Obj_IntPtr_RetVoid) +DEFINE_METHOD(MULTICAST_DELEGATE, CTOR_CLOSED_STATIC, CtorClosedStatic, IM_Obj_IntPtr_RetVoid) +DEFINE_METHOD(MULTICAST_DELEGATE, CTOR_RT_CLOSED, CtorRTClosed, IM_Obj_IntPtr_RetVoid) +DEFINE_METHOD(MULTICAST_DELEGATE, CTOR_OPENED, CtorOpened, IM_Obj_IntPtr_IntPtr_RetVoid) +DEFINE_METHOD(MULTICAST_DELEGATE, CTOR_SECURE_CLOSED, CtorSecureClosed, IM_Obj_IntPtr_IntPtr_IntPtr_RetVoid) +DEFINE_METHOD(MULTICAST_DELEGATE, CTOR_SECURE_CLOSED_STATIC,CtorSecureClosedStatic, IM_Obj_IntPtr_IntPtr_IntPtr_RetVoid) +DEFINE_METHOD(MULTICAST_DELEGATE, CTOR_SECURE_RT_CLOSED, CtorSecureRTClosed, IM_Obj_IntPtr_IntPtr_IntPtr_RetVoid) +DEFINE_METHOD(MULTICAST_DELEGATE, CTOR_SECURE_OPENED, CtorSecureOpened, IM_Obj_IntPtr_IntPtr_IntPtr_IntPtr_RetVoid) +DEFINE_METHOD(MULTICAST_DELEGATE, CTOR_VIRTUAL_DISPATCH, CtorVirtualDispatch, IM_Obj_IntPtr_IntPtr_RetVoid) +DEFINE_METHOD(MULTICAST_DELEGATE, CTOR_SECURE_VIRTUAL_DISPATCH, CtorSecureVirtualDispatch, IM_Obj_IntPtr_IntPtr_IntPtr_IntPtr_RetVoid) +DEFINE_METHOD(MULTICAST_DELEGATE, CTOR_COLLECTIBLE_CLOSED_STATIC, CtorCollectibleClosedStatic, IM_Obj_IntPtr_IntPtr_RetVoid) +DEFINE_METHOD(MULTICAST_DELEGATE, CTOR_COLLECTIBLE_OPENED, CtorCollectibleOpened, IM_Obj_IntPtr_IntPtr_IntPtr_RetVoid) +DEFINE_METHOD(MULTICAST_DELEGATE, CTOR_COLLECTIBLE_VIRTUAL_DISPATCH, CtorCollectibleVirtualDispatch, IM_Obj_IntPtr_IntPtr_IntPtr_RetVoid) + +DEFINE_CLASS(NULL, System, DBNull) +DEFINE_FIELD(NULL, VALUE, Value) + +DEFINE_CLASS(NULLABLE, System, Nullable`1) + +// Keep this in sync with System.Globalization.NumberFormatInfo +DEFINE_CLASS_U(Globalization, NumberFormatInfo, NumberFormatInfo) +DEFINE_FIELD_U(numberGroupSizes, NumberFormatInfo, cNumberGroup) +DEFINE_FIELD_U(currencyGroupSizes, NumberFormatInfo, cCurrencyGroup) +DEFINE_FIELD_U(percentGroupSizes, NumberFormatInfo, cPercentGroup) +DEFINE_FIELD_U(positiveSign, NumberFormatInfo, sPositive) +DEFINE_FIELD_U(negativeSign, NumberFormatInfo, sNegative) +DEFINE_FIELD_U(numberDecimalSeparator, NumberFormatInfo, sNumberDecimal) +DEFINE_FIELD_U(numberGroupSeparator, NumberFormatInfo, sNumberGroup) +DEFINE_FIELD_U(currencyGroupSeparator, NumberFormatInfo, sCurrencyGroup) +DEFINE_FIELD_U(currencyDecimalSeparator,NumberFormatInfo, sCurrencyDecimal) +DEFINE_FIELD_U(currencySymbol, NumberFormatInfo, sCurrency) +#ifndef FEATURE_COREFX_GLOBALIZATION +DEFINE_FIELD_U(ansiCurrencySymbol, NumberFormatInfo, sAnsiCurrency) +#endif +DEFINE_FIELD_U(nanSymbol, NumberFormatInfo, sNaN) +DEFINE_FIELD_U(positiveInfinitySymbol, NumberFormatInfo, sPositiveInfinity) +DEFINE_FIELD_U(negativeInfinitySymbol, NumberFormatInfo, sNegativeInfinity) +DEFINE_FIELD_U(percentDecimalSeparator,NumberFormatInfo, sPercentDecimal) +DEFINE_FIELD_U(percentGroupSeparator, NumberFormatInfo, sPercentGroup) +DEFINE_FIELD_U(percentSymbol, NumberFormatInfo, sPercent) +DEFINE_FIELD_U(perMilleSymbol, NumberFormatInfo, sPerMille) +DEFINE_FIELD_U(nativeDigits, NumberFormatInfo, sNativeDigits) +#ifndef FEATURE_COREFX_GLOBALIZATION +DEFINE_FIELD_U(m_dataItem, NumberFormatInfo, iDataItem) +#endif +DEFINE_FIELD_U(numberDecimalDigits, NumberFormatInfo, cNumberDecimals) +DEFINE_FIELD_U(currencyDecimalDigits, NumberFormatInfo, cCurrencyDecimals) +DEFINE_FIELD_U(currencyPositivePattern,NumberFormatInfo, cPosCurrencyFormat) +DEFINE_FIELD_U(currencyNegativePattern,NumberFormatInfo, cNegCurrencyFormat) +DEFINE_FIELD_U(numberNegativePattern, NumberFormatInfo, cNegativeNumberFormat) +DEFINE_FIELD_U(percentPositivePattern, NumberFormatInfo, cPositivePercentFormat) +DEFINE_FIELD_U(percentNegativePattern, NumberFormatInfo, cNegativePercentFormat) +DEFINE_FIELD_U(percentDecimalDigits, NumberFormatInfo, cPercentDecimals) +#ifndef FEATURE_COREFX_GLOBALIZATION +DEFINE_FIELD_U(digitSubstitution, NumberFormatInfo, iDigitSubstitution) +#endif +DEFINE_FIELD_U(isReadOnly, NumberFormatInfo, bIsReadOnly) +#ifndef FEATURE_COREFX_GLOBALIZATION +DEFINE_FIELD_U(m_useUserOverride, NumberFormatInfo, bUseUserOverride) +#endif +DEFINE_FIELD_U(m_isInvariant, NumberFormatInfo, bIsInvariant) +#ifndef FEATURE_COREFX_GLOBALIZATION +DEFINE_FIELD_U(validForParseAsNumber, NumberFormatInfo, bvalidForParseAsNumber) +DEFINE_FIELD_U(validForParseAsCurrency,NumberFormatInfo, bvalidForParseAsCurrency) +#endif + +// Defined as element type alias +// DEFINE_CLASS(OBJECT, System, Object) +DEFINE_METHOD(OBJECT, CTOR, .ctor, IM_RetVoid) +DEFINE_METHOD(OBJECT, FINALIZE, Finalize, IM_RetVoid) +DEFINE_METHOD(OBJECT, TO_STRING, ToString, IM_RetStr) +DEFINE_METHOD(OBJECT, GET_TYPE, GetType, IM_RetType) +DEFINE_METHOD(OBJECT, GET_HASH_CODE, GetHashCode, IM_RetInt) +DEFINE_METHOD(OBJECT, EQUALS, Equals, IM_Obj_RetBool) +DEFINE_METHOD(OBJECT, FIELD_SETTER, FieldSetter, IM_Str_Str_Obj_RetVoid) +DEFINE_METHOD(OBJECT, FIELD_GETTER, FieldGetter, IM_Str_Str_RefObj_RetVoid) + +DEFINE_CLASS(__CANON, System, __Canon) + + +#ifdef FEATURE_COMINTEROP +DEFINE_CLASS(OLE_AUT_BINDER, System, OleAutBinder) +#endif // FEATURE_COMINTEROP + +DEFINE_CLASS(MONITOR, Threading, Monitor) +DEFINE_METHOD(MONITOR, ENTER, Enter, SM_Obj_RetVoid) + +// Note: The size of the OverlappedData can be inflated by the CLR host +DEFINE_CLASS_U(Threading, OverlappedData, NoClass) +DEFINE_FIELD_U(m_asyncResult, OverlappedDataObject, m_asyncResult) +DEFINE_FIELD_U(m_iocb, OverlappedDataObject, m_iocb) +DEFINE_FIELD_U(m_iocbHelper, OverlappedDataObject, m_iocbHelper) +DEFINE_FIELD_U(m_overlapped, OverlappedDataObject, m_overlapped) +DEFINE_FIELD_U(m_userObject, OverlappedDataObject, m_userObject) +DEFINE_FIELD_U(m_pinSelf, OverlappedDataObject, m_pinSelf) +DEFINE_FIELD_U(m_AppDomainId, OverlappedDataObject, m_AppDomainId) +DEFINE_FIELD_U(m_isArray, OverlappedDataObject, m_isArray) +DEFINE_CLASS(OVERLAPPEDDATA, Threading, OverlappedData) + +DEFINE_CLASS(NATIVEOVERLAPPED, Threading, NativeOverlapped) + + +DEFINE_CLASS(VOLATILE, Threading, Volatile) + +#define DEFINE_VOLATILE_METHODS(methodType, paramType) \ + DEFINE_METHOD(VOLATILE, READ_##paramType, Read, methodType##_Ref##paramType##_Ret##paramType) \ + DEFINE_METHOD(VOLATILE, WRITE_##paramType, Write, methodType##_Ref##paramType##_##paramType) + +DEFINE_VOLATILE_METHODS(SM,Bool) +DEFINE_VOLATILE_METHODS(SM,SByt) +DEFINE_VOLATILE_METHODS(SM,Byte) +DEFINE_VOLATILE_METHODS(SM,Shrt) +DEFINE_VOLATILE_METHODS(SM,UShrt) +DEFINE_VOLATILE_METHODS(SM,Int) +DEFINE_VOLATILE_METHODS(SM,UInt) +DEFINE_VOLATILE_METHODS(SM,Long) +DEFINE_VOLATILE_METHODS(SM,ULong) +DEFINE_VOLATILE_METHODS(SM,IntPtr) +DEFINE_VOLATILE_METHODS(SM,UIntPtr) +DEFINE_VOLATILE_METHODS(SM,Flt) +DEFINE_VOLATILE_METHODS(SM,Dbl) +DEFINE_VOLATILE_METHODS(GM,T) + +#undef DEFINE_VOLATILE_METHODS + +DEFINE_CLASS(PARAMETER, Reflection, ParameterInfo) + +DEFINE_CLASS(PARAMETER_MODIFIER, Reflection, ParameterModifier) + +// Keep this in sync with System.Security.PermissionSet +DEFINE_CLASS_U(Security, PermissionSet, PermissionSetObject) +DEFINE_FIELD_U(m_permSet, PermissionSetObject, _permSet) +DEFINE_FIELD_U(m_Unrestricted, PermissionSetObject, _Unrestricted) +DEFINE_FIELD_U(m_allPermissionsDecoded, PermissionSetObject, _allPermissionsDecoded) +#ifdef FEATURE_CAS_POLICY +DEFINE_FIELD_U(m_canUnrestrictedOverride,PermissionSetObject, _canUnrestrictedOverride) +#endif // FEATURE_CAS_POLICY +DEFINE_FIELD_U(m_ignoreTypeLoadFailures, PermissionSetObject, _ignoreTypeLoadFailures) +DEFINE_FIELD_U(m_CheckedForNonCas, PermissionSetObject, _CheckedForNonCas) +DEFINE_FIELD_U(m_ContainsCas, PermissionSetObject, _ContainsCas) +DEFINE_FIELD_U(m_ContainsNonCas, PermissionSetObject, _ContainsNonCas) + +DEFINE_CLASS(PERMISSION_SET, Security, PermissionSet) +DEFINE_METHOD(PERMISSION_SET, CTOR, .ctor, IM_Bool_RetVoid) +DEFINE_METHOD(PERMISSION_SET, CREATE_SERIALIZED, CreateSerialized, SM_ArrObj_Bool_RefArrByte_OutPMS_HostProtectionResource_Bool_RetArrByte) +#ifdef FEATURE_CAS_POLICY +DEFINE_METHOD(PERMISSION_SET, SETUP_SECURITY, SetupSecurity, SM_RetVoid) +#endif // FEATURE_CAS_POLICY +#ifdef FEATURE_CAS_POLICY +DEFINE_METHOD(PERMISSION_SET, DECODE_XML, DecodeXml, IM_ArrByte_HostProtectionResource_HostProtectionResource_RetBool) +DEFINE_METHOD(PERMISSION_SET, ENCODE_XML, EncodeXml, IM_RetArrByte) +#endif // FEATURE_CAS_POLICY +DEFINE_METHOD(PERMISSION_SET, CONTAINS, Contains, IM_IPermission_RetBool) +DEFINE_METHOD(PERMISSION_SET, DEMAND, Demand, IM_RetVoid) +DEFINE_METHOD(PERMISSION_SET, DEMAND_NON_CAS, DemandNonCAS, IM_RetVoid) +DEFINE_METHOD(PERMISSION_SET, IS_UNRESTRICTED, IsUnrestricted, IM_RetBool) +#ifdef FEATURE_CAS_POLICY +DEFINE_METHOD(PERMISSION_SET, IS_SUBSET_OF, IsSubsetOf, IM_PMS_RetBool) +DEFINE_METHOD(PERMISSION_SET, INTERSECT, Intersect, IM_PMS_RetPMS) +#endif // #ifdef FEATURE_CAS_POLICY +DEFINE_METHOD(PERMISSION_SET, INPLACE_UNION, InplaceUnion, IM_PMS_RetVoid) +DEFINE_METHOD(PERMISSION_SET, UNION, Union, IM_PMS_RetPMS) +DEFINE_METHOD(PERMISSION_SET, IS_EMPTY, IsEmpty, IM_RetBool) +DEFINE_METHOD(PERMISSION_SET, ADD_PERMISSION, AddPermission, IM_IPermission_RetIPermission) + +DEFINE_CLASS(NAMEDPERMISSION_SET, Security, NamedPermissionSet) + +#ifdef FEATURE_CAS_POLICY +DEFINE_CLASS(PEFILE_EVIDENCE_FACTORY, Policy, PEFileEvidenceFactory) +DEFINE_METHOD(PEFILE_EVIDENCE_FACTORY, CREATE_SECURITY_IDENTITY, CreateSecurityIdentity, SM_PEFile_Evidence_RetEvidence) +#endif // FEATURE_CAS_POLICY + +DEFINE_CLASS_U(Security, PermissionListSet, PermissionListSetObject) +DEFINE_FIELD_U(m_firstPermSetTriple, PermissionListSetObject, _firstPermSetTriple) +DEFINE_FIELD_U(m_permSetTriples, PermissionListSetObject, _permSetTriples) +#ifdef FEATURE_COMPRESSEDSTACK +DEFINE_FIELD_U(m_zoneList, PermissionListSetObject, _zoneList) +DEFINE_FIELD_U(m_originList, PermissionListSetObject, _originList) +#endif // FEAUTRE_COMPRESSEDSTACK +DEFINE_CLASS(PERMISSION_LIST_SET, Security, PermissionListSet) +DEFINE_METHOD(PERMISSION_LIST_SET, CTOR, .ctor, IM_RetVoid) +DEFINE_METHOD(PERMISSION_LIST_SET, CHECK_DEMAND_NO_THROW, CheckDemandNoThrow, IM_CodeAccessPermission_RetBool) +DEFINE_METHOD(PERMISSION_LIST_SET, CHECK_SET_DEMAND_NO_THROW, CheckSetDemandNoThrow, IM_PMS_RetBool) +DEFINE_METHOD(PERMISSION_LIST_SET, UPDATE, Update, IM_PMS_RetVoid) + +DEFINE_CLASS(PERMISSION_STATE, Permissions, PermissionState) + +DEFINE_CLASS(PERMISSION_TOKEN, Security, PermissionToken) + +DEFINE_CLASS(POINTER, Reflection, Pointer) + +DEFINE_CLASS_U(Reflection, Pointer, ReflectionPointer) +DEFINE_FIELD_U(_ptr, ReflectionPointer, _ptr) +DEFINE_FIELD_U(_ptrType, ReflectionPointer, _ptrType) + +DEFINE_CLASS(PROPERTY, Reflection, RuntimePropertyInfo) +DEFINE_METHOD(PROPERTY, SET_VALUE, SetValue, IM_Obj_Obj_BindingFlags_Binder_ArrObj_CultureInfo_RetVoid) +DEFINE_METHOD(PROPERTY, GET_VALUE, GetValue, IM_Obj_BindingFlags_Binder_ArrObj_CultureInfo_RetObj) +DEFINE_METHOD(PROPERTY, GET_INDEX_PARAMETERS, GetIndexParameters, IM_RetArrParameterInfo) +DEFINE_METHOD(PROPERTY, GET_TOKEN, get_MetadataToken, IM_RetInt) +DEFINE_METHOD(PROPERTY, GET_MODULE, GetRuntimeModule, IM_RetModule) +DEFINE_METHOD(PROPERTY, GET_SETTER, GetSetMethod, IM_Bool_RetMethodInfo) +DEFINE_METHOD(PROPERTY, GET_GETTER, GetGetMethod, IM_Bool_RetMethodInfo) + +DEFINE_CLASS(PROPERTY_INFO, Reflection, PropertyInfo) + +#ifdef FEATURE_REMOTING +DEFINE_CLASS(PROXY_ATTRIBUTE, Proxies, ProxyAttribute) + +DEFINE_CLASS_U(Proxies, RealProxy, RealProxyObject) +DEFINE_FIELD_U(_tp, RealProxyObject, _tp) +DEFINE_FIELD_U(_identity, RealProxyObject, _identity) +DEFINE_FIELD_U(_serverObject, RealProxyObject, _serverObject) +DEFINE_FIELD_U(_flags, RealProxyObject, _flags) +DEFINE_FIELD_U(_optFlags, RealProxyObject, _optFlags) +DEFINE_FIELD_U(_domainID, RealProxyObject, _domainID) +DEFINE_FIELD_U(_srvIdentity, RealProxyObject, _srvIdentity) +DEFINE_CLASS(REAL_PROXY, Proxies, RealProxy) +DEFINE_METHOD(REAL_PROXY, PRIVATE_INVOKE, PrivateInvoke, IM_RefMessageData_Int_RetVoid) +#ifdef FEATURE_COMINTEROP +DEFINE_METHOD(REAL_PROXY, GETDCOMPROXY, GetCOMIUnknown, IM_Bool_RetIntPtr) +DEFINE_METHOD(REAL_PROXY, SETDCOMPROXY, SetCOMIUnknown, IM_IntPtr_RetVoid) +DEFINE_METHOD(REAL_PROXY, SUPPORTSINTERFACE, SupportsInterface, IM_RefGuid_RetIntPtr) + +#endif // FEATURE_COMINTEROP +#endif // FEATURE_REMOTING + +DEFINE_CLASS(REFLECTION_PERMISSION, Permissions, ReflectionPermission) +DEFINE_METHOD(REFLECTION_PERMISSION, CTOR, .ctor, IM_ReflectionPermissionFlag_RetVoid) + +DEFINE_CLASS(REFLECTION_PERMISSION_FLAG, Permissions, ReflectionPermissionFlag) + +#ifdef FEATURE_COMINTEROP_REGISTRATION +DEFINE_CLASS(REGISTRATION_SERVICES, Interop, RegistrationServices) +DEFINE_METHOD(REGISTRATION_SERVICES,REGISTER_ASSEMBLY, RegisterAssembly, IM_AssemblyBase_AssemblyRegistrationFlags_RetBool) +DEFINE_METHOD(REGISTRATION_SERVICES,UNREGISTER_ASSEMBLY, UnregisterAssembly, IM_AssemblyBase_RetBool) +#endif // FEATURE_COMINTEROP_REGISTRATION + +#ifdef FEATURE_RWLOCK +DEFINE_CLASS_U(Threading, ReaderWriterLock, CRWLock) +DEFINE_FIELD_U(_hWriterEvent, CRWLock, _hWriterEvent) +DEFINE_FIELD_U(_hReaderEvent, CRWLock, _hReaderEvent) +DEFINE_FIELD_U(_hObjectHandle, CRWLock, _hObjectHandle) +DEFINE_FIELD_U(_dwState, CRWLock, _dwState) +DEFINE_FIELD_U(_dwULockID, CRWLock, _dwULockID) +DEFINE_FIELD_U(_dwLLockID, CRWLock, _dwLLockID) +DEFINE_FIELD_U(_dwWriterID, CRWLock, _dwWriterID) +DEFINE_FIELD_U(_dwWriterSeqNum, CRWLock, _dwWriterSeqNum) +DEFINE_FIELD_U(_wWriterLevel, CRWLock, _wWriterLevel) +#endif // FEATURE_RWLOCK + +#ifdef FEATURE_REMOTING +DEFINE_CLASS(LEASE, Lifetime, Lease) +DEFINE_METHOD(LEASE, RENEW_ON_CALL, RenewOnCall, IM_RetVoid) + +DEFINE_CLASS(REMOTING_PROXY, Proxies, RemotingProxy) +DEFINE_METHOD(REMOTING_PROXY, INVOKE, Invoke, SM_Obj_RefMessageData_RetVoid) + +DEFINE_CLASS(REMOTING_SERVICES, Remoting, RemotingServices) +DEFINE_METHOD(REMOTING_SERVICES, CHECK_CAST, CheckCast, SM_RealProxy_Class_RetBool) +DEFINE_METHOD(REMOTING_SERVICES, GET_TYPE, GetType, SM_Obj_RetObj) +DEFINE_METHOD(REMOTING_SERVICES, WRAP, Wrap, SM_ContextBoundObject_RetObj) +DEFINE_METHOD(REMOTING_SERVICES, CREATE_PROXY_FOR_DOMAIN,CreateProxyForDomain, SM_Int_IntPtr_RetObj) +DEFINE_METHOD(REMOTING_SERVICES, GET_SERVER_CONTEXT_FOR_PROXY,GetServerContextForProxy, SM_Obj_RetIntPtr) +DEFINE_METHOD(REMOTING_SERVICES, GET_SERVER_DOMAIN_ID_FOR_PROXY,GetServerDomainIdForProxy, SM_Obj_RetInt) +DEFINE_METHOD(REMOTING_SERVICES, MARSHAL_TO_BUFFER, MarshalToBuffer, SM_Obj_Bool_RetArrByte) +DEFINE_METHOD(REMOTING_SERVICES, UNMARSHAL_FROM_BUFFER, UnmarshalFromBuffer, SM_ArrByte_Bool_RetObj) +DEFINE_METHOD(REMOTING_SERVICES, DOMAIN_UNLOADED, DomainUnloaded, SM_Int_RetVoid) +#endif // FEATURE_REMOTING + + +DEFINE_CLASS(METADATA_IMPORT, Reflection, MetadataImport) +DEFINE_METHOD(METADATA_IMPORT, THROW_ERROR, ThrowError, SM_Int_RetVoid) + +DEFINE_CLASS(RESOLVER, System, Resolver) +DEFINE_METHOD(RESOLVER, GET_JIT_CONTEXT, GetJitContext, IM_RefInt_RetRuntimeType) +DEFINE_METHOD(RESOLVER, GET_CODE_INFO, GetCodeInfo, IM_RefInt_RefInt_RefInt_RetArrByte) +DEFINE_METHOD(RESOLVER, GET_LOCALS_SIGNATURE, GetLocalsSignature, IM_RetArrByte) +DEFINE_METHOD(RESOLVER, GET_EH_INFO, GetEHInfo, IM_Int_VoidPtr_RetVoid) +DEFINE_METHOD(RESOLVER, GET_RAW_EH_INFO, GetRawEHInfo, IM_RetArrByte) +DEFINE_METHOD(RESOLVER, GET_STRING_LITERAL, GetStringLiteral, IM_Int_RetStr) +DEFINE_METHOD(RESOLVER, RESOLVE_TOKEN, ResolveToken, IM_Int_RefIntPtr_RefIntPtr_RefIntPtr_RetVoid) +DEFINE_METHOD(RESOLVER, RESOLVE_SIGNATURE, ResolveSignature, IM_IntInt_RetArrByte) + +DEFINE_CLASS(RESOURCE_MANAGER, Resources, ResourceManager) + +DEFINE_CLASS(RTFIELD, Reflection, RtFieldInfo) +DEFINE_METHOD(RTFIELD, GET_FIELDHANDLE, GetFieldHandle, IM_RetIntPtr) + +DEFINE_CLASS(RUNTIME_HELPERS, CompilerServices, RuntimeHelpers) +DEFINE_METHOD(RUNTIME_HELPERS, PREPARE_CONSTRAINED_REGIONS, PrepareConstrainedRegions, SM_RetVoid) +DEFINE_METHOD(RUNTIME_HELPERS, PREPARE_CONSTRAINED_REGIONS_NOOP, PrepareConstrainedRegionsNoOP, SM_RetVoid) +DEFINE_METHOD(RUNTIME_HELPERS, EXECUTE_BACKOUT_CODE_HELPER, ExecuteBackoutCodeHelper, SM_Obj_Obj_Bool_RetVoid) + +DEFINE_CLASS(JIT_HELPERS, CompilerServices, JitHelpers) +#ifdef _DEBUG +DEFINE_METHOD(JIT_HELPERS, UNSAFE_CAST, UnsafeCastInternal, NoSig) +DEFINE_METHOD(JIT_HELPERS, UNSAFE_ENUM_CAST, UnsafeEnumCastInternal, NoSig) +DEFINE_METHOD(JIT_HELPERS, UNSAFE_ENUM_CAST_LONG, UnsafeEnumCastLongInternal, NoSig) +DEFINE_METHOD(JIT_HELPERS, UNSAFE_CAST_TO_STACKPTR,UnsafeCastToStackPointerInternal, NoSig) +#else // _DEBUG +DEFINE_METHOD(JIT_HELPERS, UNSAFE_CAST, UnsafeCast, NoSig) +DEFINE_METHOD(JIT_HELPERS, UNSAFE_ENUM_CAST, UnsafeEnumCast, NoSig) +DEFINE_METHOD(JIT_HELPERS, UNSAFE_ENUM_CAST_LONG, UnsafeEnumCastLong, NoSig) +DEFINE_METHOD(JIT_HELPERS, UNSAFE_CAST_TO_STACKPTR,UnsafeCastToStackPointer, NoSig) +#endif // _DEBUG + +DEFINE_CLASS(INTERLOCKED, Threading, Interlocked) +DEFINE_METHOD(INTERLOCKED, COMPARE_EXCHANGE_T, CompareExchange, GM_RefT_T_T_RetT) +DEFINE_METHOD(INTERLOCKED, COMPARE_EXCHANGE_OBJECT,CompareExchange, SM_RefObject_Object_Object_RetObject) + +DEFINE_CLASS(PINNING_HELPER, CompilerServices, PinningHelper) +DEFINE_FIELD(PINNING_HELPER, M_DATA, m_data) + +DEFINE_CLASS(RUNTIME_WRAPPED_EXCEPTION, CompilerServices, RuntimeWrappedException) +DEFINE_METHOD(RUNTIME_WRAPPED_EXCEPTION, OBJ_CTOR, .ctor, IM_Obj_RetVoid) +DEFINE_FIELD(RUNTIME_WRAPPED_EXCEPTION, WRAPPED_EXCEPTION, m_wrappedException) + +DEFINE_CLASS_U(Interop, SafeHandle, SafeHandle) +DEFINE_FIELD_U(handle, SafeHandle, m_handle) +DEFINE_FIELD_U(_state, SafeHandle, m_state) +DEFINE_FIELD_U(_ownsHandle, SafeHandle, m_ownsHandle) +DEFINE_FIELD_U(_fullyInitialized, SafeHandle, m_fullyInitialized) +DEFINE_CLASS(SAFE_HANDLE, Interop, SafeHandle) +DEFINE_FIELD(SAFE_HANDLE, HANDLE, handle) +DEFINE_METHOD(SAFE_HANDLE, GET_IS_INVALID, get_IsInvalid, IM_RetBool) +DEFINE_METHOD(SAFE_HANDLE, RELEASE_HANDLE, ReleaseHandle, IM_RetBool) +DEFINE_METHOD(SAFE_HANDLE, DISPOSE, Dispose, IM_RetVoid) +DEFINE_METHOD(SAFE_HANDLE, DISPOSE_BOOL, Dispose, IM_Bool_RetVoid) + +#ifdef FEATURE_CAS_POLICY +DEFINE_CLASS(SAFE_PEFILE_HANDLE, SafeHandles, SafePEFileHandle) +#endif // FEATURE_CAS_POLICY + +#ifndef FEATURE_CORECLR +DEFINE_CLASS(SAFE_TOKENHANDLE, SafeHandles, SafeAccessTokenHandle) +#endif + +#ifndef FEATURE_CORECLR +DEFINE_CLASS(SAFE_TYPENAMEPARSER_HANDLE, System, SafeTypeNameParserHandle) +#endif //!FEATURE_CORECLR + +#ifdef FEATURE_COMPRESSEDSTACK +DEFINE_CLASS(SAFE_CSHANDLE, Threading, SafeCompressedStackHandle) +#endif // #ifdef FEATURE_COMPRESSEDSTACK + + +DEFINE_CLASS(SECURITY_ACTION, Permissions, SecurityAction) +DEFINE_CLASS(HOST_PROTECTION_RESOURCE, Permissions, HostProtectionResource) + +DEFINE_CLASS(SECURITY_ATTRIBUTE, Permissions, SecurityAttribute) +DEFINE_METHOD(SECURITY_ATTRIBUTE, FIND_SECURITY_ATTRIBUTE_TYPE_HANDLE, FindSecurityAttributeTypeHandle, SM_Str_RetIntPtr) + +#ifdef FEATURE_CAS_POLICY +DEFINE_CLASS(SECURITY_ELEMENT, Security, SecurityElement) +DEFINE_METHOD(SECURITY_ELEMENT, TO_STRING, ToString, IM_RetStr) +#endif // FEATURE_CAS_POLICY + +DEFINE_CLASS(SECURITY_ENGINE, Security, CodeAccessSecurityEngine) +DEFINE_METHOD(SECURITY_ENGINE, CHECK_HELPER, CheckHelper, SM_CS_PMS_PMS_CodeAccessPermission_PermissionToken_RuntimeMethodHandleInternal_Assembly_SecurityAction_RetVoid) +DEFINE_METHOD(SECURITY_ENGINE, CHECK_SET_HELPER, CheckSetHelper, SM_CS_PMS_PMS_PMS_RuntimeMethodHandleInternal_Assembly_SecurityAction_RetVoid) +#ifdef FEATURE_APTCA +DEFINE_METHOD(SECURITY_ENGINE, THROW_SECURITY_EXCEPTION, ThrowSecurityException, SM_Assembly_PMS_PMS_RuntimeMethodHandleInternal_SecurityAction_Obj_IPermission_RetVoid) +#endif // FEATURE_APTCA +#ifdef FEATURE_CAS_POLICY +DEFINE_METHOD(SECURITY_ENGINE, RESOLVE_GRANT_SET, ResolveGrantSet, SM_Evidence_RefInt_Bool_RetPMS) +DEFINE_METHOD(SECURITY_ENGINE, PRE_RESOLVE, PreResolve, SM_RefBool_RefBool_RetVoid) +#endif // FEATURE_CAS_POLICY + +#ifdef FEATURE_PLS +DEFINE_METHOD(SECURITY_ENGINE, UPDATE_APPDOMAIN_PLS, UpdateAppDomainPLS, SM_PermissionListSet_PMS_PMS_RetPermissionListSet) +#endif // FEATURE_PLS + +#ifdef FEATURE_CAS_POLICY +#ifdef FEATURE_NONGENERIC_COLLECTIONS +DEFINE_METHOD(SECURITY_ENGINE, GET_ZONE_AND_ORIGIN_HELPER, GetZoneAndOriginHelper, SM_CS_PMS_PMS_ArrayList_ArrayList_RetVoid) +#else +#error Need replacement for GetZoneAndOriginHelper +#endif // FEATURE_NONGENERIC_COLLECTIONS +DEFINE_METHOD(SECURITY_ENGINE, REFLECTION_TARGET_DEMAND_HELPER, ReflectionTargetDemandHelper, SM_Int_PMS_RetVoid) +DEFINE_METHOD(SECURITY_ENGINE, REFLECTION_TARGET_DEMAND_HELPER_WITH_CONTEXT, ReflectionTargetDemandHelper, SM_Int_PMS_Resolver_RetVoid) +DEFINE_METHOD(SECURITY_ENGINE, CHECK_GRANT_SET_HELPER, CheckGrantSetHelper, SM_PMS_RetVoid) +#endif // FEATURE_CAS_POLICY + +DEFINE_CLASS(SECURITY_EXCEPTION, Security, SecurityException) +#ifdef FEATURE_CAS_POLICY +DEFINE_METHOD(SECURITY_EXCEPTION, CTOR, .ctor, IM_Str_Type_Str_RetVoid) +#endif // FEATURE_CAS_POLICY + +#ifdef FEATURE_CAS_POLICY +DEFINE_CLASS(HOST_PROTECTION_EXCEPTION, Security, HostProtectionException) +DEFINE_METHOD(HOST_PROTECTION_EXCEPTION, CTOR, .ctor, IM_HPR_HPR_RetVoid) +#endif // FEATURE_CAS_POLICY + +DEFINE_CLASS(SECURITY_MANAGER, Security, SecurityManager) +#ifdef FEATURE_CAS_POLICY +DEFINE_METHOD(SECURITY_MANAGER, RESOLVE_CAS_POLICY, ResolveCasPolicy, SM_Evidence_PMS_PMS_PMS_PMS_int_Bool_RetPMS) +#endif + +DEFINE_CLASS(SECURITY_PERMISSION, Permissions, SecurityPermission) +DEFINE_METHOD(SECURITY_PERMISSION, CTOR, .ctor, IM_SecurityPermissionFlag_RetVoid) +#ifdef FEATURE_CAS_POLICY +DEFINE_METHOD(SECURITY_PERMISSION, TOXML, ToXml, IM_RetSecurityElement) +#endif // FEATURE_CAS_POLICY + +DEFINE_CLASS(SECURITY_PERMISSION_FLAG,Permissions, SecurityPermissionFlag) + +DEFINE_CLASS(SECURITY_RUNTIME, Security, SecurityRuntime) +DEFINE_METHOD(SECURITY_RUNTIME, FRAME_DESC_HELPER, FrameDescHelper, SM_FrameSecurityDescriptor_IPermission_PermissionToken_RuntimeMethodHandleInternal_RetBool) +DEFINE_METHOD(SECURITY_RUNTIME, FRAME_DESC_SET_HELPER, FrameDescSetHelper, SM_FrameSecurityDescriptor_PMS_OutPMS_RuntimeMethodHandleInternal_RetBool) +#ifdef FEATURE_COMPRESSEDSTACK +DEFINE_METHOD(SECURITY_RUNTIME, CHECK_DYNAMIC_METHOD_HELPER, CheckDynamicMethodHelper, SM_DynamicResolver_IPermission_PermissionToken_RuntimeMethodHandleInternal_RetBool) +DEFINE_METHOD(SECURITY_RUNTIME, CHECK_DYNAMIC_METHOD_SET_HELPER, CheckDynamicMethodSetHelper, SM_DynamicResolver_PMS_OutPMS_RuntimeMethodHandleInternal_RetBool) +#endif // FEATURE_COMPRESSEDSTACK + +#ifdef FEATURE_REMOTING +DEFINE_CLASS(SERVER_IDENTITY, Remoting, ServerIdentity) +DEFINE_FIELD(SERVER_IDENTITY, SERVER_CONTEXT, _srvCtx) +#endif // FEATURE_REMOTING +#ifdef FEATURE_COMPRESSEDSTACK +DEFINE_CLASS(DOMAIN_COMPRESSED_STACK, Threading, DomainCompressedStack) +DEFINE_METHOD(DOMAIN_COMPRESSED_STACK, CREATE_MANAGED_OBJECT, CreateManagedObject, SM_IntPtr_RetDCS) +DEFINE_CLASS(COMPRESSED_STACK, Threading, CompressedStack) +DEFINE_METHOD(COMPRESSED_STACK, RUN, Run, SM_CompressedStack_ContextCallback_Object_RetVoid) +#endif // FEATURE_COMPRESSEDSTACK + +DEFINE_CLASS(SHARED_STATICS, System, SharedStatics) +DEFINE_FIELD(SHARED_STATICS, SHARED_STATICS, _sharedStatics) + +#ifdef FEATURE_REMOTING +DEFINE_CLASS(STACK_BUILDER_SINK, Messaging, StackBuilderSink) +DEFINE_METHOD(STACK_BUILDER_SINK, PRIVATE_PROCESS_MESSAGE,_PrivateProcessMessage, IM_IntPtr_ArrObj_Obj_RefArrObj_RetObj) +#endif + +DEFINE_CLASS_U(Diagnostics, StackFrameHelper, StackFrameHelper) +DEFINE_FIELD_U(targetThread, StackFrameHelper, targetThread) +DEFINE_FIELD_U(rgiOffset, StackFrameHelper, rgiOffset) +DEFINE_FIELD_U(rgiILOffset, StackFrameHelper, rgiILOffset) +DEFINE_FIELD_U(rgMethodBase, StackFrameHelper, rgMethodBase) +DEFINE_FIELD_U(dynamicMethods, StackFrameHelper, dynamicMethods) +DEFINE_FIELD_U(rgMethodHandle, StackFrameHelper, rgMethodHandle) +DEFINE_FIELD_U(rgAssemblyPath, StackFrameHelper, rgAssemblyPath) +DEFINE_FIELD_U(rgLoadedPeAddress, StackFrameHelper, rgLoadedPeAddress) +DEFINE_FIELD_U(rgiLoadedPeSize, StackFrameHelper, rgiLoadedPeSize) +DEFINE_FIELD_U(rgInMemoryPdbAddress, StackFrameHelper, rgInMemoryPdbAddress) +DEFINE_FIELD_U(rgiInMemoryPdbSize, StackFrameHelper, rgiInMemoryPdbSize) +DEFINE_FIELD_U(rgiMethodToken, StackFrameHelper, rgiMethodToken) +DEFINE_FIELD_U(rgFilename, StackFrameHelper, rgFilename) +DEFINE_FIELD_U(rgiLineNumber, StackFrameHelper, rgiLineNumber) +DEFINE_FIELD_U(rgiColumnNumber, StackFrameHelper, rgiColumnNumber) +#if defined(FEATURE_EXCEPTIONDISPATCHINFO) +DEFINE_FIELD_U(rgiLastFrameFromForeignExceptionStackTrace, StackFrameHelper, rgiLastFrameFromForeignExceptionStackTrace) +#endif // defined(FEATURE_EXCEPTIONDISPATCHINFO) +DEFINE_FIELD_U(getSourceLineInfo, StackFrameHelper, getSourceLineInfo) +DEFINE_FIELD_U(iFrameCount, StackFrameHelper, iFrameCount) + +DEFINE_CLASS(STACK_TRACE, Diagnostics, StackTrace) +DEFINE_METHOD(STACK_TRACE, GET_MANAGED_STACK_TRACE_HELPER, GetManagedStackTraceStringHelper, SM_Bool_RetStr) + +DEFINE_CLASS(STREAM, IO, Stream) +DEFINE_METHOD(STREAM, BEGIN_READ, BeginRead, IM_ArrByte_Int_Int_AsyncCallback_Object_RetIAsyncResult) +DEFINE_METHOD(STREAM, END_READ, EndRead, IM_IAsyncResult_RetInt) +DEFINE_METHOD(STREAM, BEGIN_WRITE, BeginWrite, IM_ArrByte_Int_Int_AsyncCallback_Object_RetIAsyncResult) +DEFINE_METHOD(STREAM, END_WRITE, EndWrite, IM_IAsyncResult_RetVoid) + +// Defined as element type alias +// DEFINE_CLASS(INTPTR, System, IntPtr) +DEFINE_FIELD(INTPTR, ZERO, Zero) + +// Defined as element type alias +// DEFINE_CLASS(UINTPTR, System, UIntPtr) +DEFINE_FIELD(UINTPTR, ZERO, Zero) + +// Defined as element type alias +// DEFINE_CLASS(STRING, System, String) +DEFINE_FIELD(STRING, M_FIRST_CHAR, m_firstChar) +DEFINE_FIELD(STRING, EMPTY, Empty) +DEFINE_METHOD(STRING, CREATE_STRING, CreateString, SM_PtrSByt_Int_Int_Encoding_RetStr) +DEFINE_METHOD(STRING, CTOR_CHARPTR, .ctor, IM_PtrChar_RetVoid) +DEFINE_METHOD(STRING, CTORF_CHARARRAY, CtorCharArray, IM_ArrChar_RetStr) +DEFINE_METHOD(STRING, CTORF_CHARARRAY_START_LEN,CtorCharArrayStartLength, IM_ArrChar_Int_Int_RetStr) +DEFINE_METHOD(STRING, CTORF_CHAR_COUNT, CtorCharCount, IM_Char_Int_RetStr) +DEFINE_METHOD(STRING, CTORF_CHARPTR, CtorCharPtr, IM_PtrChar_RetStr) +DEFINE_METHOD(STRING, CTORF_CHARPTR_START_LEN,CtorCharPtrStartLength, IM_PtrChar_Int_Int_RetStr) +DEFINE_METHOD(STRING, INTERNAL_COPY, InternalCopy, SM_Str_IntPtr_Int_RetVoid) +DEFINE_METHOD(STRING, WCSLEN, wcslen, SM_PtrChar_RetInt) +DEFINE_PROPERTY(STRING, LENGTH, Length, Int) + +DEFINE_CLASS_U(Text, StringBuilder, StringBufferObject) +DEFINE_FIELD_U(m_ChunkPrevious, StringBufferObject, m_ChunkPrevious) +DEFINE_FIELD_U(m_MaxCapacity, StringBufferObject, m_MaxCapacity) +DEFINE_FIELD_U(m_ChunkLength, StringBufferObject, m_ChunkLength) +DEFINE_FIELD_U(m_ChunkOffset, StringBufferObject, m_ChunkOffset) +DEFINE_CLASS(STRING_BUILDER, Text, StringBuilder) +DEFINE_PROPERTY(STRING_BUILDER, LENGTH, Length, Int) +DEFINE_PROPERTY(STRING_BUILDER, CAPACITY, Capacity, Int) +DEFINE_METHOD(STRING_BUILDER, CTOR_INT, .ctor, IM_Int_RetVoid) +DEFINE_METHOD(STRING_BUILDER, TO_STRING, ToString, IM_RetStr) +DEFINE_METHOD(STRING_BUILDER, INTERNAL_COPY, InternalCopy, IM_IntPtr_Int_RetVoid) +DEFINE_METHOD(STRING_BUILDER, REPLACE_BUFFER_INTERNAL,ReplaceBufferInternal, IM_PtrChar_Int_RetVoid) +DEFINE_METHOD(STRING_BUILDER, REPLACE_BUFFER_ANSI_INTERNAL,ReplaceBufferAnsiInternal, IM_PtrSByt_Int_RetVoid) + +DEFINE_CLASS(STRONG_NAME_KEY_PAIR, Reflection, StrongNameKeyPair) +#ifndef FEATURE_CORECLR +DEFINE_METHOD(STRONG_NAME_KEY_PAIR, GET_KEY_PAIR, GetKeyPair, IM_RefObject_RetBool) +#endif + +#ifdef FEATURE_SYNCHRONIZATIONCONTEXT_WAIT +DEFINE_CLASS_U(Threading, SynchronizationContext, SynchronizationContextObject) +DEFINE_FIELD_U(_props, SynchronizationContextObject, _props) +DEFINE_CLASS(SYNCHRONIZATION_CONTEXT, Threading, SynchronizationContext) +DEFINE_METHOD(SYNCHRONIZATION_CONTEXT, INVOKE_WAIT_METHOD_HELPER, InvokeWaitMethodHelper, SM_SyncCtx_ArrIntPtr_Bool_Int_RetInt) +#endif // FEATURE_SYNCHRONIZATIONCONTEXT_WAIT + +#ifdef FEATURE_COMINTEROP_TLB_SUPPORT +DEFINE_CLASS(TCE_EVENT_ITF_INFO, InteropTCE, EventItfInfo) +DEFINE_METHOD(TCE_EVENT_ITF_INFO, CTOR, .ctor, IM_Str_Str_Str_Assembly_Assembly_RetVoid) +#endif // FEATURE_COMINTEROP_TLB_SUPPORT + +DEFINE_CLASS(CONTEXTCALLBACK, Threading, ContextCallback) + +#if defined(FEATURE_IMPERSONATION) || defined(FEATURE_COMPRESSEDSTACK) +DEFINE_CLASS_U(Security, SecurityContext, SecurityContextObject) +DEFINE_FIELD_U(_executionContext, SecurityContextObject, _executionContext) +#if defined(FEATURE_IMPERSONATION) +DEFINE_FIELD_U(_windowsIdentity, SecurityContextObject, _windowsIdentity) +#endif +DEFINE_FIELD_U(_compressedStack, SecurityContextObject, _compressedStack) +DEFINE_FIELD_U(_disableFlow, SecurityContextObject, _disableFlow) +DEFINE_FIELD_U(isNewCapture, SecurityContextObject, _isNewCapture) +DEFINE_CLASS(SECURITYCONTEXT, Security, SecurityContext) +DEFINE_METHOD(SECURITYCONTEXT, RUN, Run, SM_SecurityContext_ContextCallback_Object_RetVoid) +#endif // #if defined(FEATURE_IMPERSONATION) || defined(FEATURE_COMPRESSEDSTACK) + +#ifndef FEATURE_CORECLR +DEFINE_CLASS_U(Threading, ExecutionContext, ExecutionContextObject) +#ifdef FEATURE_CAS_POLICY +DEFINE_FIELD_U(_hostExecutionContext, ExecutionContextObject, _hostExecutionContext) +#endif // FEATURE_CAS_POLICY +DEFINE_FIELD_U(_syncContext, ExecutionContextObject, _syncContext) +#if defined(FEATURE_IMPERSONATION) || defined(FEATURE_COMPRESSEDSTACK) +DEFINE_FIELD_U(_securityContext, ExecutionContextObject, _securityContext) +#endif // #if defined(FEATURE_IMPERSONATION) || defined(FEATURE_COMPRESSEDSTACK) +#ifdef FEATURE_REMOTING +DEFINE_FIELD_U(_logicalCallContext, ExecutionContextObject, _logicalCallContext) +DEFINE_FIELD_U(_illogicalCallContext, ExecutionContextObject, _illogicalCallContext) +#endif // #ifdef FEATURE_REMOTING +DEFINE_CLASS(EXECUTIONCONTEXT, Threading, ExecutionContext) +DEFINE_METHOD(EXECUTIONCONTEXT, RUN, Run, SM_ExecutionContext_ContextCallback_Object_Bool_RetVoid) +#endif //FEATURE_CORECLR + +#ifdef _DEBUG +DEFINE_CLASS(STACKCRAWMARK, Threading, StackCrawlMark) +#endif + +DEFINE_CLASS(CROSS_CONTEXT_DELEGATE, Threading, InternalCrossContextDelegate) + +DEFINE_CLASS_U(Threading, Thread, ThreadBaseObject) +#ifdef FEATURE_REMOTING +DEFINE_FIELD_U(m_Context, ThreadBaseObject, m_ExposedContext) +#endif +#ifndef FEATURE_CORECLR +DEFINE_FIELD_U(m_ExecutionContext, ThreadBaseObject, m_ExecutionContext) +#endif +DEFINE_FIELD_U(m_Name, ThreadBaseObject, m_Name) +DEFINE_FIELD_U(m_Delegate, ThreadBaseObject, m_Delegate) +#ifdef FEATURE_LEAK_CULTURE_INFO +DEFINE_FIELD_U(m_CurrentCulture, ThreadBaseObject, m_CurrentUserCulture) +DEFINE_FIELD_U(m_CurrentUICulture, ThreadBaseObject, m_CurrentUICulture) +#endif +DEFINE_FIELD_U(m_ThreadStartArg, ThreadBaseObject, m_ThreadStartArg) +DEFINE_FIELD_U(DONT_USE_InternalThread, ThreadBaseObject, m_InternalThread) +DEFINE_FIELD_U(m_Priority, ThreadBaseObject, m_Priority) +DEFINE_CLASS(THREAD, Threading, Thread) +#ifndef FEATURE_LEAK_CULTURE_INFO +DEFINE_FIELD(THREAD, CULTURE, m_CurrentCulture) +DEFINE_FIELD(THREAD, UI_CULTURE, m_CurrentUICulture) +#endif +#ifdef FEATURE_IMPERSONATION +DEFINE_METHOD(THREAD, SET_PRINCIPAL_INTERNAL, SetPrincipalInternal, IM_IPrincipal_RetVoid) +#endif +#ifdef FEATURE_REMOTING +DEFINE_STATIC_PROPERTY(THREAD, CURRENT_CONTEXT, CurrentContext, Context) +#endif +DEFINE_SET_PROPERTY(THREAD, CULTURE, CurrentCulture, CultureInfo) +DEFINE_SET_PROPERTY(THREAD, UI_CULTURE, CurrentUICulture, CultureInfo) +DEFINE_STATIC_PROPERTY(THREAD, CURRENT_THREAD, CurrentThread, Thread) +#ifdef FEATURE_REMOTING +DEFINE_METHOD(THREAD, COMPLETE_CROSSCONTEXTCALLBACK, CompleteCrossContextCallback, SM_CrossContextDelegate_ArrObj_RetObj) +#endif +DEFINE_METHOD(THREAD, INTERNAL_GET_CURRENT_THREAD, InternalGetCurrentThread, SM_RetIntPtr) + +DEFINE_CLASS(PARAMETERIZEDTHREADSTART, Threading, ParameterizedThreadStart) + +DEFINE_CLASS(IOCB_HELPER, Threading, _IOCompletionCallback) +DEFINE_METHOD(IOCB_HELPER, PERFORM_IOCOMPLETION_CALLBACK, PerformIOCompletionCallback, SM_UInt_UInt_PtrNativeOverlapped_RetVoid) + +DEFINE_CLASS(TPWAITORTIMER_HELPER, Threading, _ThreadPoolWaitOrTimerCallback) +DEFINE_METHOD(TPWAITORTIMER_HELPER, PERFORM_WAITORTIMER_CALLBACK, PerformWaitOrTimerCallback, SM_Obj_Bool_RetVoid) + +DEFINE_CLASS(TP_WAIT_CALLBACK, Threading, _ThreadPoolWaitCallback) +DEFINE_METHOD(TP_WAIT_CALLBACK, PERFORM_WAIT_CALLBACK, PerformWaitCallback, SM_RetBool) + +DEFINE_CLASS(TIMER_QUEUE, Threading, TimerQueue) +DEFINE_METHOD(TIMER_QUEUE, APPDOMAIN_TIMER_CALLBACK, AppDomainTimerCallback, SM_RetVoid) + +DEFINE_CLASS(TIMESPAN, System, TimeSpan) + +#ifdef FEATURE_REMOTING +DEFINE_CLASS_U(Proxies, __TransparentProxy, TransparentProxyObject) +DEFINE_FIELD_U(_rp, TransparentProxyObject, _rp) +DEFINE_FIELD_U(_pMT, TransparentProxyObject, _pMT) +DEFINE_FIELD_U(_pInterfaceMT, TransparentProxyObject, _pInterfaceMT) +DEFINE_FIELD_U(_stub, TransparentProxyObject, _stub) +DEFINE_FIELD_U(_stubData, TransparentProxyObject, _stubData) +DEFINE_CLASS(TRANSPARENT_PROXY, Proxies, __TransparentProxy) +#endif + +DEFINE_CLASS(TYPE, System, Type) +DEFINE_METHOD(TYPE, GET_TYPE_FROM_HANDLE, GetTypeFromHandle, SM_RuntimeTypeHandle_RetType) +DEFINE_PROPERTY(TYPE, IS_IMPORT, IsImport, Bool) + +DEFINE_CLASS(TYPE_DELEGATOR, Reflection, TypeDelegator) + +DEFINE_CLASS(UI_PERMISSION, Permissions, UIPermission) +DEFINE_METHOD(UI_PERMISSION, CTOR, .ctor, IM_PermissionState_RetVoid) + +DEFINE_CLASS(UNHANDLED_EVENTARGS, System, UnhandledExceptionEventArgs) +DEFINE_METHOD(UNHANDLED_EVENTARGS, CTOR, .ctor, IM_Obj_Bool_RetVoid) + +#ifdef FEATURE_EXCEPTION_NOTIFICATIONS +DEFINE_CLASS(FIRSTCHANCE_EVENTARGS, ExceptionServices, FirstChanceExceptionEventArgs) +DEFINE_METHOD(FIRSTCHANCE_EVENTARGS, CTOR, .ctor, IM_Exception_RetVoid) +#endif // FEATURE_EXCEPTION_NOTIFICATIONS + +#if defined(FEATURE_HOST_ASSEMBLY_RESOLVER) + +DEFINE_CLASS(ASSEMBLYLOADCONTEXT, Loader, AssemblyLoadContext) +DEFINE_METHOD(ASSEMBLYLOADCONTEXT, RESOLVE, Resolve, SM_IntPtr_AssemblyName_RetAssemblyBase) +DEFINE_METHOD(ASSEMBLYLOADCONTEXT, RESOLVEUNMANAGEDDLL, ResolveUnmanagedDll, SM_Str_IntPtr_RetIntPtr) +DEFINE_METHOD(ASSEMBLYLOADCONTEXT, RESOLVEUSINGEVENT, ResolveUsingResolvingEvent, SM_IntPtr_AssemblyName_RetAssemblyBase) + +#endif // defined(FEATURE_HOST_ASSEMBLY_RESOLVER) + +DEFINE_CLASS(LAZY, System, Lazy`1) + +DEFINE_CLASS(LAZY_INITIALIZER, Threading, LazyInitializer) +DEFINE_CLASS(LAZY_HELPERS, Threading, LazyHelpers`1) + +#ifdef FEATURE_COMINTEROP +DEFINE_CLASS(UNKNOWN_WRAPPER, Interop, UnknownWrapper) +#endif + +DEFINE_CLASS(VALUE_TYPE, System, ValueType) + +#ifdef FEATURE_COMINTEROP +DEFINE_CLASS(VARIANT_WRAPPER, Interop, VariantWrapper) +#endif // FEATURE_COMINTEROP + +#ifdef FEATURE_IMPERSONATION +DEFINE_CLASS(WINDOWS_IDENTITY, Principal, WindowsIdentity) +DEFINE_METHOD(WINDOWS_IDENTITY, SERIALIZATION_CTOR, .ctor, IM_SerInfo_RetVoid) +#endif +#ifdef FEATURE_X509 +DEFINE_CLASS(X509_CERTIFICATE, X509, X509Certificate) +DEFINE_METHOD(X509_CERTIFICATE, CTOR, .ctor, IM_ArrByte_RetVoid) +#endif // FEATURE_X509 + +DEFINE_CLASS(GC, System, GC) +DEFINE_METHOD(GC, KEEP_ALIVE, KeepAlive, SM_Obj_RetVoid) +DEFINE_METHOD(GC, COLLECT, Collect, SM_RetVoid) +DEFINE_METHOD(GC, WAIT_FOR_PENDING_FINALIZERS, WaitForPendingFinalizers, SM_RetVoid) + +DEFINE_CLASS_U(System, WeakReference, WeakReferenceObject) +DEFINE_FIELD_U(m_handle, WeakReferenceObject, m_Handle) +DEFINE_CLASS(WEAKREFERENCE, System, WeakReference) + +DEFINE_CLASS_U(Threading, WaitHandle, WaitHandleBase) +DEFINE_FIELD_U(safeWaitHandle, WaitHandleBase, m_safeHandle) +DEFINE_FIELD_U(waitHandle, WaitHandleBase, m_handle) +DEFINE_FIELD_U(hasThreadAffinity, WaitHandleBase, m_hasThreadAffinity) + +DEFINE_CLASS(DEBUGGER, Diagnostics, Debugger) +DEFINE_METHOD(DEBUGGER, BREAK_CAN_THROW, BreakCanThrow, SM_RetVoid) + +DEFINE_CLASS(BUFFER, System, Buffer) +DEFINE_METHOD(BUFFER, MEMCPY_PTRBYTE_ARRBYTE, Memcpy, SM_PtrByte_Int_ArrByte_Int_Int_RetVoid) +DEFINE_METHOD(BUFFER, MEMCPY, Memcpy, SM_PtrByte_PtrByte_Int_RetVoid) + +#ifdef FEATURE_COMINTEROP +DEFINE_CLASS(WINDOWSRUNTIMEMARSHAL, WinRT, WindowsRuntimeMarshal) +#ifdef FEATURE_COMINTEROP_WINRT_MANAGED_ACTIVATION +DEFINE_METHOD(WINDOWSRUNTIMEMARSHAL, GET_ACTIVATION_FACTORY_FOR_TYPE, GetActivationFactoryForType, SM_Type_RetIntPtr) +#ifdef FEATURE_COMINTEROP_WINRT_DESKTOP_HOST +DEFINE_METHOD(WINDOWSRUNTIMEMARSHAL, GET_CLASS_ACTIVATOR_FOR_APPLICATION, GetClassActivatorForApplication, SM_Str_RetIntPtr) +#endif // FEATURE_COMINTEROP_WINRT_DESKTOP_HOST +#endif // FEATURE_COMINTEROP_WINRT_MANAGED_ACTIVATION + +DEFINE_CLASS(IACTIVATIONFACTORY, WinRT, IActivationFactory) +DEFINE_METHOD(IACTIVATIONFACTORY, ACTIVATE_INSTANCE, ActivateInstance, IM_RetObj) +DEFINE_CLASS(ISTRINGABLEHELPER, WinRT, IStringableHelper) +DEFINE_METHOD(ISTRINGABLEHELPER, TO_STRING, ToString, SM_Obj_RetStr) +#endif // FEATURE_COMINTEROP + +DEFINE_CLASS(STUBHELPERS, StubHelpers, StubHelpers) +DEFINE_METHOD(STUBHELPERS, IS_QCALL, IsQCall, SM_IntPtr_RetBool) +DEFINE_METHOD(STUBHELPERS, INIT_DECLARING_TYPE, InitDeclaringType, SM_IntPtr_RetVoid) +DEFINE_METHOD(STUBHELPERS, GET_NDIRECT_TARGET, GetNDirectTarget, SM_IntPtr_RetIntPtr) +DEFINE_METHOD(STUBHELPERS, GET_DELEGATE_TARGET, GetDelegateTarget, SM_Delegate_RefIntPtr_RetIntPtr) +#ifndef FEATURE_CORECLR // CAS +DEFINE_METHOD(STUBHELPERS, DEMAND_PERMISSION, DemandPermission, SM_IntPtr_RetVoid) +#ifdef _TARGET_X86_ +DEFINE_METHOD(STUBHELPERS, SET_COPY_CTOR_COOKIE_CHAIN, SetCopyCtorCookieChain, SM_IntPtr_IntPtr_Int_IntPtr_RetVoid) +DEFINE_FIELD(STUBHELPERS, COPY_CTOR_STUB_DESC, s_copyCtorStubDesc) +#endif // _TARGET_X86_ +#endif // !FEATURE_CORECLR +#ifdef FEATURE_COMINTEROP +DEFINE_METHOD(STUBHELPERS, GET_COM_HR_EXCEPTION_OBJECT, GetCOMHRExceptionObject, SM_Int_IntPtr_Obj_RetException) +DEFINE_METHOD(STUBHELPERS, GET_COM_HR_EXCEPTION_OBJECT_WINRT, GetCOMHRExceptionObject_WinRT, SM_Int_IntPtr_Obj_RetException) +DEFINE_METHOD(STUBHELPERS, GET_COM_IP_FROM_RCW, GetCOMIPFromRCW, SM_Obj_IntPtr_RefIntPtr_RefBool_RetIntPtr) +DEFINE_METHOD(STUBHELPERS, GET_COM_IP_FROM_RCW_WINRT, GetCOMIPFromRCW_WinRT, SM_Obj_IntPtr_RefIntPtr_RetIntPtr) +DEFINE_METHOD(STUBHELPERS, GET_COM_IP_FROM_RCW_WINRT_SHARED_GENERIC, GetCOMIPFromRCW_WinRTSharedGeneric, SM_Obj_IntPtr_RefIntPtr_RetIntPtr) +DEFINE_METHOD(STUBHELPERS, GET_COM_IP_FROM_RCW_WINRT_DELEGATE, GetCOMIPFromRCW_WinRTDelegate, SM_Obj_IntPtr_RefIntPtr_RetIntPtr) +DEFINE_METHOD(STUBHELPERS, SHOULD_CALL_WINRT_INTERFACE, ShouldCallWinRTInterface, SM_Obj_IntPtr_RetBool) +DEFINE_METHOD(STUBHELPERS, STUB_REGISTER_RCW, StubRegisterRCW, SM_Obj_RetVoid) +DEFINE_METHOD(STUBHELPERS, STUB_UNREGISTER_RCW, StubUnregisterRCW, SM_Obj_RetVoid) +DEFINE_METHOD(STUBHELPERS, GET_WINRT_FACTORY_OBJECT, GetWinRTFactoryObject, SM_IntPtr_RetObj) +DEFINE_METHOD(STUBHELPERS, GET_DELEGATE_INVOKE_METHOD, GetDelegateInvokeMethod, SM_Delegate_RetIntPtr) +DEFINE_METHOD(STUBHELPERS, GET_WINRT_FACTORY_RETURN_VALUE, GetWinRTFactoryReturnValue, SM_Obj_IntPtr_RetIntPtr) +DEFINE_METHOD(STUBHELPERS, GET_OUTER_INSPECTABLE, GetOuterInspectable, SM_Obj_IntPtr_RetIntPtr) +#ifdef MDA_SUPPORTED +DEFINE_METHOD(STUBHELPERS, TRIGGER_EXCEPTION_SWALLOWED_MDA, TriggerExceptionSwallowedMDA, SM_Exception_IntPtr_RetException) +#endif // MDA_SUPPORTED +#endif // FEATURE_COMINTEROP +#if defined(MDA_SUPPORTED) || (defined(CROSSGEN_COMPILE) && !defined(FEATURE_CORECLR)) +DEFINE_METHOD(STUBHELPERS, CHECK_COLLECTED_DELEGATE_MDA, CheckCollectedDelegateMDA, SM_IntPtr_RetVoid) +#endif // MDA_SUPPORTED +DEFINE_METHOD(STUBHELPERS, SET_LAST_ERROR, SetLastError, SM_RetVoid) +#ifdef FEATURE_CORECLR +DEFINE_METHOD(STUBHELPERS, CLEAR_LAST_ERROR, ClearLastError, SM_RetVoid) +#endif + +DEFINE_METHOD(STUBHELPERS, THROW_INTEROP_PARAM_EXCEPTION, ThrowInteropParamException, SM_Int_Int_RetVoid) +DEFINE_METHOD(STUBHELPERS, ADD_TO_CLEANUP_LIST, AddToCleanupList, SM_RefCleanupWorkList_SafeHandle_RetIntPtr) +DEFINE_METHOD(STUBHELPERS, DESTROY_CLEANUP_LIST, DestroyCleanupList, SM_RefCleanupWorkList_RetVoid) +DEFINE_METHOD(STUBHELPERS, GET_HR_EXCEPTION_OBJECT, GetHRExceptionObject, SM_Int_RetException) +DEFINE_METHOD(STUBHELPERS, CREATE_CUSTOM_MARSHALER_HELPER, CreateCustomMarshalerHelper, SM_IntPtr_Int_IntPtr_RetIntPtr) + +DEFINE_METHOD(STUBHELPERS, CHECK_STRING_LENGTH, CheckStringLength, SM_Int_RetVoid) +DEFINE_METHOD(STUBHELPERS, DECIMAL_CANONICALIZE_INTERNAL, DecimalCanonicalizeInternal, SM_RefDec_RetVoid) + +DEFINE_METHOD(STUBHELPERS, FMT_CLASS_UPDATE_NATIVE_INTERNAL, FmtClassUpdateNativeInternal, SM_Obj_PtrByte_RefCleanupWorkList_RetVoid) +DEFINE_METHOD(STUBHELPERS, FMT_CLASS_UPDATE_CLR_INTERNAL, FmtClassUpdateCLRInternal, SM_Obj_PtrByte_RetVoid) +DEFINE_METHOD(STUBHELPERS, LAYOUT_DESTROY_NATIVE_INTERNAL, LayoutDestroyNativeInternal, SM_PtrByte_IntPtr_RetVoid) +DEFINE_METHOD(STUBHELPERS, ALLOCATE_INTERNAL, AllocateInternal, SM_IntPtr_RetObj) +DEFINE_METHOD(STUBHELPERS, STRLEN, strlen, SM_PtrSByt_RetInt) +DEFINE_METHOD(STUBHELPERS, MARSHAL_TO_MANAGED_VA_LIST_INTERNAL,MarshalToManagedVaListInternal, SM_IntPtr_IntPtr_RetVoid) +DEFINE_METHOD(STUBHELPERS, MARSHAL_TO_UNMANAGED_VA_LIST_INTERNAL,MarshalToUnmanagedVaListInternal,SM_IntPtr_UInt_IntPtr_RetVoid) +DEFINE_METHOD(STUBHELPERS, CALC_VA_LIST_SIZE, CalcVaListSize, SM_IntPtr_RetUInt) +DEFINE_METHOD(STUBHELPERS, VALIDATE_OBJECT, ValidateObject, SM_Obj_IntPtr_Obj_RetVoid) +DEFINE_METHOD(STUBHELPERS, VALIDATE_BYREF, ValidateByref, SM_IntPtr_IntPtr_Obj_RetVoid) +DEFINE_METHOD(STUBHELPERS, GET_STUB_CONTEXT, GetStubContext, SM_RetIntPtr) +DEFINE_METHOD(STUBHELPERS, LOG_PINNED_ARGUMENT, LogPinnedArgument, SM_IntPtr_IntPtr_RetVoid) +#ifdef _WIN64 +DEFINE_METHOD(STUBHELPERS, GET_STUB_CONTEXT_ADDR, GetStubContextAddr, SM_RetIntPtr) +#endif // _WIN64 +#ifdef MDA_SUPPORTED +DEFINE_METHOD(STUBHELPERS, TRIGGER_GC_FOR_MDA, TriggerGCForMDA, SM_RetVoid) +#endif +DEFINE_METHOD(STUBHELPERS, SAFE_HANDLE_ADD_REF, SafeHandleAddRef, SM_SafeHandle_RefBool_RetIntPtr) +DEFINE_METHOD(STUBHELPERS, SAFE_HANDLE_RELEASE, SafeHandleRelease, SM_SafeHandle_RetVoid) + +#ifdef PROFILING_SUPPORTED +DEFINE_METHOD(STUBHELPERS, PROFILER_BEGIN_TRANSITION_CALLBACK, ProfilerBeginTransitionCallback, SM_IntPtr_IntPtr_Obj_RetIntPtr) +DEFINE_METHOD(STUBHELPERS, PROFILER_END_TRANSITION_CALLBACK, ProfilerEndTransitionCallback, SM_IntPtr_IntPtr_RetVoid) +#endif + +#ifdef FEATURE_ARRAYSTUB_AS_IL +DEFINE_METHOD(STUBHELPERS, ARRAY_TYPE_CHECK, ArrayTypeCheck, SM_Obj_ArrObject_RetVoid) +#endif + +#ifdef FEATURE_STUBS_AS_IL +DEFINE_METHOD(STUBHELPERS, MULTICAST_DEBUGGER_TRACE_HELPER, MulticastDebuggerTraceHelper, SM_Obj_Int_RetVoid) +#endif + +#if defined(_TARGET_X86_) && !defined(FEATURE_CORECLR) +DEFINE_CLASS(COPYCTORSTUBCOOKIE, StubHelpers, CopyCtorStubCookie) +DEFINE_METHOD(COPYCTORSTUBCOOKIE, SET_DATA, SetData, IM_IntPtr_UInt_IntPtr_IntPtr_RetVoid) +DEFINE_METHOD(COPYCTORSTUBCOOKIE, SET_NEXT, SetNext, IM_IntPtr_RetVoid) +#endif // _TARGET_X86_ && !FEATURE_CORECLR + +DEFINE_CLASS(ANSICHARMARSHALER, StubHelpers, AnsiCharMarshaler) +DEFINE_METHOD(ANSICHARMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, SM_Char_Bool_Bool_RetByte) +DEFINE_METHOD(ANSICHARMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, SM_Byte_RetChar) +DEFINE_METHOD(ANSICHARMARSHALER, DO_ANSI_CONVERSION, DoAnsiConversion, SM_Str_Bool_Bool_RefInt_RetArrByte) + +DEFINE_CLASS(CSTRMARSHALER, StubHelpers, CSTRMarshaler) +DEFINE_METHOD(CSTRMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, SM_Int_Str_IntPtr_RetIntPtr) +DEFINE_METHOD(CSTRMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, SM_IntPtr_RetStr) +DEFINE_METHOD(CSTRMARSHALER, CLEAR_NATIVE, ClearNative, SM_IntPtr_RetVoid) + +DEFINE_CLASS(WSTRBUFFERMARSHALER, StubHelpers, WSTRBufferMarshaler) +DEFINE_METHOD(WSTRBUFFERMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, SM_Str_RetIntPtr) +DEFINE_METHOD(WSTRBUFFERMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, SM_IntPtr_RetStr) +DEFINE_METHOD(WSTRBUFFERMARSHALER, CLEAR_NATIVE, ClearNative, SM_IntPtr_RetVoid) + +#ifdef FEATURE_COMINTEROP +DEFINE_CLASS(BSTRMARSHALER, StubHelpers, BSTRMarshaler) +DEFINE_METHOD(BSTRMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, SM_Str_IntPtr_RetIntPtr) +DEFINE_METHOD(BSTRMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, SM_IntPtr_RetStr) +DEFINE_METHOD(BSTRMARSHALER, CLEAR_NATIVE, ClearNative, SM_IntPtr_RetVoid) + +DEFINE_CLASS(ANSIBSTRMARSHALER, StubHelpers, AnsiBSTRMarshaler) +DEFINE_METHOD(ANSIBSTRMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, SM_Int_Str_RetIntPtr) +DEFINE_METHOD(ANSIBSTRMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, SM_IntPtr_RetStr) +DEFINE_METHOD(ANSIBSTRMARSHALER, CLEAR_NATIVE, ClearNative, SM_IntPtr_RetVoid) + +DEFINE_CLASS(OBJECTMARSHALER, StubHelpers, ObjectMarshaler) +DEFINE_METHOD(OBJECTMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, SM_ObjIntPtr_RetVoid) +DEFINE_METHOD(OBJECTMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, SM_IntPtr_RetObj) +DEFINE_METHOD(OBJECTMARSHALER, CLEAR_NATIVE, ClearNative, SM_IntPtr_RetVoid) + +DEFINE_CLASS(HSTRINGMARSHALER, StubHelpers, HStringMarshaler) +DEFINE_METHOD(HSTRINGMARSHALER, CONVERT_TO_NATIVE_REFERENCE, ConvertToNativeReference, SM_Str_PtrHStringHeader_RetIntPtr) +DEFINE_METHOD(HSTRINGMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, SM_Str_RetIntPtr) +DEFINE_METHOD(HSTRINGMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, SM_IntPtr_RetStr) +DEFINE_METHOD(HSTRINGMARSHALER, CLEAR_NATIVE, ClearNative, SM_IntPtr_RetVoid) + +DEFINE_CLASS(URIMARSHALER, StubHelpers, UriMarshaler) +DEFINE_METHOD(URIMARSHALER, GET_RAWURI_FROM_NATIVE, GetRawUriFromNative, SM_IntPtr_RetStr) +DEFINE_METHOD(URIMARSHALER, CREATE_NATIVE_URI_INSTANCE, CreateNativeUriInstance, SM_Str_RetIntPtr) + +DEFINE_CLASS(INTERFACEMARSHALER, StubHelpers, InterfaceMarshaler) +DEFINE_METHOD(INTERFACEMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, SM_Obj_IntPtr_IntPtr_Int_RetIntPtr) +DEFINE_METHOD(INTERFACEMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, SM_IntPtr_IntPtr_IntPtr_Int_RetObj) +DEFINE_METHOD(INTERFACEMARSHALER, CLEAR_NATIVE, ClearNative, SM_IntPtr_RetVoid) + + +DEFINE_CLASS(MNGD_SAFE_ARRAY_MARSHALER, StubHelpers, MngdSafeArrayMarshaler) +DEFINE_METHOD(MNGD_SAFE_ARRAY_MARSHALER, CREATE_MARSHALER, CreateMarshaler, SM_IntPtr_IntPtr_Int_Int_RetVoid) +DEFINE_METHOD(MNGD_SAFE_ARRAY_MARSHALER, CONVERT_SPACE_TO_NATIVE, ConvertSpaceToNative, SM_IntPtr_RefObj_IntPtr_RetVoid) +DEFINE_METHOD(MNGD_SAFE_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_NATIVE, ConvertContentsToNative, SM_IntPtr_RefObj_IntPtr_Obj_RetVoid) +DEFINE_METHOD(MNGD_SAFE_ARRAY_MARSHALER, CONVERT_SPACE_TO_MANAGED, ConvertSpaceToManaged, SM_IntPtr_RefObj_IntPtr_RetVoid) +DEFINE_METHOD(MNGD_SAFE_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_MANAGED, ConvertContentsToManaged, SM_IntPtr_RefObj_IntPtr_RetVoid) +DEFINE_METHOD(MNGD_SAFE_ARRAY_MARSHALER, CLEAR_NATIVE, ClearNative, SM_IntPtr_RefObj_IntPtr_RetVoid) + +DEFINE_CLASS(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, StubHelpers, MngdHiddenLengthArrayMarshaler) +DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CREATE_MARSHALER, CreateMarshaler, SM_IntPtr_IntPtr_IntPtr_UShrt_RetVoid) +DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_SPACE_TO_MANAGED, ConvertSpaceToManaged, SM_IntPtr_RefObj_IntPtr_Int_RetVoid) +DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_MANAGED, ConvertContentsToManaged, SM_IntPtr_RefObj_IntPtr_RetVoid) +DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_SPACE_TO_NATIVE, ConvertSpaceToNative, SM_IntPtr_RefObj_IntPtr_RetVoid) +DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_NATIVE, ConvertContentsToNative, SM_IntPtr_RefObj_IntPtr_RetVoid) +DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CLEAR_NATIVE_CONTENTS, ClearNativeContents, SM_IntPtr_IntPtr_Int_RetVoid) +DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CLEAR_NATIVE_CONTENTS_TYPE, ClearNativeContents_Type, NoSig) + +DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_MANAGED_DATETIME, ConvertContentsToManaged_DateTime, NoSig) +DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_MANAGED_TYPE, ConvertContentsToManaged_Type, NoSig) +DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_MANAGED_EXCEPTION, ConvertContentsToManaged_Exception, NoSig) +DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_MANAGED_NULLABLE, ConvertContentsToManaged_Nullable, NoSig) +DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_MANAGED_KEYVALUEPAIR, ConvertContentsToManaged_KeyValuePair, NoSig) + +DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_NATIVE_DATETIME, ConvertContentsToNative_DateTime, NoSig) +DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_NATIVE_TYPE, ConvertContentsToNative_Type, NoSig) +DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_NATIVE_EXCEPTION, ConvertContentsToNative_Exception, NoSig) +DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_NATIVE_NULLABLE, ConvertContentsToNative_Nullable, NoSig) +DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_NATIVE_KEYVALUEPAIR, ConvertContentsToNative_KeyValuePair, NoSig) + +DEFINE_CLASS(DATETIMEOFFSETMARSHALER, StubHelpers, DateTimeOffsetMarshaler) +DEFINE_METHOD(DATETIMEOFFSETMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, SM_RefDateTimeOffset_RefDateTimeNative_RetVoid) +DEFINE_METHOD(DATETIMEOFFSETMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, SM_RefDateTimeOffset_RefDateTimeNative_RetVoid) + +DEFINE_CLASS(NULLABLEMARSHALER, StubHelpers, NullableMarshaler) +DEFINE_METHOD(NULLABLEMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, NoSig) +DEFINE_METHOD(NULLABLEMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, NoSig) +DEFINE_METHOD(NULLABLEMARSHALER, CONVERT_TO_MANAGED_RET_VOID, ConvertToManagedRetVoid, NoSig) + +DEFINE_CLASS(SYSTEMTYPEMARSHALER, StubHelpers, SystemTypeMarshaler) + +DEFINE_METHOD(SYSTEMTYPEMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, SM_Type_PtrTypeName_RetVoid) +DEFINE_METHOD(SYSTEMTYPEMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, SM_PtrTypeName_RefType_RetVoid) +DEFINE_METHOD(SYSTEMTYPEMARSHALER, CLEAR_NATIVE, ClearNative, SM_PtrTypeName_RetVoid) + +DEFINE_CLASS(KEYVALUEPAIRMARSHALER, StubHelpers, KeyValuePairMarshaler) +DEFINE_METHOD(KEYVALUEPAIRMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, NoSig) +DEFINE_METHOD(KEYVALUEPAIRMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, NoSig) +DEFINE_METHOD(KEYVALUEPAIRMARSHALER, CONVERT_TO_MANAGED_BOX, ConvertToManagedBox, NoSig) + +DEFINE_CLASS(HRESULTEXCEPTIONMARSHALER, StubHelpers, HResultExceptionMarshaler) +DEFINE_METHOD(HRESULTEXCEPTIONMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, SM_Exception_RetInt) +DEFINE_METHOD(HRESULTEXCEPTIONMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, SM_Int_RetException) + +#endif // FEATURE_COMINTEROP + +DEFINE_CLASS(VALUECLASSMARSHALER, StubHelpers, ValueClassMarshaler) +DEFINE_METHOD(VALUECLASSMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, SM_IntPtrIntPtrIntPtr_RefCleanupWorkList_RetVoid) +DEFINE_METHOD(VALUECLASSMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, SM_IntPtrIntPtrIntPtr_RetVoid) +DEFINE_METHOD(VALUECLASSMARSHALER, CLEAR_NATIVE, ClearNative, SM_IntPtr_IntPtr_RetVoid) + +DEFINE_CLASS(DATEMARSHALER, StubHelpers, DateMarshaler) +DEFINE_METHOD(DATEMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, SM_DateTime_RetDbl) +DEFINE_METHOD(DATEMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, SM_Dbl_RetLong) + +DEFINE_CLASS(VBBYVALSTRMARSHALER, StubHelpers, VBByValStrMarshaler) +DEFINE_METHOD(VBBYVALSTRMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, SM_Str_Bool_Bool_RefInt_RetIntPtr) +DEFINE_METHOD(VBBYVALSTRMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, SM_IntPtr_Int_RetStr) +DEFINE_METHOD(VBBYVALSTRMARSHALER, CLEAR_NATIVE, ClearNative, SM_IntPtr_RetVoid) + +DEFINE_CLASS(MNGD_NATIVE_ARRAY_MARSHALER, StubHelpers, MngdNativeArrayMarshaler) +DEFINE_METHOD(MNGD_NATIVE_ARRAY_MARSHALER, CREATE_MARSHALER, CreateMarshaler, SM_IntPtr_IntPtr_Int_RetVoid) +DEFINE_METHOD(MNGD_NATIVE_ARRAY_MARSHALER, CONVERT_SPACE_TO_NATIVE, ConvertSpaceToNative, SM_IntPtr_RefObj_IntPtr_RetVoid) +DEFINE_METHOD(MNGD_NATIVE_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_NATIVE, ConvertContentsToNative, SM_IntPtr_RefObj_IntPtr_RetVoid) +DEFINE_METHOD(MNGD_NATIVE_ARRAY_MARSHALER, CONVERT_SPACE_TO_MANAGED, ConvertSpaceToManaged, SM_IntPtr_RefObj_IntPtr_Int_RetVoid) +DEFINE_METHOD(MNGD_NATIVE_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_MANAGED, ConvertContentsToManaged, SM_IntPtr_RefObj_IntPtr_RetVoid) +DEFINE_METHOD(MNGD_NATIVE_ARRAY_MARSHALER, CLEAR_NATIVE, ClearNative, SM_IntPtr_IntPtr_Int_RetVoid) +DEFINE_METHOD(MNGD_NATIVE_ARRAY_MARSHALER, CLEAR_NATIVE_CONTENTS, ClearNativeContents, SM_IntPtr_IntPtr_Int_RetVoid) + +DEFINE_CLASS(MNGD_REF_CUSTOM_MARSHALER, StubHelpers, MngdRefCustomMarshaler) +DEFINE_METHOD(MNGD_REF_CUSTOM_MARSHALER, CREATE_MARSHALER, CreateMarshaler, SM_IntPtr_IntPtr_RetVoid) +DEFINE_METHOD(MNGD_REF_CUSTOM_MARSHALER, CONVERT_CONTENTS_TO_NATIVE, ConvertContentsToNative, SM_IntPtr_RefObj_IntPtr_RetVoid) +DEFINE_METHOD(MNGD_REF_CUSTOM_MARSHALER, CONVERT_CONTENTS_TO_MANAGED, ConvertContentsToManaged, SM_IntPtr_RefObj_IntPtr_RetVoid) +DEFINE_METHOD(MNGD_REF_CUSTOM_MARSHALER, CLEAR_NATIVE, ClearNative, SM_IntPtr_RefObj_IntPtr_RetVoid) +DEFINE_METHOD(MNGD_REF_CUSTOM_MARSHALER, CLEAR_MANAGED, ClearManaged, SM_IntPtr_RefObj_IntPtr_RetVoid) + +DEFINE_CLASS(ASANY_MARSHALER, StubHelpers, AsAnyMarshaler) +DEFINE_METHOD(ASANY_MARSHALER, CTOR, .ctor, IM_IntPtr_RetVoid) +DEFINE_METHOD(ASANY_MARSHALER, CONVERT_TO_NATIVE, ConvertToNative, IM_Obj_Int_RetIntPtr) +DEFINE_METHOD(ASANY_MARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, IM_Obj_IntPtr_RetVoid) +DEFINE_METHOD(ASANY_MARSHALER, CLEAR_NATIVE, ClearNative, IM_IntPtr_RetVoid) + +DEFINE_CLASS(NATIVEVARIANT, StubHelpers, NativeVariant) + +DEFINE_CLASS(WIN32NATIVE, Win32, Win32Native) +DEFINE_METHOD(WIN32NATIVE, COTASKMEMALLOC, CoTaskMemAlloc, SM_UIntPtr_RetIntPtr) +DEFINE_METHOD(WIN32NATIVE, COTASKMEMFREE, CoTaskMemFree, SM_IntPtr_RetVoid) + +#ifdef FEATURE_COMINTEROP +DEFINE_CLASS(IITERABLE, WinRT, IIterable`1) +DEFINE_CLASS(IVECTOR, WinRT, IVector`1) +DEFINE_CLASS(IMAP, WinRT, IMap`2) +DEFINE_CLASS(IKEYVALUEPAIR, WinRT, IKeyValuePair`2) +DEFINE_CLASS(IVECTORVIEW, WinRT, IVectorView`1) +DEFINE_CLASS(IMAPVIEW, WinRT, IMapView`2) +DEFINE_CLASS(IITERATOR, WinRT, IIterator`1) +DEFINE_CLASS(IPROPERTYVALUE, WinRT, IPropertyValue) +DEFINE_CLASS(IBINDABLEITERABLE, WinRT, IBindableIterable) +DEFINE_CLASS(IBINDABLEITERATOR, WinRT, IBindableIterator) +DEFINE_CLASS(IBINDABLEVECTOR, WinRT, IBindableVector) +DEFINE_CLASS(ICLOSABLE, WinRT, IClosable) + +DEFINE_CLASS(GET_ENUMERATOR_DELEGATE, WinRT, GetEnumerator_Delegate`1) +DEFINE_CLASS(ITERABLE_TO_ENUMERABLE_ADAPTER, WinRT, IterableToEnumerableAdapter) +DEFINE_METHOD(ITERABLE_TO_ENUMERABLE_ADAPTER, GET_ENUMERATOR_STUB, GetEnumerator_Stub, NoSig) +DEFINE_METHOD(ITERABLE_TO_ENUMERABLE_ADAPTER, GET_ENUMERATOR_VARIANCE_STUB, GetEnumerator_Variance_Stub, NoSig) + +DEFINE_CLASS(VECTOR_TO_LIST_ADAPTER, WinRT, VectorToListAdapter) +DEFINE_METHOD(VECTOR_TO_LIST_ADAPTER, INDEXER_GET, Indexer_Get, NoSig) +DEFINE_METHOD(VECTOR_TO_LIST_ADAPTER, INDEXER_SET, Indexer_Set, NoSig) +DEFINE_METHOD(VECTOR_TO_LIST_ADAPTER, INDEX_OF, IndexOf, NoSig) +DEFINE_METHOD(VECTOR_TO_LIST_ADAPTER, INSERT, Insert, NoSig) +DEFINE_METHOD(VECTOR_TO_LIST_ADAPTER, REMOVE_AT, RemoveAt, NoSig) + +DEFINE_CLASS(MAP_TO_DICTIONARY_ADAPTER, WinRT, MapToDictionaryAdapter) +DEFINE_METHOD(MAP_TO_DICTIONARY_ADAPTER, INDEXER_GET, Indexer_Get, NoSig) +DEFINE_METHOD(MAP_TO_DICTIONARY_ADAPTER, INDEXER_SET, Indexer_Set, NoSig) +DEFINE_METHOD(MAP_TO_DICTIONARY_ADAPTER, KEYS, Keys, NoSig) +DEFINE_METHOD(MAP_TO_DICTIONARY_ADAPTER, VALUES, Values, NoSig) +DEFINE_METHOD(MAP_TO_DICTIONARY_ADAPTER, CONTAINS_KEY, ContainsKey, NoSig) +DEFINE_METHOD(MAP_TO_DICTIONARY_ADAPTER, ADD, Add, NoSig) +DEFINE_METHOD(MAP_TO_DICTIONARY_ADAPTER, REMOVE, Remove, NoSig) +DEFINE_METHOD(MAP_TO_DICTIONARY_ADAPTER, TRY_GET_VALUE, TryGetValue, NoSig) + +DEFINE_CLASS(VECTOR_TO_COLLECTION_ADAPTER, WinRT, VectorToCollectionAdapter) +DEFINE_METHOD(VECTOR_TO_COLLECTION_ADAPTER, COUNT, Count, NoSig) +DEFINE_METHOD(VECTOR_TO_COLLECTION_ADAPTER, IS_READ_ONLY, IsReadOnly, NoSig) +DEFINE_METHOD(VECTOR_TO_COLLECTION_ADAPTER, ADD, Add, NoSig) +DEFINE_METHOD(VECTOR_TO_COLLECTION_ADAPTER, CLEAR, Clear, NoSig) +DEFINE_METHOD(VECTOR_TO_COLLECTION_ADAPTER, CONTAINS, Contains, NoSig) +DEFINE_METHOD(VECTOR_TO_COLLECTION_ADAPTER, COPY_TO, CopyTo, NoSig) +DEFINE_METHOD(VECTOR_TO_COLLECTION_ADAPTER, REMOVE, Remove, NoSig) + +DEFINE_CLASS(MAP_TO_COLLECTION_ADAPTER, WinRT, MapToCollectionAdapter) +DEFINE_METHOD(MAP_TO_COLLECTION_ADAPTER, COUNT, Count, NoSig) +DEFINE_METHOD(MAP_TO_COLLECTION_ADAPTER, IS_READ_ONLY, IsReadOnly, NoSig) +DEFINE_METHOD(MAP_TO_COLLECTION_ADAPTER, ADD, Add, NoSig) +DEFINE_METHOD(MAP_TO_COLLECTION_ADAPTER, CLEAR, Clear, NoSig) +DEFINE_METHOD(MAP_TO_COLLECTION_ADAPTER, CONTAINS, Contains, NoSig) +DEFINE_METHOD(MAP_TO_COLLECTION_ADAPTER, COPY_TO, CopyTo, NoSig) +DEFINE_METHOD(MAP_TO_COLLECTION_ADAPTER, REMOVE, Remove, NoSig) + +DEFINE_CLASS(BINDABLEITERABLE_TO_ENUMERABLE_ADAPTER, WinRT, BindableIterableToEnumerableAdapter) +DEFINE_METHOD(BINDABLEITERABLE_TO_ENUMERABLE_ADAPTER, GET_ENUMERATOR_STUB, GetEnumerator_Stub, NoSig) + +DEFINE_CLASS(BINDABLEVECTOR_TO_LIST_ADAPTER, WinRT, BindableVectorToListAdapter) +DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER, INDEXER_GET, Indexer_Get, NoSig) +DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER, INDEXER_SET, Indexer_Set, NoSig) +DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER, ADD, Add, NoSig) +DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER, CONTAINS, Contains, NoSig) +DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER, CLEAR, Clear, NoSig) +DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER, IS_READ_ONLY, IsReadOnly, NoSig) +DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER, IS_FIXED_SIZE, IsFixedSize, NoSig) +DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER, INDEX_OF, IndexOf, NoSig) +DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER, INSERT, Insert, NoSig) +DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER, REMOVE, Remove, NoSig) +DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER, REMOVE_AT, RemoveAt, NoSig) + +DEFINE_CLASS(BINDABLEVECTOR_TO_COLLECTION_ADAPTER, WinRT, BindableVectorToCollectionAdapter) +DEFINE_METHOD(BINDABLEVECTOR_TO_COLLECTION_ADAPTER, COPY_TO, CopyTo, NoSig) +DEFINE_METHOD(BINDABLEVECTOR_TO_COLLECTION_ADAPTER, COUNT, Count, NoSig) +DEFINE_METHOD(BINDABLEVECTOR_TO_COLLECTION_ADAPTER, SYNC_ROOT, SyncRoot, NoSig) +DEFINE_METHOD(BINDABLEVECTOR_TO_COLLECTION_ADAPTER, IS_SYNCHRONIZED, IsSynchronized, NoSig) + +DEFINE_CLASS(ENUMERABLE_TO_ITERABLE_ADAPTER, WinRT, EnumerableToIterableAdapter) +DEFINE_METHOD(ENUMERABLE_TO_ITERABLE_ADAPTER, FIRST_STUB, First_Stub, NoSig) + +DEFINE_CLASS(LIST_TO_VECTOR_ADAPTER, WinRT, ListToVectorAdapter) +DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER, GET_AT, GetAt, NoSig) +DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER, SIZE, Size, NoSig) +DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER, GET_VIEW, GetView, NoSig) +DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER, INDEX_OF, IndexOf, NoSig) +DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER, SET_AT, SetAt, NoSig) +DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER, INSERT_AT, InsertAt, NoSig) +DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER, REMOVE_AT, RemoveAt, NoSig) +DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER, APPEND, Append, NoSig) +DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER, REMOVE_AT_END, RemoveAtEnd, NoSig) +DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER, CLEAR, Clear, NoSig) +DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER, GET_MANY, GetMany, NoSig) +DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER, REPLACE_ALL, ReplaceAll, NoSig) + +DEFINE_CLASS(DICTIONARY_TO_MAP_ADAPTER, WinRT, DictionaryToMapAdapter) +DEFINE_METHOD(DICTIONARY_TO_MAP_ADAPTER, LOOKUP, Lookup, NoSig) +DEFINE_METHOD(DICTIONARY_TO_MAP_ADAPTER, SIZE, Size, NoSig) +DEFINE_METHOD(DICTIONARY_TO_MAP_ADAPTER, HAS_KEY, HasKey, NoSig) +DEFINE_METHOD(DICTIONARY_TO_MAP_ADAPTER, GET_VIEW, GetView, NoSig) +DEFINE_METHOD(DICTIONARY_TO_MAP_ADAPTER, INSERT, Insert, NoSig) +DEFINE_METHOD(DICTIONARY_TO_MAP_ADAPTER, REMOVE, Remove, NoSig) +DEFINE_METHOD(DICTIONARY_TO_MAP_ADAPTER, CLEAR, Clear, NoSig) + +DEFINE_CLASS(IVECTORVIEW_TO_IREADONLYCOLLECTION_ADAPTER, WinRT, VectorViewToReadOnlyCollectionAdapter) +DEFINE_METHOD(IVECTORVIEW_TO_IREADONLYCOLLECTION_ADAPTER, COUNT, Count, NoSig) + +DEFINE_CLASS(IMAPVIEW_TO_IREADONLYCOLLECTION_ADAPTER, WinRT, MapViewToReadOnlyCollectionAdapter) +DEFINE_METHOD(IMAPVIEW_TO_IREADONLYCOLLECTION_ADAPTER, COUNT, Count, NoSig) + +DEFINE_CLASS(IREADONLYLIST_TO_IVECTORVIEW_ADAPTER, WinRT, IReadOnlyListToIVectorViewAdapter) +DEFINE_METHOD(IREADONLYLIST_TO_IVECTORVIEW_ADAPTER, GETAT, GetAt, NoSig) +DEFINE_METHOD(IREADONLYLIST_TO_IVECTORVIEW_ADAPTER, GETMANY, GetMany, NoSig) +DEFINE_METHOD(IREADONLYLIST_TO_IVECTORVIEW_ADAPTER, INDEXOF, IndexOf, NoSig) +DEFINE_METHOD(IREADONLYLIST_TO_IVECTORVIEW_ADAPTER, SIZE, Size, NoSig) + +DEFINE_CLASS(INDEXER_GET_DELEGATE, WinRT, Indexer_Get_Delegate`1) +DEFINE_CLASS(IVECTORVIEW_TO_IREADONLYLIST_ADAPTER, WinRT, IVectorViewToIReadOnlyListAdapter) +DEFINE_METHOD(IVECTORVIEW_TO_IREADONLYLIST_ADAPTER, INDEXER_GET, Indexer_Get, NoSig) +DEFINE_METHOD(IVECTORVIEW_TO_IREADONLYLIST_ADAPTER, INDEXER_GET_VARIANCE, Indexer_Get_Variance, NoSig) + +DEFINE_CLASS(IREADONLYDICTIONARY_TO_IMAPVIEW_ADAPTER, WinRT, IReadOnlyDictionaryToIMapViewAdapter) +DEFINE_METHOD(IREADONLYDICTIONARY_TO_IMAPVIEW_ADAPTER, HASKEY, HasKey, NoSig) +DEFINE_METHOD(IREADONLYDICTIONARY_TO_IMAPVIEW_ADAPTER, LOOKUP, Lookup, NoSig) +DEFINE_METHOD(IREADONLYDICTIONARY_TO_IMAPVIEW_ADAPTER, SIZE, Size, NoSig) +DEFINE_METHOD(IREADONLYDICTIONARY_TO_IMAPVIEW_ADAPTER, SPLIT, Split, NoSig) + +DEFINE_CLASS(IMAPVIEW_TO_IREADONLYDICTIONARY_ADAPTER, WinRT, IMapViewToIReadOnlyDictionaryAdapter) +DEFINE_METHOD(IMAPVIEW_TO_IREADONLYDICTIONARY_ADAPTER, CONTAINSKEY, ContainsKey, NoSig) +DEFINE_METHOD(IMAPVIEW_TO_IREADONLYDICTIONARY_ADAPTER, INDEXER_GET, Indexer_Get, NoSig) +DEFINE_METHOD(IMAPVIEW_TO_IREADONLYDICTIONARY_ADAPTER, TRYGETVALUE, TryGetValue, NoSig) +DEFINE_METHOD(IMAPVIEW_TO_IREADONLYDICTIONARY_ADAPTER, KEYS, Keys, NoSig) +DEFINE_METHOD(IMAPVIEW_TO_IREADONLYDICTIONARY_ADAPTER, VALUES, Values, NoSig) + +DEFINE_CLASS(ENUMERABLE_TO_BINDABLEITERABLE_ADAPTER, WinRT, EnumerableToBindableIterableAdapter) +DEFINE_METHOD(ENUMERABLE_TO_BINDABLEITERABLE_ADAPTER, FIRST_STUB, First_Stub, NoSig) + +DEFINE_CLASS(LIST_TO_BINDABLEVECTOR_ADAPTER, WinRT, ListToBindableVectorAdapter) +DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER, GET_AT, GetAt, NoSig) +DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER, SIZE, Size, NoSig) +DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER, GET_VIEW, GetView, NoSig) +DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER, INDEX_OF, IndexOf, NoSig) +DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER, SET_AT, SetAt, NoSig) +DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER, INSERT_AT, InsertAt, NoSig) +DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER, REMOVE_AT, RemoveAt, NoSig) +DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER, APPEND, Append, NoSig) +DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER, REMOVE_AT_END, RemoveAtEnd, NoSig) +DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER, CLEAR, Clear, NoSig) + +DEFINE_CLASS(IDISPOSABLE_TO_ICLOSABLE_ADAPTER, WinRT, IDisposableToIClosableAdapter) +DEFINE_METHOD(IDISPOSABLE_TO_ICLOSABLE_ADAPTER, CLOSE, Close, NoSig) + +DEFINE_CLASS(ICLOSABLE_TO_IDISPOSABLE_ADAPTER, WinRT, IClosableToIDisposableAdapter) +DEFINE_METHOD(ICLOSABLE_TO_IDISPOSABLE_ADAPTER, DISPOSE, Dispose, NoSig) + +#endif // FEATURE_COMINTEROP + +DEFINE_CLASS(SZARRAYHELPER, System, SZArrayHelper) +// Note: The order of methods here has to match order they are implemented on the interfaces in +// IEnumerable`1 +DEFINE_METHOD(SZARRAYHELPER, GETENUMERATOR, GetEnumerator, NoSig) +// ICollection`1/IReadOnlyCollection`1 +DEFINE_METHOD(SZARRAYHELPER, GET_COUNT, get_Count, NoSig) +DEFINE_METHOD(SZARRAYHELPER, ISREADONLY, get_IsReadOnly, NoSig) +DEFINE_METHOD(SZARRAYHELPER, ADD, Add, NoSig) +DEFINE_METHOD(SZARRAYHELPER, CLEAR, Clear, NoSig) +DEFINE_METHOD(SZARRAYHELPER, CONTAINS, Contains, NoSig) +DEFINE_METHOD(SZARRAYHELPER, COPYTO, CopyTo, NoSig) +DEFINE_METHOD(SZARRAYHELPER, REMOVE, Remove, NoSig) +// IList`1/IReadOnlyList`1 +DEFINE_METHOD(SZARRAYHELPER, GET_ITEM, get_Item, NoSig) +DEFINE_METHOD(SZARRAYHELPER, SET_ITEM, set_Item, NoSig) +DEFINE_METHOD(SZARRAYHELPER, INDEXOF, IndexOf, NoSig) +DEFINE_METHOD(SZARRAYHELPER, INSERT, Insert, NoSig) +DEFINE_METHOD(SZARRAYHELPER, REMOVEAT, RemoveAt, NoSig) + +DEFINE_CLASS(IENUMERABLEGENERIC, CollectionsGeneric, IEnumerable`1) +DEFINE_CLASS(IENUMERATORGENERIC, CollectionsGeneric, IEnumerator`1) +DEFINE_CLASS(ICOLLECTIONGENERIC, CollectionsGeneric, ICollection`1) +DEFINE_CLASS(ILISTGENERIC, CollectionsGeneric, IList`1) +DEFINE_CLASS(IREADONLYCOLLECTIONGENERIC,CollectionsGeneric, IReadOnlyCollection`1) +DEFINE_CLASS(IREADONLYLISTGENERIC, CollectionsGeneric, IReadOnlyList`1) +DEFINE_CLASS(IREADONLYDICTIONARYGENERIC,CollectionsGeneric, IReadOnlyDictionary`2) +DEFINE_CLASS(IDICTIONARYGENERIC, CollectionsGeneric, IDictionary`2) +DEFINE_CLASS(KEYVALUEPAIRGENERIC, CollectionsGeneric, KeyValuePair`2) + +DEFINE_CLASS(ICOMPARABLEGENERIC, System, IComparable`1) +DEFINE_CLASS(IEQUATABLEGENERIC, System, IEquatable`1) + +DEFINE_CLASS_U(Reflection, LoaderAllocator, LoaderAllocatorObject) +DEFINE_FIELD_U(m_slots, LoaderAllocatorObject, m_pSlots) +DEFINE_FIELD_U(m_slotsUsed, LoaderAllocatorObject, m_slotsUsed) +DEFINE_CLASS(LOADERALLOCATOR, Reflection, LoaderAllocator) +DEFINE_METHOD(LOADERALLOCATOR, CTOR, .ctor, IM_RetVoid) + +DEFINE_CLASS_U(Reflection, LoaderAllocatorScout, LoaderAllocatorScoutObject) +DEFINE_FIELD_U(m_nativeLoaderAllocator, LoaderAllocatorScoutObject, m_nativeLoaderAllocator) +DEFINE_CLASS(LOADERALLOCATORSCOUT, Reflection, LoaderAllocatorScout) + +DEFINE_CLASS(CONTRACTEXCEPTION, CodeContracts, ContractException) + +DEFINE_CLASS_U(CodeContracts, ContractException, ContractExceptionObject) +DEFINE_FIELD_U(_Kind, ContractExceptionObject, _Kind) +DEFINE_FIELD_U(_UserMessage, ContractExceptionObject, _UserMessage) +DEFINE_FIELD_U(_Condition, ContractExceptionObject, _Condition) + +// The COM interfaces for the reflection types. +#if defined(FEATURE_COMINTEROP) && !defined(FEATURE_CORECLR) +DEFINE_CLASS(IAPPDOMAIN, System, _AppDomain) +DEFINE_CLASS(ITYPE, InteropServices, _Type) +DEFINE_CLASS(IASSEMBLY, InteropServices, _Assembly) +DEFINE_CLASS(IMEMBERINFO, InteropServices, _MemberInfo) +DEFINE_CLASS(IMETHODBASE, InteropServices, _MethodBase) +DEFINE_CLASS(IMETHODINFO, InteropServices, _MethodInfo) +DEFINE_CLASS(ICONSTRUCTORINFO, InteropServices, _ConstructorInfo) +DEFINE_CLASS(IFIELDINFO, InteropServices, _FieldInfo) +DEFINE_CLASS(IPROPERTYINFO, InteropServices, _PropertyInfo) +DEFINE_CLASS(IEVENTINFO, InteropServices, _EventInfo) +DEFINE_CLASS(IPARAMETERINFO, InteropServices, _ParameterInfo) +DEFINE_CLASS(IMODULE, InteropServices, _Module) +#endif // FEATURE_COMINTEROP && !FEATURE_CORECLR + +#ifdef FEATURE_COMPRESSEDSTACK +DEFINE_CLASS_U(Security, FrameSecurityDescriptorWithResolver, FrameSecurityDescriptorWithResolverBaseObject) +DEFINE_FIELD_U(m_resolver, FrameSecurityDescriptorWithResolverBaseObject, m_resolver) +DEFINE_CLASS(FRAME_SECURITY_DESCRIPTOR_WITH_RESOLVER, Security, FrameSecurityDescriptorWithResolver) +#endif // FEATURE_COMPRESSEDSTACK + +#ifdef FEATURE_COMINTEROP +DEFINE_CLASS(ASYNC_TRACING_EVENT_ARGS, WindowsFoundationDiag, TracingStatusChangedEventArgs) +DEFINE_CLASS(IASYNC_TRACING_EVENT_ARGS, WindowsFoundationDiag, ITracingStatusChangedEventArgs) +#endif // FEATURE_COMINTEROP + +DEFINE_CLASS(MODULEBASE, Reflection, Module) + +#ifdef FEATURE_ICASTABLE +DEFINE_CLASS(ICASTABLE, CompilerServices, ICastable) + +DEFINE_CLASS(ICASTABLEHELPERS, CompilerServices, ICastableHelpers) +DEFINE_METHOD(ICASTABLEHELPERS, ISINSTANCEOF, IsInstanceOfInterface, SM_ICastable_RtType_RefException_RetBool) +DEFINE_METHOD(ICASTABLEHELPERS, GETIMPLTYPE, GetImplType, SM_ICastable_RtType_RetRtType) + +#endif // FEATURE_ICASTABLE + +DEFINE_CLASS(CUTF8MARSHALER, StubHelpers, UTF8Marshaler) +DEFINE_METHOD(CUTF8MARSHALER, CONVERT_TO_NATIVE, ConvertToNative, SM_Int_Str_IntPtr_RetIntPtr) +DEFINE_METHOD(CUTF8MARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, SM_IntPtr_RetStr) +DEFINE_METHOD(CUTF8MARSHALER, CLEAR_NATIVE, ClearNative, SM_IntPtr_RetVoid) + +DEFINE_CLASS(UTF8BUFFERMARSHALER, StubHelpers, UTF8BufferMarshaler) +DEFINE_METHOD(UTF8BUFFERMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, NoSig) +DEFINE_METHOD(UTF8BUFFERMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, NoSig) + +#undef DEFINE_CLASS +#undef DEFINE_METHOD +#undef DEFINE_FIELD +#undef DEFINE_CLASS_U +#undef DEFINE_FIELD_U |