[Tizen] Unify dnetmemoryenumlib terms to match the codebase (#291)
[platform/upstream/coreclr.git] / src / vm / mscorlib.h
1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4 // This file contains the classes, methods, and field used by the EE from mscorlib
5
6 //
7 // To use this, define one of the following macros & include the file like so:
8 //
9 // #define DEFINE_CLASS(id, nameSpace, stringName)         CLASS__ ## id,
10 // #define DEFINE_METHOD(classId, id, stringName, gSign)
11 // #define DEFINE_FIELD(classId, id, stringName)
12 // #include "mscorlib.h"
13 //
14 // Note: To determine if the namespace you want to use in DEFINE_CLASS is supported or not, 
15 //       examine vm\namespace.h. If it is not present, define it there and then proceed to use it below.
16 //
17
18 //
19 // Note: This file gets parsed by the Mono IL Linker (https://github.com/mono/linker/) which may throw an exception during parsing.
20 // Specifically, this (https://github.com/mono/linker/blob/master/corebuild/integration/ILLink.Tasks/CreateRuntimeRootDescriptorFile.cs) will try to 
21 // parse this header, and it may throw an exception while doing that. If you edit this file and get a build failure on msbuild.exe D:\repos\coreclr\build.proj
22 // you might want to check out the parser linked above.
23 //
24
25 // 
26 // Note: The SM_* and IM_* are signatures defined in file:metasig.h using IM() and SM() macros.
27 // 
28
29 #ifndef DEFINE_CLASS
30 #define DEFINE_CLASS(id, nameSpace, stringName)
31 #endif
32
33 #ifndef DEFINE_METHOD
34 #define DEFINE_METHOD(classId, id, stringName, gSign)
35 #endif
36
37 #ifndef DEFINE_FIELD
38 #define DEFINE_FIELD(classId, id, stringName)
39 #endif
40
41 #ifndef DEFINE_PROPERTY
42 #define DEFINE_PROPERTY(classId, id, stringName, gSign) DEFINE_METHOD(classId, GET_ ## id, get_ ## stringName, IM_Ret ## gSign)
43 #endif
44
45 #ifndef DEFINE_STATIC_PROPERTY
46 #define DEFINE_STATIC_PROPERTY(classId, id, stringName, gSign) DEFINE_METHOD(classId, GET_ ## id, get_ ## stringName, SM_Ret ## gSign)
47 #endif
48
49 #ifndef DEFINE_SET_PROPERTY
50 #define DEFINE_SET_PROPERTY(classId, id, stringName, gSign) \
51     DEFINE_PROPERTY(classId, id, stringName, gSign) \
52     DEFINE_METHOD(classId, SET_ ## id, set_ ## stringName, IM_## gSign ## _RetVoid)
53 #endif
54
55 #ifndef DEFINE_STATIC_SET_PROPERTY
56 #define DEFINE_STATIC_SET_PROPERTY(classId, id, stringName, gSign) \
57     DEFINE_STATIC_PROPERTY(classId, id, stringName, gSign) \
58     DEFINE_METHOD(classId, SET_ ## id, set_ ## stringName, SM_## gSign ## _RetVoid)
59 #endif
60
61 //
62 // DEFINE_CLASS_U and DEFINE_FIELD_U are debug-only checks to verify that the managed and unmanaged layouts are in sync
63 //
64 #ifndef DEFINE_CLASS_U
65 #define DEFINE_CLASS_U(nameSpace, stringName, unmanagedType)
66 #endif
67
68 #ifndef DEFINE_FIELD_U
69 #define DEFINE_FIELD_U(stringName, unmanagedContainingType, unmanagedOffset)
70 #endif
71
72 // NOTE: Make this window really wide if you want to read the table...
73
74 DEFINE_CLASS(ACTIVATOR,             System,                 Activator)
75 DEFINE_METHOD(ACTIVATOR,            CREATE_INSTANCE_OF_T,   CreateInstance, GM_RetT)
76 DEFINE_METHOD(ACTIVATOR,            CREATE_DEFAULT_INSTANCE_OF_T,   CreateDefaultInstance,  GM_RetT)
77
78 DEFINE_CLASS(ACCESS_VIOLATION_EXCEPTION, System,            AccessViolationException)
79 DEFINE_FIELD(ACCESS_VIOLATION_EXCEPTION, IP,                _ip)
80 DEFINE_FIELD(ACCESS_VIOLATION_EXCEPTION, TARGET,            _target)
81 DEFINE_FIELD(ACCESS_VIOLATION_EXCEPTION, ACCESSTYPE,        _accessType)
82
83 DEFINE_CLASS(APPCONTEXT,            System,                 AppContext)
84 DEFINE_METHOD(APPCONTEXT,   SETUP,              Setup,          SM_PtrPtrChar_PtrPtrChar_Int_RetVoid)
85 DEFINE_METHOD(APPCONTEXT,   ON_PROCESS_EXIT,    OnProcessExit,  SM_RetVoid)
86 DEFINE_FIELD(APPCONTEXT, UNHANDLED_EXCEPTION,           UnhandledException)
87 DEFINE_FIELD(APPCONTEXT, FIRST_CHANCE_EXCEPTION,        FirstChanceException)
88
89 DEFINE_CLASS(ARG_ITERATOR,          System,                 ArgIterator)
90 DEFINE_CLASS_U(System,              ArgIterator,            VARARGS)  // Includes a SigPointer.
91 DEFINE_METHOD(ARG_ITERATOR,         CTOR2,                  .ctor,                      IM_RuntimeArgumentHandle_PtrVoid_RetVoid)
92
93 DEFINE_CLASS(ARGUMENT_HANDLE,       System,                 RuntimeArgumentHandle)
94
95 DEFINE_CLASS(ARRAY,                 System,                 Array)
96 DEFINE_PROPERTY(ARRAY,              LENGTH,                 Length,                     Int)
97 DEFINE_METHOD(ARRAY,                GET_RAW_ARRAY_DATA,     GetRawArrayData, IM_RetRefByte)
98
99 DEFINE_CLASS(ARRAY_WITH_OFFSET,     Interop,                ArrayWithOffset)                 
100 DEFINE_FIELD(ARRAY_WITH_OFFSET,     M_ARRAY,                m_array)
101 DEFINE_FIELD(ARRAY_WITH_OFFSET,     M_OFFSET,               m_offset)
102 DEFINE_FIELD(ARRAY_WITH_OFFSET,     M_COUNT,                m_count)
103
104
105 DEFINE_CLASS(ASSEMBLY_BUILDER,      ReflectionEmit,         AssemblyBuilder)
106 DEFINE_CLASS(INTERNAL_ASSEMBLY_BUILDER,      ReflectionEmit,         InternalAssemblyBuilder)
107
108 DEFINE_CLASS(ASSEMBLY_HASH_ALGORITHM,   Assemblies,         AssemblyHashAlgorithm)
109 DEFINE_CLASS(PORTABLE_EXECUTABLE_KINDS, Reflection,         PortableExecutableKinds)
110 DEFINE_CLASS(IMAGE_FILE_MACHINE,        Reflection,         ImageFileMachine)
111
112 DEFINE_CLASS_U(Reflection,             AssemblyName,           AssemblyNameBaseObject)
113 DEFINE_FIELD_U(_name,                      AssemblyNameBaseObject, _name)
114 DEFINE_FIELD_U(_publicKey,                 AssemblyNameBaseObject, _publicKey)
115 DEFINE_FIELD_U(_publicKeyToken,            AssemblyNameBaseObject, _publicKeyToken)
116 DEFINE_FIELD_U(_cultureInfo,               AssemblyNameBaseObject, _cultureInfo)
117 DEFINE_FIELD_U(_codeBase,                  AssemblyNameBaseObject, _codeBase)
118 DEFINE_FIELD_U(_version,                   AssemblyNameBaseObject, _version)
119 DEFINE_FIELD_U(_hashAlgorithm,             AssemblyNameBaseObject, _hashAlgorithm)
120 DEFINE_FIELD_U(_versionCompatibility,      AssemblyNameBaseObject, _versionCompatibility)
121 DEFINE_FIELD_U(_flags,                     AssemblyNameBaseObject, _flags)
122 DEFINE_CLASS(ASSEMBLY_NAME,         Reflection,             AssemblyName)
123 DEFINE_METHOD(ASSEMBLY_NAME,        CTOR,                   .ctor,                     IM_Str_ArrB_ArrB_Ver_CI_AHA_AVC_Str_ANF_SNKP_RetV)
124 DEFINE_METHOD(ASSEMBLY_NAME,        SET_PROC_ARCH_INDEX,    SetProcArchIndex,          IM_PEK_IFM_RetV)
125
126 DEFINE_CLASS_U(System,                 Version,                    VersionBaseObject)
127 DEFINE_FIELD_U(_Major,                     VersionBaseObject,    m_Major)
128 DEFINE_FIELD_U(_Minor,                     VersionBaseObject,    m_Minor)
129 DEFINE_FIELD_U(_Build,                     VersionBaseObject,    m_Build)
130 DEFINE_FIELD_U(_Revision,                  VersionBaseObject,    m_Revision)
131 DEFINE_CLASS(VERSION,               System,                 Version)
132 DEFINE_METHOD(VERSION,              CTOR_Ix2,               .ctor,                      IM_Int_Int_RetVoid)
133 DEFINE_METHOD(VERSION,              CTOR_Ix3,               .ctor,                      IM_Int_Int_Int_RetVoid)
134 DEFINE_METHOD(VERSION,              CTOR_Ix4,               .ctor,                      IM_Int_Int_Int_Int_RetVoid)
135
136 DEFINE_CLASS(ASSEMBLY_VERSION_COMPATIBILITY, Assemblies,    AssemblyVersionCompatibility)
137
138 DEFINE_CLASS(ASSEMBLY_NAME_FLAGS,   Reflection,             AssemblyNameFlags)
139
140 // ASSEMBLYBASE is System.ReflectionAssembly while ASSEMBLY is System.Reflection.RuntimeAssembly
141 // Maybe we should reverse these two names
142 DEFINE_CLASS(ASSEMBLYBASE,          Reflection,             Assembly)
143
144 DEFINE_CLASS_U(Reflection,             RuntimeAssembly,            AssemblyBaseObject)
145 DEFINE_FIELD_U(_ModuleResolve,             AssemblyBaseObject,     m_pModuleEventHandler)
146 DEFINE_FIELD_U(m_fullname,                 AssemblyBaseObject,     m_fullname)
147 DEFINE_FIELD_U(m_syncRoot,                 AssemblyBaseObject,     m_pSyncRoot)
148 DEFINE_FIELD_U(m_assembly,                 AssemblyBaseObject,     m_pAssembly)
149 DEFINE_CLASS(ASSEMBLY,              Reflection,             RuntimeAssembly)
150 DEFINE_FIELD(ASSEMBLY,              HANDLE,                 m_assembly)
151 DEFINE_METHOD(ASSEMBLY,             GET_NAME,               GetName,                    IM_RetAssemblyName)
152 DEFINE_METHOD(ASSEMBLY,             ON_MODULE_RESOLVE,      OnModuleResolveEvent,       IM_Str_RetModule)
153
154
155 DEFINE_CLASS(ASYNCCALLBACK,         System,                 AsyncCallback)
156 DEFINE_CLASS(ATTRIBUTE,             System,                 Attribute)
157
158
159 DEFINE_CLASS(BINDER,                Reflection,             Binder)
160 DEFINE_METHOD(BINDER,               CHANGE_TYPE,            ChangeType,                 IM_Obj_Type_CultureInfo_RetObj)
161
162 DEFINE_CLASS(BINDING_FLAGS,         Reflection,             BindingFlags)
163
164 DEFINE_CLASS_U(System,                 RuntimeType,            ReflectClassBaseObject)
165 DEFINE_FIELD_U(m_cache,                ReflectClassBaseObject,        m_cache)
166 DEFINE_FIELD_U(m_handle,               ReflectClassBaseObject,        m_typeHandle)
167 DEFINE_FIELD_U(m_keepalive,            ReflectClassBaseObject,        m_keepalive)
168 DEFINE_CLASS(CLASS,                 System,                 RuntimeType)
169 DEFINE_FIELD(CLASS,                 TYPEHANDLE,             m_handle)
170 DEFINE_METHOD(CLASS,                GET_PROPERTIES,         GetProperties,              IM_BindingFlags_RetArrPropertyInfo)
171 DEFINE_METHOD(CLASS,                GET_FIELDS,             GetFields,                  IM_BindingFlags_RetArrFieldInfo)
172 DEFINE_METHOD(CLASS,                GET_METHODS,            GetMethods,                 IM_BindingFlags_RetArrMethodInfo)
173 DEFINE_METHOD(CLASS,                INVOKE_MEMBER,          InvokeMember,               IM_Str_BindingFlags_Binder_Obj_ArrObj_ArrParameterModifier_CultureInfo_ArrStr_RetObj)
174 DEFINE_METHOD(CLASS,                GET_METHOD_BASE,        GetMethodBase,              SM_RuntimeType_RuntimeMethodHandleInternal_RetMethodBase)
175 DEFINE_METHOD(CLASS,                GET_FIELD_INFO,         GetFieldInfo,               SM_RuntimeType_IRuntimeFieldInfo_RetFieldInfo)
176 DEFINE_METHOD(CLASS,                GET_PROPERTY_INFO,      GetPropertyInfo,            SM_RuntimeType_Int_RetPropertyInfo)
177
178 #ifdef FEATURE_COMINTEROP
179 DEFINE_METHOD(CLASS,                FORWARD_CALL_TO_INVOKE, ForwardCallToInvokeMember,  IM_Str_BindingFlags_Obj_ArrObj_ArrBool_ArrInt_ArrType_Type_RetObj)
180 #endif // FEATURE_COMINTEROP
181
182 #ifdef FEATURE_COMINTEROP
183 DEFINE_CLASS(BSTR_WRAPPER,          Interop,                BStrWrapper)
184 DEFINE_CLASS(CURRENCY_WRAPPER,      Interop,                CurrencyWrapper)
185 DEFINE_CLASS(DISPATCH_WRAPPER,      Interop,                DispatchWrapper)
186 DEFINE_CLASS(ERROR_WRAPPER,         Interop,                ErrorWrapper)
187 DEFINE_CLASS(UNKNOWN_WRAPPER,       Interop,                UnknownWrapper)
188 DEFINE_CLASS(VARIANT_WRAPPER,       Interop,                VariantWrapper)
189 #endif // FEATURE_COMINTEROP
190
191 #ifdef FEATURE_COMINTEROP
192 DEFINE_CLASS_U(System,                 __ComObject,            ComObject)
193 DEFINE_FIELD_U(m_ObjectToDataMap,      ComObject,              m_ObjectToDataMap)
194 DEFINE_CLASS(COM_OBJECT,            System,                 __ComObject)
195 DEFINE_METHOD(COM_OBJECT,           RELEASE_ALL_DATA,       ReleaseAllData,             IM_RetVoid)
196 DEFINE_METHOD(COM_OBJECT,           GET_EVENT_PROVIDER,     GetEventProvider,           IM_Class_RetObj)
197
198 DEFINE_CLASS(LICENSE_INTEROP_PROXY,  InternalInteropServices, LicenseInteropProxy)
199 DEFINE_METHOD(LICENSE_INTEROP_PROXY, CREATE,                  Create,                  SM_RetObj)
200 DEFINE_METHOD(LICENSE_INTEROP_PROXY, GETCURRENTCONTEXTINFO,   GetCurrentContextInfo,   IM_RuntimeTypeHandle_RefBool_RefIntPtr_RetVoid)
201 DEFINE_METHOD(LICENSE_INTEROP_PROXY, SAVEKEYINCURRENTCONTEXT, SaveKeyInCurrentContext, IM_IntPtr_RetVoid)
202
203 DEFINE_CLASS(RUNTIME_CLASS,                  WinRT,         RuntimeClass)
204
205 #endif // FEATURE_COMINTEROP
206
207 DEFINE_CLASS_U(Interop,                CriticalHandle,             CriticalHandle)
208 DEFINE_FIELD_U(handle,                     CriticalHandle,     m_handle)
209 DEFINE_FIELD_U(_isClosed,                  CriticalHandle,     m_isClosed)
210 DEFINE_CLASS(CRITICAL_HANDLE,       Interop,                CriticalHandle)
211 DEFINE_FIELD(CRITICAL_HANDLE,       HANDLE,                 handle)
212 DEFINE_METHOD(CRITICAL_HANDLE,      RELEASE_HANDLE,         ReleaseHandle,              IM_RetBool)
213 DEFINE_METHOD(CRITICAL_HANDLE,      GET_IS_INVALID,         get_IsInvalid,              IM_RetBool)
214 DEFINE_METHOD(CRITICAL_HANDLE,      DISPOSE,                Dispose,                    IM_RetVoid)
215 DEFINE_METHOD(CRITICAL_HANDLE,      DISPOSE_BOOL,           Dispose,                    IM_Bool_RetVoid)
216
217 DEFINE_CLASS(HANDLE_REF,            Interop,                HandleRef)
218 DEFINE_FIELD(HANDLE_REF,            WRAPPER,                _wrapper)
219 DEFINE_FIELD(HANDLE_REF,            HANDLE,                 _handle)
220
221 DEFINE_CLASS(CRITICAL_FINALIZER_OBJECT, ConstrainedExecution, CriticalFinalizerObject)
222 DEFINE_METHOD(CRITICAL_FINALIZER_OBJECT, FINALIZE,          Finalize,                   IM_RetVoid)
223
224 DEFINE_CLASS_U(Reflection,             RuntimeConstructorInfo,  NoClass)
225 DEFINE_FIELD_U(m_handle,                   ReflectMethodObject, m_pMD)
226 DEFINE_CLASS(CONSTRUCTOR,           Reflection,             RuntimeConstructorInfo)
227
228 DEFINE_CLASS_U(System,                 RuntimeMethodInfoStub,     ReflectMethodObject)
229 DEFINE_FIELD_U(m_value,                   ReflectMethodObject, m_pMD)
230 DEFINE_CLASS(STUBMETHODINFO,      System,                 RuntimeMethodInfoStub)
231 DEFINE_FIELD(STUBMETHODINFO,      HANDLE,                 m_value)
232
233 DEFINE_CLASS(CONSTRUCTOR_INFO,      Reflection,             ConstructorInfo)
234
235 DEFINE_CLASS_U(Reflection, CustomAttributeEncodedArgument, CustomAttributeValue)
236 DEFINE_FIELD_U(m_primitiveValue,   CustomAttributeValue,           m_rawValue)
237 DEFINE_FIELD_U(m_arrayValue,       CustomAttributeValue,           m_value)
238 DEFINE_FIELD_U(m_stringValue,      CustomAttributeValue,           m_enumOrTypeName)
239 DEFINE_FIELD_U(m_type,             CustomAttributeValue,           m_type)
240 DEFINE_CLASS(CUSTOM_ATTRIBUTE_ENCODED_ARGUMENT, Reflection, CustomAttributeEncodedArgument)
241
242 DEFINE_CLASS_U(Reflection, CustomAttributeNamedParameter, CustomAttributeNamedArgument)
243 DEFINE_FIELD_U(m_argumentName,     CustomAttributeNamedArgument,   m_argumentName)
244 DEFINE_FIELD_U(m_fieldOrProperty,  CustomAttributeNamedArgument,   m_propertyOrField)
245 DEFINE_FIELD_U(m_padding,          CustomAttributeNamedArgument,   m_padding)
246 DEFINE_FIELD_U(m_type,             CustomAttributeNamedArgument,   m_type)
247 DEFINE_FIELD_U(m_encodedArgument,  CustomAttributeNamedArgument,   m_value)
248
249 DEFINE_CLASS_U(Reflection, CustomAttributeCtorParameter, CustomAttributeArgument)
250 DEFINE_FIELD_U(m_type,             CustomAttributeArgument,        m_type)
251 DEFINE_FIELD_U(m_encodedArgument,  CustomAttributeArgument,        m_value)
252
253 DEFINE_CLASS_U(Reflection, CustomAttributeType, CustomAttributeType)
254 DEFINE_FIELD_U(m_enumName,         CustomAttributeType,            m_enumName)
255 DEFINE_FIELD_U(m_encodedType,      CustomAttributeType,            m_tag)
256 DEFINE_FIELD_U(m_encodedEnumType,  CustomAttributeType,            m_enumType)
257 DEFINE_FIELD_U(m_encodedArrayType, CustomAttributeType,            m_arrayType)
258 DEFINE_FIELD_U(m_padding,          CustomAttributeType,            m_padding)
259
260 DEFINE_CLASS_U(Globalization,          CultureInfo,        CultureInfoBaseObject)
261 DEFINE_FIELD_U(_compareInfo,       CultureInfoBaseObject,  _compareInfo)
262 DEFINE_FIELD_U(_textInfo,          CultureInfoBaseObject,  _textInfo)
263 DEFINE_FIELD_U(_numInfo,           CultureInfoBaseObject,  _numInfo)
264 DEFINE_FIELD_U(_dateTimeInfo,      CultureInfoBaseObject,  _dateTimeInfo)
265 DEFINE_FIELD_U(_calendar,          CultureInfoBaseObject,  _calendar)
266 DEFINE_FIELD_U(_consoleFallbackCulture, CultureInfoBaseObject, _consoleFallbackCulture)
267 DEFINE_FIELD_U(_name,             CultureInfoBaseObject,  _name)
268 DEFINE_FIELD_U(_nonSortName,      CultureInfoBaseObject,  _nonSortName)
269 DEFINE_FIELD_U(_sortName,         CultureInfoBaseObject,  _sortName)
270 DEFINE_FIELD_U(_parent,           CultureInfoBaseObject,  _parent)
271 DEFINE_FIELD_U(_isReadOnly,        CultureInfoBaseObject,  _isReadOnly)
272 DEFINE_FIELD_U(_isInherited,      CultureInfoBaseObject,  _isInherited)
273 DEFINE_CLASS(CULTURE_INFO,          Globalization,          CultureInfo)
274 DEFINE_METHOD(CULTURE_INFO,         STR_CTOR,               .ctor,                      IM_Str_RetVoid)
275 DEFINE_FIELD(CULTURE_INFO,          CURRENT_CULTURE,        s_userDefaultCulture)
276 DEFINE_PROPERTY(CULTURE_INFO,       NAME,                   Name,                       Str)
277 DEFINE_METHOD(CULTURE_INFO,         INT_CTOR,               .ctor,                      IM_Int_RetVoid)
278 DEFINE_PROPERTY(CULTURE_INFO,       ID,                     LCID,                       Int)
279 DEFINE_FIELD(CULTURE_INFO,          CULTURE,                s_currentThreadCulture)
280 DEFINE_FIELD(CULTURE_INFO,          UI_CULTURE,             s_currentThreadUICulture)
281 DEFINE_STATIC_SET_PROPERTY(CULTURE_INFO, CURRENT_CULTURE,      CurrentCulture,     CultureInfo)
282 DEFINE_STATIC_SET_PROPERTY(CULTURE_INFO, CURRENT_UI_CULTURE,   CurrentUICulture,   CultureInfo)
283
284 DEFINE_CLASS(CURRENCY,              System,                 Currency)
285 DEFINE_METHOD(CURRENCY,             DECIMAL_CTOR,           .ctor,                      IM_Dec_RetVoid)
286
287 DEFINE_CLASS(DATE_TIME,             System,                 DateTime)
288 DEFINE_METHOD(DATE_TIME,            LONG_CTOR,              .ctor,                      IM_Long_RetVoid)
289
290 #ifdef FEATURE_COMINTEROP
291 DEFINE_CLASS(DATE_TIME_OFFSET,      System,                 DateTimeOffset)
292 #endif // FEATURE_COMINTEROP
293
294 DEFINE_CLASS(DECIMAL,               System,                 Decimal)      
295 DEFINE_METHOD(DECIMAL,              CURRENCY_CTOR,          .ctor,                      IM_Currency_RetVoid)
296
297 DEFINE_CLASS_U(System,                 Delegate,            NoClass)
298 DEFINE_FIELD_U(_target,                    DelegateObject,   _target)
299 DEFINE_FIELD_U(_methodBase,                DelegateObject,   _methodBase)
300 DEFINE_FIELD_U(_methodPtr,                 DelegateObject,   _methodPtr)
301 DEFINE_FIELD_U(_methodPtrAux,              DelegateObject,   _methodPtrAux)
302 DEFINE_CLASS(DELEGATE,              System,                 Delegate)
303 DEFINE_FIELD(DELEGATE,            TARGET,                 _target)
304 DEFINE_FIELD(DELEGATE,            METHOD_PTR,             _methodPtr)
305 DEFINE_FIELD(DELEGATE,            METHOD_PTR_AUX,         _methodPtrAux)
306 DEFINE_METHOD(DELEGATE,             CONSTRUCT_DELEGATE,     DelegateConstruct,          IM_Obj_IntPtr_RetVoid)
307 DEFINE_METHOD(DELEGATE,             GET_INVOKE_METHOD,      GetInvokeMethod,            IM_RetIntPtr)
308
309 DEFINE_CLASS(DYNAMICMETHOD,         ReflectionEmit,         DynamicMethod)
310
311 DEFINE_CLASS(DYNAMICRESOLVER,       ReflectionEmit,         DynamicResolver)
312 DEFINE_FIELD(DYNAMICRESOLVER,       DYNAMIC_METHOD,         m_method)
313
314 DEFINE_CLASS(EMPTY,                 System,                 Empty)
315
316 DEFINE_CLASS(ENC_HELPER,            Diagnostics,            EditAndContinueHelper)
317 DEFINE_FIELD(ENC_HELPER,            OBJECT_REFERENCE,       _objectReference)
318
319 DEFINE_CLASS(ENCODING,              Text,                   Encoding)
320
321 DEFINE_CLASS(RUNE,                  Text,                   Rune)
322
323 #ifdef FEATURE_UTF8STRING
324 DEFINE_CLASS(CHAR8,                 System,                 Char8)
325 #endif // FEATURE_UTF8STRING
326
327 DEFINE_CLASS(ENUM,                  System,                 Enum)
328
329 DEFINE_CLASS(ENVIRONMENT,           System,                 Environment)
330 DEFINE_METHOD(ENVIRONMENT,       GET_RESOURCE_STRING_LOCAL, GetResourceStringLocal,     SM_Str_RetStr)
331 DEFINE_METHOD(ENVIRONMENT,       SET_COMMAND_LINE_ARGS,     SetCommandLineArgs,         SM_ArrStr_RetVoid)
332
333 DEFINE_CLASS(EVENT,                 Reflection,             RuntimeEventInfo)
334
335 DEFINE_CLASS(EVENT_ARGS,            System,                 EventArgs)
336
337 DEFINE_CLASS(EVENT_HANDLERGENERIC,  System,                 EventHandler`1)
338
339 DEFINE_CLASS(EVENT_INFO,            Reflection,             EventInfo)
340
341 DEFINE_CLASS_U(System,                 Exception,      ExceptionObject)
342 DEFINE_FIELD_U(_exceptionMethod,   ExceptionObject,    _exceptionMethod)
343 DEFINE_FIELD_U(_message,           ExceptionObject,    _message)
344 DEFINE_FIELD_U(_data,              ExceptionObject,    _data)
345 DEFINE_FIELD_U(_innerException,    ExceptionObject,    _innerException)
346 DEFINE_FIELD_U(_helpURL,           ExceptionObject,    _helpURL)
347 DEFINE_FIELD_U(_source,            ExceptionObject,    _source)
348 DEFINE_FIELD_U(_stackTrace,        ExceptionObject,    _stackTrace)
349 DEFINE_FIELD_U(_watsonBuckets,     ExceptionObject,    _watsonBuckets)
350 DEFINE_FIELD_U(_stackTraceString,  ExceptionObject,    _stackTraceString)
351 DEFINE_FIELD_U(_remoteStackTraceString, ExceptionObject, _remoteStackTraceString)
352 DEFINE_FIELD_U(_dynamicMethods,    ExceptionObject,    _dynamicMethods)
353 DEFINE_FIELD_U(_xptrs,             ExceptionObject,    _xptrs)
354 DEFINE_FIELD_U(_HResult,           ExceptionObject,    _HResult)
355 DEFINE_FIELD_U(_xcode,             ExceptionObject,    _xcode)
356 DEFINE_FIELD_U(_ipForWatsonBuckets,ExceptionObject,    _ipForWatsonBuckets)
357 DEFINE_CLASS(EXCEPTION,             System,                 Exception)
358 DEFINE_METHOD(EXCEPTION,            GET_CLASS_NAME,         GetClassName,               IM_RetStr)
359 DEFINE_PROPERTY(EXCEPTION,          MESSAGE,                Message,                    Str)
360 DEFINE_PROPERTY(EXCEPTION,          SOURCE,                 Source,                     Str)
361 DEFINE_PROPERTY(EXCEPTION,          HELP_LINK,              HelpLink,                   Str)
362 DEFINE_METHOD(EXCEPTION,            INTERNAL_PRESERVE_STACK_TRACE, InternalPreserveStackTrace, IM_RetVoid)
363 #ifdef FEATURE_COMINTEROP
364 DEFINE_METHOD(EXCEPTION,            ADD_EXCEPTION_DATA_FOR_RESTRICTED_ERROR_INFO, AddExceptionDataForRestrictedErrorInfo, IM_Str_Str_Str_Obj_Bool_RetVoid)
365 DEFINE_METHOD(EXCEPTION,            TRY_GET_RESTRICTED_LANGUAGE_ERROR_OBJECT,     TryGetRestrictedLanguageErrorObject, IM_RefObject_RetBool)
366 #endif // FEATURE_COMINTEROP
367
368
369 DEFINE_CLASS(SYSTEM_EXCEPTION,      System,                 SystemException)
370 DEFINE_METHOD(SYSTEM_EXCEPTION,     STR_EX_CTOR,            .ctor,                      IM_Str_Exception_RetVoid)
371
372
373 DEFINE_CLASS(TYPE_INIT_EXCEPTION,   System,                 TypeInitializationException)
374 DEFINE_METHOD(TYPE_INIT_EXCEPTION,  STR_EX_CTOR,            .ctor,                      IM_Str_Exception_RetVoid)
375
376 DEFINE_CLASS(THREAD_START_EXCEPTION,Threading,              ThreadStartException)
377 DEFINE_METHOD(THREAD_START_EXCEPTION,EX_CTOR,               .ctor,                      IM_Exception_RetVoid)
378
379 DEFINE_CLASS(TYPE_HANDLE,           System,                 RuntimeTypeHandle)
380 DEFINE_CLASS(RT_TYPE_HANDLE,        System,                 RuntimeTypeHandle)
381 DEFINE_METHOD(RT_TYPE_HANDLE,       GET_TYPE_HELPER,        GetTypeHelper,              SM_Type_ArrType_IntPtr_int_RetType)
382 DEFINE_METHOD(RT_TYPE_HANDLE,       PVOID_CTOR,             .ctor,                      IM_RuntimeType_RetVoid)
383 DEFINE_METHOD(RT_TYPE_HANDLE,       GETVALUEINTERNAL,       GetValueInternal,           SM_RuntimeTypeHandle_RetIntPtr)
384 DEFINE_FIELD(RT_TYPE_HANDLE,        M_TYPE,                 m_type)
385
386 DEFINE_CLASS_U(Reflection,             RtFieldInfo,         NoClass)
387 DEFINE_FIELD_U(m_fieldHandle,              ReflectFieldObject, m_pFD)
388 DEFINE_CLASS(RT_FIELD_INFO,         Reflection,             RtFieldInfo)
389 DEFINE_FIELD(RT_FIELD_INFO,         HANDLE,                 m_fieldHandle)
390
391 DEFINE_CLASS_U(System,                 RuntimeFieldInfoStub,       ReflectFieldObject)
392 DEFINE_FIELD_U(m_fieldHandle,              ReflectFieldObject, m_pFD)
393 DEFINE_CLASS(STUBFIELDINFO,         System,                 RuntimeFieldInfoStub)
394
395 DEFINE_CLASS(FIELD,                 Reflection,             RuntimeFieldInfo)
396 DEFINE_METHOD(FIELD,                SET_VALUE,              SetValue,                   IM_Obj_Obj_BindingFlags_Binder_CultureInfo_RetVoid)
397 DEFINE_METHOD(FIELD,                GET_VALUE,              GetValue,                   IM_Obj_RetObj)
398
399 DEFINE_CLASS(FIELD_HANDLE,          System,                 RuntimeFieldHandle)
400 DEFINE_FIELD(FIELD_HANDLE,          M_FIELD,                m_ptr)
401
402 DEFINE_CLASS(I_RT_FIELD_INFO,       System,                 IRuntimeFieldInfo)
403
404 DEFINE_CLASS(FIELD_INFO,            Reflection,             FieldInfo)
405
406
407 DEFINE_CLASS(GUID,                  System,                 Guid)
408
409 #ifdef FEATURE_COMINTEROP
410 DEFINE_CLASS(HSTRING_HEADER_MANAGED, WinRT,                 HSTRING_HEADER)
411
412 DEFINE_CLASS(ICUSTOMPROPERTY,                 WinRT,                    ICustomProperty)
413 DEFINE_CLASS(ICUSTOMPROPERTYPROVIDERIMPL,     WinRT,                    ICustomPropertyProviderImpl)
414 DEFINE_METHOD(ICUSTOMPROPERTYPROVIDERIMPL,    CREATE_PROPERTY,          CreateProperty,           SM_Obj_Str_RetICustomProperty)
415 DEFINE_METHOD(ICUSTOMPROPERTYPROVIDERIMPL,    CREATE_INDEXED_PROPERTY,  CreateIndexedProperty,    SM_Obj_Str_PtrTypeName_RetICustomProperty)
416 DEFINE_METHOD(ICUSTOMPROPERTYPROVIDERIMPL,    GET_TYPE,                 GetType,                  SM_Obj_PtrTypeName_RetVoid)
417 DEFINE_CLASS(ICUSTOMPROPERTYPROVIDERPROXY,    WinRT,                    ICustomPropertyProviderProxy`2)
418 DEFINE_METHOD(ICUSTOMPROPERTYPROVIDERPROXY,   CREATE_INSTANCE,          CreateInstance,           SM_Obj_RetObj)
419
420 DEFINE_CLASS(FACTORYFORIREFERENCE,   WinRT,                 IReferenceFactory)
421 DEFINE_METHOD(FACTORYFORIREFERENCE,  CREATE_IREFERENCE,     CreateIReference,           SM_Obj_RetObj)
422 DEFINE_CLASS(CLRIREFERENCEIMPL,      WinRT,                 CLRIReferenceImpl`1)
423 DEFINE_METHOD(CLRIREFERENCEIMPL,     UNBOXHELPER,           UnboxHelper,                SM_Obj_RetObj)
424 DEFINE_CLASS(CLRIREFERENCEARRAYIMPL, WinRT,                 CLRIReferenceArrayImpl`1)
425 DEFINE_METHOD(CLRIREFERENCEARRAYIMPL,UNBOXHELPER,           UnboxHelper,                SM_Obj_RetObj)
426 DEFINE_CLASS(IREFERENCE,             WinRT,                 IReference`1)
427 DEFINE_CLASS(CLRIKEYVALUEPAIRIMPL,   WinRT,                 CLRIKeyValuePairImpl`2)
428 DEFINE_METHOD(CLRIKEYVALUEPAIRIMPL,  BOXHELPER,             BoxHelper,                  SM_Obj_RetObj)
429 DEFINE_METHOD(CLRIKEYVALUEPAIRIMPL,  UNBOXHELPER,           UnboxHelper,                SM_Obj_RetObj)
430
431 DEFINE_CLASS(WINDOWS_FOUNDATION_EVENTHANDLER,   WinRT,                 WindowsFoundationEventHandler`1)
432
433 DEFINE_CLASS(VARIANT,               System,                 Variant)
434 DEFINE_METHOD(VARIANT,              CONVERT_OBJECT_TO_VARIANT,MarshalHelperConvertObjectToVariant,SM_Obj_RefVariant_RetVoid)
435 DEFINE_METHOD(VARIANT,              CAST_VARIANT,           MarshalHelperCastVariant,   SM_Obj_Int_RefVariant_RetVoid)
436 DEFINE_METHOD(VARIANT,              CONVERT_VARIANT_TO_OBJECT,MarshalHelperConvertVariantToObject,SM_RefVariant_RetObject)
437
438 DEFINE_CLASS_U(System,              Variant,                VariantData)
439 DEFINE_FIELD_U(_objref,             VariantData,            m_objref)
440 DEFINE_FIELD_U(_data,               VariantData,            m_data)
441 DEFINE_FIELD_U(_flags,              VariantData,            m_flags)
442 #endif // FEATURE_COMINTEROP
443
444 DEFINE_CLASS(IASYNCRESULT,          System,                 IAsyncResult)
445
446 DEFINE_CLASS(ICUSTOM_ATTR_PROVIDER, Reflection,             ICustomAttributeProvider)
447 DEFINE_METHOD(ICUSTOM_ATTR_PROVIDER,GET_CUSTOM_ATTRIBUTES,  GetCustomAttributes,        IM_Type_RetArrObj)
448
449 DEFINE_CLASS(ICUSTOM_MARSHALER,     Interop,                ICustomMarshaler)
450 DEFINE_METHOD(ICUSTOM_MARSHALER,    MARSHAL_NATIVE_TO_MANAGED,MarshalNativeToManaged,   IM_IntPtr_RetObj)
451 DEFINE_METHOD(ICUSTOM_MARSHALER,    MARSHAL_MANAGED_TO_NATIVE,MarshalManagedToNative,   IM_Obj_RetIntPtr)
452 DEFINE_METHOD(ICUSTOM_MARSHALER,    CLEANUP_NATIVE_DATA,    CleanUpNativeData,          IM_IntPtr_RetVoid)
453 DEFINE_METHOD(ICUSTOM_MARSHALER,    CLEANUP_MANAGED_DATA,   CleanUpManagedData,         IM_Obj_RetVoid)
454 DEFINE_METHOD(ICUSTOM_MARSHALER,    GET_NATIVE_DATA_SIZE,   GetNativeDataSize,         IM_RetInt)
455
456 #ifdef FEATURE_COMINTEROP
457 DEFINE_CLASS(ICUSTOM_QUERYINTERFACE,      Interop,          ICustomQueryInterface)
458 DEFINE_METHOD(ICUSTOM_QUERYINTERFACE,     GET_INTERFACE,    GetInterface,                IM_RefGuid_OutIntPtr_RetCustomQueryInterfaceResult)
459 DEFINE_CLASS(CUSTOMQUERYINTERFACERESULT,  Interop,          CustomQueryInterfaceResult)
460 #endif //FEATURE_COMINTEROP
461
462 DEFINE_CLASS(SERIALIZATION_INFO,        Serialization,      SerializationInfo)
463 DEFINE_CLASS(DESERIALIZATION_TRACKER,   Serialization,      DeserializationTracker)
464
465 DEFINE_CLASS(IENUMERATOR,           Collections,            IEnumerator)
466
467 DEFINE_CLASS(IENUMERABLE,           Collections,            IEnumerable)
468 DEFINE_CLASS(ICOLLECTION,           Collections,            ICollection)
469 DEFINE_CLASS(ILIST,                 Collections,            IList)
470 DEFINE_CLASS(IDISPOSABLE,           System,                 IDisposable)
471
472 DEFINE_CLASS(IEXPANDO,              Expando,                IExpando)
473 DEFINE_METHOD(IEXPANDO,             ADD_FIELD,              AddField,                   IM_Str_RetFieldInfo)
474 DEFINE_METHOD(IEXPANDO,             REMOVE_MEMBER,          RemoveMember,               IM_MemberInfo_RetVoid)
475
476 DEFINE_CLASS(IREFLECT,              Reflection,             IReflect)
477 DEFINE_METHOD(IREFLECT,             GET_PROPERTIES,         GetProperties,              IM_BindingFlags_RetArrPropertyInfo)
478 DEFINE_METHOD(IREFLECT,             GET_FIELDS,             GetFields,                  IM_BindingFlags_RetArrFieldInfo)
479 DEFINE_METHOD(IREFLECT,             GET_METHODS,            GetMethods,                 IM_BindingFlags_RetArrMethodInfo)
480 DEFINE_METHOD(IREFLECT,             INVOKE_MEMBER,          InvokeMember,               IM_Str_BindingFlags_Binder_Obj_ArrObj_ArrParameterModifier_CultureInfo_ArrStr_RetObj)
481
482
483 #ifdef FEATURE_COMINTEROP
484 DEFINE_CLASS(LCID_CONVERSION_TYPE,  Interop,                LCIDConversionAttribute)
485 #endif // FEATURE_COMINTEROP
486
487
488 DEFINE_CLASS(MARSHAL,               Interop,                Marshal)
489 #ifdef FEATURE_COMINTEROP
490 DEFINE_METHOD(MARSHAL,              GET_HR_FOR_EXCEPTION,              GetHRForException,             SM_Exception_RetInt)
491 #endif // FEATURE_COMINTEROP
492 DEFINE_METHOD(MARSHAL,              GET_FUNCTION_POINTER_FOR_DELEGATE, GetFunctionPointerForDelegate, SM_Delegate_RetIntPtr)
493 DEFINE_METHOD(MARSHAL,              GET_DELEGATE_FOR_FUNCTION_POINTER, GetDelegateForFunctionPointer, SM_IntPtr_Type_RetDelegate)
494 DEFINE_METHOD(MARSHAL,              ALLOC_CO_TASK_MEM,                 AllocCoTaskMem,                SM_Int_RetIntPtr)
495 DEFINE_METHOD(MARSHAL,              FREE_CO_TASK_MEM,                  FreeCoTaskMem,                 SM_IntPtr_RetVoid)
496 DEFINE_FIELD(MARSHAL,               SYSTEM_MAX_DBCS_CHAR_SIZE,         SystemMaxDBCSCharSize)
497
498 DEFINE_CLASS(NATIVELIBRARY, Interop, NativeLibrary)
499 DEFINE_METHOD(NATIVELIBRARY,        LOADLIBRARYCALLBACKSTUB, LoadLibraryCallbackStub, SM_Str_AssemblyBase_Bool_UInt_RetIntPtr)
500
501 DEFINE_CLASS(MEMBER,                Reflection,             MemberInfo)
502
503
504 DEFINE_CLASS_U(Reflection,             RuntimeMethodInfo,  NoClass)
505 DEFINE_FIELD_U(m_handle,                   ReflectMethodObject, m_pMD)
506 DEFINE_CLASS(METHOD,                Reflection,             RuntimeMethodInfo)
507 DEFINE_METHOD(METHOD,               INVOKE,                 Invoke,                     IM_Obj_BindingFlags_Binder_ArrObj_CultureInfo_RetObj)
508 DEFINE_METHOD(METHOD,               GET_PARAMETERS,         GetParameters,              IM_RetArrParameterInfo)
509
510 DEFINE_CLASS(METHOD_BASE,           Reflection,             MethodBase)
511 DEFINE_METHOD(METHOD_BASE,          GET_METHODDESC,         GetMethodDesc,              IM_RetIntPtr)
512
513 DEFINE_CLASS_U(Reflection,             RuntimeExceptionHandlingClause,    RuntimeExceptionHandlingClause)
514 DEFINE_FIELD_U(_methodBody,            RuntimeExceptionHandlingClause,        _methodBody)
515 DEFINE_FIELD_U(_flags,                 RuntimeExceptionHandlingClause,        _flags)
516 DEFINE_FIELD_U(_tryOffset,             RuntimeExceptionHandlingClause,        _tryOffset)
517 DEFINE_FIELD_U(_tryLength,             RuntimeExceptionHandlingClause,        _tryLength)
518 DEFINE_FIELD_U(_handlerOffset,         RuntimeExceptionHandlingClause,        _handlerOffset)
519 DEFINE_FIELD_U(_handlerLength,         RuntimeExceptionHandlingClause,        _handlerLength)
520 DEFINE_FIELD_U(_catchMetadataToken,    RuntimeExceptionHandlingClause,        _catchToken)
521 DEFINE_FIELD_U(_filterOffset,          RuntimeExceptionHandlingClause,        _filterOffset)
522 DEFINE_CLASS(RUNTIME_EH_CLAUSE,             Reflection,             RuntimeExceptionHandlingClause)
523
524 DEFINE_CLASS_U(Reflection,             RuntimeLocalVariableInfo,        RuntimeLocalVariableInfo)
525 DEFINE_FIELD_U(_type,                  RuntimeLocalVariableInfo,        _type)
526 DEFINE_FIELD_U(_localIndex,            RuntimeLocalVariableInfo,        _localIndex)
527 DEFINE_FIELD_U(_isPinned,              RuntimeLocalVariableInfo,        _isPinned)
528 DEFINE_CLASS(RUNTIME_LOCAL_VARIABLE_INFO,   Reflection,             RuntimeLocalVariableInfo)
529
530 DEFINE_CLASS_U(Reflection,             RuntimeMethodBody,           RuntimeMethodBody)
531 DEFINE_FIELD_U(_IL,                    RuntimeMethodBody,         _IL)
532 DEFINE_FIELD_U(_exceptionHandlingClauses, RuntimeMethodBody,         _exceptionClauses)
533 DEFINE_FIELD_U(_localVariables,           RuntimeMethodBody,         _localVariables)
534 DEFINE_FIELD_U(_methodBase,               RuntimeMethodBody,         _methodBase)
535 DEFINE_FIELD_U(_localSignatureMetadataToken, RuntimeMethodBody,      _localVarSigToken)
536 DEFINE_FIELD_U(_maxStackSize,             RuntimeMethodBody,         _maxStackSize)
537 DEFINE_FIELD_U(_initLocals,               RuntimeMethodBody,         _initLocals)
538 DEFINE_CLASS(RUNTIME_METHOD_BODY,           Reflection,             RuntimeMethodBody)
539
540 DEFINE_CLASS(METHOD_INFO,           Reflection,             MethodInfo)
541
542 DEFINE_CLASS(METHOD_HANDLE_INTERNAL,System,                 RuntimeMethodHandleInternal)
543
544 DEFINE_CLASS(METHOD_HANDLE,         System,                 RuntimeMethodHandle)
545 DEFINE_FIELD(METHOD_HANDLE,         METHOD,                 m_value)
546 DEFINE_METHOD(METHOD_HANDLE,        GETVALUEINTERNAL,       GetValueInternal,           SM_RuntimeMethodHandle_RetIntPtr)
547
548 DEFINE_CLASS(MISSING,               Reflection,             Missing)
549 DEFINE_FIELD(MISSING,               VALUE,                  Value)
550
551 DEFINE_CLASS_U(Reflection,             RuntimeModule,               ReflectModuleBaseObject)
552 DEFINE_FIELD_U(m_runtimeType,               ReflectModuleBaseObject,    m_runtimeType)
553 DEFINE_FIELD_U(m_pRefClass,                 ReflectModuleBaseObject,    m_ReflectClass)
554 DEFINE_FIELD_U(m_pData,                     ReflectModuleBaseObject,    m_pData)
555 DEFINE_FIELD_U(m_pGlobals,                  ReflectModuleBaseObject,    m_pGlobals)
556 DEFINE_FIELD_U(m_pFields,                   ReflectModuleBaseObject,    m_pGlobalsFlds)
557 DEFINE_CLASS(MODULE,                Reflection,             RuntimeModule)
558 DEFINE_FIELD(MODULE,                DATA,                   m_pData)
559
560 DEFINE_CLASS(MODULE_BUILDER,        ReflectionEmit,         InternalModuleBuilder)
561 DEFINE_CLASS(TYPE_BUILDER,          ReflectionEmit,         TypeBuilder)
562 DEFINE_CLASS(ENUM_BUILDER,          ReflectionEmit,         EnumBuilder)
563
564 DEFINE_CLASS_U(System,                 MulticastDelegate,          DelegateObject)
565 DEFINE_FIELD_U(_invocationList,            DelegateObject,   _invocationList)
566 DEFINE_FIELD_U(_invocationCount,           DelegateObject,   _invocationCount)
567 DEFINE_CLASS(MULTICAST_DELEGATE,    System,                 MulticastDelegate)
568 DEFINE_FIELD(MULTICAST_DELEGATE,    INVOCATION_LIST,        _invocationList)
569 DEFINE_FIELD(MULTICAST_DELEGATE,    INVOCATION_COUNT,       _invocationCount)
570 DEFINE_METHOD(MULTICAST_DELEGATE,   CTOR_CLOSED,            CtorClosed,                 IM_Obj_IntPtr_RetVoid)
571 DEFINE_METHOD(MULTICAST_DELEGATE,   CTOR_CLOSED_STATIC,     CtorClosedStatic,           IM_Obj_IntPtr_RetVoid)
572 DEFINE_METHOD(MULTICAST_DELEGATE,   CTOR_RT_CLOSED,         CtorRTClosed,               IM_Obj_IntPtr_RetVoid)
573 DEFINE_METHOD(MULTICAST_DELEGATE,   CTOR_OPENED,            CtorOpened,                 IM_Obj_IntPtr_IntPtr_RetVoid)
574 DEFINE_METHOD(MULTICAST_DELEGATE,   CTOR_VIRTUAL_DISPATCH,  CtorVirtualDispatch,        IM_Obj_IntPtr_IntPtr_RetVoid)
575 DEFINE_METHOD(MULTICAST_DELEGATE,   CTOR_COLLECTIBLE_CLOSED_STATIC,     CtorCollectibleClosedStatic,           IM_Obj_IntPtr_IntPtr_RetVoid)
576 DEFINE_METHOD(MULTICAST_DELEGATE,   CTOR_COLLECTIBLE_OPENED,            CtorCollectibleOpened,                 IM_Obj_IntPtr_IntPtr_IntPtr_RetVoid)
577 DEFINE_METHOD(MULTICAST_DELEGATE,   CTOR_COLLECTIBLE_VIRTUAL_DISPATCH,  CtorCollectibleVirtualDispatch,        IM_Obj_IntPtr_IntPtr_IntPtr_RetVoid)
578
579 DEFINE_CLASS(NULL,                  System,                 DBNull)
580 DEFINE_FIELD(NULL,                  VALUE,          Value)
581
582 DEFINE_CLASS(NULLABLE,              System,                 Nullable`1)
583
584 DEFINE_CLASS(BYREFERENCE,           System,                 ByReference`1)
585 DEFINE_CLASS(SPAN,                  System,                 Span`1)
586 DEFINE_METHOD(SPAN,                 GET_ITEM,               get_Item, IM_Int_RetRefT)
587 DEFINE_CLASS(READONLY_SPAN,         System,                 ReadOnlySpan`1)
588 DEFINE_METHOD(READONLY_SPAN,        GET_ITEM,               get_Item, IM_Int_RetReadOnlyRefT)
589
590 // Defined as element type alias
591 // DEFINE_CLASS(OBJECT,                System,                 Object)
592 DEFINE_METHOD(OBJECT,               CTOR,                   .ctor,                      IM_RetVoid)
593 DEFINE_METHOD(OBJECT,               FINALIZE,               Finalize,                   IM_RetVoid)
594 DEFINE_METHOD(OBJECT,               TO_STRING,              ToString,                   IM_RetStr)
595 DEFINE_METHOD(OBJECT,               GET_TYPE,               GetType,                    IM_RetType)
596 DEFINE_METHOD(OBJECT,               GET_HASH_CODE,          GetHashCode,                IM_RetInt)
597 DEFINE_METHOD(OBJECT,               EQUALS,                 Equals,                     IM_Obj_RetBool)
598
599 // DEFINE_CLASS(DOUBLE,                System,                 Double)
600 DEFINE_METHOD(DOUBLE,               GET_HASH_CODE,          GetHashCode, IM_RetInt)
601
602 // DEFINE_CLASS(SINGLE,                System,                 Single)
603 DEFINE_METHOD(SINGLE,               GET_HASH_CODE,          GetHashCode, IM_RetInt)
604
605 DEFINE_CLASS(__CANON,              System,                 __Canon)
606
607
608 #ifdef FEATURE_COMINTEROP
609 DEFINE_CLASS(OLE_AUT_BINDER,        System,                 OleAutBinder)    
610 #endif // FEATURE_COMINTEROP
611
612 DEFINE_CLASS(MONITOR,               Threading,              Monitor)
613 DEFINE_METHOD(MONITOR,              ENTER,                  Enter,                      SM_Obj_RetVoid)
614
615 DEFINE_CLASS_U(Threading,              OverlappedData, OverlappedDataObject)
616 DEFINE_FIELD_U(_asyncResult,            OverlappedDataObject,       m_asyncResult)
617 DEFINE_FIELD_U(_callback,               OverlappedDataObject,       m_callback)
618 DEFINE_FIELD_U(_overlapped,             OverlappedDataObject,       m_overlapped)
619 DEFINE_FIELD_U(_userObject,             OverlappedDataObject,       m_userObject)
620 DEFINE_FIELD_U(_pNativeOverlapped,      OverlappedDataObject,       m_pNativeOverlapped)
621 DEFINE_FIELD_U(_offsetLow,              OverlappedDataObject,       m_offsetLow)
622 DEFINE_FIELD_U(_offsetHigh,             OverlappedDataObject,       m_offsetHigh)
623 DEFINE_FIELD_U(_eventHandle,            OverlappedDataObject,       m_eventHandle)
624 DEFINE_CLASS(OVERLAPPEDDATA,            Threading,              OverlappedData)
625
626 DEFINE_CLASS(NATIVEOVERLAPPED,            Threading,              NativeOverlapped)
627
628
629 DEFINE_CLASS(VOLATILE, Threading, Volatile)
630
631 #define DEFINE_VOLATILE_METHODS(methodType, paramType) \
632     DEFINE_METHOD(VOLATILE, READ_##paramType, Read, methodType##_Ref##paramType##_Ret##paramType) \
633     DEFINE_METHOD(VOLATILE, WRITE_##paramType, Write, methodType##_Ref##paramType##_##paramType)
634
635 DEFINE_VOLATILE_METHODS(SM,Bool)
636 DEFINE_VOLATILE_METHODS(SM,SByt)
637 DEFINE_VOLATILE_METHODS(SM,Byte)
638 DEFINE_VOLATILE_METHODS(SM,Shrt)
639 DEFINE_VOLATILE_METHODS(SM,UShrt)
640 DEFINE_VOLATILE_METHODS(SM,Int)
641 DEFINE_VOLATILE_METHODS(SM,UInt)
642 DEFINE_VOLATILE_METHODS(SM,Long)
643 DEFINE_VOLATILE_METHODS(SM,ULong)
644 DEFINE_VOLATILE_METHODS(SM,IntPtr)
645 DEFINE_VOLATILE_METHODS(SM,UIntPtr)
646 DEFINE_VOLATILE_METHODS(SM,Flt)
647 DEFINE_VOLATILE_METHODS(SM,Dbl)
648 DEFINE_VOLATILE_METHODS(GM,T)
649
650 #undef DEFINE_VOLATILE_METHODS
651
652 DEFINE_CLASS(PARAMETER,             Reflection,             ParameterInfo)
653
654 DEFINE_CLASS(PARAMETER_MODIFIER,    Reflection,             ParameterModifier)
655
656 DEFINE_CLASS(POINTER,               Reflection,             Pointer)
657
658 DEFINE_CLASS_U(Reflection, Pointer, ReflectionPointer)
659 DEFINE_FIELD_U(_ptr,                ReflectionPointer, _ptr)
660 DEFINE_FIELD_U(_ptrType,            ReflectionPointer, _ptrType)
661
662 DEFINE_CLASS(PROPERTY,              Reflection,             RuntimePropertyInfo)
663 DEFINE_METHOD(PROPERTY,             SET_VALUE,              SetValue,                   IM_Obj_Obj_BindingFlags_Binder_ArrObj_CultureInfo_RetVoid)
664 DEFINE_METHOD(PROPERTY,             GET_VALUE,              GetValue,                   IM_Obj_BindingFlags_Binder_ArrObj_CultureInfo_RetObj)
665 DEFINE_METHOD(PROPERTY,             GET_INDEX_PARAMETERS,   GetIndexParameters,         IM_RetArrParameterInfo)
666 DEFINE_METHOD(PROPERTY,             GET_TOKEN,              get_MetadataToken,          IM_RetInt)
667 DEFINE_METHOD(PROPERTY,             GET_MODULE,             GetRuntimeModule,           IM_RetModule)
668 DEFINE_METHOD(PROPERTY,             GET_SETTER,             GetSetMethod,               IM_Bool_RetMethodInfo)
669 DEFINE_METHOD(PROPERTY,             GET_GETTER,             GetGetMethod,               IM_Bool_RetMethodInfo)
670
671 DEFINE_CLASS(PROPERTY_INFO,         Reflection,             PropertyInfo)
672
673
674
675 DEFINE_CLASS(METADATA_IMPORT,       Reflection,             MetadataImport)
676 DEFINE_METHOD(METADATA_IMPORT,      THROW_ERROR,            ThrowError,                 SM_Int_RetVoid)
677
678 DEFINE_CLASS(RESOLVER,              System,                 Resolver)
679 DEFINE_METHOD(RESOLVER,             GET_JIT_CONTEXT,        GetJitContext,              IM_RefInt_RetRuntimeType)
680 DEFINE_METHOD(RESOLVER,             GET_CODE_INFO,          GetCodeInfo,                IM_RefInt_RefInt_RefInt_RetArrByte)
681 DEFINE_METHOD(RESOLVER,             GET_LOCALS_SIGNATURE,   GetLocalsSignature,         IM_RetArrByte)
682 DEFINE_METHOD(RESOLVER,             GET_EH_INFO,            GetEHInfo,                  IM_Int_VoidPtr_RetVoid)
683 DEFINE_METHOD(RESOLVER,             GET_RAW_EH_INFO,        GetRawEHInfo,               IM_RetArrByte)
684 DEFINE_METHOD(RESOLVER,             GET_STRING_LITERAL,     GetStringLiteral,           IM_Int_RetStr)
685 DEFINE_METHOD(RESOLVER,             RESOLVE_TOKEN,          ResolveToken,               IM_Int_RefIntPtr_RefIntPtr_RefIntPtr_RetVoid)
686 DEFINE_METHOD(RESOLVER,             RESOLVE_SIGNATURE,      ResolveSignature,           IM_IntInt_RetArrByte)
687
688 DEFINE_CLASS(RESOURCE_MANAGER,      Resources,              ResourceManager)
689
690 DEFINE_CLASS(RTFIELD,               Reflection,             RtFieldInfo)
691 DEFINE_METHOD(RTFIELD,              GET_FIELDHANDLE,        GetFieldHandle,            IM_RetIntPtr)
692
693 DEFINE_CLASS(RUNTIME_HELPERS,       CompilerServices,       RuntimeHelpers)
694 DEFINE_METHOD(RUNTIME_HELPERS,      PREPARE_CONSTRAINED_REGIONS, PrepareConstrainedRegions, SM_RetVoid)
695 DEFINE_METHOD(RUNTIME_HELPERS,      PREPARE_CONSTRAINED_REGIONS_NOOP, PrepareConstrainedRegionsNoOP, SM_RetVoid)
696 DEFINE_METHOD(RUNTIME_HELPERS,      EXECUTE_BACKOUT_CODE_HELPER, ExecuteBackoutCodeHelper, SM_Obj_Obj_Bool_RetVoid)
697 DEFINE_METHOD(RUNTIME_HELPERS,      IS_REFERENCE_OR_CONTAINS_REFERENCES, IsReferenceOrContainsReferences, NoSig)
698 DEFINE_METHOD(RUNTIME_HELPERS,      IS_BITWISE_EQUATABLE,    IsBitwiseEquatable, NoSig)
699
700 DEFINE_CLASS(JIT_HELPERS,           CompilerServices,       JitHelpers)
701 DEFINE_METHOD(JIT_HELPERS,          ENUM_EQUALS,            EnumEquals, NoSig)
702 DEFINE_METHOD(JIT_HELPERS,          ENUM_COMPARE_TO,        EnumCompareTo, NoSig)
703 DEFINE_METHOD(JIT_HELPERS,          GET_RAW_SZ_ARRAY_DATA,  GetRawSzArrayData, NoSig)
704
705 DEFINE_CLASS(UNSAFE,                InternalCompilerServices,       Unsafe)
706 DEFINE_METHOD(UNSAFE,               AS_POINTER,             AsPointer, NoSig)
707 DEFINE_METHOD(UNSAFE,               AS_REF_IN,              AsRef, GM_RefT_RetRefT)
708 DEFINE_METHOD(UNSAFE,               AS_REF_POINTER,         AsRef, GM_VoidPtr_RetRefT)
709 DEFINE_METHOD(UNSAFE,               SIZEOF,                 SizeOf, NoSig)
710 DEFINE_METHOD(UNSAFE,               BYREF_AS,               As, GM_RefTFrom_RetRefTTo)
711 DEFINE_METHOD(UNSAFE,               OBJECT_AS,              As, GM_Obj_RetT)
712 DEFINE_METHOD(UNSAFE,               BYREF_ADD,              Add, GM_RefT_Int_RetRefT)
713 DEFINE_METHOD(UNSAFE,               BYREF_INTPTR_ADD,       Add, GM_RefT_IntPtr_RetRefT)
714 DEFINE_METHOD(UNSAFE,               PTR_ADD,                Add, GM_PtrVoid_Int_RetPtrVoid)
715 DEFINE_METHOD(UNSAFE,               BYREF_BYTE_OFFSET,      ByteOffset, NoSig)
716 DEFINE_METHOD(UNSAFE,               BYREF_ADD_BYTE_OFFSET,  AddByteOffset, NoSig)
717 DEFINE_METHOD(UNSAFE,               BYREF_ARE_SAME,         AreSame, NoSig)
718 DEFINE_METHOD(UNSAFE,               BYREF_IS_ADDRESS_GREATER_THAN, IsAddressGreaterThan, NoSig)
719 DEFINE_METHOD(UNSAFE,               BYREF_IS_ADDRESS_LESS_THAN, IsAddressLessThan, NoSig)
720 DEFINE_METHOD(UNSAFE,               BYREF_INIT_BLOCK_UNALIGNED, InitBlockUnaligned, NoSig)
721 DEFINE_METHOD(UNSAFE,               BYREF_READ_UNALIGNED,   ReadUnaligned, GM_RefByte_RetT)
722 DEFINE_METHOD(UNSAFE,               BYREF_WRITE_UNALIGNED,  WriteUnaligned, GM_RefByte_T_RetVoid)
723 DEFINE_METHOD(UNSAFE,               PTR_READ_UNALIGNED,     ReadUnaligned, GM_PtrVoid_RetT)
724 DEFINE_METHOD(UNSAFE,               PTR_WRITE_UNALIGNED,    WriteUnaligned, GM_PtrVoid_T_RetVoid)
725
726 DEFINE_CLASS(INTERLOCKED,           Threading,              Interlocked)
727 DEFINE_METHOD(INTERLOCKED,          COMPARE_EXCHANGE_T,     CompareExchange, GM_RefT_T_T_RetT)
728 DEFINE_METHOD(INTERLOCKED,          COMPARE_EXCHANGE_OBJECT,CompareExchange, SM_RefObject_Object_Object_RetObject)
729
730 DEFINE_CLASS(RAW_DATA,              CompilerServices,       RawData)
731 DEFINE_FIELD(RAW_DATA,              DATA,                   Data)
732
733 DEFINE_CLASS(RAW_SZARRAY_DATA,      CompilerServices,       RawSzArrayData)
734 DEFINE_FIELD(RAW_SZARRAY_DATA,      COUNT,                  Count)
735 DEFINE_FIELD(RAW_SZARRAY_DATA,      DATA,                   Data)
736
737 DEFINE_CLASS(RUNTIME_WRAPPED_EXCEPTION, CompilerServices,   RuntimeWrappedException)
738 DEFINE_METHOD(RUNTIME_WRAPPED_EXCEPTION, OBJ_CTOR,          .ctor,                      IM_Obj_RetVoid)
739 DEFINE_FIELD(RUNTIME_WRAPPED_EXCEPTION, WRAPPED_EXCEPTION,  _wrappedException)
740
741 DEFINE_CLASS_U(Interop,                SafeHandle,         SafeHandle)
742 DEFINE_FIELD_U(handle,                     SafeHandle,            m_handle)
743 DEFINE_FIELD_U(_state,                     SafeHandle,            m_state)
744 DEFINE_FIELD_U(_ownsHandle,                SafeHandle,            m_ownsHandle)
745 DEFINE_FIELD_U(_fullyInitialized,          SafeHandle,            m_fullyInitialized)
746 DEFINE_CLASS(SAFE_HANDLE,         Interop,                SafeHandle)
747 DEFINE_FIELD(SAFE_HANDLE,           HANDLE,                 handle)
748 DEFINE_METHOD(SAFE_HANDLE,          GET_IS_INVALID,         get_IsInvalid,              IM_RetBool)
749 DEFINE_METHOD(SAFE_HANDLE,          RELEASE_HANDLE,         ReleaseHandle,              IM_RetBool)
750 DEFINE_METHOD(SAFE_HANDLE,          DISPOSE,                Dispose,                    IM_RetVoid)
751 DEFINE_METHOD(SAFE_HANDLE,          DISPOSE_BOOL,           Dispose,                    IM_Bool_RetVoid)
752
753
754 DEFINE_CLASS(SAFE_TYPENAMEPARSER_HANDLE,    System,         SafeTypeNameParserHandle)
755 DEFINE_METHOD(SAFE_TYPENAMEPARSER_HANDLE,   CTOR,   .ctor,  IM_RetVoid)
756
757 DEFINE_CLASS(SECURITY_EXCEPTION,    Security,               SecurityException)
758
759 DEFINE_CLASS_U(Diagnostics,                StackFrameHelper,   StackFrameHelper)
760 DEFINE_FIELD_U(targetThread,               StackFrameHelper,   targetThread)
761 DEFINE_FIELD_U(rgiOffset,                  StackFrameHelper,   rgiOffset)
762 DEFINE_FIELD_U(rgiILOffset,                StackFrameHelper,   rgiILOffset)
763 DEFINE_FIELD_U(dynamicMethods,             StackFrameHelper,   dynamicMethods)
764 DEFINE_FIELD_U(rgMethodHandle,             StackFrameHelper,   rgMethodHandle)
765 DEFINE_FIELD_U(rgAssemblyPath,             StackFrameHelper,   rgAssemblyPath)
766 DEFINE_FIELD_U(rgAssembly,                 StackFrameHelper,   rgAssembly)
767 DEFINE_FIELD_U(rgLoadedPeAddress,          StackFrameHelper,   rgLoadedPeAddress)
768 DEFINE_FIELD_U(rgiLoadedPeSize,            StackFrameHelper,   rgiLoadedPeSize)
769 DEFINE_FIELD_U(rgInMemoryPdbAddress,       StackFrameHelper,   rgInMemoryPdbAddress)
770 DEFINE_FIELD_U(rgiInMemoryPdbSize,         StackFrameHelper,   rgiInMemoryPdbSize)
771 DEFINE_FIELD_U(rgiMethodToken,             StackFrameHelper,   rgiMethodToken)
772 DEFINE_FIELD_U(rgFilename,                 StackFrameHelper,   rgFilename)
773 DEFINE_FIELD_U(rgiLineNumber,              StackFrameHelper,   rgiLineNumber)
774 DEFINE_FIELD_U(rgiColumnNumber,            StackFrameHelper,   rgiColumnNumber)
775 DEFINE_FIELD_U(rgiLastFrameFromForeignExceptionStackTrace,            StackFrameHelper,   rgiLastFrameFromForeignExceptionStackTrace)
776 DEFINE_FIELD_U(iFrameCount,                StackFrameHelper,   iFrameCount)
777
778 DEFINE_CLASS(STARTUP_HOOK_PROVIDER,  System,                StartupHookProvider)
779 DEFINE_METHOD(STARTUP_HOOK_PROVIDER, PROCESS_STARTUP_HOOKS, ProcessStartupHooks, SM_RetVoid)
780
781 DEFINE_CLASS(STREAM,                IO,                     Stream)
782 DEFINE_METHOD(STREAM,               BEGIN_READ,             BeginRead,  IM_ArrByte_Int_Int_AsyncCallback_Object_RetIAsyncResult)
783 DEFINE_METHOD(STREAM,               END_READ,               EndRead,    IM_IAsyncResult_RetInt)
784 DEFINE_METHOD(STREAM,               BEGIN_WRITE,            BeginWrite, IM_ArrByte_Int_Int_AsyncCallback_Object_RetIAsyncResult)
785 DEFINE_METHOD(STREAM,               END_WRITE,              EndWrite,   IM_IAsyncResult_RetVoid)
786
787 // Defined as element type alias
788 // DEFINE_CLASS(INTPTR,                System,                 IntPtr)
789 DEFINE_FIELD(INTPTR,                ZERO,                   Zero)
790
791 // Defined as element type alias
792 // DEFINE_CLASS(UINTPTR,                System,                UIntPtr)
793 DEFINE_FIELD(UINTPTR,               ZERO,                   Zero)
794
795 DEFINE_CLASS(BITCONVERTER,          System,                 BitConverter)
796 DEFINE_FIELD(BITCONVERTER,          ISLITTLEENDIAN,         IsLittleEndian)
797
798 // Defined as element type alias
799 // DEFINE_CLASS(STRING,                System,                 String)
800 DEFINE_FIELD(STRING,                M_FIRST_CHAR,           _firstChar)
801 DEFINE_FIELD(STRING,                EMPTY,                  Empty)
802 DEFINE_METHOD(STRING,               CTOR_CHARPTR,           .ctor,                      IM_PtrChar_RetVoid)
803 DEFINE_METHOD(STRING,               CTORF_CHARARRAY,        Ctor,                       IM_ArrChar_RetStr)
804 DEFINE_METHOD(STRING,               CTORF_CHARARRAY_START_LEN,Ctor,                     IM_ArrChar_Int_Int_RetStr)
805 DEFINE_METHOD(STRING,               CTORF_CHAR_COUNT,       Ctor,                       IM_Char_Int_RetStr)
806 DEFINE_METHOD(STRING,               CTORF_CHARPTR,          Ctor,                       IM_PtrChar_RetStr)
807 DEFINE_METHOD(STRING,               CTORF_CHARPTR_START_LEN,Ctor,                       IM_PtrChar_Int_Int_RetStr)
808 DEFINE_METHOD(STRING,               CTORF_READONLYSPANOFCHAR,Ctor,                      IM_ReadOnlySpanOfChar_RetStr)
809 DEFINE_METHOD(STRING,               CTORF_SBYTEPTR,         Ctor,                       IM_PtrSByt_RetStr)
810 DEFINE_METHOD(STRING,               CTORF_SBYTEPTR_START_LEN, Ctor,                     IM_PtrSByt_Int_Int_RetStr)
811 DEFINE_METHOD(STRING,               CTORF_SBYTEPTR_START_LEN_ENCODING, Ctor,            IM_PtrSByt_Int_Int_Encoding_RetStr)
812 DEFINE_METHOD(STRING,               INTERNAL_COPY,          InternalCopy,               SM_Str_IntPtr_Int_RetVoid)
813 DEFINE_METHOD(STRING,               WCSLEN,                 wcslen,                     SM_PtrChar_RetInt)
814 DEFINE_METHOD(STRING,               STRLEN,                 strlen,                     SM_PtrByte_RetInt)
815 DEFINE_PROPERTY(STRING,             LENGTH,                 Length,                     Int)
816
817 #ifdef FEATURE_UTF8STRING
818 DEFINE_CLASS(UTF8_STRING,           System,                 Utf8String)
819 DEFINE_METHOD(UTF8_STRING,          CTORF_READONLYSPANOFBYTE,Ctor,                      IM_ReadOnlySpanOfByte_RetUtf8Str)
820 DEFINE_METHOD(UTF8_STRING,          CTORF_READONLYSPANOFCHAR,Ctor,                      IM_ReadOnlySpanOfChar_RetUtf8Str)
821 DEFINE_METHOD(UTF8_STRING,          CTORF_BYTEARRAY_START_LEN,Ctor,                     IM_ArrByte_Int_Int_RetUtf8Str)
822 DEFINE_METHOD(UTF8_STRING,          CTORF_BYTEPTR,           Ctor,                      IM_PtrByte_RetUtf8Str)
823 DEFINE_METHOD(UTF8_STRING,          CTORF_CHARARRAY_START_LEN,Ctor,                     IM_ArrChar_Int_Int_RetUtf8Str)
824 DEFINE_METHOD(UTF8_STRING,          CTORF_CHARPTR,           Ctor,                      IM_PtrChar_RetUtf8Str)
825 DEFINE_METHOD(UTF8_STRING,          CTORF_STRING,            Ctor,                      IM_String_RetUtf8Str)
826 #endif // FEATURE_UTF8STRING
827
828 DEFINE_CLASS(STRING_BUILDER,        Text,                   StringBuilder)
829 DEFINE_PROPERTY(STRING_BUILDER,     LENGTH,                 Length,                     Int)
830 DEFINE_PROPERTY(STRING_BUILDER,     CAPACITY,               Capacity,                   Int)
831 DEFINE_METHOD(STRING_BUILDER,       CTOR_INT,               .ctor,                      IM_Int_RetVoid)
832 DEFINE_METHOD(STRING_BUILDER,       TO_STRING,              ToString,                   IM_RetStr)
833 DEFINE_METHOD(STRING_BUILDER,       INTERNAL_COPY,          InternalCopy,               IM_IntPtr_Int_RetVoid)
834 DEFINE_METHOD(STRING_BUILDER,       REPLACE_BUFFER_INTERNAL,ReplaceBufferInternal,      IM_PtrChar_Int_RetVoid)
835 DEFINE_METHOD(STRING_BUILDER,       REPLACE_BUFFER_ANSI_INTERNAL,ReplaceBufferAnsiInternal, IM_PtrSByt_Int_RetVoid)
836
837 DEFINE_CLASS(STRONG_NAME_KEY_PAIR,  Reflection,             StrongNameKeyPair)
838
839 DEFINE_CLASS_U(Threading,              SynchronizationContext, SynchronizationContextObject)
840 DEFINE_FIELD_U(_requireWaitNotification, SynchronizationContextObject, _requireWaitNotification)
841 DEFINE_CLASS(SYNCHRONIZATION_CONTEXT,    Threading,              SynchronizationContext)
842 DEFINE_METHOD(SYNCHRONIZATION_CONTEXT,  INVOKE_WAIT_METHOD_HELPER, InvokeWaitMethodHelper, SM_SyncCtx_ArrIntPtr_Bool_Int_RetInt)
843
844 #ifdef _DEBUG
845 DEFINE_CLASS(STACKCRAWMARK,         Threading,       StackCrawlMark)
846 #endif
847
848 DEFINE_CLASS_U(Threading,              Thread,                     ThreadBaseObject)
849 DEFINE_FIELD_U(_name,                     ThreadBaseObject,   m_Name)
850 DEFINE_FIELD_U(_delegate,                 ThreadBaseObject,   m_Delegate)
851 DEFINE_FIELD_U(_threadStartArg,           ThreadBaseObject,   m_ThreadStartArg)
852 DEFINE_FIELD_U(_DONT_USE_InternalThread,  ThreadBaseObject,   m_InternalThread)
853 DEFINE_FIELD_U(_priority,                 ThreadBaseObject,   m_Priority)
854 DEFINE_CLASS(THREAD,                Threading,              Thread)
855 DEFINE_METHOD(THREAD,               INTERNAL_GET_CURRENT_THREAD,             InternalGetCurrentThread,                    SM_RetIntPtr)
856
857 DEFINE_CLASS(PARAMETERIZEDTHREADSTART,     Threading,                 ParameterizedThreadStart)
858
859 DEFINE_CLASS(IOCB_HELPER,              Threading,            _IOCompletionCallback)
860 DEFINE_METHOD(IOCB_HELPER,             PERFORM_IOCOMPLETION_CALLBACK,        PerformIOCompletionCallback,          SM_UInt_UInt_PtrNativeOverlapped_RetVoid)
861
862 DEFINE_CLASS(TPWAITORTIMER_HELPER,              Threading,            _ThreadPoolWaitOrTimerCallback)
863 DEFINE_METHOD(TPWAITORTIMER_HELPER,             PERFORM_WAITORTIMER_CALLBACK,        PerformWaitOrTimerCallback,          SM__ThreadPoolWaitOrTimerCallback_Bool_RetVoid)
864
865 DEFINE_CLASS(TP_WAIT_CALLBACK,         Threading,              _ThreadPoolWaitCallback)
866 DEFINE_METHOD(TP_WAIT_CALLBACK,        PERFORM_WAIT_CALLBACK,               PerformWaitCallback,                   SM_RetBool)
867
868 DEFINE_CLASS(TIMER_QUEUE,           Threading,                TimerQueue)
869 DEFINE_METHOD(TIMER_QUEUE,          APPDOMAIN_TIMER_CALLBACK, AppDomainTimerCallback,   SM_Int_RetVoid)
870
871 DEFINE_CLASS(TIMESPAN,              System,                 TimeSpan)
872
873
874 DEFINE_CLASS(TYPE,                  System,                 Type)
875 DEFINE_METHOD(TYPE,                 GET_TYPE_FROM_HANDLE,   GetTypeFromHandle,          SM_RuntimeTypeHandle_RetType)
876 DEFINE_PROPERTY(TYPE,               IS_IMPORT,              IsImport,                   Bool)
877
878 DEFINE_CLASS(TYPE_DELEGATOR,        Reflection,             TypeDelegator)
879
880 DEFINE_CLASS(UNHANDLED_EVENTARGS,   System,                 UnhandledExceptionEventArgs)
881 DEFINE_METHOD(UNHANDLED_EVENTARGS,  CTOR,                   .ctor,                      IM_Obj_Bool_RetVoid)
882
883 DEFINE_CLASS(FIRSTCHANCE_EVENTARGS,   ExceptionServices,      FirstChanceExceptionEventArgs)
884 DEFINE_METHOD(FIRSTCHANCE_EVENTARGS,  CTOR,                   .ctor,                      IM_Exception_RetVoid)
885
886 DEFINE_CLASS_U(Loader,             AssemblyLoadContext,           AssemblyLoadContextBaseObject)
887 DEFINE_FIELD_U(_unloadLock,                 AssemblyLoadContextBaseObject, _unloadLock)
888 DEFINE_FIELD_U(_resolvingUnmanagedDll,      AssemblyLoadContextBaseObject, _resovlingUnmanagedDll)
889 DEFINE_FIELD_U(_resolving,                  AssemblyLoadContextBaseObject, _resolving)
890 DEFINE_FIELD_U(_unloading,                  AssemblyLoadContextBaseObject, _unloading)
891 DEFINE_FIELD_U(_name,                       AssemblyLoadContextBaseObject, _name)
892 DEFINE_FIELD_U(_nativeAssemblyLoadContext,  AssemblyLoadContextBaseObject, _nativeAssemblyLoadContext)
893 DEFINE_FIELD_U(_id,                         AssemblyLoadContextBaseObject, _id)
894 DEFINE_FIELD_U(_state,                      AssemblyLoadContextBaseObject, _state)
895 DEFINE_FIELD_U(_isCollectible,              AssemblyLoadContextBaseObject, _isCollectible)
896 DEFINE_CLASS(ASSEMBLYLOADCONTEXT,  Loader,                AssemblyLoadContext)
897 DEFINE_METHOD(ASSEMBLYLOADCONTEXT,  RESOLVE,          Resolve,                      SM_IntPtr_AssemblyName_RetAssemblyBase)
898 DEFINE_METHOD(ASSEMBLYLOADCONTEXT,  RESOLVEUNMANAGEDDLL,           ResolveUnmanagedDll,           SM_Str_IntPtr_RetIntPtr)
899 DEFINE_METHOD(ASSEMBLYLOADCONTEXT,  RESOLVEUNMANAGEDDLLUSINGEVENT, ResolveUnmanagedDllUsingEvent, SM_Str_AssemblyBase_IntPtr_RetIntPtr)
900 DEFINE_METHOD(ASSEMBLYLOADCONTEXT,  RESOLVEUSINGEVENT,             ResolveUsingResolvingEvent,    SM_IntPtr_AssemblyName_RetAssemblyBase)
901 DEFINE_METHOD(ASSEMBLYLOADCONTEXT,  RESOLVESATELLITEASSEMBLY,      ResolveSatelliteAssembly,      SM_IntPtr_AssemblyName_RetAssemblyBase)
902 DEFINE_FIELD(ASSEMBLYLOADCONTEXT,   ASSEMBLY_LOAD,          AssemblyLoad)
903 DEFINE_METHOD(ASSEMBLYLOADCONTEXT,  ON_ASSEMBLY_LOAD,       OnAssemblyLoad, SM_Assembly_RetVoid)
904 DEFINE_METHOD(ASSEMBLYLOADCONTEXT,  ON_RESOURCE_RESOLVE,    OnResourceResolve, SM_Assembly_Str_RetAssembly)
905 DEFINE_METHOD(ASSEMBLYLOADCONTEXT,  ON_TYPE_RESOLVE,        OnTypeResolve, SM_Assembly_Str_RetAssembly)
906 DEFINE_METHOD(ASSEMBLYLOADCONTEXT,  ON_ASSEMBLY_RESOLVE,    OnAssemblyResolve, SM_Assembly_Str_RetAssembly)
907
908 #ifdef FEATURE_COMINTEROP
909 DEFINE_CLASS(WINDOWSRUNTIMEMETATADA, WinRT, WindowsRuntimeMetadata) 
910 DEFINE_METHOD(WINDOWSRUNTIMEMETATADA,  ON_DESIGNER_NAMESPACE_RESOLVE, OnDesignerNamespaceResolve, SM_Str_RetArrStr)
911 #endif //FEATURE_COMINTEROP
912
913 DEFINE_CLASS(LAZY,              System,     Lazy`1)
914
915 DEFINE_CLASS(LAZY_INITIALIZER,  Threading,  LazyInitializer)
916
917 DEFINE_CLASS(VALUE_TYPE,            System,                 ValueType)
918 DEFINE_METHOD(VALUE_TYPE,           GET_HASH_CODE,          GetHashCode,            IM_RetInt)
919 DEFINE_METHOD(VALUE_TYPE,           EQUALS,                 Equals,                 IM_Obj_RetBool)
920
921 DEFINE_CLASS(GC,                    System,                 GC)
922 DEFINE_METHOD(GC,                   KEEP_ALIVE,             KeepAlive,                  SM_Obj_RetVoid)
923 DEFINE_METHOD(GC,                   COLLECT,                Collect,                    SM_RetVoid)
924 DEFINE_METHOD(GC,                   WAIT_FOR_PENDING_FINALIZERS, WaitForPendingFinalizers, SM_RetVoid)
925
926 DEFINE_CLASS_U(System,                 WeakReference,          WeakReferenceObject)
927 DEFINE_FIELD_U(m_handle,               WeakReferenceObject,    m_Handle)
928 DEFINE_CLASS(WEAKREFERENCE,         System,                 WeakReference)
929
930 DEFINE_CLASS_U(Threading,              WaitHandle,             WaitHandleBase)
931 DEFINE_FIELD_U(_waitHandle,         WaitHandleBase,         m_safeHandle)
932
933 DEFINE_CLASS(DEBUGGER,              Diagnostics,            Debugger)
934 DEFINE_METHOD(DEBUGGER,             BREAK_CAN_THROW,        BreakCanThrow,          SM_RetVoid)
935
936 DEFINE_CLASS(BUFFER,                System,                 Buffer)
937 DEFINE_METHOD(BUFFER,               MEMCPY_PTRBYTE_ARRBYTE, Memcpy,                 SM_PtrByte_Int_ArrByte_Int_Int_RetVoid)
938 DEFINE_METHOD(BUFFER,               MEMCPY,                 Memcpy,                 SM_PtrByte_PtrByte_Int_RetVoid)
939
940 #ifdef FEATURE_COMINTEROP
941 DEFINE_CLASS(WINDOWSRUNTIMEMARSHAL, WinRT,  WindowsRuntimeMarshal)
942 DEFINE_METHOD(WINDOWSRUNTIMEMARSHAL, GET_HR_FOR_EXCEPTION, GetHRForException, SM_Exception_RetInt)
943 DEFINE_METHOD(WINDOWSRUNTIMEMARSHAL, INITIALIZE_WRAPPER, InitializeWrapper, SM_Obj_RefIntPtr_RetVoid)
944 #ifdef FEATURE_COMINTEROP_WINRT_MANAGED_ACTIVATION
945 DEFINE_METHOD(WINDOWSRUNTIMEMARSHAL, GET_ACTIVATION_FACTORY_FOR_TYPE, GetActivationFactoryForType, SM_Type_RetIntPtr)
946 #endif // FEATURE_COMINTEROP_WINRT_MANAGED_ACTIVATION
947
948 DEFINE_CLASS(IACTIVATIONFACTORY,    WinRT,  IActivationFactory)
949 DEFINE_METHOD(IACTIVATIONFACTORY,   ACTIVATE_INSTANCE, ActivateInstance, IM_RetObj)
950 DEFINE_CLASS(ISTRINGABLEHELPER,     WinRT,  IStringableHelper)
951 DEFINE_METHOD(ISTRINGABLEHELPER,    TO_STRING, ToString, SM_Obj_RetStr)
952 #endif // FEATURE_COMINTEROP
953
954 DEFINE_CLASS(STUBHELPERS,           StubHelpers,            StubHelpers)
955 DEFINE_METHOD(STUBHELPERS,          IS_QCALL,               IsQCall,                    SM_IntPtr_RetBool)
956 DEFINE_METHOD(STUBHELPERS,          INIT_DECLARING_TYPE,    InitDeclaringType,          SM_IntPtr_RetVoid)
957 DEFINE_METHOD(STUBHELPERS,          GET_NDIRECT_TARGET,     GetNDirectTarget,           SM_IntPtr_RetIntPtr)
958 DEFINE_METHOD(STUBHELPERS,          GET_DELEGATE_TARGET,    GetDelegateTarget,          SM_Delegate_RefIntPtr_RetIntPtr)
959 #ifdef FEATURE_COMINTEROP
960 DEFINE_METHOD(STUBHELPERS,          GET_COM_HR_EXCEPTION_OBJECT,              GetCOMHRExceptionObject,            SM_Int_IntPtr_Obj_RetException)
961 DEFINE_METHOD(STUBHELPERS,          GET_COM_HR_EXCEPTION_OBJECT_WINRT,        GetCOMHRExceptionObject_WinRT,      SM_Int_IntPtr_Obj_RetException)
962 DEFINE_METHOD(STUBHELPERS,          GET_COM_IP_FROM_RCW,                      GetCOMIPFromRCW,                    SM_Obj_IntPtr_RefIntPtr_RefBool_RetIntPtr)
963 DEFINE_METHOD(STUBHELPERS,          GET_COM_IP_FROM_RCW_WINRT,                GetCOMIPFromRCW_WinRT,              SM_Obj_IntPtr_RefIntPtr_RetIntPtr)
964 DEFINE_METHOD(STUBHELPERS,          GET_COM_IP_FROM_RCW_WINRT_SHARED_GENERIC, GetCOMIPFromRCW_WinRTSharedGeneric, SM_Obj_IntPtr_RefIntPtr_RetIntPtr)
965 DEFINE_METHOD(STUBHELPERS,          GET_COM_IP_FROM_RCW_WINRT_DELEGATE,       GetCOMIPFromRCW_WinRTDelegate,      SM_Obj_IntPtr_RefIntPtr_RetIntPtr)
966 DEFINE_METHOD(STUBHELPERS,          SHOULD_CALL_WINRT_INTERFACE,              ShouldCallWinRTInterface,           SM_Obj_IntPtr_RetBool)
967 DEFINE_METHOD(STUBHELPERS,          GET_WINRT_FACTORY_OBJECT,                 GetWinRTFactoryObject,              SM_IntPtr_RetObj)
968 DEFINE_METHOD(STUBHELPERS,          GET_DELEGATE_INVOKE_METHOD,               GetDelegateInvokeMethod,            SM_Delegate_RetIntPtr)
969 DEFINE_METHOD(STUBHELPERS,          GET_WINRT_FACTORY_RETURN_VALUE,           GetWinRTFactoryReturnValue,         SM_Obj_IntPtr_RetIntPtr)
970 DEFINE_METHOD(STUBHELPERS,          GET_OUTER_INSPECTABLE,                    GetOuterInspectable,                SM_Obj_IntPtr_RetIntPtr)
971 #endif // FEATURE_COMINTEROP
972 DEFINE_METHOD(STUBHELPERS,          SET_LAST_ERROR,         SetLastError,               SM_RetVoid)
973 DEFINE_METHOD(STUBHELPERS,          CLEAR_LAST_ERROR,       ClearLastError,             SM_RetVoid)
974
975 DEFINE_METHOD(STUBHELPERS,          THROW_INTEROP_PARAM_EXCEPTION, ThrowInteropParamException,   SM_Int_Int_RetVoid)
976 DEFINE_METHOD(STUBHELPERS,          ADD_TO_CLEANUP_LIST_SAFEHANDLE,    AddToCleanupList,           SM_RefCleanupWorkListElement_SafeHandle_RetIntPtr)
977 DEFINE_METHOD(STUBHELPERS,          ADD_TO_CLEANUP_LIST_DELEGATE,    AddToCleanupList,             SM_RefCleanupWorkListElement_Delegate_RetVoid)
978 DEFINE_METHOD(STUBHELPERS,          DESTROY_CLEANUP_LIST,   DestroyCleanupList,         SM_RefCleanupWorkListElement_RetVoid)
979 DEFINE_METHOD(STUBHELPERS,          GET_HR_EXCEPTION_OBJECT, GetHRExceptionObject,      SM_Int_RetException)
980 DEFINE_METHOD(STUBHELPERS,          CREATE_CUSTOM_MARSHALER_HELPER, CreateCustomMarshalerHelper, SM_IntPtr_Int_IntPtr_RetIntPtr)
981
982 DEFINE_METHOD(STUBHELPERS,          CHECK_STRING_LENGTH,    CheckStringLength,          SM_Int_RetVoid)
983
984 DEFINE_METHOD(STUBHELPERS,          FMT_CLASS_UPDATE_NATIVE_INTERNAL,   FmtClassUpdateNativeInternal,   SM_Obj_PtrByte_RefCleanupWorkListElement_RetVoid)
985 DEFINE_METHOD(STUBHELPERS,          FMT_CLASS_UPDATE_CLR_INTERNAL,      FmtClassUpdateCLRInternal,      SM_Obj_PtrByte_RetVoid)
986 DEFINE_METHOD(STUBHELPERS,          LAYOUT_DESTROY_NATIVE_INTERNAL,     LayoutDestroyNativeInternal,    SM_PtrByte_IntPtr_RetVoid)
987 DEFINE_METHOD(STUBHELPERS,          ALLOCATE_INTERNAL,                  AllocateInternal,               SM_IntPtr_RetObj)
988 DEFINE_METHOD(STUBHELPERS,          MARSHAL_TO_MANAGED_VA_LIST_INTERNAL,MarshalToManagedVaListInternal, SM_IntPtr_IntPtr_RetVoid)
989 DEFINE_METHOD(STUBHELPERS,          MARSHAL_TO_UNMANAGED_VA_LIST_INTERNAL,MarshalToUnmanagedVaListInternal,SM_IntPtr_UInt_IntPtr_RetVoid)
990 DEFINE_METHOD(STUBHELPERS,          CALC_VA_LIST_SIZE,                  CalcVaListSize,                 SM_IntPtr_RetUInt)
991 DEFINE_METHOD(STUBHELPERS,          VALIDATE_OBJECT,                    ValidateObject,                 SM_Obj_IntPtr_Obj_RetVoid)
992 DEFINE_METHOD(STUBHELPERS,          VALIDATE_BYREF,                     ValidateByref,                  SM_IntPtr_IntPtr_Obj_RetVoid)
993 DEFINE_METHOD(STUBHELPERS,          GET_STUB_CONTEXT,                   GetStubContext,                 SM_RetIntPtr)
994 DEFINE_METHOD(STUBHELPERS,          LOG_PINNED_ARGUMENT,                LogPinnedArgument,              SM_IntPtr_IntPtr_RetVoid)
995 #ifdef _TARGET_64BIT_
996 DEFINE_METHOD(STUBHELPERS,          GET_STUB_CONTEXT_ADDR,              GetStubContextAddr,             SM_RetIntPtr)
997 #endif // _TARGET_64BIT_
998 DEFINE_METHOD(STUBHELPERS,          SAFE_HANDLE_ADD_REF,    SafeHandleAddRef,           SM_SafeHandle_RefBool_RetIntPtr)
999 DEFINE_METHOD(STUBHELPERS,          SAFE_HANDLE_RELEASE,    SafeHandleRelease,          SM_SafeHandle_RetVoid)
1000
1001 #ifdef PROFILING_SUPPORTED
1002 DEFINE_METHOD(STUBHELPERS,          PROFILER_BEGIN_TRANSITION_CALLBACK, ProfilerBeginTransitionCallback, SM_IntPtr_IntPtr_Obj_RetIntPtr)
1003 DEFINE_METHOD(STUBHELPERS,          PROFILER_END_TRANSITION_CALLBACK,   ProfilerEndTransitionCallback,   SM_IntPtr_IntPtr_RetVoid)
1004 #endif
1005
1006 #ifdef FEATURE_ARRAYSTUB_AS_IL
1007 DEFINE_METHOD(STUBHELPERS,          ARRAY_TYPE_CHECK,    ArrayTypeCheck,          SM_Obj_ArrObject_RetVoid)
1008 #endif
1009
1010 #ifdef FEATURE_MULTICASTSTUB_AS_IL
1011 DEFINE_METHOD(STUBHELPERS,          MULTICAST_DEBUGGER_TRACE_HELPER,    MulticastDebuggerTraceHelper,    SM_Obj_Int_RetVoid)
1012 #endif
1013
1014 DEFINE_CLASS(CLEANUP_WORK_LIST_ELEMENT,     StubHelpers,            CleanupWorkListElement)
1015
1016 #ifdef FEATURE_COMINTEROP
1017 DEFINE_CLASS(DATETIMENATIVE,   StubHelpers,        DateTimeNative)
1018 DEFINE_CLASS(TYPENAMENATIVE,   StubHelpers,        TypeNameNative)
1019
1020 DEFINE_CLASS_U(StubHelpers,     TypeNameNative,             TypeNameNative)
1021 DEFINE_FIELD_U(typeName,        TypeNameNative,             typeName)
1022 DEFINE_FIELD_U(typeKind,        TypeNameNative,             typeKind)
1023 #endif
1024
1025 DEFINE_CLASS(ANSICHARMARSHALER,     StubHelpers,            AnsiCharMarshaler)
1026 DEFINE_METHOD(ANSICHARMARSHALER,    CONVERT_TO_NATIVE,      ConvertToNative,            SM_Char_Bool_Bool_RetByte)
1027 DEFINE_METHOD(ANSICHARMARSHALER,    CONVERT_TO_MANAGED,     ConvertToManaged,           SM_Byte_RetChar)
1028 DEFINE_METHOD(ANSICHARMARSHALER,    DO_ANSI_CONVERSION,     DoAnsiConversion,           SM_Str_Bool_Bool_RefInt_RetArrByte)
1029
1030 DEFINE_CLASS(CSTRMARSHALER,         StubHelpers,            CSTRMarshaler)
1031 DEFINE_METHOD(CSTRMARSHALER,        CONVERT_TO_NATIVE,      ConvertToNative,            SM_Int_Str_IntPtr_RetIntPtr)
1032 DEFINE_METHOD(CSTRMARSHALER,        CONVERT_TO_MANAGED,     ConvertToManaged,           SM_IntPtr_RetStr)
1033 DEFINE_METHOD(CSTRMARSHALER,        CLEAR_NATIVE,           ClearNative,                SM_IntPtr_RetVoid)
1034
1035 DEFINE_CLASS(WSTRBUFFERMARSHALER,   StubHelpers,            WSTRBufferMarshaler)
1036 DEFINE_METHOD(WSTRBUFFERMARSHALER,  CONVERT_TO_NATIVE,      ConvertToNative,            SM_Str_RetIntPtr)
1037 DEFINE_METHOD(WSTRBUFFERMARSHALER,  CONVERT_TO_MANAGED,     ConvertToManaged,           SM_IntPtr_RetStr)
1038 DEFINE_METHOD(WSTRBUFFERMARSHALER,  CLEAR_NATIVE,           ClearNative,                SM_IntPtr_RetVoid)
1039
1040 DEFINE_CLASS(BSTRMARSHALER,         StubHelpers,            BSTRMarshaler)
1041 DEFINE_METHOD(BSTRMARSHALER,        CONVERT_TO_NATIVE,      ConvertToNative,            SM_Str_IntPtr_RetIntPtr)
1042 DEFINE_METHOD(BSTRMARSHALER,        CONVERT_TO_MANAGED,     ConvertToManaged,           SM_IntPtr_RetStr)
1043 DEFINE_METHOD(BSTRMARSHALER,        CLEAR_NATIVE,           ClearNative,                SM_IntPtr_RetVoid)
1044
1045 DEFINE_CLASS(ANSIBSTRMARSHALER,     StubHelpers,            AnsiBSTRMarshaler)
1046 DEFINE_METHOD(ANSIBSTRMARSHALER,    CONVERT_TO_NATIVE,      ConvertToNative,            SM_Int_Str_RetIntPtr)
1047 DEFINE_METHOD(ANSIBSTRMARSHALER,    CONVERT_TO_MANAGED,     ConvertToManaged,           SM_IntPtr_RetStr)
1048 DEFINE_METHOD(ANSIBSTRMARSHALER,    CLEAR_NATIVE,           ClearNative,                SM_IntPtr_RetVoid)
1049
1050 #ifdef FEATURE_COMINTEROP
1051 DEFINE_CLASS(OBJECTMARSHALER,       StubHelpers,            ObjectMarshaler)
1052 DEFINE_METHOD(OBJECTMARSHALER,      CONVERT_TO_NATIVE,      ConvertToNative,            SM_ObjIntPtr_RetVoid)
1053 DEFINE_METHOD(OBJECTMARSHALER,      CONVERT_TO_MANAGED,     ConvertToManaged,           SM_IntPtr_RetObj)
1054 DEFINE_METHOD(OBJECTMARSHALER,      CLEAR_NATIVE,           ClearNative,                SM_IntPtr_RetVoid)
1055
1056 DEFINE_CLASS(HSTRINGMARSHALER,      StubHelpers,            HStringMarshaler)
1057 DEFINE_METHOD(HSTRINGMARSHALER,     CONVERT_TO_NATIVE_REFERENCE,    ConvertToNativeReference,   SM_Str_PtrHStringHeader_RetIntPtr)
1058 DEFINE_METHOD(HSTRINGMARSHALER,     CONVERT_TO_NATIVE,              ConvertToNative,            SM_Str_RetIntPtr)
1059 DEFINE_METHOD(HSTRINGMARSHALER,     CONVERT_TO_MANAGED,             ConvertToManaged,           SM_IntPtr_RetStr)
1060 DEFINE_METHOD(HSTRINGMARSHALER,     CLEAR_NATIVE,                   ClearNative,                SM_IntPtr_RetVoid)
1061
1062 DEFINE_CLASS(URIMARSHALER,          StubHelpers,                UriMarshaler)
1063 DEFINE_METHOD(URIMARSHALER,         GET_RAWURI_FROM_NATIVE,     GetRawUriFromNative,        SM_IntPtr_RetStr)
1064 DEFINE_METHOD(URIMARSHALER,         CREATE_NATIVE_URI_INSTANCE, CreateNativeUriInstance,    SM_Str_RetIntPtr)
1065
1066 DEFINE_CLASS(INTERFACEMARSHALER,    StubHelpers,            InterfaceMarshaler)
1067 DEFINE_METHOD(INTERFACEMARSHALER,   CONVERT_TO_NATIVE,      ConvertToNative,            SM_Obj_IntPtr_IntPtr_Int_RetIntPtr)
1068 DEFINE_METHOD(INTERFACEMARSHALER,   CONVERT_TO_MANAGED,     ConvertToManaged,           SM_IntPtr_IntPtr_IntPtr_Int_RetObj)
1069 DEFINE_METHOD(INTERFACEMARSHALER,   CLEAR_NATIVE,           ClearNative,                SM_IntPtr_RetVoid)
1070
1071
1072 DEFINE_CLASS(MNGD_SAFE_ARRAY_MARSHALER,  StubHelpers,                 MngdSafeArrayMarshaler)
1073 DEFINE_METHOD(MNGD_SAFE_ARRAY_MARSHALER, CREATE_MARSHALER,            CreateMarshaler,            SM_IntPtr_IntPtr_Int_Int_RetVoid)
1074 DEFINE_METHOD(MNGD_SAFE_ARRAY_MARSHALER, CONVERT_SPACE_TO_NATIVE,     ConvertSpaceToNative,       SM_IntPtr_RefObj_IntPtr_RetVoid)
1075 DEFINE_METHOD(MNGD_SAFE_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_NATIVE,  ConvertContentsToNative,    SM_IntPtr_RefObj_IntPtr_Obj_RetVoid)
1076 DEFINE_METHOD(MNGD_SAFE_ARRAY_MARSHALER, CONVERT_SPACE_TO_MANAGED,    ConvertSpaceToManaged,      SM_IntPtr_RefObj_IntPtr_RetVoid)
1077 DEFINE_METHOD(MNGD_SAFE_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_MANAGED, ConvertContentsToManaged,   SM_IntPtr_RefObj_IntPtr_RetVoid)
1078 DEFINE_METHOD(MNGD_SAFE_ARRAY_MARSHALER, CLEAR_NATIVE,                ClearNative,                SM_IntPtr_RefObj_IntPtr_RetVoid)
1079
1080 DEFINE_CLASS(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, StubHelpers,         MngdHiddenLengthArrayMarshaler)
1081 DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CREATE_MARSHALER,                 CreateMarshaler,            SM_IntPtr_IntPtr_IntPtr_UShrt_RetVoid)
1082 DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_SPACE_TO_MANAGED,         ConvertSpaceToManaged,      SM_IntPtr_RefObj_IntPtr_Int_RetVoid)
1083 DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_MANAGED,      ConvertContentsToManaged,   SM_IntPtr_RefObj_IntPtr_RetVoid)
1084 DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_SPACE_TO_NATIVE,          ConvertSpaceToNative,       SM_IntPtr_RefObj_IntPtr_RetVoid)
1085 DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_NATIVE,       ConvertContentsToNative,    SM_IntPtr_RefObj_IntPtr_RetVoid)
1086 DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CLEAR_NATIVE_CONTENTS,            ClearNativeContents,        SM_IntPtr_IntPtr_Int_RetVoid)
1087 DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CLEAR_NATIVE_CONTENTS_TYPE,       ClearNativeContents_Type,   NoSig)
1088
1089 DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_MANAGED_DATETIME,     ConvertContentsToManaged_DateTime,     NoSig)
1090 DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_MANAGED_TYPE,         ConvertContentsToManaged_Type,         NoSig)
1091 DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_MANAGED_EXCEPTION,    ConvertContentsToManaged_Exception,    NoSig)
1092 DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_MANAGED_NULLABLE,     ConvertContentsToManaged_Nullable,     NoSig)
1093 DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_MANAGED_KEYVALUEPAIR, ConvertContentsToManaged_KeyValuePair, NoSig)
1094
1095 DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_NATIVE_DATETIME,     ConvertContentsToNative_DateTime,     NoSig)
1096 DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_NATIVE_TYPE,         ConvertContentsToNative_Type,         NoSig)
1097 DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_NATIVE_EXCEPTION,    ConvertContentsToNative_Exception,    NoSig)
1098 DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_NATIVE_NULLABLE,     ConvertContentsToNative_Nullable,     NoSig)
1099 DEFINE_METHOD(MNGD_HIDDEN_LENGTH_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_NATIVE_KEYVALUEPAIR, ConvertContentsToNative_KeyValuePair, NoSig)
1100
1101 DEFINE_CLASS(DATETIMEOFFSETMARSHALER,     StubHelpers,           DateTimeOffsetMarshaler)
1102 DEFINE_METHOD(DATETIMEOFFSETMARSHALER,    CONVERT_TO_NATIVE,     ConvertToNative,     SM_RefDateTimeOffset_RefDateTimeNative_RetVoid)
1103 DEFINE_METHOD(DATETIMEOFFSETMARSHALER,    CONVERT_TO_MANAGED,    ConvertToManaged,    SM_RefDateTimeOffset_RefDateTimeNative_RetVoid)
1104
1105 DEFINE_CLASS(NULLABLEMARSHALER,           StubHelpers,           NullableMarshaler)
1106 DEFINE_METHOD(NULLABLEMARSHALER,          CONVERT_TO_NATIVE,     ConvertToNative,     NoSig)
1107 DEFINE_METHOD(NULLABLEMARSHALER,          CONVERT_TO_MANAGED,    ConvertToManaged,    NoSig)
1108 DEFINE_METHOD(NULLABLEMARSHALER,          CONVERT_TO_MANAGED_RET_VOID,    ConvertToManagedRetVoid,    NoSig)
1109
1110 DEFINE_CLASS(SYSTEMTYPEMARSHALER,   StubHelpers,        SystemTypeMarshaler)
1111
1112 DEFINE_METHOD(SYSTEMTYPEMARSHALER,  CONVERT_TO_NATIVE,  ConvertToNative,    SM_Type_PtrTypeName_RetVoid)
1113 DEFINE_METHOD(SYSTEMTYPEMARSHALER,  CONVERT_TO_MANAGED, ConvertToManaged,   SM_PtrTypeName_RefType_RetVoid)
1114 DEFINE_METHOD(SYSTEMTYPEMARSHALER,  CLEAR_NATIVE,       ClearNative,        SM_PtrTypeName_RetVoid)
1115
1116 DEFINE_CLASS(KEYVALUEPAIRMARSHALER,  StubHelpers,            KeyValuePairMarshaler)
1117 DEFINE_METHOD(KEYVALUEPAIRMARSHALER, CONVERT_TO_NATIVE,      ConvertToNative,     NoSig)
1118 DEFINE_METHOD(KEYVALUEPAIRMARSHALER, CONVERT_TO_MANAGED,     ConvertToManaged,    NoSig)
1119 DEFINE_METHOD(KEYVALUEPAIRMARSHALER, CONVERT_TO_MANAGED_BOX, ConvertToManagedBox, NoSig)
1120
1121 DEFINE_CLASS(HRESULTEXCEPTIONMARSHALER,   StubHelpers,           HResultExceptionMarshaler)
1122 DEFINE_METHOD(HRESULTEXCEPTIONMARSHALER,  CONVERT_TO_NATIVE,     ConvertToNative,     SM_Exception_RetInt)
1123 DEFINE_METHOD(HRESULTEXCEPTIONMARSHALER,  CONVERT_TO_MANAGED,    ConvertToManaged,    SM_Int_RetException)
1124
1125 #endif // FEATURE_COMINTEROP
1126
1127 DEFINE_CLASS(VALUECLASSMARSHALER,   StubHelpers,            ValueClassMarshaler)
1128 DEFINE_METHOD(VALUECLASSMARSHALER,  CONVERT_TO_NATIVE,      ConvertToNative,            SM_IntPtrIntPtrIntPtr_RefCleanupWorkListElement_RetVoid)
1129 DEFINE_METHOD(VALUECLASSMARSHALER,  CONVERT_TO_MANAGED,     ConvertToManaged,           SM_IntPtrIntPtrIntPtr_RetVoid)
1130 DEFINE_METHOD(VALUECLASSMARSHALER,  CLEAR_NATIVE,           ClearNative,                SM_IntPtr_IntPtr_RetVoid)
1131
1132 DEFINE_CLASS(DATEMARSHALER,         StubHelpers,            DateMarshaler)
1133 DEFINE_METHOD(DATEMARSHALER,        CONVERT_TO_NATIVE,      ConvertToNative,            SM_DateTime_RetDbl)
1134 DEFINE_METHOD(DATEMARSHALER,        CONVERT_TO_MANAGED,     ConvertToManaged,           SM_Dbl_RetLong)
1135
1136 DEFINE_CLASS(VBBYVALSTRMARSHALER,   StubHelpers,            VBByValStrMarshaler)
1137 DEFINE_METHOD(VBBYVALSTRMARSHALER,  CONVERT_TO_NATIVE,      ConvertToNative,            SM_Str_Bool_Bool_RefInt_RetIntPtr)
1138 DEFINE_METHOD(VBBYVALSTRMARSHALER,  CONVERT_TO_MANAGED,     ConvertToManaged,           SM_IntPtr_Int_RetStr)
1139 DEFINE_METHOD(VBBYVALSTRMARSHALER,  CLEAR_NATIVE,           ClearNative,                SM_IntPtr_RetVoid)
1140
1141 DEFINE_CLASS(MNGD_NATIVE_ARRAY_MARSHALER,  StubHelpers,                 MngdNativeArrayMarshaler)
1142 DEFINE_METHOD(MNGD_NATIVE_ARRAY_MARSHALER, CREATE_MARSHALER,            CreateMarshaler,            SM_IntPtr_IntPtr_Int_RetVoid)
1143 DEFINE_METHOD(MNGD_NATIVE_ARRAY_MARSHALER, CONVERT_SPACE_TO_NATIVE,     ConvertSpaceToNative,       SM_IntPtr_RefObj_IntPtr_RetVoid)
1144 DEFINE_METHOD(MNGD_NATIVE_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_NATIVE,  ConvertContentsToNative,    SM_IntPtr_RefObj_IntPtr_RetVoid)
1145 DEFINE_METHOD(MNGD_NATIVE_ARRAY_MARSHALER, CONVERT_SPACE_TO_MANAGED,    ConvertSpaceToManaged,      SM_IntPtr_RefObj_IntPtr_Int_RetVoid)
1146 DEFINE_METHOD(MNGD_NATIVE_ARRAY_MARSHALER, CONVERT_CONTENTS_TO_MANAGED, ConvertContentsToManaged,   SM_IntPtr_RefObj_IntPtr_RetVoid)
1147 DEFINE_METHOD(MNGD_NATIVE_ARRAY_MARSHALER, CLEAR_NATIVE,                ClearNative,                SM_IntPtr_IntPtr_Int_RetVoid)
1148 DEFINE_METHOD(MNGD_NATIVE_ARRAY_MARSHALER, CLEAR_NATIVE_CONTENTS,       ClearNativeContents,        SM_IntPtr_IntPtr_Int_RetVoid)
1149
1150 DEFINE_CLASS(MNGD_REF_CUSTOM_MARSHALER,  StubHelpers,                 MngdRefCustomMarshaler)
1151 DEFINE_METHOD(MNGD_REF_CUSTOM_MARSHALER, CREATE_MARSHALER,            CreateMarshaler,            SM_IntPtr_IntPtr_RetVoid)
1152 DEFINE_METHOD(MNGD_REF_CUSTOM_MARSHALER, CONVERT_CONTENTS_TO_NATIVE,  ConvertContentsToNative,    SM_IntPtr_RefObj_IntPtr_RetVoid)
1153 DEFINE_METHOD(MNGD_REF_CUSTOM_MARSHALER, CONVERT_CONTENTS_TO_MANAGED, ConvertContentsToManaged,   SM_IntPtr_RefObj_IntPtr_RetVoid)
1154 DEFINE_METHOD(MNGD_REF_CUSTOM_MARSHALER, CLEAR_NATIVE,                ClearNative,                SM_IntPtr_RefObj_IntPtr_RetVoid)
1155 DEFINE_METHOD(MNGD_REF_CUSTOM_MARSHALER, CLEAR_MANAGED,               ClearManaged,               SM_IntPtr_RefObj_IntPtr_RetVoid)
1156
1157 DEFINE_CLASS(ASANY_MARSHALER,            StubHelpers,                 AsAnyMarshaler)
1158 DEFINE_METHOD(ASANY_MARSHALER,           CTOR,                        .ctor,                      IM_IntPtr_RetVoid)
1159 DEFINE_METHOD(ASANY_MARSHALER,           CONVERT_TO_NATIVE,           ConvertToNative,            IM_Obj_Int_RetIntPtr)
1160 DEFINE_METHOD(ASANY_MARSHALER,           CONVERT_TO_MANAGED,          ConvertToManaged,           IM_Obj_IntPtr_RetVoid)
1161 DEFINE_METHOD(ASANY_MARSHALER,           CLEAR_NATIVE,                ClearNative,                IM_IntPtr_RetVoid)
1162
1163 DEFINE_CLASS(NATIVEVARIANT,         StubHelpers,            NativeVariant)
1164
1165 #ifdef FEATURE_COMINTEROP
1166 DEFINE_CLASS(IITERABLE,              WinRT,                 IIterable`1)
1167 DEFINE_CLASS(IVECTOR,                WinRT,                 IVector`1)
1168 DEFINE_CLASS(IMAP,                   WinRT,                 IMap`2)
1169 DEFINE_CLASS(IKEYVALUEPAIR,          WinRT,                 IKeyValuePair`2)
1170 DEFINE_CLASS(IVECTORVIEW,            WinRT,                 IVectorView`1)
1171 DEFINE_CLASS(IMAPVIEW,               WinRT,                 IMapView`2)
1172 DEFINE_CLASS(IITERATOR,              WinRT,                 IIterator`1)
1173 DEFINE_CLASS(IPROPERTYVALUE,         WinRT,                 IPropertyValue)
1174 DEFINE_CLASS(IBINDABLEITERABLE,      WinRT,                 IBindableIterable)
1175 DEFINE_CLASS(IBINDABLEITERATOR,      WinRT,                 IBindableIterator)
1176 DEFINE_CLASS(IBINDABLEVECTOR,        WinRT,                 IBindableVector)
1177 DEFINE_CLASS(ICLOSABLE,             WinRT,                  IClosable)
1178
1179 DEFINE_CLASS(GET_ENUMERATOR_DELEGATE,        WinRT,                            GetEnumerator_Delegate`1)
1180 DEFINE_CLASS(ITERABLE_TO_ENUMERABLE_ADAPTER, WinRT,                            IterableToEnumerableAdapter)
1181 DEFINE_METHOD(ITERABLE_TO_ENUMERABLE_ADAPTER, GET_ENUMERATOR_STUB,             GetEnumerator_Stub, NoSig)
1182 DEFINE_METHOD(ITERABLE_TO_ENUMERABLE_ADAPTER, GET_ENUMERATOR_VARIANCE_STUB,    GetEnumerator_Variance_Stub, NoSig)
1183
1184 DEFINE_CLASS(VECTOR_TO_LIST_ADAPTER,        WinRT,                   VectorToListAdapter)
1185 DEFINE_METHOD(VECTOR_TO_LIST_ADAPTER,       INDEXER_GET,             Indexer_Get, NoSig)
1186 DEFINE_METHOD(VECTOR_TO_LIST_ADAPTER,       INDEXER_SET,             Indexer_Set, NoSig)
1187 DEFINE_METHOD(VECTOR_TO_LIST_ADAPTER,       INDEX_OF,                IndexOf, NoSig)
1188 DEFINE_METHOD(VECTOR_TO_LIST_ADAPTER,       INSERT,                  Insert, NoSig)
1189 DEFINE_METHOD(VECTOR_TO_LIST_ADAPTER,       REMOVE_AT,               RemoveAt, NoSig)
1190
1191 DEFINE_CLASS(MAP_TO_DICTIONARY_ADAPTER,     WinRT,                   MapToDictionaryAdapter)
1192 DEFINE_METHOD(MAP_TO_DICTIONARY_ADAPTER,    INDEXER_GET,             Indexer_Get, NoSig)
1193 DEFINE_METHOD(MAP_TO_DICTIONARY_ADAPTER,    INDEXER_SET,             Indexer_Set, NoSig)
1194 DEFINE_METHOD(MAP_TO_DICTIONARY_ADAPTER,    KEYS,                    Keys, NoSig)
1195 DEFINE_METHOD(MAP_TO_DICTIONARY_ADAPTER,    VALUES,                  Values, NoSig)
1196 DEFINE_METHOD(MAP_TO_DICTIONARY_ADAPTER,    CONTAINS_KEY,            ContainsKey, NoSig)
1197 DEFINE_METHOD(MAP_TO_DICTIONARY_ADAPTER,    ADD,                     Add, NoSig)
1198 DEFINE_METHOD(MAP_TO_DICTIONARY_ADAPTER,    REMOVE,                  Remove, NoSig)
1199 DEFINE_METHOD(MAP_TO_DICTIONARY_ADAPTER,    TRY_GET_VALUE,           TryGetValue, NoSig)
1200
1201 DEFINE_CLASS(VECTOR_TO_COLLECTION_ADAPTER,  WinRT,                   VectorToCollectionAdapter)
1202 DEFINE_METHOD(VECTOR_TO_COLLECTION_ADAPTER, COUNT,                   Count, NoSig)
1203 DEFINE_METHOD(VECTOR_TO_COLLECTION_ADAPTER, IS_READ_ONLY,            IsReadOnly, NoSig)
1204 DEFINE_METHOD(VECTOR_TO_COLLECTION_ADAPTER, ADD,                     Add, NoSig)
1205 DEFINE_METHOD(VECTOR_TO_COLLECTION_ADAPTER, CLEAR,                   Clear, NoSig)
1206 DEFINE_METHOD(VECTOR_TO_COLLECTION_ADAPTER, CONTAINS,                Contains, NoSig)
1207 DEFINE_METHOD(VECTOR_TO_COLLECTION_ADAPTER, COPY_TO,                 CopyTo, NoSig)
1208 DEFINE_METHOD(VECTOR_TO_COLLECTION_ADAPTER, REMOVE,                  Remove, NoSig)
1209
1210 DEFINE_CLASS(MAP_TO_COLLECTION_ADAPTER,     WinRT,                   MapToCollectionAdapter)
1211 DEFINE_METHOD(MAP_TO_COLLECTION_ADAPTER,    COUNT,                   Count, NoSig)
1212 DEFINE_METHOD(MAP_TO_COLLECTION_ADAPTER,    IS_READ_ONLY,            IsReadOnly, NoSig)
1213 DEFINE_METHOD(MAP_TO_COLLECTION_ADAPTER,    ADD,                     Add, NoSig)
1214 DEFINE_METHOD(MAP_TO_COLLECTION_ADAPTER,    CLEAR,                   Clear, NoSig)
1215 DEFINE_METHOD(MAP_TO_COLLECTION_ADAPTER,    CONTAINS,                Contains, NoSig)
1216 DEFINE_METHOD(MAP_TO_COLLECTION_ADAPTER,    COPY_TO,                 CopyTo, NoSig)
1217 DEFINE_METHOD(MAP_TO_COLLECTION_ADAPTER,    REMOVE,                  Remove, NoSig)
1218
1219 DEFINE_CLASS(BINDABLEITERABLE_TO_ENUMERABLE_ADAPTER, WinRT,          BindableIterableToEnumerableAdapter)
1220 DEFINE_METHOD(BINDABLEITERABLE_TO_ENUMERABLE_ADAPTER, GET_ENUMERATOR_STUB, GetEnumerator_Stub, NoSig)
1221
1222 DEFINE_CLASS(BINDABLEVECTOR_TO_LIST_ADAPTER,       WinRT,            BindableVectorToListAdapter)
1223 DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER,      INDEXER_GET,      Indexer_Get, NoSig)
1224 DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER,      INDEXER_SET,      Indexer_Set, NoSig)
1225 DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER,      ADD,              Add, NoSig)
1226 DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER,      CONTAINS,         Contains, NoSig)
1227 DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER,      CLEAR,            Clear, NoSig)
1228 DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER,      IS_READ_ONLY,     IsReadOnly, NoSig)
1229 DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER,      IS_FIXED_SIZE,    IsFixedSize, NoSig)
1230 DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER,      INDEX_OF,         IndexOf, NoSig)
1231 DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER,      INSERT,           Insert, NoSig)
1232 DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER,      REMOVE,           Remove, NoSig)
1233 DEFINE_METHOD(BINDABLEVECTOR_TO_LIST_ADAPTER,      REMOVE_AT,        RemoveAt, NoSig)
1234
1235 DEFINE_CLASS(BINDABLEVECTOR_TO_COLLECTION_ADAPTER,  WinRT,           BindableVectorToCollectionAdapter)
1236 DEFINE_METHOD(BINDABLEVECTOR_TO_COLLECTION_ADAPTER, COPY_TO,         CopyTo, NoSig)
1237 DEFINE_METHOD(BINDABLEVECTOR_TO_COLLECTION_ADAPTER, COUNT,           Count, NoSig)
1238 DEFINE_METHOD(BINDABLEVECTOR_TO_COLLECTION_ADAPTER, SYNC_ROOT,       SyncRoot, NoSig)
1239 DEFINE_METHOD(BINDABLEVECTOR_TO_COLLECTION_ADAPTER, IS_SYNCHRONIZED, IsSynchronized, NoSig)
1240
1241 DEFINE_CLASS(ENUMERABLE_TO_ITERABLE_ADAPTER, WinRT,                  EnumerableToIterableAdapter)
1242 DEFINE_METHOD(ENUMERABLE_TO_ITERABLE_ADAPTER, FIRST_STUB,            First_Stub, NoSig)
1243
1244 DEFINE_CLASS(LIST_TO_VECTOR_ADAPTER,       WinRT,                    ListToVectorAdapter)
1245 DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER,      GET_AT,                   GetAt, NoSig)
1246 DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER,      SIZE,                     Size, NoSig)
1247 DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER,      GET_VIEW,                 GetView, NoSig)
1248 DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER,      INDEX_OF,                 IndexOf, NoSig)
1249 DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER,      SET_AT,                   SetAt, NoSig)
1250 DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER,      INSERT_AT,                InsertAt, NoSig)
1251 DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER,      REMOVE_AT,                RemoveAt, NoSig)
1252 DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER,      APPEND,                   Append, NoSig)
1253 DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER,      REMOVE_AT_END,            RemoveAtEnd, NoSig)
1254 DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER,      CLEAR,                    Clear, NoSig)
1255 DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER,      GET_MANY,                 GetMany, NoSig)
1256 DEFINE_METHOD(LIST_TO_VECTOR_ADAPTER,      REPLACE_ALL,              ReplaceAll, NoSig)
1257
1258 DEFINE_CLASS(DICTIONARY_TO_MAP_ADAPTER,    WinRT,                    DictionaryToMapAdapter)
1259 DEFINE_METHOD(DICTIONARY_TO_MAP_ADAPTER,   LOOKUP,                   Lookup, NoSig)
1260 DEFINE_METHOD(DICTIONARY_TO_MAP_ADAPTER,   SIZE,                     Size, NoSig)
1261 DEFINE_METHOD(DICTIONARY_TO_MAP_ADAPTER,   HAS_KEY,                  HasKey, NoSig)
1262 DEFINE_METHOD(DICTIONARY_TO_MAP_ADAPTER,   GET_VIEW,                 GetView, NoSig)
1263 DEFINE_METHOD(DICTIONARY_TO_MAP_ADAPTER,   INSERT,                   Insert, NoSig)
1264 DEFINE_METHOD(DICTIONARY_TO_MAP_ADAPTER,   REMOVE,                   Remove, NoSig)
1265 DEFINE_METHOD(DICTIONARY_TO_MAP_ADAPTER,   CLEAR,                    Clear, NoSig)
1266
1267 DEFINE_CLASS(IVECTORVIEW_TO_IREADONLYCOLLECTION_ADAPTER,  WinRT,     VectorViewToReadOnlyCollectionAdapter)
1268 DEFINE_METHOD(IVECTORVIEW_TO_IREADONLYCOLLECTION_ADAPTER, COUNT,     Count, NoSig)
1269
1270 DEFINE_CLASS(IMAPVIEW_TO_IREADONLYCOLLECTION_ADAPTER,  WinRT,        MapViewToReadOnlyCollectionAdapter)
1271 DEFINE_METHOD(IMAPVIEW_TO_IREADONLYCOLLECTION_ADAPTER, COUNT,        Count, NoSig)
1272
1273 DEFINE_CLASS(IREADONLYLIST_TO_IVECTORVIEW_ADAPTER,     WinRT,        IReadOnlyListToIVectorViewAdapter)
1274 DEFINE_METHOD(IREADONLYLIST_TO_IVECTORVIEW_ADAPTER,    GETAT,        GetAt, NoSig)
1275 DEFINE_METHOD(IREADONLYLIST_TO_IVECTORVIEW_ADAPTER,    GETMANY,      GetMany, NoSig)
1276 DEFINE_METHOD(IREADONLYLIST_TO_IVECTORVIEW_ADAPTER,    INDEXOF,      IndexOf, NoSig)
1277 DEFINE_METHOD(IREADONLYLIST_TO_IVECTORVIEW_ADAPTER,    SIZE,         Size, NoSig)
1278
1279 DEFINE_CLASS(INDEXER_GET_DELEGATE,                     WinRT,        Indexer_Get_Delegate`1)
1280 DEFINE_CLASS(IVECTORVIEW_TO_IREADONLYLIST_ADAPTER,     WinRT,        IVectorViewToIReadOnlyListAdapter)
1281 DEFINE_METHOD(IVECTORVIEW_TO_IREADONLYLIST_ADAPTER,    INDEXER_GET,  Indexer_Get, NoSig)
1282 DEFINE_METHOD(IVECTORVIEW_TO_IREADONLYLIST_ADAPTER,    INDEXER_GET_VARIANCE, Indexer_Get_Variance, NoSig)
1283
1284 DEFINE_CLASS(IREADONLYDICTIONARY_TO_IMAPVIEW_ADAPTER,  WinRT,        IReadOnlyDictionaryToIMapViewAdapter)
1285 DEFINE_METHOD(IREADONLYDICTIONARY_TO_IMAPVIEW_ADAPTER, HASKEY,       HasKey, NoSig)
1286 DEFINE_METHOD(IREADONLYDICTIONARY_TO_IMAPVIEW_ADAPTER, LOOKUP,       Lookup, NoSig)
1287 DEFINE_METHOD(IREADONLYDICTIONARY_TO_IMAPVIEW_ADAPTER, SIZE,         Size, NoSig)
1288 DEFINE_METHOD(IREADONLYDICTIONARY_TO_IMAPVIEW_ADAPTER, SPLIT,        Split, NoSig)
1289
1290 DEFINE_CLASS(IMAPVIEW_TO_IREADONLYDICTIONARY_ADAPTER,  WinRT,        IMapViewToIReadOnlyDictionaryAdapter)
1291 DEFINE_METHOD(IMAPVIEW_TO_IREADONLYDICTIONARY_ADAPTER, CONTAINSKEY,  ContainsKey, NoSig)
1292 DEFINE_METHOD(IMAPVIEW_TO_IREADONLYDICTIONARY_ADAPTER, INDEXER_GET,  Indexer_Get, NoSig)
1293 DEFINE_METHOD(IMAPVIEW_TO_IREADONLYDICTIONARY_ADAPTER, TRYGETVALUE,  TryGetValue, NoSig)
1294 DEFINE_METHOD(IMAPVIEW_TO_IREADONLYDICTIONARY_ADAPTER, KEYS,         Keys, NoSig)
1295 DEFINE_METHOD(IMAPVIEW_TO_IREADONLYDICTIONARY_ADAPTER, VALUES,       Values, NoSig)
1296
1297 DEFINE_CLASS(ENUMERABLE_TO_BINDABLEITERABLE_ADAPTER,   WinRT,        EnumerableToBindableIterableAdapter)
1298 DEFINE_METHOD(ENUMERABLE_TO_BINDABLEITERABLE_ADAPTER,  FIRST_STUB,   First_Stub, NoSig)
1299
1300 DEFINE_CLASS(LIST_TO_BINDABLEVECTOR_ADAPTER,       WinRT,            ListToBindableVectorAdapter)
1301 DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER,      GET_AT,           GetAt, NoSig)
1302 DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER,      SIZE,             Size, NoSig)
1303 DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER,      GET_VIEW,         GetView, NoSig)
1304 DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER,      INDEX_OF,         IndexOf, NoSig)
1305 DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER,      SET_AT,           SetAt, NoSig)
1306 DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER,      INSERT_AT,        InsertAt, NoSig)
1307 DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER,      REMOVE_AT,        RemoveAt, NoSig)
1308 DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER,      APPEND,           Append, NoSig)
1309 DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER,      REMOVE_AT_END,    RemoveAtEnd, NoSig)
1310 DEFINE_METHOD(LIST_TO_BINDABLEVECTOR_ADAPTER,      CLEAR,            Clear, NoSig)
1311
1312 DEFINE_CLASS(IDISPOSABLE_TO_ICLOSABLE_ADAPTER,     WinRT,            IDisposableToIClosableAdapter)
1313 DEFINE_METHOD(IDISPOSABLE_TO_ICLOSABLE_ADAPTER,    CLOSE,            Close, NoSig)
1314
1315 DEFINE_CLASS(ICLOSABLE_TO_IDISPOSABLE_ADAPTER,     WinRT,            IClosableToIDisposableAdapter)
1316 DEFINE_METHOD(ICLOSABLE_TO_IDISPOSABLE_ADAPTER,    DISPOSE,          Dispose, NoSig)
1317
1318 #endif // FEATURE_COMINTEROP
1319
1320 DEFINE_CLASS(SZARRAYHELPER,         System,                        SZArrayHelper)
1321 // Note: The order of methods here has to match order they are implemented on the interfaces in
1322 // IEnumerable`1
1323 DEFINE_METHOD(SZARRAYHELPER,        GETENUMERATOR,          GetEnumerator,              NoSig)
1324 // ICollection`1/IReadOnlyCollection`1
1325 DEFINE_METHOD(SZARRAYHELPER,        GET_COUNT,              get_Count,                  NoSig)
1326 DEFINE_METHOD(SZARRAYHELPER,        ISREADONLY,             get_IsReadOnly,             NoSig)
1327 DEFINE_METHOD(SZARRAYHELPER,        ADD,                    Add,                        NoSig)
1328 DEFINE_METHOD(SZARRAYHELPER,        CLEAR,                  Clear,                      NoSig)
1329 DEFINE_METHOD(SZARRAYHELPER,        CONTAINS,               Contains,                   NoSig)
1330 DEFINE_METHOD(SZARRAYHELPER,        COPYTO,                 CopyTo,                     NoSig)
1331 DEFINE_METHOD(SZARRAYHELPER,        REMOVE,                 Remove,                     NoSig)
1332 // IList`1/IReadOnlyList`1
1333 DEFINE_METHOD(SZARRAYHELPER,        GET_ITEM,               get_Item,                   NoSig)
1334 DEFINE_METHOD(SZARRAYHELPER,        SET_ITEM,               set_Item,                   NoSig)
1335 DEFINE_METHOD(SZARRAYHELPER,        INDEXOF,                IndexOf,                    NoSig)
1336 DEFINE_METHOD(SZARRAYHELPER,        INSERT,                 Insert,                     NoSig)
1337 DEFINE_METHOD(SZARRAYHELPER,        REMOVEAT,               RemoveAt,                   NoSig)
1338
1339 DEFINE_CLASS(IENUMERABLEGENERIC,    CollectionsGeneric,     IEnumerable`1)
1340 DEFINE_CLASS(IENUMERATORGENERIC,    CollectionsGeneric,     IEnumerator`1)
1341 DEFINE_CLASS(ICOLLECTIONGENERIC,    CollectionsGeneric,     ICollection`1)
1342 DEFINE_CLASS(ILISTGENERIC,          CollectionsGeneric,     IList`1)
1343 DEFINE_CLASS(IREADONLYCOLLECTIONGENERIC,CollectionsGeneric, IReadOnlyCollection`1)
1344 DEFINE_CLASS(IREADONLYLISTGENERIC,  CollectionsGeneric,     IReadOnlyList`1)
1345 DEFINE_CLASS(IREADONLYDICTIONARYGENERIC,CollectionsGeneric, IReadOnlyDictionary`2)
1346 DEFINE_CLASS(IDICTIONARYGENERIC,    CollectionsGeneric,     IDictionary`2)
1347 DEFINE_CLASS(KEYVALUEPAIRGENERIC,   CollectionsGeneric,     KeyValuePair`2)
1348
1349 DEFINE_CLASS(ICOMPARABLEGENERIC,    System,                 IComparable`1)
1350 DEFINE_METHOD(ICOMPARABLEGENERIC,   COMPARE_TO,             CompareTo,                  NoSig)
1351
1352 DEFINE_CLASS(IEQUATABLEGENERIC,     System,                 IEquatable`1)
1353
1354 DEFINE_CLASS_U(Reflection,             LoaderAllocator,          LoaderAllocatorObject)
1355 DEFINE_FIELD_U(m_slots,                  LoaderAllocatorObject,      m_pSlots)
1356 DEFINE_FIELD_U(m_slotsUsed,              LoaderAllocatorObject,      m_slotsUsed)
1357 DEFINE_CLASS(LOADERALLOCATOR,           Reflection,             LoaderAllocator)
1358 DEFINE_METHOD(LOADERALLOCATOR,          CTOR,                   .ctor,                    IM_RetVoid)
1359
1360 DEFINE_CLASS_U(Reflection,             LoaderAllocatorScout,     LoaderAllocatorScoutObject)
1361 DEFINE_FIELD_U(m_nativeLoaderAllocator,  LoaderAllocatorScoutObject,      m_nativeLoaderAllocator)
1362 DEFINE_CLASS(LOADERALLOCATORSCOUT,      Reflection,             LoaderAllocatorScout)
1363
1364 DEFINE_CLASS(CONTRACTEXCEPTION,     CodeContracts,  ContractException)
1365
1366 DEFINE_CLASS_U(CodeContracts,       ContractException,          ContractExceptionObject)
1367 DEFINE_FIELD_U(_kind,               ContractExceptionObject,    _Kind)
1368 DEFINE_FIELD_U(_userMessage,        ContractExceptionObject,    _UserMessage)
1369 DEFINE_FIELD_U(_condition,          ContractExceptionObject,    _Condition)
1370
1371 #ifdef FEATURE_COMINTEROP
1372 DEFINE_CLASS(CAUSALITY_TRACE_LEVEL, WindowsFoundationDiag,   CausalityTraceLevel)
1373 DEFINE_CLASS(ASYNC_TRACING_EVENT_ARGS,       WindowsFoundationDiag,         TracingStatusChangedEventArgs)
1374 DEFINE_PROPERTY(ASYNC_TRACING_EVENT_ARGS, ENABLED, Enabled, Bool)
1375 DEFINE_PROPERTY(ASYNC_TRACING_EVENT_ARGS, TRACELEVEL, TraceLevel, CausalityTraceLevel)
1376 DEFINE_CLASS(IASYNC_TRACING_EVENT_ARGS,      WindowsFoundationDiag,         ITracingStatusChangedEventArgs)
1377 DEFINE_PROPERTY(IASYNC_TRACING_EVENT_ARGS, ENABLED, Enabled, Bool)
1378 DEFINE_PROPERTY(IASYNC_TRACING_EVENT_ARGS, TRACELEVEL, TraceLevel, CausalityTraceLevel)
1379 #endif // FEATURE_COMINTEROP
1380
1381 DEFINE_CLASS(MODULEBASE,        Reflection,         Module)
1382
1383 #ifdef FEATURE_ICASTABLE
1384 DEFINE_CLASS(ICASTABLE,         CompilerServices,   ICastable)
1385
1386 DEFINE_CLASS(ICASTABLEHELPERS,         CompilerServices,   ICastableHelpers)
1387 DEFINE_METHOD(ICASTABLEHELPERS,        ISINSTANCEOF,       IsInstanceOfInterface, SM_ICastable_RtType_RefException_RetBool)
1388 DEFINE_METHOD(ICASTABLEHELPERS,        GETIMPLTYPE,        GetImplType, SM_ICastable_RtType_RetRtType)
1389
1390 #endif // FEATURE_ICASTABLE
1391
1392 DEFINE_CLASS(CUTF8MARSHALER, StubHelpers, UTF8Marshaler)
1393 DEFINE_METHOD(CUTF8MARSHALER, CONVERT_TO_NATIVE, ConvertToNative, SM_Int_Str_IntPtr_RetIntPtr)
1394 DEFINE_METHOD(CUTF8MARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, SM_IntPtr_RetStr)
1395 DEFINE_METHOD(CUTF8MARSHALER, CLEAR_NATIVE, ClearNative, SM_IntPtr_RetVoid)
1396
1397 DEFINE_CLASS(UTF8BUFFERMARSHALER, StubHelpers, UTF8BufferMarshaler)
1398 DEFINE_METHOD(UTF8BUFFERMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, NoSig)
1399 DEFINE_METHOD(UTF8BUFFERMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, NoSig)
1400
1401 // Classes referenced in EqualityComparer<T>.Default optimization
1402
1403 DEFINE_CLASS(BYTE_EQUALITYCOMPARER, CollectionsGeneric, ByteEqualityComparer)
1404 DEFINE_CLASS(ENUM_EQUALITYCOMPARER, CollectionsGeneric, EnumEqualityComparer`1)
1405 DEFINE_CLASS(NULLABLE_EQUALITYCOMPARER, CollectionsGeneric, NullableEqualityComparer`1)
1406 DEFINE_CLASS(GENERIC_EQUALITYCOMPARER, CollectionsGeneric, GenericEqualityComparer`1)
1407 DEFINE_CLASS(OBJECT_EQUALITYCOMPARER, CollectionsGeneric, ObjectEqualityComparer`1)
1408
1409 DEFINE_CLASS(INATTRIBUTE, Interop, InAttribute)
1410
1411 DEFINE_CLASS_U(CompilerServices,           GCHeapHash,                      GCHeapHashObject)
1412 DEFINE_FIELD_U(_data,                      GCHeapHashObject,                _data)
1413 DEFINE_FIELD_U(_count,                     GCHeapHashObject,                _count)
1414 DEFINE_FIELD_U(_deletedCount,              GCHeapHashObject,                _deletedCount)
1415
1416 DEFINE_CLASS(GCHEAPHASH, CompilerServices, GCHeapHash)
1417
1418 DEFINE_CLASS_U(CompilerServices,           LAHashDependentHashTracker,      LAHashDependentHashTrackerObject)
1419 DEFINE_FIELD_U(_dependentHandle,           LAHashDependentHashTrackerObject,_dependentHandle)
1420 DEFINE_FIELD_U(_loaderAllocator,           LAHashDependentHashTrackerObject,_loaderAllocator)
1421
1422 DEFINE_CLASS(LAHASHDEPENDENTHASHTRACKER, CompilerServices, LAHashDependentHashTracker)
1423
1424 DEFINE_CLASS_U(CompilerServices,           LAHashKeyToTrackers,             LAHashKeyToTrackersObject)
1425 DEFINE_FIELD_U(_trackerOrTrackerSet,       LAHashKeyToTrackersObject,       _trackerOrTrackerSet)
1426 DEFINE_FIELD_U(_laLocalKeyValueStore,      LAHashKeyToTrackersObject,       _laLocalKeyValueStore)
1427
1428 DEFINE_CLASS(LAHASHKEYTOTRACKERS, CompilerServices, LAHashKeyToTrackers)
1429
1430 #undef DEFINE_CLASS
1431 #undef DEFINE_METHOD
1432 #undef DEFINE_FIELD
1433 #undef DEFINE_CLASS_U
1434 #undef DEFINE_FIELD_U