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