#define MCG_WINRT_SUPPORTED
using Mcg.System;
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.WindowsRuntime;


// -----------------------------------------------------------------------------------------------------------
// 
// WARNING: THIS SOURCE FILE IS FOR 64-BIT BUILDS ONLY!
// 
// MCG GENERATED CODE
// 
// This C# source file is generated by MCG and is added into the application at compile time to support interop features.
// 
// It has three primary components:
// 
// 1. Public type definitions with interop implementation used by this application including WinRT & COM data structures and P/Invokes.
// 
// 2. The 'McgInterop' class containing marshaling code that acts as a bridge from managed code to native code.
// 
// 3. The 'McgNative' class containing marshaling code and native type definitions that call into native code and are called by native code.
// 
// -----------------------------------------------------------------------------------------------------------
// 
// warning CS0067: The event 'event' is never used
#pragma warning disable 67
// warning CS0169: The field 'field' is never used
#pragma warning disable 169
// warning CS0649: Field 'field' is never assigned to, and will always have its default value 0
#pragma warning disable 414
// warning CS0414: The private field 'field' is assigned but its value is never used
#pragma warning disable 649
// warning CS1591: Missing XML comment for publicly visible type or member 'Type_or_Member'
#pragma warning disable 1591
// warning CS0108 'member1' hides inherited member 'member2'. Use the new keyword if hiding was intended.
#pragma warning disable 108
// warning CS0114 'member1' hides inherited member 'member2'.  To make the current method override that implementation, add the override keyword. Otherwise add the new keyword.
#pragma warning disable 114
// warning CS0659 'type' overrides Object.Equals but does not override GetHashCode.
#pragma warning disable 659
// warning CS0465 Introducing a 'Finalize' method can interfere with destructor invocation. Did you intend to declare a destructor?
#pragma warning disable 465
// warning CS0028 'function declaration' has the wrong signature to be an entry point
#pragma warning disable 28
// warning CS0162 Unreachable code Detected
#pragma warning disable 162
// warning CS0628 new protected member declared in sealed class
#pragma warning disable 628

namespace Mcg
{
	//
	// The RS.Get contain the set of GetString functions that provides the localization infrastructure, 
	// it is used with the RS.cs that provides the string set.
	//
	namespace System
	{
	    internal static partial class SR
	    {
	        /// <summary>
	        /// This function is responsible to provide the string localization. 
	        /// It is called throught the functions with the default strings in the global::Mcg.System.SR.cs file. 
	        /// The localization infrastructure is in the interop.dll, provided by the ResourceManager.GetString function. 
	        /// The whole path is:
	        /// 
	        ///   (Templates\global::Mcg.System.SR.cs) global::Mcg.System.SR.Arg_Localizable 
	        ///     +--> (Templates\global::Mcg.System.SR.Get.cs) global::Mcg.System.SR.GetResourceString 
	        ///            +--> (contracts\Internal.MCG\Internal.MCG.cs) System.Runtime.CompilerServices.McgResource.GetResourceString 
	        ///                   +--> (Interop\System\Runtime\CompilerServices\McgResource.cs) System.Runtime.CompilerServices.McgResource.GetResourceString
	        ///                          +--> (Common\System\global::Mcg.System.SR.cs) global::Mcg.System.SR.GetResourceString 
	        ///                                 +--> ResourceManager.GetString
	        /// </summary>
	        /// <param name="resourceKey">String with the key that represent the invalid string</param>
	        /// <param name="defaultString">default string used if the localized string was not provided</param>
	        /// <returns>The localized string</returns>
	        internal static string GetResourceString(string resourceKey, string defaultString)
	        {
	#if !MCG_WINRT_SUPPORTED
	            return defaultString; 
	#else
	            return global::System.Runtime.CompilerServices.McgResource.GetResourceString(resourceKey, defaultString); 
	#endif
	        }

	        internal static string Format(string resourceId, params object[] args)
	        {
	            if (args != null)
	            {
	#if !MCG_WINRT_SUPPORTED
	                string reportStr = string.Empty;
	                foreach (object item in args)
	                {
	                    reportStr = string.Concat(reportStr, " | ", item.ToString());
	                }
	                reportStr = string.Concat(resourceId, reportStr);
	                return reportStr;
	#else
	                return string.Format(resourceId, args);
	#endif
	            }

	            return resourceId;
	        }

	        // For back compat - this is the old GetString method from SG used by MCG code
	        // Keep this for now to avoid massive renames and potential merge conflicts
	        // @TODO - Get rid of this
	        internal static string GetString(string resourceId, params object[] args)
	        {
	            return Format(resourceId, args);
	        }
	    }
	}

	// This is auto generated file. Please don’t modify manually.
	// The file is generated as part of the build through the ResourceGenerator tool 
	// which takes the project resx resource file and generated this source code file.
	// By default the tool will use Resources\Strings.resx but projects can customize
	// that by overriding the StringResourcesPath property group.
	namespace System
	{
	    internal static partial class SR
	    {
	#pragma warning disable 0414
	        private const string s_resourcesName = "System.Private.Interop.resources"; // assembly Name + .resources
	#pragma warning restore 0414

	        internal static string Arg_BufferTooSmall {
	              get { return SR.GetResourceString("Arg_BufferTooSmall", @"Not enough space available in the buffer."); }
	        }
	        internal static string Arg_DllNotFoundException {
	              get { return SR.GetResourceString("Arg_DllNotFoundException", @"Dll was not found."); }
	        }
	        internal static string Arg_InvalidANSIString {
	              get { return SR.GetResourceString("Arg_InvalidANSIString", @"The ANSI string passed in could not be converted from the default ANSI code page to Unicode."); }
	        }
	        internal static string Arg_InvalidComObjectException {
	              get { return SR.GetResourceString("Arg_InvalidComObjectException", @"Attempt has been made to use a COM object that does not have a backing class factory."); }
	        }
	        internal static string Arg_InvalidHandle {
	              get { return SR.GetResourceString("Arg_InvalidHandle", @"Invalid handle."); }
	        }
	        internal static string Arg_InvalidOleVariantTypeException {
	              get { return SR.GetResourceString("Arg_InvalidOleVariantTypeException", @"Specified OLE variant was invalid."); }
	        }
	        internal static string Arg_VariantTypeNotSupported {
	              get { return SR.GetResourceString("Arg_VariantTypeNotSupported", @"Marshal for the specified variant type {0} not supported."); }
	        }
	        internal static string Arg_InvalidThreshold {
	              get { return SR.GetResourceString("Arg_InvalidThreshold", @"maximumThreshold cannot be less than initialThreshold."); }
	        }
	        internal static string Arg_MarshalDirectiveException {
	              get { return SR.GetResourceString("Arg_MarshalDirectiveException", @"Marshaling directives are invalid."); }
	        }
	        internal static string Arg_MustBeDecimal {
	              get { return SR.GetResourceString("Arg_MustBeDecimal", @"Object must be of type Decimal."); }
	        }
	        internal static string Arg_MustBeInt32 {
	              get { return SR.GetResourceString("Arg_MustBeInt32", @"Object must be of type Int32."); }
	        }
	        internal static string Arg_MustBeStringPtrNotAtom {
	              get { return SR.GetResourceString("Arg_MustBeStringPtrNotAtom", @"The pointer passed in as a String must not be in the bottom 64K of the process's address space."); }
	        }
	        internal static string Arg_NeedNonNegNumRequired {
	              get { return SR.GetResourceString("Arg_NeedNonNegNumRequired", @"Non-negative number required."); }
	        }
	        internal static string Arg_NotIsomorphic {
	              get { return SR.GetResourceString("Arg_NotIsomorphic", @"Object contains non-primitive or non-blittable data."); }
	        }
	        internal static string Arg_SafeArrayRankMismatchException {
	              get { return SR.GetResourceString("Arg_SafeArrayRankMismatchException", @"Specified array was not of the expected rank."); }
	        }
	        internal static string Arg_SafeArrayTypeMismatchException {
	              get { return SR.GetResourceString("Arg_SafeArrayTypeMismatchException", @"Specified array was not of the expected type."); }
	        }
	        internal static string Arg_SizeOfNoTypeSizeInfo {
	              get { return SR.GetResourceString("Arg_SizeOfNoTypeSizeInfo", @"Marshal.SizeOf may only be used with blittable types and types used in the generic SizeOf<T> overload methods."); }
	        }
	        internal static string Arg_SizeOfNonValueType {
	              get { return SR.GetResourceString("Arg_SizeOfNonValueType", @"Marshal.SizeOf may only be used with value types."); }
	        }
	        internal static string Argument_InvalidOffLength {
	              get { return SR.GetResourceString("Argument_InvalidOffLength", @"The offset and length provided do not fit within the bounds of the array"); }
	        }
	        internal static string Argument_NeedNonGenericType {
	              get { return SR.GetResourceString("Argument_NeedNonGenericType", @"The specified Type must not be a generic type definition."); }
	        }
	        internal static string Argument_NeedStructWithNoRefs {
	              get { return SR.GetResourceString("Argument_NeedStructWithNoRefs", @"The specified Type must be a struct containing no references."); }
	        }
	        internal static string Argument_ObjNotComObject {
	              get { return SR.GetResourceString("Argument_ObjNotComObject", @"The object's type must be __ComObject or derived from __ComObject."); }
	        }
	        internal static string ArgumentNull_Buffer {
	              get { return SR.GetResourceString("ArgumentNull_Buffer", @"Buffer cannot be null."); }
	        }
	        internal static string ArgumentOutOfRange_AddressSpace {
	              get { return SR.GetResourceString("ArgumentOutOfRange_AddressSpace", @"The number of bytes cannot exceed the virtual address space on a 32 bit machine."); }
	        }
	        internal static string ArgumentOutOfRange_NeedNonNegNum {
	              get { return SR.GetResourceString("ArgumentOutOfRange_NeedNonNegNum", @"Non-negative number required."); }
	        }
	        internal static string ArgumentOutOfRange_UIntPtrMaxMinusOne {
	              get { return SR.GetResourceString("ArgumentOutOfRange_UIntPtrMaxMinusOne", @"The length of the buffer must be less than the maximum UIntPtr value for your platform."); }
	        }
	        internal static string Null_HString {
	              get { return SR.GetResourceString("Null_HString", @"Null strings may not be marshaled in Windows Runtime arguments."); }
	        }
	        internal static string BadMarshalField_Null_HString {
	              get { return SR.GetResourceString("BadMarshalField_Null_HString", @"Null strings may not be marshaled in Windows Runtime fields."); }
	        }
	        internal static string ArrayWithOffsetOverflow {
	              get { return SR.GetResourceString("ArrayWithOffsetOverflow", @"ArrayWithOffset: offset exceeds array size."); }
	        }
	        internal static string InvalidOperation_HCCountOverflow {
	              get { return SR.GetResourceString("InvalidOperation_HCCountOverflow", @"Handle collector count overflows or underflows."); }
	        }
	        internal static string InvalidOperation_MustCallInitialize {
	              get { return SR.GetResourceString("InvalidOperation_MustCallInitialize", @"You must call Initialize on this object instance before using it."); }
	        }
	        internal static string StructArrayTooLarge {
	              get { return SR.GetResourceString("StructArrayTooLarge", @"Array size exceeds addressing limitations."); }
	        }
	        internal static string WrongSizeArrayInNStruct {
	              get { return SR.GetResourceString("WrongSizeArrayInNStruct", @"Type could not be marshaled because the length of an embedded array instance does not match the declared length in the layout."); }
	        }
	        internal static string CustomPropertyProvider_DataBindingError {
	              get { return SR.GetResourceString("CustomPropertyProvider_DataBindingError", @"Failed to bind to property '{0}'.  {1}"); }
	        }
	        internal static string CustomPropertyProvider_MissingMetadata {
	              get { return SR.GetResourceString("CustomPropertyProvider_MissingMetadata", @"Failed to bind to property '{0}'.  {1}"); }
	        }
	        internal static string Arg_GetMethNotFnd {
	              get { return SR.GetResourceString("Arg_GetMethNotFnd", @"Property Get method not found."); }
	        }
	        internal static string Arg_SetMethNotFnd {
	              get { return SR.GetResourceString("Arg_SetMethNotFnd", @"Property Set method not found."); }
	        }
	        internal static string Arg_MethodAccessException_WithMethodName {
	              get { return SR.GetResourceString("Arg_MethodAccessException_WithMethodName", @"Attempt to access the method '{0}' on type '{1}' failed."); }
	        }
	        internal static string Arg_RemovedTypeInstantiated {
	              get { return SR.GetResourceString("Arg_RemovedTypeInstantiated", @"A type that was removed by MCG dependency reduction has been instantiated."); }
	        }
	        internal static string Arg_NotImplementedInNonCoreApiSet {
	              get { return SR.GetResourceString("Arg_NotImplementedInNonCoreApiSet", @"{0} is not implemented for non-CORE_API_SET builds."); }
	        }
	        internal static string Arg_DelegateTypeNotRecognized {
	              get { return SR.GetResourceString("Arg_DelegateTypeNotRecognized", @"Delegate type is not recognized."); }
	        }
	        internal static string Arg_NoMarshalCreatedObjectUsedOutOfTreadContext {
	              get { return SR.GetResourceString("Arg_NoMarshalCreatedObjectUsedOutOfTreadContext", @"The Windows Runtime Object can only be used in the threading context where it was created, because it implements INoMarshal or has MarshalingBehaviorAttribute(MarshalingType.None) set."); }
	        }
	        internal static string Arg_UnexpectedTypeKind {
	              get { return SR.GetResourceString("Arg_UnexpectedTypeKind", @"Unexpected TypeKind."); }
	        }
	        internal static string Arg_UnrecognizedTypeName {
	              get { return SR.GetResourceString("Arg_UnrecognizedTypeName", @"Unrecognized type name."); }
	        }
	        internal static string Arg_InvalidCustomTypeNameValue {
	              get { return SR.GetResourceString("Arg_InvalidCustomTypeNameValue", @"Invalid custom TypeName value."); }
	        }
	        internal static string Arg_InteropMarshalUnmappableChar {
	              get { return SR.GetResourceString("Arg_InteropMarshalUnmappableChar", @"Cannot marshal: Encountered unmappable character."); }
	        }
	        internal static string Argument_MustHaveLayoutOrBeBlittable {
	              get { return SR.GetResourceString("Argument_MustHaveLayoutOrBeBlittable", @"The specified structure '{0}' must be blittable or have layout information."); }
	        }
	        internal static string TypeNameMarshalling_MissingMetadata {
	              get { return SR.GetResourceString("TypeNameMarshalling_MissingMetadata", @"Failed to marshal System.Type instance using metadata information. {0}"); }
	        }
	        internal static string Excep_EnumNotStarted {
	              get { return SR.GetResourceString("Excep_EnumNotStarted", @"Enum Not Started"); }
	        }
	        internal static string Excep_EnumEnded {
	              get { return SR.GetResourceString("Excep_EnumEnded", @"Enum ended"); }
	        }
	        internal static string Excep_EnumFailedVersion {
	              get { return SR.GetResourceString("Excep_EnumFailedVersion", @"Collection was modified; enumeration operation may not execute."); }
	        }
	        internal static string Excep_NotSupported {
	              get { return SR.GetResourceString("Excep_NotSupported", @"Not supported exception."); }
	        }
	        internal static string Excep_CollectionBackingListTooLarge {
	              get { return SR.GetResourceString("Excep_CollectionBackingListTooLarge", @"Collection backing list too large"); }
	        }
	        internal static string Excep_KeyNotFound {
	              get { return SR.GetResourceString("Excep_KeyNotFound", @"The given key was not present in the dictionary."); }
	        }
	        internal static string Excep_KeyCollectionSet {
	              get { return SR.GetResourceString("Excep_KeyCollectionSet", @"Key collection set."); }
	        }
	        internal static string Excep_ValueCollectionSet {
	              get { return SR.GetResourceString("Excep_ValueCollectionSet", @"Value collection set."); }
	        }
	        internal static string Excep_InsufficientSpaceToCopyCollection {
	              get { return SR.GetResourceString("Excep_InsufficientSpaceToCopyCollection", @"Insufficient space to copy collection."); }
	        }
	        internal static string Excep_IndexOutOfArrayBounds {
	              get { return SR.GetResourceString("Excep_IndexOutOfArrayBounds", @"Index out of array bounds."); }
	        }
	        internal static string Excep_CannotRemoveFromEmptyCollection {
	              get { return SR.GetResourceString("Excep_CannotRemoveFromEmptyCollection", @"Cannot remove from empty collection."); }
	        }
	        internal static string Excep_IndexLargerThanMaxValue {
	              get { return SR.GetResourceString("Excep_IndexLargerThanMaxValue", @"Index larger than max value."); }
	        }
	        internal static string Excep_IndexOutOfRange {
	              get { return SR.GetResourceString("Excep_IndexOutOfRange", @"The specified index is outside the current index range of this collection."); }
	        }
	        internal static string Excep_AddingDuplicate {
	              get { return SR.GetResourceString("Excep_AddingDuplicate", @"Adding duplicate."); }
	        }
	        internal static string Excep_FromHResult {
	              get { return SR.GetResourceString("Excep_FromHResult", @"Exception from HRESULT:"); }
	        }
	        internal static string Excep_InvalidMarshalAs_Param {
	              get { return SR.GetResourceString("Excep_InvalidMarshalAs_Param", @"Incompatible MarshalAs detected in parameter named '{0}'. Please refer to MCG's warning message for more information."); }
	        }
	        internal static string Excep_InvalidMarshalAs_Field {
	              get { return SR.GetResourceString("Excep_InvalidMarshalAs_Field", @"Incompatible MarshalAs detected in field named '{0}'. Please refer to MCG's warning message for more information."); }
	        }
	        internal static string Excep_InvalidMarshalAs_Return {
	              get { return SR.GetResourceString("Excep_InvalidMarshalAs_Return", @"Incompatible MarshalAs detected in return value. Please refer to MCG's warning message for more information."); }
	        }
	        internal static string Excep_InvalidComObject_NoRCW_Wrapper {
	              get { return SR.GetResourceString("Excep_InvalidComObject_NoRCW_Wrapper", @"COM object that has been separated from its underlying RCW cannot be used."); }
	        }
	        internal static string StructMarshalling_MissingInteropData {
	              get { return SR.GetResourceString("StructMarshalling_MissingInteropData", @"{0} is missing structure marshalling data. To enable structure marshalling data, add a MarshalStructure directive to the application rd.xml file. For more information, please visit http://go.microsoft.com/fwlink/?LinkID=393965"); }
	        }
	        internal static string DelegateMarshalling_MissingInteropData {
	              get { return SR.GetResourceString("DelegateMarshalling_MissingInteropData", @"{0} is missing delegate marshalling data. To enable delegate marshalling data, add a MarshalDelegate directive to the application rd.xml file. For more information, please visit http://go.microsoft.com/fwlink/?LinkID=393965"); }
	        }
	        internal static string ComTypeMarshalling_MissingInteropData {
	              get { return SR.GetResourceString("ComTypeMarshalling_MissingInteropData", @"{0} is missing COM type marshalling data. To enable COM type marshalling data, add a MarshalObject directive to the application rd.xml file. For more information, please visit http://go.microsoft.com/fwlink/?LinkID=393965"); }
	        }
	        internal static string Not_Enough_Thunks {
	              get { return SR.GetResourceString("Not_Enough_Thunks", @"The maximum number of live delegates have been marshaled to function pointers. More aggressively freeing delegate instances that have been marshaled may resolve this problem. Please notify Microsoft that you have encountered this error."); }
	        }
	        internal static string Arg_NativeToManagedCall {
	              get { return SR.GetResourceString("Arg_NativeToManagedCall", @"Function has a parameter or return value of SafeHandle. Marshalling between a Windows HANDLE and .NET SafeHandle is not supported when a method is called from native code."); }
	        }
	        internal static string Arg_NeedsDefaultCtor {
	              get { return SR.GetResourceString("Arg_NeedsDefaultCtor", @"'{0}' does not have a default constructor. Subclasses of SafeHandle must have a default constructor to support marshaling a Windows HANDLE into managed code."); }
	        }
	        internal static string Arg_OutSafeHandleAsFieldNotSupported {
	              get { return SR.GetResourceString("Arg_OutSafeHandleAsFieldNotSupported", @"Marshalling a Windows HANDLE to .NET SafeHandle within a structure field is not currently supported."); }
	        }
	        internal static string PropertyValue_InvalidCoersion {
	              get { return SR.GetResourceString("PropertyValue_InvalidCoersion", @"Object in an IPropertyValue is of type '{0}' with value '{1}', which cannot be converted to a '{2}'."); }
	        }
	        internal static string PropertyValue_InvalidCast {
	              get { return SR.GetResourceString("PropertyValue_InvalidCast", @"Object in an IPropertyValue is of type '{0}', which cannot be converted to a '{1}'."); }
	        }
	        internal static string Arg_MustBeDelegateType {
	              get { return SR.GetResourceString("Arg_MustBeDelegateType", @"Type must derive from Delegate."); }
	        }
	        internal static string Arg_CriticalHandleCannotBeAbstract {
	              get { return SR.GetResourceString("Arg_CriticalHandleCannotBeAbstract", @"'{0}' is abstract. CriticalHandle types must not be abstract to support marshaling CriticalHandles into managed code."); }
	        }
	        internal static string Arg_CriticalHandleMustHaveDefaultCtor {
	              get { return SR.GetResourceString("Arg_CriticalHandleMustHaveDefaultCtor", @"'{0}' does not have a default constructor. CriticalHandle types must have a default constructor to support marshaling CriticalHandles into managed code."); }
	        }
	        internal static string Arg_CriticalHandleReverse {
	              get { return SR.GetResourceString("Arg_CriticalHandleReverse", @"CriticalHandle types cannot be used in signatures of methods called from native code."); }
	        }
	        internal static string Arg_OutCriticalHandleAsFieldNotSupported {
	              get { return SR.GetResourceString("Arg_OutCriticalHandleAsFieldNotSupported", @"Marshalling a Windows HANDLE to .NET CriticalHandle within a structure field is not currently supported."); }
	        }

	    }
	}

	// The StartupCodeTrigger class is used to initialize various framework components
	// and the individual module constructors using IL code injected into initializeMethod
	// in the StartupCodeInjector transform.
	public static partial class StartupCodeTrigger
	{
		static int s_initialized;
		// Actual code for this method will be injected by the StartupCodeInjectorTransform.
		// It will look something like:
		// DeveloperExperienceConnector.Initialize();
		// Internal.WinRT.Interop.WinRTCallback.Initialize();
		// Eager cctor calls followed by module cctors;
		static void InternalInitialize()
		{
		}

		public static void Initialize()
		{
			if (s_initialized != 2)
				if (global::System.Threading.Interlocked.CompareExchange(
									ref s_initialized, 
									1, 
									0
								) == 0)
				{
					InternalInitialize();
					global::System.Threading.Volatile.Write(
										ref s_initialized, 
										2
									);
				}
				else
					while (global::System.Threading.Volatile.Read(ref s_initialized) != 2)
					{
						global::System.Runtime.InteropServices.SpinWaitExtensions.Yield();
					}
		}
	}
}

namespace McgInterop
{
	internal static partial class Toolbox
	{
	    /// These shared CCW thunk functions can't be put into InternalApis\RH\Include\global::McgInterop.McgHelpers.cs due to dependency on EnumeratorToIteratorAdapter or global::Windows.Foundation.Collections.IIterator<T>
	    /// 
	    /// <summary>
	    /// SharedCCW support: Static thunk function for calling methods on IIterator<T>
	    /// </summary>
	    public static object IEnumerableThunk<T>(System.Collections.Generic.IEnumerable<T> enumerable)
	    {
	        return new IIteratorOfT_PrivateCCWAdapter<T>(enumerable.GetEnumerator());
	    }
	}

	#if MCG_WINRT_SUPPORTED

	internal static partial class Toolbox
	{
	    /// These shared CCW thunk functions can't be put into InternalApis\RH\Include\global::McgInterop.McgHelpers.cs due to dependency on EnumeratorToIteratorAdapter or global::Windows.Foundation.Collections.IIterator<T>

	    /// <summary>
	    /// SharedCCW support: Static thunk function for calling methods on IIterator<T>
	    /// </summary>
	    public static int IIteratorThunk<T>(Windows.Foundation.Collections.IIterator<T> it, global::System.Runtime.InteropServices.Toolbox.IIterator_Oper oper, ref object item, int len) where T : class
	    {
	        int result = 0;

	        switch (oper)
	        {
	            case global::System.Runtime.InteropServices.Toolbox.IIterator_Oper.get_Current:
	                item = it.get_Current();
	                break;

	            case global::System.Runtime.InteropServices.Toolbox.IIterator_Oper.get_HasCurrent:
	                if (it.get_HasCurrent())
	                {
	                    result = 1;
	                }
	                break;

	            case global::System.Runtime.InteropServices.Toolbox.IIterator_Oper.MoveNext:
	                if (it.MoveNext())
	                {
	                    result = 1;
	                }
	                break;

	            case global::System.Runtime.InteropServices.Toolbox.IIterator_Oper.GetMany:
	                {
	                    T[] array = new T[len];

	                    result = (int)it.GetMany(array);

	                    item = array;
	                }
	                break;

	            default:
	                //Debug.Assert(false, "IIteratorThunk wrong oper");
	                break;
	        }

	        return result;
	    }

	    /// <summary>
	    /// SharedCCW support: Static thunk function for calling methods on IIterator<T>
	    /// </summary>
	    public static global::System.Array IIteratorBlittableThunk<T>(Windows.Foundation.Collections.IIterator<T> it, global::System.Runtime.InteropServices.Toolbox.IIterator_Oper oper, ref T item, ref int len) where T : struct
	    {
	        global::System.Array result = null;

	        switch (oper)
	        {
	            case global::System.Runtime.InteropServices.Toolbox.IIterator_Oper.get_Current:
	                item = it.get_Current();
	                break;

	            case global::System.Runtime.InteropServices.Toolbox.IIterator_Oper.get_HasCurrent:
	                if (it.get_HasCurrent())
	                {
	                    len = 1;
	                }
	                break;

	            case global::System.Runtime.InteropServices.Toolbox.IIterator_Oper.MoveNext:
	                if (it.MoveNext())
	                {
	                    len = 1;
	                }
	                break;

	            case global::System.Runtime.InteropServices.Toolbox.IIterator_Oper.GetMany:
	                {
	                    T[] array = new T[len];

	                    len = (int) it.GetMany(array);

	                    result = array;
	                }
	                break;

	            default:
	                //Debug.Assert(false, "IIteratorThunk wrong oper");
	                break;
	        }

	        return result;
	    }


	    /// <summary>
	    /// SharedCCW support: Static thunk function for calling Invoke method on global::Windows.Foundation.AsyncOperationCompletedHandler<T>
	    /// </summary>
	    public static int AsyncOperationCompletedHandlerThunk<T>(
	        global::Windows.Foundation.AsyncOperationCompletedHandler<T> handler, 
	        global::Windows.Foundation.IAsyncOperation<T> asyncInfo, 
	        global::Windows.Foundation.AsyncStatus asyncStatus
	        )
	    {
	        handler.Invoke(asyncInfo, asyncStatus);

	        return 0;
	    }
	}
	#endif

	[global::System.AttributeUsage(System.AttributeTargets.Method)]
	internal class McgGeneratedNativeCallCodeAttribute : global::System.Attribute
	{
	}

	[global::System.Runtime.InteropServices.McgIntrinsics]
	internal unsafe static partial class Intrinsics
	{
		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static global::System.IntPtr VirtualAddrOf<T>(
					object _this, 
					int __targetIndex)
		{
			return default(global::System.IntPtr);
		}

		internal static string HasThisCall__Func_string__(
					object __this, 
					global::System.IntPtr pfn)
		{
			// This method is implemented elsewhere in the toolchain
			return default(string);
		}

		internal static global::System.IntPtr AddrOf<T>(T ftn)
		{
			// This method is implemented elsewhere in the toolchain
			return default(global::System.IntPtr);
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					global::System.Type__Impl.UnsafeType arg1, 
					void* arg2, 
					global::System.Runtime.InteropServices.HSTRING arg3, 
					void* arg4)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static object HasThisCall__Func_object__Type__object__string__object__(
					object __this, 
					global::System.IntPtr pfn, 
					object arg0, 
					global::System.Type arg1, 
					object arg2, 
					string arg3)
		{
			// This method is implemented elsewhere in the toolchain
			return default(object);
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::System.IntPtr arg0, 
					void* arg1, 
					void* arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					void* arg1, 
					int arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static void HasThisCall__Proc_TArg0__<TArg0>(
					object __this, 
					global::System.IntPtr pfn, 
					TArg0 arg0)
		{
			// This method is implemented elsewhere in the toolchain
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					int arg0)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					void* arg1)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken arg0)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static void HasThisCall__Proc_object__TArg0__<TArg0>(
					object __this, 
					global::System.IntPtr pfn, 
					object arg0, 
					TArg0 arg1)
		{
			// This method is implemented elsewhere in the toolchain
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::Windows.Foundation.Point arg0, 
					global::Windows.Foundation.Rect arg1, 
					void* arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					int arg0, 
					void* arg1)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::Windows.Foundation.Point arg0, 
					void* arg1)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					uint arg0, 
					void* arg1, 
					void* arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static void HasThisCall__Proc_TArg0__TArg1__<TArg0, TArg1>(
					object __this, 
					global::System.IntPtr pfn, 
					TArg0 arg0, 
					TArg1 arg1)
		{
			// This method is implemented elsewhere in the toolchain
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					double arg0)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::Windows.UI.Xaml.Thickness arg0)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::System.Runtime.InteropServices.HSTRING arg0)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::Windows.Foundation.Size arg0, 
					void* arg1)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::System.Runtime.InteropServices.HSTRING arg0, 
					sbyte arg1, 
					void* arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static void HasThisCall__Proc_TArg0__object__<TArg0>(
					object __this, 
					global::System.IntPtr pfn, 
					TArg0 arg0, 
					object arg1)
		{
			// This method is implemented elsewhere in the toolchain
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::System.Runtime.InteropServices.HSTRING arg0, 
					void* arg1)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					int arg1)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::Windows.UI.Xaml.GridLength arg0)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					void* arg1, 
					void* arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					uint arg1, 
					void* arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					sbyte arg0)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					sbyte arg1)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static TResult HasThisCall__Func_string__TResult__<TResult>(
					object __this, 
					global::System.IntPtr pfn, 
					string arg0)
		{
			// This method is implemented elsewhere in the toolchain
			return default(TResult);
		}

		internal static TResult HasThisCall__Func_TResult__<TResult>(
					object __this, 
					global::System.IntPtr pfn)
		{
			// This method is implemented elsewhere in the toolchain
			return default(TResult);
		}

		internal static bool HasThisCall__Func_bool__(
					object __this, 
					global::System.IntPtr pfn)
		{
			// This method is implemented elsewhere in the toolchain
			return default(bool);
		}

		internal static object HasThisCall__Func_string__object__(
					object __this, 
					global::System.IntPtr pfn, 
					string arg0)
		{
			// This method is implemented elsewhere in the toolchain
			return default(object);
		}

		internal static void HasThisCall__Proc_object__object__(
					object __this, 
					global::System.IntPtr pfn, 
					object arg0, 
					object arg1)
		{
			// This method is implemented elsewhere in the toolchain
		}

		internal static void HasThisCall__Proc_(
					object __this, 
					global::System.IntPtr pfn)
		{
			// This method is implemented elsewhere in the toolchain
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					int arg0, 
					void* arg1, 
					void* arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::System.Runtime.InteropServices.HSTRING arg0, 
					global::System.Runtime.InteropServices.HSTRING arg1, 
					void* arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::System.Runtime.InteropServices.HSTRING arg0, 
					void* arg1, 
					int arg2, 
					void* arg3)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					global::System.TimeSpan arg1, 
					void* arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					ulong arg0, 
					void* arg1)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::System.Runtime.InteropServices.HSTRING arg0, 
					int arg1, 
					void* arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					ulong arg0)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static ulong HasThisCall__Func_ulong__(
					object __this, 
					global::System.IntPtr pfn)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static void HasThisCall__Proc_ulong__(
					object __this, 
					global::System.IntPtr pfn, 
					ulong arg0)
		{
			// This method is implemented elsewhere in the toolchain
		}

		internal static TResult HasThisCall__Func_ulong__TResult__<TResult>(
					object __this, 
					global::System.IntPtr pfn, 
					ulong arg0)
		{
			// This method is implemented elsewhere in the toolchain
			return default(TResult);
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					uint arg1, 
					global::Windows.Storage.Streams.InputStreamOptions arg2, 
					void* arg3)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					uint arg0)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static uint HasThisCall__Func_uint__(
					object __this, 
					global::System.IntPtr pfn)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static void HasThisCall__Proc_uint__(
					object __this, 
					global::System.IntPtr pfn, 
					uint arg0)
		{
			// This method is implemented elsewhere in the toolchain
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					uint arg1)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static void HasThisCall__Proc_TArg0__uint__<TArg0>(
					object __this, 
					global::System.IntPtr pfn, 
					TArg0 arg0, 
					uint arg1)
		{
			// This method is implemented elsewhere in the toolchain
		}

		internal static void HasThisCall__Proc_TArg0___AsyncStatus__<TArg0>(
					object __this, 
					global::System.IntPtr pfn, 
					TArg0 arg0, 
					global::Windows.Foundation.AsyncStatus arg1)
		{
			// This method is implemented elsewhere in the toolchain
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::System.Type__Impl.UnsafeType arg0, 
					void* arg1, 
					void* arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					int arg0, 
					void* arg1, 
					global::System.Runtime.InteropServices.HSTRING arg2, 
					void* arg3)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					int arg0, 
					uint arg1, 
					uint arg2, 
					void* arg3)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::System.Runtime.InteropServices.HSTRING arg0, 
					void* arg1, 
					void* arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					global::System.Runtime.InteropServices.HSTRING arg1, 
					void* arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					byte arg0)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					uint arg0, 
					void* arg1)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::Windows.Graphics.Display.DisplayOrientations arg0)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::Windows.Storage.Streams.InputStreamOptions arg0)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::System.Guid arg0, 
					void* arg1, 
					void* arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					int arg0, 
					int arg1, 
					void* arg2, 
					int arg3, 
					int arg4, 
					void* arg5)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					int arg1, 
					global::Windows.System.Threading.WorkItemOptions arg2, 
					void* arg3)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					int arg0, 
					int arg1, 
					global::System.Guid arg2, 
					ulong arg3, 
					global::System.Runtime.InteropServices.HSTRING arg4, 
					ulong arg5)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					int arg0, 
					int arg1, 
					global::System.Guid arg2, 
					ulong arg3, 
					int arg4)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					int arg0, 
					int arg1, 
					int arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					int arg1, 
					void* arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					ulong arg1)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					global::Windows.Web.Http.HttpProgress__Impl.UnsafeType arg1)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					global::System.IntPtr arg1, 
					uint arg2, 
					global::System.IntPtr arg3, 
					uint arg4, 
					void* arg5)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::System.IntPtr arg0, 
					void* arg1, 
					global::System.IntPtr arg2, 
					uint arg3, 
					global::System.IntPtr arg4, 
					uint arg5)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::System.IntPtr arg0)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					int arg0, 
					void* arg1, 
					int arg2, 
					void* arg3)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					int arg1, 
					short arg2, 
					void* arg3, 
					global::System.IntPtr arg4, 
					global::System.IntPtr arg5, 
					void* arg6)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					int arg0, 
					void* arg1, 
					void* arg2, 
					void* arg3, 
					void* arg4)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					int arg0, 
					global::System.Runtime.InteropServices.ComTypes.INVOKEKIND__System_Private_Interop arg1, 
					global::System.IntPtr arg2, 
					global::System.IntPtr arg3, 
					global::System.IntPtr arg4)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					int arg0, 
					global::System.Runtime.InteropServices.ComTypes.INVOKEKIND__System_Private_Interop arg1, 
					void* arg2)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static void StdCall__void__(
					global::System.IntPtr pfn, 
					void* pthis, 
					global::System.IntPtr arg0)
		{
			// This method is implemented elsewhere in the toolchain
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					int arg1, 
					short arg2, 
					void* arg3, 
					void* arg4, 
					void* arg5)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					int arg1, 
					void* arg2, 
					void* arg3)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}

		internal static int StdCall__int__(
					global::System.IntPtr pfn, 
					void* pthis, 
					void* arg0, 
					int arg1, 
					void* arg2, 
					void* arg3, 
					void* arg4)
		{
			// This method is implemented elsewhere in the toolchain
			return 0;
		}
	}

	[global::System.Runtime.InteropServices.McgIntrinsics]
	internal unsafe static partial class AddrOfIntrinsics
	{
		public delegate int AddrOfTarget0(
					global::System.IntPtr a0, 
					global::System.IntPtr a1, 
					global::System.IntPtr a2);

		public delegate int AddrOfTarget1(
					global::System.IntPtr a0, 
					global::System.IntPtr a1);

		public delegate int AddrOfTarget2(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.HSTRING* a1);

		public delegate int AddrOfTarget3(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::System.Type__Impl.UnsafeType a2, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a3, 
					global::System.Runtime.InteropServices.HSTRING a4, 
					global::System.Runtime.InteropServices.__vtable_IInspectable** a5);

		public delegate void AddrOfTarget4(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.ApplicationInitializationCallbackParams a1);

		public delegate int AddrOfTarget5(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.IApplicationInitializationCallbackParams__Impl.Vtbl** a1);

		public delegate void AddrOfTarget6(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.UnhandledExceptionEventArgs a2);

		public delegate void AddrOfTarget7(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.ApplicationModel.SuspendingEventArgs a2);

		public delegate void AddrOfTarget8(
					global::System.__ComObject a0, 
					object a1, 
					object a2);

		public delegate int AddrOfTarget9(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.IUnhandledExceptionEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget10(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.ApplicationModel.ISuspendingEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget11(
					global::System.IntPtr a0, 
					global::Windows.ApplicationModel.Activation.IActivatedEventArgs__Impl.Vtbl** a1);

		public delegate int AddrOfTarget12(
					global::System.IntPtr a0, 
					global::Windows.ApplicationModel.Activation.ILaunchActivatedEventArgs__Impl.Vtbl** a1);

		public delegate int AddrOfTarget13(
					global::System.IntPtr a0, 
					global::Windows.ApplicationModel.Activation.IFileActivatedEventArgs__Impl.Vtbl** a1);

		public delegate int AddrOfTarget14(
					global::System.IntPtr a0, 
					global::Windows.ApplicationModel.Activation.ISearchActivatedEventArgs__Impl.Vtbl** a1);

		public delegate int AddrOfTarget15(
					global::System.IntPtr a0, 
					global::Windows.ApplicationModel.Activation.IShareTargetActivatedEventArgs__Impl.Vtbl** a1);

		public delegate int AddrOfTarget16(
					global::System.IntPtr a0, 
					global::Windows.ApplicationModel.Activation.IFileOpenPickerActivatedEventArgs__Impl.Vtbl** a1);

		public delegate int AddrOfTarget17(
					global::System.IntPtr a0, 
					global::Windows.ApplicationModel.Activation.IFileSavePickerActivatedEventArgs__Impl.Vtbl** a1);

		public delegate int AddrOfTarget18(
					global::System.IntPtr a0, 
					global::Windows.ApplicationModel.Activation.ICachedFileUpdaterActivatedEventArgs__Impl.Vtbl** a1);

		public delegate int AddrOfTarget19(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.IWindowCreatedEventArgs__Impl.Vtbl** a1);

		public delegate void AddrOfTarget20(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.ApplicationModel.LeavingBackgroundEventArgs a2);

		public delegate void AddrOfTarget21(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.ApplicationModel.EnteredBackgroundEventArgs a2);

		public delegate int AddrOfTarget22(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.ApplicationModel.ILeavingBackgroundEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget23(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.ApplicationModel.IEnteredBackgroundEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget24(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Input.KeyRoutedEventArgs a2);

		public delegate void AddrOfTarget25(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.RoutedEventArgs a2);

		public delegate void AddrOfTarget26(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.DragEventArgs a2);

		public delegate void AddrOfTarget27(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Input.PointerRoutedEventArgs a2);

		public delegate void AddrOfTarget28(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Input.TappedRoutedEventArgs a2);

		public delegate void AddrOfTarget29(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Input.DoubleTappedRoutedEventArgs a2);

		public delegate void AddrOfTarget30(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Input.HoldingRoutedEventArgs a2);

		public delegate void AddrOfTarget31(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Input.RightTappedRoutedEventArgs a2);

		public delegate void AddrOfTarget32(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Input.ManipulationStartingRoutedEventArgs a2);

		public delegate void AddrOfTarget33(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Input.ManipulationInertiaStartingRoutedEventArgs a2);

		public delegate void AddrOfTarget34(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Input.ManipulationStartedRoutedEventArgs a2);

		public delegate void AddrOfTarget35(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Input.ManipulationDeltaRoutedEventArgs a2);

		public delegate void AddrOfTarget36(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Input.ManipulationCompletedRoutedEventArgs a2);

		public delegate int AddrOfTarget37(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Input.IKeyRoutedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget38(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.IRoutedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget39(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.IDragEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget40(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Input.IPointerRoutedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget41(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Input.ITappedRoutedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget42(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Input.IDoubleTappedRoutedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget43(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Input.IHoldingRoutedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget44(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Input.IRightTappedRoutedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget45(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Input.IManipulationStartingRoutedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget46(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Input.IManipulationInertiaStartingRoutedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget47(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Input.IManipulationStartedRoutedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget48(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Input.IManipulationDeltaRoutedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget49(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Input.IManipulationCompletedRoutedEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget50(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.UIElement a1, 
					global::Windows.UI.Xaml.DragStartingEventArgs a2);

		public delegate void AddrOfTarget51(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.UIElement a1, 
					global::Windows.UI.Xaml.DropCompletedEventArgs a2);

		public delegate int AddrOfTarget52(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.IUIElement__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.IDragStartingEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget53(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.IUIElement__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.IDropCompletedEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget54(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.UIElement a1, 
					global::Windows.UI.Xaml.Input.ContextRequestedEventArgs a2);

		public delegate void AddrOfTarget55(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.UIElement a1, 
					global::Windows.UI.Xaml.RoutedEventArgs a2);

		public delegate void AddrOfTarget56(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.UIElement a1, 
					global::Windows.UI.Xaml.Input.AccessKeyDisplayRequestedEventArgs a2);

		public delegate void AddrOfTarget57(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.UIElement a1, 
					global::Windows.UI.Xaml.Input.AccessKeyDisplayDismissedEventArgs a2);

		public delegate void AddrOfTarget58(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.UIElement a1, 
					global::Windows.UI.Xaml.Input.AccessKeyInvokedEventArgs a2);

		public delegate int AddrOfTarget59(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.IUIElement__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.Input.IContextRequestedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget60(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.IUIElement__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.IRoutedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget61(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.IUIElement__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.Input.IAccessKeyDisplayRequestedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget62(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.IUIElement__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.Input.IAccessKeyDisplayDismissedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget63(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.IUIElement__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.Input.IAccessKeyInvokedEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget64(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.SizeChangedEventArgs a2);

		public delegate int AddrOfTarget65(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.ISizeChangedEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget66(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.FrameworkElement a1, 
					global::Windows.UI.Xaml.DataContextChangedEventArgs a2);

		public delegate int AddrOfTarget67(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.IFrameworkElement__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.IDataContextChangedEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget68(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.FrameworkElement a1, 
					object a2);

		public delegate int AddrOfTarget69(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.IFrameworkElement__Impl.Vtbl** a1, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a2);

		public delegate void AddrOfTarget70(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.DependencyPropertyChangedEventArgs a2);

		public delegate int AddrOfTarget71(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.IDependencyPropertyChangedEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget72(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.Controls.Control a1, 
					global::Windows.UI.Xaml.Controls.FocusEngagedEventArgs a2);

		public delegate void AddrOfTarget73(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.Controls.Control a1, 
					global::Windows.UI.Xaml.Controls.FocusDisengagedEventArgs a2);

		public delegate int AddrOfTarget74(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.Controls.IControl__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.Controls.IFocusEngagedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget75(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.Controls.IControl__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.Controls.IFocusDisengagedEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget76(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Controls.ContextMenuEventArgs a2);

		public delegate int AddrOfTarget77(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Controls.IContextMenuEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget78(
					global::System.__ComObject a0, 
					global::Windows.Foundation.Collections.IObservableVector<object> a1, 
					global::Windows.Foundation.Collections.IVectorChangedEventArgs a2);

		public delegate int AddrOfTarget79(
					global::System.IntPtr a0, 
					global::Windows.Foundation.Collections.IObservableVector_A_System_Object_V___Impl.Vtbl** a1, 
					global::Windows.Foundation.Collections.IVectorChangedEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget80(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Controls.SelectionChangedEventArgs a2);

		public delegate int AddrOfTarget81(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Controls.ISelectionChangedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget82(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Controls.IScrollViewerViewChangedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget83(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Controls.IScrollViewerViewChangingEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget84(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Controls.TextChangedEventArgs a2);

		public delegate int AddrOfTarget85(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Controls.ITextChangedEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget86(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Controls.TextControlPasteEventArgs a2);

		public delegate int AddrOfTarget87(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Controls.ITextControlPasteEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget88(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.Controls.TextBox a1, 
					global::Windows.UI.Xaml.Controls.TextCompositionStartedEventArgs a2);

		public delegate void AddrOfTarget89(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.Controls.TextBox a1, 
					global::Windows.UI.Xaml.Controls.TextCompositionChangedEventArgs a2);

		public delegate void AddrOfTarget90(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.Controls.TextBox a1, 
					global::Windows.UI.Xaml.Controls.TextCompositionEndedEventArgs a2);

		public delegate void AddrOfTarget91(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.Controls.TextBox a1, 
					global::Windows.UI.Xaml.Controls.CandidateWindowBoundsChangedEventArgs a2);

		public delegate void AddrOfTarget92(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.Controls.TextBox a1, 
					global::Windows.UI.Xaml.Controls.TextBoxTextChangingEventArgs a2);

		public delegate int AddrOfTarget93(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.Controls.ITextBox__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.Controls.ITextCompositionStartedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget94(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.Controls.ITextBox__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.Controls.ITextCompositionChangedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget95(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.Controls.ITextBox__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.Controls.ITextCompositionEndedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget96(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.Controls.ITextBox__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.Controls.ICandidateWindowBoundsChangedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget97(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.Controls.ITextBox__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.Controls.ITextBoxTextChangingEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget98(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.VisualStateChangedEventArgs a2);

		public delegate int AddrOfTarget99(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.IVisualStateChangedEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget100(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.Controls.SplitView a1, 
					global::Windows.UI.Xaml.Controls.SplitViewPaneClosingEventArgs a2);

		public delegate void AddrOfTarget101(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.Controls.SplitView a1, 
					object a2);

		public delegate int AddrOfTarget102(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.Controls.ISplitView__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.Controls.ISplitViewPaneClosingEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget103(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.Controls.ISplitView__Impl.Vtbl** a1, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a2);

		public delegate void AddrOfTarget104(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Controls.ItemClickEventArgs a2);

		public delegate void AddrOfTarget105(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Controls.DragItemsStartingEventArgs a2);

		public delegate int AddrOfTarget106(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Controls.IItemClickEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget107(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Controls.IDragItemsStartingEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget108(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.Controls.ListViewBase a1, 
					global::Windows.UI.Xaml.Controls.ContainerContentChangingEventArgs a2);

		public delegate int AddrOfTarget109(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.Controls.IListViewBase__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.Controls.IContainerContentChangingEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget110(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.Controls.ListViewBase a1, 
					global::Windows.UI.Xaml.Controls.DragItemsCompletedEventArgs a2);

		public delegate void AddrOfTarget111(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.Controls.ListViewBase a1, 
					global::Windows.UI.Xaml.Controls.ChoosingItemContainerEventArgs a2);

		public delegate void AddrOfTarget112(
					global::System.__ComObject a0, 
					global::Windows.UI.Xaml.Controls.ListViewBase a1, 
					global::Windows.UI.Xaml.Controls.ChoosingGroupHeaderContainerEventArgs a2);

		public delegate int AddrOfTarget113(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.Controls.IListViewBase__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.Controls.IDragItemsCompletedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget114(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.Controls.IListViewBase__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.Controls.IChoosingItemContainerEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget115(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.Controls.IListViewBase__Impl.Vtbl** a1, 
					global::Windows.UI.Xaml.Controls.IChoosingGroupHeaderContainerEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget116(
					global::System.IntPtr a0, 
					global::System.Type__Impl.UnsafeType a1, 
					global::Windows.UI.Xaml.Markup.IXamlType__Impl.Vtbl*** a2);

		public delegate int AddrOfTarget117(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.HSTRING a1, 
					global::Windows.UI.Xaml.Markup.IXamlType__Impl.Vtbl*** a2);

		public delegate int AddrOfTarget118(
					global::System.IntPtr a0, 
					uint* a1, 
					global::Windows.UI.Xaml.Markup.XmlnsDefinition__Impl.UnsafeType** a2);

		public delegate int AddrOfTarget119(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.Markup.IXamlType__Impl.Vtbl*** a1);

		public delegate int AddrOfTarget120(
					global::System.IntPtr a0, 
					global::Windows.UI.Xaml.Markup.IXamlMember__Impl.Vtbl*** a1);

		public delegate int AddrOfTarget121(
					global::System.IntPtr a0, 
					sbyte* a1);

		public delegate int AddrOfTarget122(
					global::System.IntPtr a0, 
					global::System.Type__Impl.UnsafeType* a1);

		public delegate int AddrOfTarget123(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable** a1);

		public delegate int AddrOfTarget124(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.HSTRING a1, 
					global::System.Runtime.InteropServices.__vtable_IInspectable** a2);

		public delegate int AddrOfTarget125(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.HSTRING a1, 
					global::Windows.UI.Xaml.Markup.IXamlMember__Impl.Vtbl*** a2);

		public delegate int AddrOfTarget126(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a2);

		public delegate int AddrOfTarget127(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a2, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a3);

		public delegate int AddrOfTarget128(global::System.IntPtr a0);

		public delegate int AddrOfTarget129(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::System.Runtime.InteropServices.__vtable_IInspectable** a2);

		public delegate int AddrOfTarget130(
					global::System.IntPtr a0, 
					int a1, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a2);

		public delegate int AddrOfTarget131(
					global::System.IntPtr a0, 
					int a1, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a2, 
					global::Windows.UI.Xaml.Markup.IComponentConnector__Impl.Vtbl*** a3);

		public delegate void AddrOfTarget132(
					global::System.__ComObject a0, 
					global::Windows.ApplicationModel.Core.CoreApplicationView a1, 
					global::Windows.ApplicationModel.Activation.IActivatedEventArgs a2);

		public delegate void AddrOfTarget133(global::System.__ComObject a0);

		public delegate int AddrOfTarget134(
					global::System.IntPtr a0, 
					global::Windows.ApplicationModel.Core.ICoreApplicationView__Impl.Vtbl** a1, 
					global::Windows.ApplicationModel.Activation.IActivatedEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget135(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.ApplicationModel.Activation.BackgroundActivatedEventArgs a2);

		public delegate void AddrOfTarget136(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.ApplicationModel.Core.UnhandledErrorDetectedEventArgs a2);

		public delegate int AddrOfTarget137(
					global::System.IntPtr a0, 
					uint* a1);

		public delegate int AddrOfTarget138(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.HSTRING a1, 
					sbyte* a2);

		public delegate int AddrOfTarget139(
					global::System.IntPtr a0, 
					global::System.Collections.Generic.IReadOnlyDictionary_A_string_j_System_Object_V___Impl.Vtbl*** a1);

		public delegate int AddrOfTarget140(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.HSTRING a1, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a2, 
					sbyte* a3);

		public delegate int AddrOfTarget141(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.HSTRING a1);

		public delegate int AddrOfTarget142(
					global::System.IntPtr a0, 
					global::System.Collections.Generic.KeyValuePair_A_string_j_System_Object_V___Impl.Vtbl*** a1);

		public delegate int AddrOfTarget143(
					global::System.IntPtr a0, 
					uint a1, 
					global::System.Collections.Generic.KeyValuePair_A_string_j_System_Object_V___Impl.Vtbl*** a2, 
					uint* a3);

		public delegate int AddrOfTarget144(
					global::System.IntPtr a0, 
					global::System.Collections.Generic.IReadOnlyDictionary_A_string_j_System_Object_V___Impl.Vtbl*** a1, 
					global::System.Collections.Generic.IReadOnlyDictionary_A_string_j_System_Object_V___Impl.Vtbl*** a2);

		public delegate int AddrOfTarget145(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.HSTRING a1, 
					global::System.Runtime.InteropServices.HSTRING* a2);

		public delegate int AddrOfTarget146(
					global::System.IntPtr a0, 
					global::System.Collections.Generic.IReadOnlyDictionary_A_string_j_string_V___Impl.Vtbl*** a1);

		public delegate int AddrOfTarget147(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.HSTRING a1, 
					global::System.Runtime.InteropServices.HSTRING a2, 
					sbyte* a3);

		public delegate int AddrOfTarget148(
					global::System.IntPtr a0, 
					global::System.Collections.Generic.KeyValuePair_A_string_j_string_V___Impl.Vtbl*** a1);

		public delegate int AddrOfTarget149(
					global::System.IntPtr a0, 
					uint a1, 
					global::System.Collections.Generic.KeyValuePair_A_string_j_string_V___Impl.Vtbl*** a2, 
					uint* a3);

		public delegate void AddrOfTarget150(
					global::System.__ComObject a0, 
					global::Windows.Devices.Enumeration.DeviceWatcher a1, 
					global::Windows.Devices.Enumeration.DeviceInformation a2);

		public delegate void AddrOfTarget151(
					global::System.__ComObject a0, 
					global::Windows.Devices.Enumeration.DeviceWatcher a1, 
					global::Windows.Devices.Enumeration.DeviceInformationUpdate a2);

		public delegate void AddrOfTarget152(
					global::System.__ComObject a0, 
					global::Windows.Devices.Enumeration.DeviceWatcher a1, 
					object a2);

		public delegate void AddrOfTarget153(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperation<global::Windows.Devices.Enumeration.DeviceInformationCollection> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate void AddrOfTarget154(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperation<global::Windows.Devices.Enumeration.DevicePairingResult> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate int AddrOfTarget155(
					global::System.IntPtr a0, 
					global::Windows.Devices.Enumeration.IDeviceWatcher__Impl.Vtbl** a1, 
					global::Windows.Devices.Enumeration.IDeviceInformation__Impl.Vtbl** a2);

		public delegate int AddrOfTarget156(
					global::System.IntPtr a0, 
					global::Windows.Devices.Enumeration.IDeviceWatcher__Impl.Vtbl** a1, 
					global::Windows.Devices.Enumeration.IDeviceInformationUpdate__Impl.Vtbl** a2);

		public delegate int AddrOfTarget157(
					global::System.IntPtr a0, 
					global::Windows.Devices.Enumeration.IDeviceWatcher__Impl.Vtbl** a1, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a2);

		public delegate void AddrOfTarget158(
					global::System.__ComObject a0, 
					global::Windows.System.Threading.ThreadPoolTimer a1);

		public delegate int AddrOfTarget159(
					global::System.IntPtr a0, 
					global::Windows.System.Threading.IThreadPoolTimer__Impl.Vtbl** a1);

		public delegate void AddrOfTarget160(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperation<global::Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate void AddrOfTarget161(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperation<global::Windows.Devices.Bluetooth.BluetoothLEDevice> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate void AddrOfTarget162(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperation<global::Windows.Storage.StorageFile> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate void AddrOfTarget163(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperation<global::Windows.Storage.FileProperties.BasicProperties> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate int AddrOfTarget164(
					global::System.IntPtr a0, 
					ulong* a1);

		public delegate int AddrOfTarget165(
					global::System.IntPtr a0, 
					ulong a1);

		public delegate int AddrOfTarget166(
					global::System.IntPtr a0, 
					ulong a1, 
					global::Windows.Storage.Streams.IInputStream__Impl.Vtbl*** a2);

		public delegate int AddrOfTarget167(
					global::System.IntPtr a0, 
					ulong a1, 
					global::Windows.Storage.Streams.IOutputStream__Impl.Vtbl*** a2);

		public delegate int AddrOfTarget168(
					global::System.IntPtr a0, 
					global::Windows.Storage.Streams.IRandomAccessStream__Impl.Vtbl*** a1);

		public delegate int AddrOfTarget169(
					global::System.IntPtr a0, 
					global::Windows.Storage.Streams.IBuffer__Impl.Vtbl** a1, 
					uint a2, 
					global::Windows.Storage.Streams.InputStreamOptions a3, 
					global::Windows.Foundation.IAsyncOperationWithProgress_A_Windows_Storage_Streams_IBuffer_j_uint_V___Impl.Vtbl*** a4);

		public delegate int AddrOfTarget170(
					global::System.IntPtr a0, 
					uint a1);

		public delegate void AddrOfTarget171(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperationWithProgress<global::Windows.Storage.Streams.IBuffer, uint> a1, 
					uint a2);

		public delegate void AddrOfTarget172(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperationWithProgress<global::Windows.Storage.Streams.IBuffer, uint> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate int AddrOfTarget173(
					global::System.IntPtr a0, 
					global::Windows.Foundation.AsyncOperationProgressHandler_A_Windows_Storage_Streams_IBuffer_j_uint_V___Impl.Vtbl** a1);

		public delegate int AddrOfTarget174(
					global::System.IntPtr a0, 
					global::Windows.Foundation.AsyncOperationProgressHandler_A_Windows_Storage_Streams_IBuffer_j_uint_V___Impl.Vtbl*** a1);

		public delegate int AddrOfTarget175(
					global::System.IntPtr a0, 
					global::Windows.Foundation.AsyncOperationWithProgressCompletedHandler_A_Windows_Storage_Streams_IBuffer_j_uint_V___Impl.Vtbl** a1);

		public delegate int AddrOfTarget176(
					global::System.IntPtr a0, 
					global::Windows.Foundation.AsyncOperationWithProgressCompletedHandler_A_Windows_Storage_Streams_IBuffer_j_uint_V___Impl.Vtbl*** a1);

		public delegate int AddrOfTarget177(
					global::System.IntPtr a0, 
					global::Windows.Storage.Streams.IBuffer__Impl.Vtbl*** a1);

		public delegate int AddrOfTarget178(
					global::System.IntPtr a0, 
					global::Windows.Foundation.IAsyncOperationWithProgress_A_Windows_Storage_Streams_IBuffer_j_uint_V___Impl.Vtbl** a1, 
					uint a2);

		public delegate int AddrOfTarget179(
					global::System.IntPtr a0, 
					global::Windows.Foundation.IAsyncOperationWithProgress_A_Windows_Storage_Streams_IBuffer_j_uint_V___Impl.Vtbl** a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate int AddrOfTarget180(
					global::System.IntPtr a0, 
					global::Windows.Storage.Streams.IBuffer__Impl.Vtbl** a1, 
					global::Windows.Foundation.IAsyncOperationWithProgress_A_uint_j_uint_V___Impl.Vtbl*** a2);

		public delegate int AddrOfTarget181(
					global::System.IntPtr a0, 
					global::Windows.Foundation.IAsyncOperation_A_bool_V___Impl.Vtbl*** a1);

		public delegate void AddrOfTarget182(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperationWithProgress<uint, uint> a1, 
					uint a2);

		public delegate void AddrOfTarget183(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperationWithProgress<uint, uint> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate int AddrOfTarget184(
					global::System.IntPtr a0, 
					global::Windows.Foundation.AsyncOperationProgressHandler_A_uint_j_uint_V___Impl.Vtbl** a1);

		public delegate int AddrOfTarget185(
					global::System.IntPtr a0, 
					global::Windows.Foundation.AsyncOperationProgressHandler_A_uint_j_uint_V___Impl.Vtbl*** a1);

		public delegate int AddrOfTarget186(
					global::System.IntPtr a0, 
					global::Windows.Foundation.AsyncOperationWithProgressCompletedHandler_A_uint_j_uint_V___Impl.Vtbl** a1);

		public delegate int AddrOfTarget187(
					global::System.IntPtr a0, 
					global::Windows.Foundation.AsyncOperationWithProgressCompletedHandler_A_uint_j_uint_V___Impl.Vtbl*** a1);

		public delegate int AddrOfTarget188(
					global::System.IntPtr a0, 
					global::Windows.Foundation.IAsyncOperationWithProgress_A_uint_j_uint_V___Impl.Vtbl** a1, 
					uint a2);

		public delegate int AddrOfTarget189(
					global::System.IntPtr a0, 
					global::Windows.Foundation.IAsyncOperationWithProgress_A_uint_j_uint_V___Impl.Vtbl** a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate void AddrOfTarget190(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperation<bool> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate int AddrOfTarget191(
					global::System.IntPtr a0, 
					global::Windows.Foundation.AsyncOperationCompletedHandler_A_bool_V___Impl.Vtbl** a1);

		public delegate int AddrOfTarget192(
					global::System.IntPtr a0, 
					global::Windows.Foundation.AsyncOperationCompletedHandler_A_bool_V___Impl.Vtbl*** a1);

		public delegate void AddrOfTarget193(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperation<global::Windows.Storage.Streams.IRandomAccessStream> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate void AddrOfTarget194(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Navigation.NavigationEventArgs a2);

		public delegate void AddrOfTarget195(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Navigation.NavigatingCancelEventArgs a2);

		public delegate void AddrOfTarget196(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Xaml.Navigation.NavigationFailedEventArgs a2);

		public delegate int AddrOfTarget197(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Navigation.INavigationEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget198(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Navigation.INavigatingCancelEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget199(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Xaml.Navigation.INavigationFailedEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget200(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperation<global::Windows.Devices.Enumeration.Pnp.PnpObjectCollection> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate void AddrOfTarget201(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperation<global::Windows.Storage.StorageFolder> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate void AddrOfTarget202(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperation<global::Windows.Storage.IStorageItem> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate void AddrOfTarget203(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperation<global::System.Collections.Generic.IReadOnlyList<global::Windows.Storage.StorageFile>> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate int AddrOfTarget204(
					global::System.IntPtr a0, 
					global::Windows.Foundation.Collections.IObservableMap_A_string_j_string_V___Impl.Vtbl** a1, 
					global::Windows.Foundation.Collections.IMapChangedEventArgs_A_string_V___Impl.Vtbl** a2);

		public delegate void AddrOfTarget205(
					global::System.__ComObject a0, 
					global::Windows.Foundation.Collections.IObservableMap<string, string> a1, 
					global::Windows.Foundation.Collections.IMapChangedEventArgs<string> a2);

		public delegate int AddrOfTarget206(
					global::System.IntPtr a0, 
					global::Windows.Foundation.IAsyncAction__Impl.Vtbl** a1);

		public delegate int AddrOfTarget207(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.Foundation.Diagnostics.ITracingStatusChangedEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget208(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperation<global::Windows.UI.Popups.IUICommand> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate void AddrOfTarget209(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperation<uint> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate void AddrOfTarget210(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperation<global::Windows.Graphics.Imaging.BitmapDecoder> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate void AddrOfTarget211(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperation<global::Windows.Graphics.Imaging.PixelDataProvider> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate void AddrOfTarget212(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncAction a1);

		public delegate void AddrOfTarget213(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.Foundation.Diagnostics.TracingStatusChangedEventArgs a2);

		public delegate void AddrOfTarget214(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Core.WindowActivatedEventArgs a2);

		public delegate void AddrOfTarget215(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Core.CoreWindowEventArgs a2);

		public delegate void AddrOfTarget216(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Core.WindowSizeChangedEventArgs a2);

		public delegate void AddrOfTarget217(
					global::System.__ComObject a0, 
					object a1, 
					global::Windows.UI.Core.VisibilityChangedEventArgs a2);

		public delegate int AddrOfTarget218(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Core.IWindowActivatedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget219(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Core.ICoreWindowEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget220(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Core.IWindowSizeChangedEventArgs__Impl.Vtbl** a2);

		public delegate int AddrOfTarget221(
					global::System.IntPtr a0, 
					global::System.Runtime.InteropServices.__vtable_IInspectable* a1, 
					global::Windows.UI.Core.IVisibilityChangedEventArgs__Impl.Vtbl** a2);

		public delegate void AddrOfTarget222(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperationWithProgress<global::Windows.Storage.Streams.IInputStream, ulong> a1, 
					ulong a2);

		public delegate void AddrOfTarget223(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperationWithProgress<global::Windows.Storage.Streams.IInputStream, ulong> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate int AddrOfTarget224(
					global::System.IntPtr a0, 
					global::Windows.Foundation.IAsyncOperationWithProgress_A_Windows_Storage_Streams_IInputStream_j_ulong_V___Impl.Vtbl** a1, 
					ulong a2);

		public delegate int AddrOfTarget225(
					global::System.IntPtr a0, 
					global::Windows.Foundation.IAsyncOperationWithProgress_A_Windows_Storage_Streams_IInputStream_j_ulong_V___Impl.Vtbl** a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate void AddrOfTarget226(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperationWithProgress<global::Windows.Web.Http.HttpResponseMessage, global::Windows.Web.Http.HttpProgress> a1, 
					global::Windows.Web.Http.HttpProgress a2);

		public delegate void AddrOfTarget227(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperationWithProgress<global::Windows.Web.Http.HttpResponseMessage, global::Windows.Web.Http.HttpProgress> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate int AddrOfTarget228(
					global::System.IntPtr a0, 
					global::Windows.Foundation.IAsyncOperationWithProgress_A_Windows_Web_Http_HttpResponseMessage_j_Windows_Web_Http_HttpProgress_V___Impl.Vtbl** a1, 
					global::Windows.Web.Http.HttpProgress__Impl.UnsafeType a2);

		public delegate int AddrOfTarget229(
					global::System.IntPtr a0, 
					global::Windows.Foundation.IAsyncOperationWithProgress_A_Windows_Web_Http_HttpResponseMessage_j_Windows_Web_Http_HttpProgress_V___Impl.Vtbl** a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate int AddrOfTarget230(
					global::System.IntPtr a0, 
					global::System.Collections.Generic.KeyValuePair_A_string_j_System_Collections_Generic_IEnumerable_A_string_V__V___Impl.Vtbl*** a1);

		public delegate int AddrOfTarget231(
					global::System.IntPtr a0, 
					uint a1, 
					global::System.Collections.Generic.KeyValuePair_A_string_j_System_Collections_Generic_IEnumerable_A_string_V__V___Impl.Vtbl*** a2, 
					uint* a3);

		public delegate int AddrOfTarget232(
					global::System.IntPtr a0, 
					global::Windows.Web.Http.HttpStatusCode* a1);

		public delegate void AddrOfTarget233(
					global::System.__ComObject a0, 
					global::Windows.Foundation.IAsyncOperation<global::System.Collections.Generic.IReadOnlyList<global::Windows.Security.Cryptography.Certificates.Certificate>> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate int AddrOfTarget234(
					global::System.IntPtr a0, 
					global::System.IntPtr* a1);

		public delegate int AddrOfTarget235(
					global::System.IntPtr a0, 
					global::System.Guid* a1, 
					global::System.IntPtr a2, 
					uint a3, 
					global::System.IntPtr a4, 
					uint a5, 
					global::System.Guid* a6);

		public delegate int AddrOfTarget236(
					global::System.IntPtr a0, 
					global::System.Guid* a1, 
					global::System.IntPtr a2, 
					uint a3, 
					global::System.IntPtr a4, 
					uint a5, 
					uint* a6);

		public delegate int AddrOfTarget237(
					global::System.IntPtr a0, 
					global::System.IntPtr a1, 
					global::System.Guid* a2, 
					global::System.IntPtr a3, 
					uint a4, 
					global::System.IntPtr a5, 
					uint a6);

		public delegate int AddrOfTarget238(
					global::System.IntPtr a0, 
					global::System.IntPtr a1, 
					global::System.Guid* a2, 
					global::System.IntPtr* a3);

		public delegate object AddrOfTarget239<T>(global::System.Collections.Generic.IEnumerable<T> a0);

		public delegate int AddrOfTarget240<T>(
					global::Windows.Foundation.AsyncOperationCompletedHandler<T> a0, 
					global::Windows.Foundation.IAsyncOperation<T> a1, 
					global::Windows.Foundation.AsyncStatus a2);

		public delegate int AddrOfTarget241<T>(
					global::System.Collections.Generic.IList<T> a0, 
					global::System.Runtime.InteropServices.Toolbox.IList_Oper a1, 
					int a2, 
					ref object a3);

		public delegate int AddrOfTarget242<T>(
					global::Windows.Foundation.Collections.IIterator<T> a0, 
					global::System.Runtime.InteropServices.Toolbox.IIterator_Oper a1, 
					ref object a2, 
					int a3);

		public delegate int AddrOfTarget243<T>(
					global::System.Collections.Generic.IReadOnlyList<T> a0, 
					global::System.Runtime.InteropServices.Toolbox.IList_Oper a1, 
					int a2, 
					ref T a3);

		public delegate object AddrOfTarget244(global::System.__ComObject a0);

		public delegate object AddrOfTarget245(object a0);

		public delegate int AddrOfTarget246(
					ref global::Windows.UI.Xaml.Markup.XmlnsDefinition a0, 
					out global::Windows.UI.Xaml.Markup.XmlnsDefinition__Impl.UnsafeType a1);

		public delegate int AddrOfTarget247(
					ref global::Windows.UI.Xaml.Markup.XmlnsDefinition__Impl.UnsafeType a0, 
					out global::Windows.UI.Xaml.Markup.XmlnsDefinition a1);

		public delegate void AddrOfTarget248(ref global::Windows.UI.Xaml.Markup.XmlnsDefinition__Impl.UnsafeType a0);

		public delegate int AddrOfTarget249(
					ref global::Windows.Web.Http.HttpProgress a0, 
					out global::Windows.Web.Http.HttpProgress__Impl.UnsafeType a1);

		public delegate int AddrOfTarget250(
					ref global::Windows.Web.Http.HttpProgress__Impl.UnsafeType a0, 
					out global::Windows.Web.Http.HttpProgress a1);

		public delegate void AddrOfTarget251(ref global::Windows.Web.Http.HttpProgress__Impl.UnsafeType a0);
	}

	#region Helpers emitted by MCG
	internal unsafe static partial class Helpers
	{
		internal const int S_OK = 0;


		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_ArgumentException_IndexOutOfArrayBounds()
		{
			return new global::System.ArgumentException("Index out of array bounds");
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_ArgumentException_InsufficientSpaceToCopyCollection()
		{
			return new global::System.ArgumentException("Insufficient space to copy collection");
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_ArgumentNullException_array()
		{
			return new global::System.ArgumentNullException("array");
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_ArgumentNullException_data()
		{
			return new global::System.ArgumentNullException("data");
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_ArgumentNullException_dictionary()
		{
			return new global::System.ArgumentNullException("dictionary");
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_ArgumentNullException_key()
		{
			return new global::System.ArgumentNullException("key");
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_ArgumentOutOfRangeException_index()
		{
			return new global::System.ArgumentOutOfRangeException("index");
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_ArgumentOutOfRangeException_index_BOUNDS()
		{
			global::System.Exception ex;
			ex = new global::System.ArgumentOutOfRangeException("index");
			global::System.Runtime.InteropServices.McgMarshal.SetExceptionErrorCode(
								ex, 
								global::McgInterop.McgHelpers.__HResults.E_BOUNDS
							);
			return ex;
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_CollectionsGeneric_KeyNotFoundException_BOUNDS()
		{
			global::System.Exception ex;
			ex = new global::System.Collections.Generic.KeyNotFoundException();
			global::System.Runtime.InteropServices.McgMarshal.SetExceptionErrorCode(
								ex, 
								global::McgInterop.McgHelpers.__HResults.E_BOUNDS
							);
			return ex;
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_InvalidOperation_EnumFailedVersion()
		{
			return new global::System.InvalidOperationException("Collection was modified; enumeration operation may not execute.");
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_InvalidOperationException_CannotRemoveFromEmptyCollection_BOUNDS()
		{
			global::System.Exception ex;
			ex = new global::System.InvalidOperationException("Cannot remove from empty collection");
			global::System.Runtime.InteropServices.McgMarshal.SetExceptionErrorCode(
								ex, 
								global::McgInterop.McgHelpers.__HResults.E_BOUNDS
							);
			return ex;
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_InvalidOperationException_CollectionBackingListTooLarge()
		{
			return new global::System.InvalidOperationException("Collection backing list too large");
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_InvalidOperationException_EnumEnded()
		{
			return new global::System.InvalidOperationException("Enum ended");
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_InvalidOperationException_EnumNotStarted()
		{
			return new global::System.InvalidOperationException("Enum not started");
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_KeyNotFoundException_Key()
		{
			return new global::System.Collections.Generic.KeyNotFoundException("key");
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_NotImplementedException_NYI()
		{
			return new global::System.NotImplementedException("NYI");
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_NotSupportedException()
		{
			return new global::System.NotSupportedException();
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_NotSupportedException_KeyCollectionSet()
		{
			return new global::System.NotSupportedException("Key collection set");
		}

		[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
		internal static global::System.Exception NewException_NotSupportedException_ValueCollectionSet()
		{
			return new global::System.NotSupportedException("Value collection set");
		}

		internal static string ConvertBSTRToString(ushort* bstr)
		{
			if (bstr == null)
				return null;
			return new string(((char*)bstr), 0, ((int)global::System.Runtime.InteropServices.ExternalInterop.SysStringLen(bstr)));
		}
	}
	#endregion

	#region McgHelpers

	/// <summary>
	/// Helper methods used by MCG. They are typically not safe to be used in System.Private.CoreLib/ProjectK prefast scenarios as
	/// there might be dependencies to System.Private.Interop.dll. Put the safe ones into McgCoreHelpers.cs
	/// </summary>
	internal sealed class McgHelpers
	{
	    /// <summary>
	    /// Failfast for reduced method if the reducer has a bug
	    /// </summary>
	    [global::System.Runtime.CompilerServices.MethodImpl(
	        global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
	    internal static void FailFastForReducedMethod()
	    {
	        // Throwing out a exception so that it is easier to debug (we fail fast now) MCG reducer bugs
	        throw new global::System.InvalidOperationException();
	    }

	#if MCG_WINRT_SUPPORTED
	    internal unsafe static global::System.IntPtr SystemUri2WindowsFoundationUri(global::System.Uri systemUri)
	    {
	        global::System.RuntimeTypeHandle classFactoryTypeHandle = typeof(global::System.Runtime.InteropServices.IUriRuntimeClassFactory).TypeHandle;
	        //[exclusiveto(Windows.Foundation.Uri)]
	        //[uuid(44A9796F-723E-4FDF-A218-033E75B0C084)]
	        //[version(0x06020000)]  
	        //interface IUriRuntimeClassFactory : IInspectable
	        //{  
	        //    HRESULT CreateUri([in] HSTRING uri, [out] [retval] Windows.Foundation.Uri** instance);
	        //    HRESULT CreateWithRelativeUri([in] HSTRING baseUri, [in] HSTRING relativeUri, [out] [retval] Windows.Foundation.Uri** instance);
	        //}
	        const int idx_CreateUri = 6; // 3 methods (IUnknown) + 3 methods (IInspectable) + 0 (the method index in IUriRuntimeClassFactory)

	        global::System.__ComObject uriRuntimeClassFactory = 
	            global::System.Runtime.InteropServices.McgModuleManager.GetActivationFactory(
	                "Windows.Foundation.Uri", 
	                classFactoryTypeHandle
	            );
	        try
	        {
	            string uri = systemUri.OriginalString;
	            global::System.IntPtr instance;
	            fixed (char* pBuffer_uri = uri)
	            {
	                global::System.Runtime.InteropServices.HSTRING unsafe_uri = default(global::System.Runtime.InteropServices.HSTRING);
	                global::System.Runtime.InteropServices.HSTRING_HEADER hstring_header_uri;
	                global::System.Runtime.InteropServices.McgMarshal.StringToHStringReference(pBuffer_uri, uri, &(hstring_header_uri), &(unsafe_uri));

	                void* __pThis = ((void*)global::System.Runtime.InteropServices.McgModuleManager.GetInterface(
	                                uriRuntimeClassFactory, 
	                                classFactoryTypeHandle
	                            ));

	                global::System.IntPtr __pTarget = (*(((global::System.IntPtr**)__pThis)))[idx_CreateUri];
	                int __result =  global::System.Runtime.InteropServices.WindowsRuntime.Intrinsics.StdCall__int__(
	                                    __pTarget, 
	                                    __pThis, 
	                                    unsafe_uri, 
	                                    &instance);

	                global::System.Runtime.InteropServices.DebugAnnotations.PreviousCallContainsUserCode();
	                global::System.GC.KeepAlive(uriRuntimeClassFactory);
	                if (__result < 0)
	                {
	                    global::McgInterop.McgHelpers.ThrowFailed(
	                                        __result, 
	                                        classFactoryTypeHandle
	                                    );
	                }
	                return instance;
	            }
	        }
	        catch(global::System.ArgumentException ex)
	        {
	            //
	            // Throwing out the same ArgumentException with the same message as Desktop CLR while keeping 
	            // the inner exception thrown from IUriRuntimeClassFactory.CreateUri
	            //
	            throw new global::System.ArgumentException(
	                "The given System.Uri cannot be converted into a Windows.Foundation.Uri. Please see http://go.microsoft.com/fwlink/?LinkID=215849 for details.", 
	                ex
	                );
	        }
	    }

	    internal unsafe static global::System.Uri WindowsFoundationUri2SystemUri(global::System.IntPtr windowsUri)
	    {
	        //[exclusiveto(Windows.Foundation.Uri)]  
	        //[uuid(9E365E57-48B2-4160-956F-C7385120BBFC)]  
	        //[version(0x06020000)]  
	        //interface IUriRuntimeClass : IInspectable
	        //{  
	        //    [propget] HRESULT AbsoluteUri([out] [retval] HSTRING* value);
	        //    [propget] HRESULT DisplayUri([out] [retval] HSTRING* value);
	        //    [propget] HRESULT Domain([out] [retval] HSTRING* value);
	        //    [propget] HRESULT Extension([out] [retval] HSTRING* value);
	        //    [propget] HRESULT Fragment([out] [retval] HSTRING* value);
	        //    [propget] HRESULT Host([out] [retval] HSTRING* value);
	        //    [propget] HRESULT Password([out] [retval] HSTRING* value);
	        //    [propget] HRESULT Path([out] [retval] HSTRING* value);
	        //    [propget] HRESULT Query([out] [retval] HSTRING* value);
	        //    [propget] HRESULT QueryParsed([out] [retval] Windows.Foundation.WwwFormUrlDecoder** ppWwwFormUrlDecoder);  
	        //    [propget] HRESULT RawUri([out] [retval] HSTRING* value);
	        //    [propget] HRESULT SchemeName([out] [retval] HSTRING* value);
	        //    [propget] HRESULT UserName([out] [retval] HSTRING* value);
	        //    [propget] HRESULT Port([out] [retval] INT32* value);
	        //    [propget] HRESULT Suspicious([out] [retval] boolean* value);
	        //    HRESULT Equals([in] Windows.Foundation.Uri* pUri, [out] [retval] boolean* value);
	        //    HRESULT CombineUri([in] HSTRING relativeUri, [out] [retval] Windows.Foundation.Uri** instance);
	        //}  
	        const int idx_get_RawUri = 16; // 3(IUknown) + 3(IInspectable) + 10th method in IUriRuntimeClass
	        global::System.RuntimeTypeHandle defaultInterfaceTypeHandle = typeof(global::System.Runtime.InteropServices.IUriRuntimeClass).TypeHandle;
	        global::System.Runtime.InteropServices.HSTRING unsafe_value__retval = default(global::System.Runtime.InteropServices.HSTRING);
	        void* __pThis = (void *)windowsUri;
	        string uri;

	        try
	        {
	            global::System.IntPtr __pTarget = (*(((global::System.IntPtr**)__pThis)))[idx_get_RawUri];
	            int __result = global::System.Runtime.InteropServices.WindowsRuntime.Intrinsics.StdCall__int__(
	                __pTarget, 
	                __pThis, 
	                &(unsafe_value__retval)
	            );

	            global::System.Runtime.InteropServices.DebugAnnotations.PreviousCallContainsUserCode();
	            
	            if (__result < 0)
	            {
	                global::McgInterop.McgHelpers.ThrowFailed(
	                                    __result, 
	                                    defaultInterfaceTypeHandle
	                );
	            }
	            uri = global::System.Runtime.InteropServices.McgMarshal.HStringToString(unsafe_value__retval);
	        } 
	        finally
	        {
	            // Cleanup
	            global::System.Runtime.InteropServices.McgMarshal.FreeHString(unsafe_value__retval.handle);
	        }

	        if (uri == null) return null;
	        return new global::System.Uri(uri);
	    }
	    
	    internal unsafe static global::System.Uri WindowsFoundationUri2SystemUriForUnbox(global::System.__ComObject windowsUri)
	    {
	        global::System.RuntimeTypeHandle defaultInterfaceTypeHandle = typeof(global::System.Runtime.InteropServices.IUriRuntimeClass).TypeHandle;
	        IntPtr __pThis = global::System.Runtime.InteropServices.McgModuleManager.GetInterface(
	            windowsUri, 
	            defaultInterfaceTypeHandle
	        );
	        global::System.Uri uri = WindowsFoundationUri2SystemUri(__pThis);
	        global::System.GC.KeepAlive(windowsUri);
	        return uri;
	    }

	    /// <summary>
	    /// System.Uri to Windows.Foundation.Uri in boxing
	    /// Used in IInspectable based marshalling
	    /// </summary>
	    internal static object BoxSystemUri(object target)
	    {
	        global::System.Uri systemUri = global::System.Runtime.InteropServices.McgMarshal.FastCast<global::System.Uri>(target);

	        // This throws if the uri cannot be created
	        IntPtr pUri = global::McgInterop.McgHelpers.SystemUri2WindowsFoundationUri(systemUri);

	        try
	        {
	            // @TODO - This potentially can be optimized by skipping the RCW creation
	            return global::System.Runtime.InteropServices.McgMarshal.ComInterfaceToObject_NoUnboxing(
	                pUri, 
	                global::System.Runtime.InteropServices.McgModuleManager.IInspectable
	            ); 
	        }
	        finally
	        {
	            global::System.Runtime.InteropServices.McgMarshal.ComSafeRelease(pUri);
	        }
	    }

	    /// <summary>
	    /// Windows.Foundation.Uri to System.Uri in unboxing
	    /// Used in IInspectable based marshalling
	    /// </summary>
	    internal static object UnboxSystemUri(object target)
	    {
	        global::System.__ComObject windowsUri = (global::System.__ComObject) target;
	        return global::McgInterop.McgHelpers.WindowsFoundationUri2SystemUriForUnbox(windowsUri);
	    }
	#endif

	    static global::System.Guid IID_IUnknown = new global::System.Guid(0x00000000, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);

	    /// <summary>
	    /// Given a AddRef-ed pComPtr, return the add refed identity IUnknown and release the existing pComPtr
	    /// </summary>
	    /// <param name="pComPtr"></param>
	    internal static void GetIUnknownForFactoryReturn(ref global::System.IntPtr pComPtr)
	    {
	        global::System.IntPtr pUnk = global::System.Runtime.InteropServices.McgMarshal.ComQueryInterfaceNoThrow(pComPtr, ref IID_IUnknown);
	        global::System.Runtime.InteropServices.McgMarshal.ComRelease(pComPtr);
	        if (pUnk != default(global::System.IntPtr))
	        {
	            pComPtr = pUnk;
	        }
	        else
	        {
	            pComPtr = default(global::System.IntPtr);
	            throw new global::System.InvalidCastException("Failed to cast to IUnknown");
	        }
	    }

	    internal unsafe static int wcslen(char *str)
	    {
	        char* start = str;
	        while (*str != '\0')
	            str++;
	        
	        return (int) (str - start);
	    }

	    /// <summary>
	    /// CoTaskMemAlloc + ZeroMemory
	    /// @TODO - we can probably optimize the zero memory part later
	    /// </summary>
	    internal unsafe static void* CoTaskMemAllocAndZeroMemory(global::System.IntPtr size)
	    {
	        void *ptr = global::System.Runtime.InteropServices.ExternalInterop.CoTaskMemAlloc(size);
	        if (ptr == null)
	            return ptr;

	        byte *pByte = (byte*)ptr;
	        long lSize = size.ToInt64();
	        while (lSize > 0)
	        {
	            lSize--;
	            (*pByte++) = 0;
	        }

	        return ptr;
	    }

	    /// <summary>
	    /// Allocate a buffer with enough size to store the unicode characters saved in source
	    /// Buffer is allocated with CoTaskMemAlloc
	    /// </summary>
	    internal unsafe static void *AllocUnicodeBuffer(string source)
	    {
	        if (source == null)
	            return null;

	        int byteLen = checked((source.Length + 1) * 2);

	        char* pBuf = (char*)global::System.Runtime.InteropServices.ExternalInterop.CoTaskMemAlloc(new global::System.IntPtr(byteLen));
	        if (pBuf == null)
	            throw new global::System.OutOfMemoryException();

	        return pBuf;
	    }

	    /// <summary>
	    /// Copy unicode characters in source into dest, and terminating with null
	    /// </summary>
	    internal unsafe static void CopyUnicodeString(string source, void* _dest)
	    {
	        if (source == null)
	            return;

	        char* dest = (char *)_dest;
	        fixed (char* pSource = source)
	        {
	            int len = source.Length;
	            char* src = pSource;

	            // Copy characters one by one, including the null terminator
	            for (int i = 0; i <= len; ++i)
	            {
	                *(dest++) = *(src++);
	            }
	        }
	    }

	    [global::System.Runtime.CompilerServices.MethodImpl(
	    global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
	    static internal void ThrowIfFailed_COM(int hr)
	    {
	        if (hr < 0)
	            Throw(hr, false /*isWinRTScenario*/);
	    }

	    [global::System.Runtime.CompilerServices.MethodImpl(
	    global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
	    static internal void ThrowFailed(int hr, global::System.RuntimeTypeHandle typeHnd)
	    {
	        bool isWinRTScenario 
	#if MCG_WINRT_SUPPORTED
	            = McgModuleManager.GetTypeInfoByHandle(typeHnd).IsIInspectable;
	#else
	            = false;
	#endif

	        throw global::System.Runtime.InteropServices.McgMarshal.GetExceptionForHR(hr, isWinRTScenario);
	    }

	    [global::System.Runtime.CompilerServices.MethodImpl(
	        global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
	    static internal void Throw(int hr, bool isWinRTScenario)
	    {
	        throw global::System.Runtime.InteropServices.McgMarshal.GetExceptionForHR(hr, isWinRTScenario);
	    }

	    /// <summary>
	    /// Common HRESULT values 
	    /// </summary>
	    internal static class __HResults
	    {
	        internal const int S_OK = unchecked((int)0x00000000);
	        internal const int E_BOUNDS = unchecked((int)0x8000000B);
	        internal const int E_CHANGED_STATE = unchecked((int)0x8000000C);
	        internal const int E_NOTIMPL = unchecked((int)0x80004001);
	        internal const int E_FAIL = unchecked((int)0x80004005);
	        internal const int TYPE_E_TYPEMISMATCH = unchecked((int)0x80028CA0);
	        internal const int DISP_E_OVERFLOW = unchecked((int)0x8002000A);
	    }

	#if MCG_WINRT_SUPPORTED

	    [global::System.Runtime.CompilerServices.MethodImpl(
	        global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
	    internal static global::System.Collections.IEnumerator GetNonGenericEnumerator(global::System.__ComObject __this,
	        global::System.RuntimeTypeHandle targetInterfaceType)
	    {
	        return global::System.Runtime.InteropServices.McgMarshal.FastCast<global::System.Collections.IEnumerable>(McgModuleManager.GetDynamicAdapter(
	            __this,
	            typeof(global::System.Collections.IEnumerable).TypeHandle,
	            targetInterfaceType
	        )).GetEnumerator();
	    }

	    [global::System.Runtime.CompilerServices.MethodImpl(
	        global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
	    internal static object GetGenericEnumerator(global::System.__ComObject __this, 
	        global::System.RuntimeTypeHandle targetInterfaceType)
	    {
	        return global::System.Runtime.InteropServices.McgMarshal.FastCast<global::System.Collections.IEnumerable>(McgModuleManager.GetDynamicAdapter(
	            __this,
	            targetInterfaceType
	        )).GetEnumerator();
	    }

	    [global::System.Runtime.CompilerServices.MethodImpl(
	        global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
	    internal static int GetReadOnlyCollectionCount(global::System.__ComObject __this, 
	        global::System.RuntimeTypeHandle instanceTypeIndex)
	    {
	        return global::System.Runtime.InteropServices.McgMarshal.FastCast<global::System.Runtime.InteropServices.WindowsRuntime.IReadOnlyCollectionAdapter>(McgModuleManager.GetDynamicAdapter(
	            __this,
	            instanceTypeIndex
	        )).Count;
	    }

	    [global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
	    internal static global::System.Exception CheckCopyTo(int count, global::System.Array array, int index)
	    {
	        if (array == null)
	            return new global::System.ArgumentNullException("array");

	        if (index < 0)
	            return new global::System.ArgumentOutOfRangeException("index");

	        // ICollection expects the destination array to be single-dimensional.
	        if (array.Rank != 1)
	            throw new global::System.ArgumentException("Multi-dimensional array not supported");

	        if (array.Length <= index && count > 0)
	            return new global::System.ArgumentException("Index out of array bounds");

	        if (array.Length - index < count)
	            return new global::System.ArgumentException("Insufficient space to copy collection");

	        return null;
	    }

	    public static void CopyMapTo<K,V>(global::System.__ComObject _this, int count, global::System.Collections.Generic.KeyValuePair<K, V>[] array, int arrayIndex)
	    {
	        global::System.Exception error = global::McgInterop.McgHelpers.CheckCopyTo(count, array, arrayIndex);

	        if (error != null)
	        {
	            throw error;
	        }

	        global::System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<K, V>> iterator = _this as global::System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<K, V>>;
	        
	        foreach (System.Collections.Generic.KeyValuePair<K, V> mapping in iterator)
	        {
	            array[arrayIndex++] = mapping;
	        }
	    }

	    [global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
	    public static bool MapContains<K,V>(global::System.__ComObject _this, global::System.Collections.Generic.KeyValuePair<K, V> item)
	    {
	        global::System.Collections.Generic.IDictionary<K, V> dictionary = _this as global::System.Collections.Generic.IDictionary<K, V>;

	        V value;

	        if (dictionary.TryGetValue(item.Key, out value))
	        {
	            return global::System.Runtime.InteropServices.McgMarshal.ComparerEquals<V>(value, item.Value); 
	        }
	        else
	        {
	            return false;
	        }
	    }
	#endif
	}

	#endregion

	/// <summary>
	/// MCG helpers that are safe to be used in System.Private.CoreLib and in ProjectK that they don't have a dependency to 
	/// interop.dll. The functions here can only call System.Private.CoreLib functions and you can't assume System.Private.Interop.dll or 
	/// any other DLL would be there.
	/// </summary>
	internal class McgCoreHelpers
	{
	    internal static void Assert(bool condition)
	    {
	        if (condition == false)
	        {
	#if MCG_WINRT_SUPPORTED
	            if (global::System.Diagnostics.Debugger.IsAttached)
	            {
	                global::System.Diagnostics.Debugger.Break();
	            }
	#endif
	            global::System.Environment.FailFast("Assert failed");
	        }
	    }

	    /// <summary>
	    /// Fits the Array that will be passed to native code. Managed Array with length==0 should
	    ///     be marshaled as a valid pointer to the native code. So this helper creates a new fake 
	    ///     Array with 1 default position for zero Length Array. 
	    /// On this way, the fixed (int* pinned_safeHome = safeHome) will store a valid pointer 
	    ///     in the pinned_safeHome.
	    /// </summary>
	    internal static T[] GetArrayForCompat<T>(T[] actual)
	    {
	        if (actual != null)
	        {
	            if (actual.Length == 0)
	            {
	                return new T[1] { default(T) };
	            }
	        }
	        return actual;
	    }
	}
}

namespace System.Runtime.InteropServices
{
	[global::System.AttributeUsage((System.AttributeTargets.Method | System.AttributeTargets.Class))]
	internal class McgIntrinsicsAttribute : global::System.Attribute
	{
	}
}

