diff --git a/.gitignore b/.gitignore index f6211b745..1f60a7cac 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,6 @@ global.json .nuget .nupkg nuget/Microsoft.Windows.CsWinRT.Prerelease.targets +*.binlog +vs_buildtools.exe +.buildtools \ No newline at end of file diff --git a/Directory.Build.props b/Directory.Build.props index f8dd4e42b..f361fe480 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -40,11 +40,6 @@ $([MSBuild]::NormalizeDirectory('$(BuildOutDir)', '$(MSBuildProjectName)', 'obj')) - - Windows - 10.0.18362.0 - - true true @@ -66,7 +61,6 @@ pch.h VERSION_NUMBER="$(VersionNumber)";VERSION_STRING="$(VersionString)";NOMINMAX;%(PreprocessorDefinitions) true - %(AdditionalIncludeDirectories) %(AdditionalOptions) /bigobj diff --git a/Directory.Build.targets b/Directory.Build.targets index 6931e28af..b27d1ac17 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -19,11 +19,16 @@ https://api.nuget.org/v3/index.json; https://dotnet.myget.org/F/roslyn/api/v3/index.json; https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json; + https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json; - + + + + + diff --git a/Projections/WinUI/WinUI.csproj b/Projections/WinUI/WinUI.csproj index 0097e3c07..99c53f5cd 100644 --- a/Projections/WinUI/WinUI.csproj +++ b/Projections/WinUI/WinUI.csproj @@ -23,7 +23,7 @@ - compile; build; runtime + build; buildtransitive; compile; runtime diff --git a/README.md b/README.md index aedd3b4fb..535ad423d 100644 --- a/README.md +++ b/README.md @@ -32,19 +32,16 @@ Component Authors need to build a C#/WinRT projection for .NET5+ targets. However, C#/WinRT is a general effort and is intended to support other scenarios and versions of the .NET runtime, compatible down to .NET Standard 2.0. -## Running C#/WinRT +## Installing and running C#/WinRT Download the C#/WinRT NuGet package here: -Please see [usage](USAGE.md) for details on running the C#/WinRT tool. For additional documentation visit . +C#/WinRT currently requires the following packages, or newer, to build: -## Building C#/WinRT - -C#/WinRT currently requires the following packages to build: - -- Visual Studio 16.6 (more specifically, MSBuild 16.6.0 for "net5.0" TFM support) -- Microsoft.Net.Compilers.Toolset >= 3.7.0 or Visual Studio 16.8 preview (for function pointer support) -- .NET 5 SDK 5.0.100-preview.5.20279.10 +- Visual Studio 16.8 Preview 3 +- Microsoft.Net.Compilers.Toolset 3.8.0-3.20428.4 +- .NET 5 SDK 5.0.100-rc.1.20454.5 +- Nuget.exe 5.8.0-preview.2 - WinUI 3 3.0.0-preview1.200515.3 **Note:** As prereleases may make breaking changes before final release, any other combinations above may work but are not supported and will generate a build warning. @@ -57,7 +54,9 @@ After a successful command-line build, the cswinrt.sln can be launched from the **Note:** When building the first time, the build clones the testwinrt project. The build depends on this project, but msbuild doesn't consistently pick up the change when the repo is first cloned repo. You may need to build a second time if this is your first build to address the timing issue. -Please see the [repository structure](STRUCTURE.md) for a detailed breakdown on the repo contents. +## Developer Guidance + +Please read the [usage](USAGE.md) and [repository structure](STRUCTURE.md) docs for a detailed breakdown. For additional documentation visit . ## Related Projects diff --git a/UnitTest/UnitTest.csproj b/UnitTest/UnitTest.csproj index f609e7f63..2f9e655a3 100644 --- a/UnitTest/UnitTest.csproj +++ b/UnitTest/UnitTest.csproj @@ -1,7 +1,7 @@  - + netcoreapp2.0;net5.0 false AnyCPU;x64;x86 @@ -10,8 +10,6 @@ 8 true 1701;1702;0436;1658 - 10.0.18362.0 - netcoreapp5.0 @@ -20,26 +18,17 @@ - - - - - - - - - - all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/WinRT.Host/WinRT.Host.vcxproj b/WinRT.Host/WinRT.Host.vcxproj index 3ff1be395..ba13535b2 100644 --- a/WinRT.Host/WinRT.Host.vcxproj +++ b/WinRT.Host/WinRT.Host.vcxproj @@ -178,6 +178,13 @@ UseLinkTimeCodeGeneration + + + + /GL- %(AdditionalOptions) + + diff --git a/WinRT.Runtime/ComWrappersSupport.net5.cs b/WinRT.Runtime/ComWrappersSupport.net5.cs index 3ec14b00e..20e69044a 100644 --- a/WinRT.Runtime/ComWrappersSupport.net5.cs +++ b/WinRT.Runtime/ComWrappersSupport.net5.cs @@ -113,9 +113,9 @@ static unsafe DefaultComWrappers() IUnknownVftblPtr = RuntimeHelpers.AllocateTypeAssociatedMemory(typeof(IUnknownVftbl), sizeof(IUnknownVftbl)); (*(IUnknownVftbl*)IUnknownVftblPtr) = new IUnknownVftbl { - QueryInterface = (delegate* stdcall)qi, - AddRef = (delegate* stdcall)addRef, - Release = (delegate* stdcall)release, + QueryInterface = (delegate* unmanaged[Stdcall])qi, + AddRef = (delegate* unmanaged[Stdcall])addRef, + Release = (delegate* unmanaged[Stdcall])release, }; } diff --git a/WinRT.Runtime/ComWrappersSupport.netstandard2.0.cs b/WinRT.Runtime/ComWrappersSupport.netstandard2.0.cs index 15d340f00..d1faf5d22 100644 --- a/WinRT.Runtime/ComWrappersSupport.netstandard2.0.cs +++ b/WinRT.Runtime/ComWrappersSupport.netstandard2.0.cs @@ -129,9 +129,9 @@ static unsafe ComWrappersSupport() IUnknownVftblPtr = Marshal.AllocHGlobal(sizeof(IUnknownVftbl)); (*(IUnknownVftbl*)IUnknownVftblPtr) = new IUnknownVftbl { - QueryInterface = (delegate* stdcall)Marshal.GetFunctionPointerForDelegate(Abi_QueryInterface), - AddRef = (delegate* stdcall)Marshal.GetFunctionPointerForDelegate(Abi_AddRef), - Release = (delegate* stdcall)Marshal.GetFunctionPointerForDelegate(Abi_Release), + QueryInterface = (delegate* unmanaged[Stdcall])Marshal.GetFunctionPointerForDelegate(Abi_QueryInterface), + AddRef = (delegate* unmanaged[Stdcall])Marshal.GetFunctionPointerForDelegate(Abi_AddRef), + Release = (delegate* unmanaged[Stdcall])Marshal.GetFunctionPointerForDelegate(Abi_Release), }; } diff --git a/WinRT.Runtime/IInspectable.cs b/WinRT.Runtime/IInspectable.cs index 7d21134c5..fc056ca01 100644 --- a/WinRT.Runtime/IInspectable.cs +++ b/WinRT.Runtime/IInspectable.cs @@ -23,13 +23,13 @@ public unsafe struct Vftbl { public IUnknownVftbl IUnknownVftbl; private void* _GetIids; - public delegate* stdcall GetIids { get => (delegate* stdcall)_GetIids; set => _GetIids = (void*)value; } + public delegate* unmanaged[Stdcall] GetIids { get => (delegate* unmanaged[Stdcall])_GetIids; set => _GetIids = (void*)value; } private void* _GetRuntimeClassName; - public delegate* stdcall GetRuntimeClassName { get => (delegate* stdcall)_GetRuntimeClassName; set => _GetRuntimeClassName = (void*)value; } + public delegate* unmanaged[Stdcall] GetRuntimeClassName { get => (delegate* unmanaged[Stdcall])_GetRuntimeClassName; set => _GetRuntimeClassName = (void*)value; } private void* _GetTrustLevel; - public delegate* stdcall GetTrustLevel { get => (delegate* stdcall)_GetTrustLevel; set => _GetTrustLevel = (void*)value; } + public delegate* unmanaged[Stdcall] GetTrustLevel { get => (delegate* unmanaged[Stdcall])_GetTrustLevel; set => _GetTrustLevel = (void*)value; } public static readonly Vftbl AbiToProjectionVftable; public static readonly IntPtr AbiToProjectionVftablePtr; diff --git a/WinRT.Runtime/Interop/ExceptionErrorInfo.cs b/WinRT.Runtime/Interop/ExceptionErrorInfo.cs index d25572610..614f8c1f2 100644 --- a/WinRT.Runtime/Interop/ExceptionErrorInfo.cs +++ b/WinRT.Runtime/Interop/ExceptionErrorInfo.cs @@ -94,15 +94,15 @@ public struct Vftbl { internal global::WinRT.Interop.IUnknownVftbl IUnknownVftbl; private void* _GetGuid_0; - public delegate* stdcall GetGuid_0 { get => (delegate* stdcall)_GetGuid_0; set => _GetGuid_0 = value; } + public delegate* unmanaged[Stdcall] GetGuid_0 { get => (delegate* unmanaged[Stdcall])_GetGuid_0; set => _GetGuid_0 = value; } private void* _GetSource_1; - public delegate* stdcall GetSource_1 { get => (delegate* stdcall)_GetSource_1; set => _GetSource_1 = value; } + public delegate* unmanaged[Stdcall] GetSource_1 { get => (delegate* unmanaged[Stdcall])_GetSource_1; set => _GetSource_1 = value; } private void* _GetDescription_2; - public delegate* stdcall GetDescription_2 { get => (delegate* stdcall)_GetDescription_2; set => _GetDescription_2 = value; } + public delegate* unmanaged[Stdcall] GetDescription_2 { get => (delegate* unmanaged[Stdcall])_GetDescription_2; set => _GetDescription_2 = value; } private void* _GetHelpFile_3; - public delegate* stdcall GetHelpFile_3 { get => (delegate* stdcall)_GetHelpFile_3; set => _GetHelpFile_3 = value; } + public delegate* unmanaged[Stdcall] GetHelpFile_3 { get => (delegate* unmanaged[Stdcall])_GetHelpFile_3; set => _GetHelpFile_3 = value; } private void* _GetHelpFileContent_4; - public delegate* stdcall GetHelpFileContent_4 { get => (delegate* stdcall)_GetHelpFileContent_4; set => _GetHelpFileContent_4 = value; } + public delegate* unmanaged[Stdcall] GetHelpFileContent_4 { get => (delegate* unmanaged[Stdcall])_GetHelpFileContent_4; set => _GetHelpFileContent_4 = value; } private static readonly Vftbl AbiToProjectionVftable; public static readonly IntPtr AbiToProjectionVftablePtr; @@ -325,7 +325,7 @@ public struct Vftbl { internal global::WinRT.Interop.IUnknownVftbl IUnknownVftbl; private void* _GetLanguageException_0; - public delegate* stdcall GetLanguageException_0 => (delegate* stdcall)_GetLanguageException_0; + public delegate* unmanaged[Stdcall] GetLanguageException_0 => (delegate* unmanaged[Stdcall])_GetLanguageException_0; } public static ObjectReference FromAbi(IntPtr thisPtr) => ObjectReference.FromAbi(thisPtr); @@ -369,7 +369,7 @@ public struct Vftbl { internal global::WinRT.Interop.IUnknownVftbl IUnknownVftbl; private void* _InterfaceSupportsErrorInfo_0; - public delegate* stdcall InterfaceSupportsErrorInfo_0 { get => (delegate* stdcall)_InterfaceSupportsErrorInfo_0; set => _InterfaceSupportsErrorInfo_0 = value; } + public delegate* unmanaged[Stdcall] InterfaceSupportsErrorInfo_0 { get => (delegate* unmanaged[Stdcall])_InterfaceSupportsErrorInfo_0; set => _InterfaceSupportsErrorInfo_0 = value; } private static readonly Vftbl AbiToProjectionVftable; public static readonly IntPtr AbiToProjectionVftablePtr; @@ -440,9 +440,9 @@ public struct Vftbl internal global::WinRT.Interop.IUnknownVftbl unknownVftbl; private void* _GetErrorDetails_0; - public delegate* stdcall GetErrorDetails_0 => (delegate* stdcall)_GetErrorDetails_0; + public delegate* unmanaged[Stdcall] GetErrorDetails_0 => (delegate* unmanaged[Stdcall])_GetErrorDetails_0; private void* _GetReference_1; - public delegate* stdcall GetReference_1 => (delegate* stdcall)_GetReference_1; + public delegate* unmanaged[Stdcall] GetReference_1 => (delegate* unmanaged[Stdcall])_GetReference_1; } public static ObjectReference FromAbi(IntPtr thisPtr) => ObjectReference.FromAbi(thisPtr); diff --git a/WinRT.Runtime/Interop/IAgileReference.cs b/WinRT.Runtime/Interop/IAgileReference.cs index fcc24bf87..9f633eb45 100644 --- a/WinRT.Runtime/Interop/IAgileReference.cs +++ b/WinRT.Runtime/Interop/IAgileReference.cs @@ -41,7 +41,7 @@ public struct Vftbl { public global::WinRT.Interop.IUnknownVftbl IUnknownVftbl; private void* _Resolve; - public delegate* stdcall Resolve { get => (delegate* stdcall)_Resolve; set => _Resolve = value; } + public delegate* unmanaged[Stdcall] Resolve { get => (delegate* unmanaged[Stdcall])_Resolve; set => _Resolve = value; } public static readonly Vftbl AbiToProjectionVftable; public static readonly IntPtr AbiToProjectionVftablePtr; @@ -163,11 +163,11 @@ public struct Vftbl { public global::WinRT.Interop.IUnknownVftbl IUnknownVftbl; private void* _RegisterInterfaceInGlobal; - public delegate* stdcall RegisterInterfaceInGlobal => (delegate* stdcall)_RegisterInterfaceInGlobal; + public delegate* unmanaged[Stdcall] RegisterInterfaceInGlobal => (delegate* unmanaged[Stdcall])_RegisterInterfaceInGlobal; private void* _RevokeInterfaceFromGlobal; - public delegate* stdcall RevokeInterfaceFromGlobal => (delegate* stdcall)_RevokeInterfaceFromGlobal; + public delegate* unmanaged[Stdcall] RevokeInterfaceFromGlobal => (delegate* unmanaged[Stdcall])_RevokeInterfaceFromGlobal; private void* _GetInterfaceFromGlobal; - public delegate* stdcall GetInterfaceFromGlobal => (delegate* stdcall)_GetInterfaceFromGlobal; + public delegate* unmanaged[Stdcall] GetInterfaceFromGlobal => (delegate* unmanaged[Stdcall])_GetInterfaceFromGlobal; } public static ObjectReference FromAbi(IntPtr thisPtr) => ObjectReference.FromAbi(thisPtr); diff --git a/WinRT.Runtime/Interop/IContextCallback.cs b/WinRT.Runtime/Interop/IContextCallback.cs index f2860e729..447156db1 100644 --- a/WinRT.Runtime/Interop/IContextCallback.cs +++ b/WinRT.Runtime/Interop/IContextCallback.cs @@ -43,10 +43,10 @@ public struct Vftbl { global::WinRT.Interop.IUnknownVftbl IUnknownVftbl; private void* _ContextCallback; - public delegate* stdcall ContextCallback_4 - { - get => (delegate* stdcall)_ContextCallback; - set => _ContextCallback = (void*)value; + public delegate* unmanaged[Stdcall] ContextCallback_4 + { + get => (delegate* unmanaged[Stdcall])_ContextCallback; + set => _ContextCallback = (void*)value; } } public static ObjectReference FromAbi(IntPtr thisPtr) => ObjectReference.FromAbi(thisPtr); @@ -75,9 +75,9 @@ public unsafe void ContextCallback(global::WinRT.Interop.PFNCONTEXTCALL pfnCallb { var callback = Marshal.GetFunctionPointerForDelegate(pfnCallback); var result = _obj.Vftbl.ContextCallback_4(ThisPtr, callback, pParam, &riid, iMethod, IntPtr.Zero); - GC.KeepAlive(pfnCallback); - if (result != RPC_E_DISCONNECTED) - { + GC.KeepAlive(pfnCallback); + if (result != RPC_E_DISCONNECTED) + { Marshal.ThrowExceptionForHR(result); } } diff --git a/WinRT.Runtime/Interop/IUnknownVftbl.cs b/WinRT.Runtime/Interop/IUnknownVftbl.cs index 977cfedee..8a81c4c0a 100644 --- a/WinRT.Runtime/Interop/IUnknownVftbl.cs +++ b/WinRT.Runtime/Interop/IUnknownVftbl.cs @@ -9,11 +9,11 @@ namespace WinRT.Interop public unsafe struct IUnknownVftbl { private void* _QueryInterface; - public delegate* stdcall QueryInterface { get => (delegate* stdcall)_QueryInterface; set => _QueryInterface = (void*)value; } + public delegate* unmanaged[Stdcall] QueryInterface { get => (delegate* unmanaged[Stdcall])_QueryInterface; set => _QueryInterface = (void*)value; } private void* _AddRef; - public delegate* stdcall AddRef { get => (delegate* stdcall)_AddRef; set => _AddRef = (void*)value; } + public delegate* unmanaged[Stdcall] AddRef { get => (delegate* unmanaged[Stdcall])_AddRef; set => _AddRef = (void*)value; } private void* _Release; - public delegate* stdcall Release { get => (delegate* stdcall)_Release; set => _Release = (void*)value; } + public delegate* unmanaged[Stdcall] Release { get => (delegate* unmanaged[Stdcall])_Release; set => _Release = (void*)value; } public static IUnknownVftbl AbiToProjectionVftbl => ComWrappersSupport.IUnknownVftbl; public static IntPtr AbiToProjectionVftblPtr => ComWrappersSupport.IUnknownVftblPtr; diff --git a/WinRT.Runtime/Interop/IWeakReferenceSource.cs b/WinRT.Runtime/Interop/IWeakReferenceSource.cs index 8ed51d255..30d35594b 100644 --- a/WinRT.Runtime/Interop/IWeakReferenceSource.cs +++ b/WinRT.Runtime/Interop/IWeakReferenceSource.cs @@ -56,7 +56,7 @@ internal struct Vftbl { public global::WinRT.Interop.IUnknownVftbl IUnknownVftbl; private void* _GetWeakReference; - public delegate* stdcall GetWeakReference { get => (delegate* stdcall)_GetWeakReference; set => _GetWeakReference = value; } + public delegate* unmanaged[Stdcall] GetWeakReference { get => (delegate* unmanaged[Stdcall])_GetWeakReference; set => _GetWeakReference = value; } public static readonly Vftbl AbiToProjectionVftable; public static readonly IntPtr AbiToProjectionVftablePtr; @@ -136,7 +136,7 @@ public struct Vftbl { public global::WinRT.Interop.IUnknownVftbl IUnknownVftbl; private void* _Resolve; - public delegate* stdcall Resolve { get => (delegate* stdcall)_Resolve; set => _Resolve = value; } + public delegate* unmanaged[Stdcall] Resolve { get => (delegate* unmanaged[Stdcall])_Resolve; set => _Resolve = value; } public static readonly Vftbl AbiToProjectionVftable; public static readonly IntPtr AbiToProjectionVftablePtr; diff --git a/WinRT.Runtime/Projections/Bindable.cs b/WinRT.Runtime/Projections/Bindable.cs index da9005b3f..0efcff77c 100644 --- a/WinRT.Runtime/Projections/Bindable.cs +++ b/WinRT.Runtime/Projections/Bindable.cs @@ -66,11 +66,11 @@ public struct Vftbl { internal IInspectable.Vftbl IInspectableVftbl; private void* _get_Current_0; - public delegate* stdcall get_Current_0 { get => (delegate* stdcall)_get_Current_0; set => _get_Current_0 = value; } + public delegate* unmanaged[Stdcall] get_Current_0 { get => (delegate* unmanaged[Stdcall])_get_Current_0; set => _get_Current_0 = value; } private void* _get_HasCurrent_1; - public delegate* stdcall get_HasCurrent_1 { get => (delegate* stdcall)_get_HasCurrent_1; set => _get_HasCurrent_1 = value; } + public delegate* unmanaged[Stdcall] get_HasCurrent_1 { get => (delegate* unmanaged[Stdcall])_get_HasCurrent_1; set => _get_HasCurrent_1 = value; } private void* _MoveNext_2; - public delegate* stdcall MoveNext_2 { get => (delegate* stdcall)_MoveNext_2; set => _MoveNext_2 = value; } + public delegate* unmanaged[Stdcall] MoveNext_2 { get => (delegate* unmanaged[Stdcall])_MoveNext_2; set => _MoveNext_2 = value; } private static readonly Vftbl AbiToProjectionVftable; public static readonly IntPtr AbiToProjectionVftablePtr; @@ -221,11 +221,11 @@ public struct Vftbl { internal IInspectable.Vftbl IInspectableVftbl; private void* _GetAt_0; - public delegate* stdcall GetAt_0 { get => (delegate* stdcall)_GetAt_0; set => _GetAt_0 = value; } + public delegate* unmanaged[Stdcall] GetAt_0 { get => (delegate* unmanaged[Stdcall])_GetAt_0; set => _GetAt_0 = value; } private void* _get_Size_1; - public delegate* stdcall get_Size_1 { get => (delegate* stdcall)_get_Size_1; set => _get_Size_1 = value; } + public delegate* unmanaged[Stdcall] get_Size_1 { get => (delegate* unmanaged[Stdcall])_get_Size_1; set => _get_Size_1 = value; } private void* _IndexOf_2; - public delegate* stdcall IndexOf_2 { get => (delegate* stdcall)_IndexOf_2; set => _IndexOf_2 = value; } + public delegate* unmanaged[Stdcall] IndexOf_2 { get => (delegate* unmanaged[Stdcall])_IndexOf_2; set => _IndexOf_2 = value; } private static readonly Vftbl AbiToProjectionVftable; public static readonly IntPtr AbiToProjectionVftablePtr; @@ -459,7 +459,7 @@ public struct Vftbl { internal IInspectable.Vftbl IInspectableVftbl; private void* _First_0; - public delegate* stdcall First_0 { get => (delegate* stdcall)_First_0; set => _First_0 = value; } + public delegate* unmanaged[Stdcall] First_0 { get => (delegate* unmanaged[Stdcall])_First_0; set => _First_0 = value; } private static readonly Vftbl AbiToProjectionVftable; public static readonly IntPtr AbiToProjectionVftablePtr; @@ -996,16 +996,16 @@ public struct Vftbl private void* _RemoveAtEnd_8; private void* _Clear_9; - public delegate* stdcall GetAt_0 { get => (delegate* stdcall)_GetAt_0; set => _GetAt_0 = value; } - public delegate* stdcall get_Size_1 { get => (delegate* stdcall)_get_Size_1; set => _get_Size_1 = value; } - public delegate* stdcall GetView_2 { get => (delegate* stdcall)_GetView_2; set => _GetView_2 = value; } - public delegate* stdcall IndexOf_3 { get => (delegate* stdcall)_IndexOf_3; set => _IndexOf_3 = value; } - public delegate* stdcall SetAt_4 { get => (delegate* stdcall)_SetAt_4; set => _SetAt_4 = value; } - public delegate* stdcall InsertAt_5 { get => (delegate* stdcall)_InsertAt_5; set => _InsertAt_5 = value; } - public delegate* stdcall RemoveAt_6 { get => (delegate* stdcall)_RemoveAt_6; set => _RemoveAt_6 = value; } - public delegate* stdcall Append_7 { get => (delegate* stdcall)_Append_7; set => _Append_7 = value; } - public delegate* stdcall RemoveAtEnd_8 { get => (delegate* stdcall)_RemoveAtEnd_8; set => _RemoveAtEnd_8 = value; } - public delegate* stdcall Clear_9 { get => (delegate* stdcall)_Clear_9; set => _Clear_9 = value; } + public delegate* unmanaged[Stdcall] GetAt_0 { get => (delegate* unmanaged[Stdcall])_GetAt_0; set => _GetAt_0 = value; } + public delegate* unmanaged[Stdcall] get_Size_1 { get => (delegate* unmanaged[Stdcall])_get_Size_1; set => _get_Size_1 = value; } + public delegate* unmanaged[Stdcall] GetView_2 { get => (delegate* unmanaged[Stdcall])_GetView_2; set => _GetView_2 = value; } + public delegate* unmanaged[Stdcall] IndexOf_3 { get => (delegate* unmanaged[Stdcall])_IndexOf_3; set => _IndexOf_3 = value; } + public delegate* unmanaged[Stdcall] SetAt_4 { get => (delegate* unmanaged[Stdcall])_SetAt_4; set => _SetAt_4 = value; } + public delegate* unmanaged[Stdcall] InsertAt_5 { get => (delegate* unmanaged[Stdcall])_InsertAt_5; set => _InsertAt_5 = value; } + public delegate* unmanaged[Stdcall] RemoveAt_6 { get => (delegate* unmanaged[Stdcall])_RemoveAt_6; set => _RemoveAt_6 = value; } + public delegate* unmanaged[Stdcall] Append_7 { get => (delegate* unmanaged[Stdcall])_Append_7; set => _Append_7 = value; } + public delegate* unmanaged[Stdcall] RemoveAtEnd_8 { get => (delegate* unmanaged[Stdcall])_RemoveAtEnd_8; set => _RemoveAtEnd_8 = value; } + public delegate* unmanaged[Stdcall] Clear_9 { get => (delegate* unmanaged[Stdcall])_Clear_9; set => _Clear_9 = value; } private static readonly Vftbl AbiToProjectionVftable; public static readonly IntPtr AbiToProjectionVftablePtr; diff --git a/WinRT.Runtime/Projections/ICommand.cs b/WinRT.Runtime/Projections/ICommand.cs index 695538c27..b76f0bc7c 100644 --- a/WinRT.Runtime/Projections/ICommand.cs +++ b/WinRT.Runtime/Projections/ICommand.cs @@ -121,8 +121,8 @@ private static unsafe int Do_Abi_Invoke(IntPtr thisPtr, IntPtr sender, IntPtr ar internal sealed unsafe class CanExecuteChangedEventSource : EventSource { internal CanExecuteChangedEventSource(IObjectReference obj, - delegate* stdcall addHandler, - delegate* stdcall removeHandler) + delegate* unmanaged[Stdcall] addHandler, + delegate* unmanaged[Stdcall] removeHandler) : base(obj, addHandler, removeHandler) { } @@ -146,13 +146,13 @@ public struct Vftbl { internal IInspectable.Vftbl IInspectableVftbl; private void* _add_CanExecuteChanged_0; - public delegate* stdcall add_CanExecuteChanged_0 { get => (delegate* stdcall)_add_CanExecuteChanged_0; set => _add_CanExecuteChanged_0 = value; } + public delegate* unmanaged[Stdcall] add_CanExecuteChanged_0 { get => (delegate* unmanaged[Stdcall])_add_CanExecuteChanged_0; set => _add_CanExecuteChanged_0 = value; } private void* _remove_CanExecuteChanged_1; - public delegate* stdcall remove_CanExecuteChanged_1 { get => (delegate* stdcall)_remove_CanExecuteChanged_1; set => _remove_CanExecuteChanged_1 = value; } + public delegate* unmanaged[Stdcall] remove_CanExecuteChanged_1 { get => (delegate* unmanaged[Stdcall])_remove_CanExecuteChanged_1; set => _remove_CanExecuteChanged_1 = value; } private void* _CanExecute_2; - public delegate* stdcall CanExecute_2 { get => (delegate* stdcall)_CanExecute_2; set => _CanExecute_2 = value; } + public delegate* unmanaged[Stdcall] CanExecute_2 { get => (delegate* unmanaged[Stdcall])_CanExecute_2; set => _CanExecute_2 = value; } private void* _Execute_3; - public delegate* stdcall Execute_3 { get => (delegate* stdcall)_Execute_3; set => _Execute_3 = value; } + public delegate* unmanaged[Stdcall] Execute_3 { get => (delegate* unmanaged[Stdcall])_Execute_3; set => _Execute_3 = value; } private static readonly Vftbl AbiToProjectionVftable; public static readonly IntPtr AbiToProjectionVftablePtr; diff --git a/WinRT.Runtime/Projections/IDisposable.cs b/WinRT.Runtime/Projections/IDisposable.cs index 00656c2c3..0de5a7066 100644 --- a/WinRT.Runtime/Projections/IDisposable.cs +++ b/WinRT.Runtime/Projections/IDisposable.cs @@ -16,7 +16,7 @@ public struct Vftbl private delegate int CloseDelegate(IntPtr thisPtr); internal IInspectable.Vftbl IInspectableVftbl; private void* _Close_0; - public delegate* stdcall Close_0 { get => (delegate* stdcall)_Close_0; set => _Close_0 = value; } + public delegate* unmanaged[Stdcall] Close_0 { get => (delegate* unmanaged[Stdcall])_Close_0; set => _Close_0 = value; } private static readonly Vftbl AbiToProjectionVftable; public static readonly IntPtr AbiToProjectionVftablePtr; diff --git a/WinRT.Runtime/Projections/INotifyCollectionChanged.cs b/WinRT.Runtime/Projections/INotifyCollectionChanged.cs index a5a88db1c..d2a2ef70a 100644 --- a/WinRT.Runtime/Projections/INotifyCollectionChanged.cs +++ b/WinRT.Runtime/Projections/INotifyCollectionChanged.cs @@ -18,14 +18,14 @@ public struct Vftbl internal IInspectable.Vftbl IInspectableVftbl; #if NETSTANDARD2_0 private void* _add_CollectionChanged_0; - public delegate* stdcall add_CollectionChanged_0 { get => (delegate* stdcall)_add_CollectionChanged_0; set => _add_CollectionChanged_0=(void*)value; } + public delegate* unmanaged[Stdcall] add_CollectionChanged_0 { get => (delegate* unmanaged[Stdcall])_add_CollectionChanged_0; set => _add_CollectionChanged_0=(void*)value; } private void* _remove_CollectionChanged_1; - public delegate* stdcall remove_CollectionChanged_1 { get => (delegate* stdcall)_remove_CollectionChanged_1; set => _remove_CollectionChanged_1=(void*)value; } + public delegate* unmanaged[Stdcall] remove_CollectionChanged_1 { get => (delegate* unmanaged[Stdcall])_remove_CollectionChanged_1; set => _remove_CollectionChanged_1=(void*)value; } #else private delegate* _add_CollectionChanged_0; - public delegate* stdcall add_CollectionChanged_0 { get => (delegate* stdcall)_add_CollectionChanged_0; set => _add_CollectionChanged_0=(delegate*)value; } + public delegate* unmanaged[Stdcall] add_CollectionChanged_0 { get => (delegate* unmanaged[Stdcall])_add_CollectionChanged_0; set => _add_CollectionChanged_0=(delegate*)value; } private delegate* _remove_CollectionChanged_1; - public delegate* stdcall remove_CollectionChanged_1 { get => (delegate* stdcall)_remove_CollectionChanged_1; set => _remove_CollectionChanged_1=(delegate*)value; } + public delegate* unmanaged[Stdcall] remove_CollectionChanged_1 { get => (delegate* unmanaged[Stdcall])_remove_CollectionChanged_1; set => _remove_CollectionChanged_1=(delegate*)value; } #endif private static readonly Vftbl AbiToProjectionVftable; diff --git a/WinRT.Runtime/Projections/INotifyPropertyChanged.cs b/WinRT.Runtime/Projections/INotifyPropertyChanged.cs index 8fbe9b1c6..58f4c9005 100644 --- a/WinRT.Runtime/Projections/INotifyPropertyChanged.cs +++ b/WinRT.Runtime/Projections/INotifyPropertyChanged.cs @@ -18,14 +18,14 @@ public struct Vftbl internal IInspectable.Vftbl IInspectableVftbl; #if NETSTANDARD2_0 private void* _add_PropertyChanged_0; - public delegate* stdcall add_PropertyChanged_0 { get => (delegate* stdcall)_add_PropertyChanged_0; set => _add_PropertyChanged_0=(void*)value; } + public delegate* unmanaged[Stdcall] add_PropertyChanged_0 { get => (delegate* unmanaged[Stdcall])_add_PropertyChanged_0; set => _add_PropertyChanged_0=(void*)value; } private void* _remove_PropertyChanged_1; - public delegate* stdcall remove_PropertyChanged_1 { get => (delegate* stdcall)_remove_PropertyChanged_1; set => _remove_PropertyChanged_1=(void*)value; } + public delegate* unmanaged[Stdcall] remove_PropertyChanged_1 { get => (delegate* unmanaged[Stdcall])_remove_PropertyChanged_1; set => _remove_PropertyChanged_1=(void*)value; } #else private delegate* _add_PropertyChanged_0; - public delegate* stdcall add_PropertyChanged_0 { get => (delegate* stdcall)_add_PropertyChanged_0; set => _add_PropertyChanged_0=(delegate*)value; } + public delegate* unmanaged[Stdcall] add_PropertyChanged_0 { get => (delegate* unmanaged[Stdcall])_add_PropertyChanged_0; set => _add_PropertyChanged_0=(delegate*)value; } private delegate* _remove_PropertyChanged_1; - public delegate* stdcall remove_PropertyChanged_1 { get => (delegate* stdcall)_remove_PropertyChanged_1; set => _remove_PropertyChanged_1=(delegate*)value; } + public delegate* unmanaged[Stdcall] remove_PropertyChanged_1 { get => (delegate* unmanaged[Stdcall])_remove_PropertyChanged_1; set => _remove_PropertyChanged_1=(delegate*)value; } #endif private static readonly Vftbl AbiToProjectionVftable; diff --git a/WinRT.Runtime/Projections/IPropertyValue.cs b/WinRT.Runtime/Projections/IPropertyValue.cs index 529464858..7d77a1af3 100644 --- a/WinRT.Runtime/Projections/IPropertyValue.cs +++ b/WinRT.Runtime/Projections/IPropertyValue.cs @@ -6,7 +6,7 @@ using WinRT.Interop; namespace Windows.Foundation -{ +{ internal enum PropertyType : uint { Empty = 0, @@ -104,95 +104,95 @@ internal static class ManagedIPropertyValueImpl private const int TYPE_E_TYPEMISMATCH = unchecked((int)0x80028CA0); private const int DISP_E_OVERFLOW = unchecked((int)0x8002000A); private static IPropertyValue.Vftbl AbiToProjectionVftable; - public static IntPtr AbiToProjectionVftablePtr; - + public static IntPtr AbiToProjectionVftablePtr; + #if NETSTANDARD2_0 - private static readonly Delegate[] DelegateCache = new Delegate[39]; + private static readonly Delegate[] DelegateCache = new Delegate[39]; #endif static unsafe ManagedIPropertyValueImpl() { AbiToProjectionVftable = new IPropertyValue.Vftbl { - IInspectableVftbl = global::WinRT.IInspectable.Vftbl.AbiToProjectionVftable, -#if NETSTANDARD2_0 - _get_Type_0 = Marshal.GetFunctionPointerForDelegate(DelegateCache[0] = new IPropertyValue_Delegates.get_Type_0(Do_Abi_get_Type_0)).ToPointer(), - _get_IsNumericScalar_1 = Marshal.GetFunctionPointerForDelegate(DelegateCache[1] = new IPropertyValue_Delegates.get_IsNumericScalar_1(Do_Abi_get_IsNumericScalar_1)).ToPointer(), - _GetUInt8_2 = Marshal.GetFunctionPointerForDelegate(DelegateCache[2] = new IPropertyValue_Delegates.GetUInt8_2(Do_Abi_GetUInt8_2)).ToPointer(), - _GetInt16_3 = Marshal.GetFunctionPointerForDelegate(DelegateCache[3] = new IPropertyValue_Delegates.GetInt16_3(Do_Abi_GetInt16_3)).ToPointer(), - _GetUInt16_4 = Marshal.GetFunctionPointerForDelegate(DelegateCache[4] = new IPropertyValue_Delegates.GetUInt16_4(Do_Abi_GetUInt16_4)).ToPointer(), - _GetInt32_5 = Marshal.GetFunctionPointerForDelegate(DelegateCache[5] = new IPropertyValue_Delegates.GetInt32_5(Do_Abi_GetInt32_5)).ToPointer(), - _GetUInt32_6 = Marshal.GetFunctionPointerForDelegate(DelegateCache[6] = new IPropertyValue_Delegates.GetUInt32_6(Do_Abi_GetUInt32_6)).ToPointer(), - _GetInt64_7 = Marshal.GetFunctionPointerForDelegate(DelegateCache[7] = new IPropertyValue_Delegates.GetInt64_7(Do_Abi_GetInt64_7)).ToPointer(), - _GetUInt64_8 = Marshal.GetFunctionPointerForDelegate(DelegateCache[8] = new IPropertyValue_Delegates.GetUInt64_8(Do_Abi_GetUInt64_8)).ToPointer(), - _GetSingle_9 = Marshal.GetFunctionPointerForDelegate(DelegateCache[9] = new IPropertyValue_Delegates.GetSingle_9(Do_Abi_GetSingle_9)).ToPointer(), - _GetDouble_10 = Marshal.GetFunctionPointerForDelegate(DelegateCache[10] = new IPropertyValue_Delegates.GetDouble_10(Do_Abi_GetDouble_10)).ToPointer(), - _GetChar16_11 = Marshal.GetFunctionPointerForDelegate(DelegateCache[11] = new IPropertyValue_Delegates.GetChar16_11(Do_Abi_GetChar16_11)).ToPointer(), - _GetBoolean_12 = Marshal.GetFunctionPointerForDelegate(DelegateCache[12] = new IPropertyValue_Delegates.GetBoolean_12(Do_Abi_GetBoolean_12)).ToPointer(), - _GetString_13 = Marshal.GetFunctionPointerForDelegate(DelegateCache[13] = new IPropertyValue_Delegates.GetString_13(Do_Abi_GetString_13)).ToPointer(), - _GetGuid_14 = Marshal.GetFunctionPointerForDelegate(DelegateCache[14] = new IPropertyValue_Delegates.GetGuid_14(Do_Abi_GetGuid_14)).ToPointer(), - _GetDateTime_15 = Marshal.GetFunctionPointerForDelegate(DelegateCache[15] = new IPropertyValue_Delegates.GetDateTime_15(Do_Abi_GetDateTime_15)).ToPointer(), - _GetTimeSpan_16 = Marshal.GetFunctionPointerForDelegate(DelegateCache[16] = new IPropertyValue_Delegates.GetTimeSpan_16(Do_Abi_GetTimeSpan_16)).ToPointer(), - _GetPoint_17 = Marshal.GetFunctionPointerForDelegate(DelegateCache[17] = new IPropertyValue_Delegates.GetPoint_17(Do_Abi_GetPoint_17)).ToPointer(), - _GetSize_18 = Marshal.GetFunctionPointerForDelegate(DelegateCache[18] = new IPropertyValue_Delegates.GetSize_18(Do_Abi_GetSize_18)).ToPointer(), - _GetRect_19 = Marshal.GetFunctionPointerForDelegate(DelegateCache[19] = new IPropertyValue_Delegates.GetRect_19(Do_Abi_GetRect_19)).ToPointer(), - _GetUInt8Array_20 = Marshal.GetFunctionPointerForDelegate(DelegateCache[20] = new IPropertyValue_Delegates.GetUInt8Array_20(Do_Abi_GetUInt8Array_20)).ToPointer(), - _GetInt16Array_21 = Marshal.GetFunctionPointerForDelegate(DelegateCache[21] = new IPropertyValue_Delegates.GetInt16Array_21(Do_Abi_GetInt16Array_21)).ToPointer(), - _GetUInt16Array_22 = Marshal.GetFunctionPointerForDelegate(DelegateCache[22] = new IPropertyValue_Delegates.GetUInt16Array_22(Do_Abi_GetUInt16Array_22)).ToPointer(), - _GetInt32Array_23 = Marshal.GetFunctionPointerForDelegate(DelegateCache[23] = new IPropertyValue_Delegates.GetInt32Array_23(Do_Abi_GetInt32Array_23)).ToPointer(), - _GetUInt32Array_24 = Marshal.GetFunctionPointerForDelegate(DelegateCache[24] = new IPropertyValue_Delegates.GetUInt32Array_24(Do_Abi_GetUInt32Array_24)).ToPointer(), - _GetInt64Array_25 = Marshal.GetFunctionPointerForDelegate(DelegateCache[25] = new IPropertyValue_Delegates.GetInt64Array_25(Do_Abi_GetInt64Array_25)).ToPointer(), - _GetUInt64Array_26 = Marshal.GetFunctionPointerForDelegate(DelegateCache[26] = new IPropertyValue_Delegates.GetUInt64Array_26(Do_Abi_GetUInt64Array_26)).ToPointer(), - _GetSingleArray_27 = Marshal.GetFunctionPointerForDelegate(DelegateCache[27] = new IPropertyValue_Delegates.GetSingleArray_27(Do_Abi_GetSingleArray_27)).ToPointer(), - _GetDoubleArray_28 = Marshal.GetFunctionPointerForDelegate(DelegateCache[28] = new IPropertyValue_Delegates.GetDoubleArray_28(Do_Abi_GetDoubleArray_28)).ToPointer(), - _GetChar16Array_29 = Marshal.GetFunctionPointerForDelegate(DelegateCache[29] = new IPropertyValue_Delegates.GetChar16Array_29(Do_Abi_GetChar16Array_29)).ToPointer(), - _GetBooleanArray_30 = Marshal.GetFunctionPointerForDelegate(DelegateCache[30] = new IPropertyValue_Delegates.GetBooleanArray_30(Do_Abi_GetBooleanArray_30)).ToPointer(), - _GetStringArray_31 = Marshal.GetFunctionPointerForDelegate(DelegateCache[31] = new IPropertyValue_Delegates.GetStringArray_31(Do_Abi_GetStringArray_31)).ToPointer(), - _GetInspectableArray_32 = Marshal.GetFunctionPointerForDelegate(DelegateCache[32] = new IPropertyValue_Delegates.GetInspectableArray_32(Do_Abi_GetInspectableArray_32)).ToPointer(), - _GetGuidArray_33 = Marshal.GetFunctionPointerForDelegate(DelegateCache[33] = new IPropertyValue_Delegates.GetGuidArray_33(Do_Abi_GetGuidArray_33)).ToPointer(), - _GetDateTimeArray_34 = Marshal.GetFunctionPointerForDelegate(DelegateCache[34] = new IPropertyValue_Delegates.GetDateTimeArray_34(Do_Abi_GetDateTimeArray_34)).ToPointer(), - _GetTimeSpanArray_35 = Marshal.GetFunctionPointerForDelegate(DelegateCache[35] = new IPropertyValue_Delegates.GetTimeSpanArray_35(Do_Abi_GetTimeSpanArray_35)).ToPointer(), - _GetPointArray_36 = Marshal.GetFunctionPointerForDelegate(DelegateCache[36] = new IPropertyValue_Delegates.GetPointArray_36(Do_Abi_GetPointArray_36)).ToPointer(), - _GetSizeArray_37 = Marshal.GetFunctionPointerForDelegate(DelegateCache[37] = new IPropertyValue_Delegates.GetSizeArray_37(Do_Abi_GetSizeArray_37)).ToPointer(), - _GetRectArray_38 = Marshal.GetFunctionPointerForDelegate(DelegateCache[38] = new IPropertyValue_Delegates.GetRectArray_38(Do_Abi_GetRectArray_38)).ToPointer(), -#else - _get_Type_0 = (delegate*)&Do_Abi_get_Type_0, - _get_IsNumericScalar_1 = (delegate*)&Do_Abi_get_IsNumericScalar_1, - _GetUInt8_2 = (delegate*)&Do_Abi_GetUInt8_2, - _GetInt16_3 = (delegate*)&Do_Abi_GetInt16_3, - _GetUInt16_4 = (delegate*)&Do_Abi_GetUInt16_4, - _GetInt32_5 = (delegate*)&Do_Abi_GetInt32_5, - _GetUInt32_6 = (delegate*)&Do_Abi_GetUInt32_6, - _GetInt64_7 = (delegate*)&Do_Abi_GetInt64_7, - _GetUInt64_8 = (delegate*)&Do_Abi_GetUInt64_8, - _GetSingle_9 = (delegate*)&Do_Abi_GetSingle_9, - _GetDouble_10 = (delegate*)&Do_Abi_GetDouble_10, - _GetChar16_11 = (delegate*)&Do_Abi_GetChar16_11, - _GetBoolean_12 = (delegate*)&Do_Abi_GetBoolean_12, - _GetString_13 = (delegate*)&Do_Abi_GetString_13, - _GetGuid_14 = (delegate*)&Do_Abi_GetGuid_14, - _GetDateTime_15 = (delegate*)&Do_Abi_GetDateTime_15, - _GetTimeSpan_16 = (delegate*)&Do_Abi_GetTimeSpan_16, - _GetPoint_17 = (delegate*)&Do_Abi_GetPoint_17, - _GetSize_18 = (delegate*)&Do_Abi_GetSize_18, - _GetRect_19 = (delegate*)&Do_Abi_GetRect_19, - _GetUInt8Array_20 = (delegate*)&Do_Abi_GetUInt8Array_20, - _GetInt16Array_21 = (delegate*)&Do_Abi_GetInt16Array_21, - _GetUInt16Array_22 = (delegate*)&Do_Abi_GetUInt16Array_22, - _GetInt32Array_23 = (delegate*)&Do_Abi_GetInt32Array_23, - _GetUInt32Array_24 = (delegate*)&Do_Abi_GetUInt32Array_24, - _GetInt64Array_25 = (delegate*)&Do_Abi_GetInt64Array_25, - _GetUInt64Array_26 = (delegate*)&Do_Abi_GetUInt64Array_26, - _GetSingleArray_27 = (delegate*)&Do_Abi_GetSingleArray_27, - _GetDoubleArray_28 = (delegate*)&Do_Abi_GetDoubleArray_28, - _GetChar16Array_29 = (delegate*)&Do_Abi_GetChar16Array_29, - _GetBooleanArray_30 = (delegate*)&Do_Abi_GetBooleanArray_30, - _GetStringArray_31 = (delegate*)&Do_Abi_GetStringArray_31, - _GetInspectableArray_32 = (delegate*)&Do_Abi_GetInspectableArray_32, - _GetGuidArray_33 = (delegate*)&Do_Abi_GetGuidArray_33, - _GetDateTimeArray_34 = (delegate*)&Do_Abi_GetDateTimeArray_34, - _GetTimeSpanArray_35 = (delegate*)&Do_Abi_GetTimeSpanArray_35, - _GetPointArray_36 = (delegate*)&Do_Abi_GetPointArray_36, - _GetSizeArray_37 = (delegate*)&Do_Abi_GetSizeArray_37, + IInspectableVftbl = global::WinRT.IInspectable.Vftbl.AbiToProjectionVftable, +#if NETSTANDARD2_0 + _get_Type_0 = Marshal.GetFunctionPointerForDelegate(DelegateCache[0] = new IPropertyValue_Delegates.get_Type_0(Do_Abi_get_Type_0)).ToPointer(), + _get_IsNumericScalar_1 = Marshal.GetFunctionPointerForDelegate(DelegateCache[1] = new IPropertyValue_Delegates.get_IsNumericScalar_1(Do_Abi_get_IsNumericScalar_1)).ToPointer(), + _GetUInt8_2 = Marshal.GetFunctionPointerForDelegate(DelegateCache[2] = new IPropertyValue_Delegates.GetUInt8_2(Do_Abi_GetUInt8_2)).ToPointer(), + _GetInt16_3 = Marshal.GetFunctionPointerForDelegate(DelegateCache[3] = new IPropertyValue_Delegates.GetInt16_3(Do_Abi_GetInt16_3)).ToPointer(), + _GetUInt16_4 = Marshal.GetFunctionPointerForDelegate(DelegateCache[4] = new IPropertyValue_Delegates.GetUInt16_4(Do_Abi_GetUInt16_4)).ToPointer(), + _GetInt32_5 = Marshal.GetFunctionPointerForDelegate(DelegateCache[5] = new IPropertyValue_Delegates.GetInt32_5(Do_Abi_GetInt32_5)).ToPointer(), + _GetUInt32_6 = Marshal.GetFunctionPointerForDelegate(DelegateCache[6] = new IPropertyValue_Delegates.GetUInt32_6(Do_Abi_GetUInt32_6)).ToPointer(), + _GetInt64_7 = Marshal.GetFunctionPointerForDelegate(DelegateCache[7] = new IPropertyValue_Delegates.GetInt64_7(Do_Abi_GetInt64_7)).ToPointer(), + _GetUInt64_8 = Marshal.GetFunctionPointerForDelegate(DelegateCache[8] = new IPropertyValue_Delegates.GetUInt64_8(Do_Abi_GetUInt64_8)).ToPointer(), + _GetSingle_9 = Marshal.GetFunctionPointerForDelegate(DelegateCache[9] = new IPropertyValue_Delegates.GetSingle_9(Do_Abi_GetSingle_9)).ToPointer(), + _GetDouble_10 = Marshal.GetFunctionPointerForDelegate(DelegateCache[10] = new IPropertyValue_Delegates.GetDouble_10(Do_Abi_GetDouble_10)).ToPointer(), + _GetChar16_11 = Marshal.GetFunctionPointerForDelegate(DelegateCache[11] = new IPropertyValue_Delegates.GetChar16_11(Do_Abi_GetChar16_11)).ToPointer(), + _GetBoolean_12 = Marshal.GetFunctionPointerForDelegate(DelegateCache[12] = new IPropertyValue_Delegates.GetBoolean_12(Do_Abi_GetBoolean_12)).ToPointer(), + _GetString_13 = Marshal.GetFunctionPointerForDelegate(DelegateCache[13] = new IPropertyValue_Delegates.GetString_13(Do_Abi_GetString_13)).ToPointer(), + _GetGuid_14 = Marshal.GetFunctionPointerForDelegate(DelegateCache[14] = new IPropertyValue_Delegates.GetGuid_14(Do_Abi_GetGuid_14)).ToPointer(), + _GetDateTime_15 = Marshal.GetFunctionPointerForDelegate(DelegateCache[15] = new IPropertyValue_Delegates.GetDateTime_15(Do_Abi_GetDateTime_15)).ToPointer(), + _GetTimeSpan_16 = Marshal.GetFunctionPointerForDelegate(DelegateCache[16] = new IPropertyValue_Delegates.GetTimeSpan_16(Do_Abi_GetTimeSpan_16)).ToPointer(), + _GetPoint_17 = Marshal.GetFunctionPointerForDelegate(DelegateCache[17] = new IPropertyValue_Delegates.GetPoint_17(Do_Abi_GetPoint_17)).ToPointer(), + _GetSize_18 = Marshal.GetFunctionPointerForDelegate(DelegateCache[18] = new IPropertyValue_Delegates.GetSize_18(Do_Abi_GetSize_18)).ToPointer(), + _GetRect_19 = Marshal.GetFunctionPointerForDelegate(DelegateCache[19] = new IPropertyValue_Delegates.GetRect_19(Do_Abi_GetRect_19)).ToPointer(), + _GetUInt8Array_20 = Marshal.GetFunctionPointerForDelegate(DelegateCache[20] = new IPropertyValue_Delegates.GetUInt8Array_20(Do_Abi_GetUInt8Array_20)).ToPointer(), + _GetInt16Array_21 = Marshal.GetFunctionPointerForDelegate(DelegateCache[21] = new IPropertyValue_Delegates.GetInt16Array_21(Do_Abi_GetInt16Array_21)).ToPointer(), + _GetUInt16Array_22 = Marshal.GetFunctionPointerForDelegate(DelegateCache[22] = new IPropertyValue_Delegates.GetUInt16Array_22(Do_Abi_GetUInt16Array_22)).ToPointer(), + _GetInt32Array_23 = Marshal.GetFunctionPointerForDelegate(DelegateCache[23] = new IPropertyValue_Delegates.GetInt32Array_23(Do_Abi_GetInt32Array_23)).ToPointer(), + _GetUInt32Array_24 = Marshal.GetFunctionPointerForDelegate(DelegateCache[24] = new IPropertyValue_Delegates.GetUInt32Array_24(Do_Abi_GetUInt32Array_24)).ToPointer(), + _GetInt64Array_25 = Marshal.GetFunctionPointerForDelegate(DelegateCache[25] = new IPropertyValue_Delegates.GetInt64Array_25(Do_Abi_GetInt64Array_25)).ToPointer(), + _GetUInt64Array_26 = Marshal.GetFunctionPointerForDelegate(DelegateCache[26] = new IPropertyValue_Delegates.GetUInt64Array_26(Do_Abi_GetUInt64Array_26)).ToPointer(), + _GetSingleArray_27 = Marshal.GetFunctionPointerForDelegate(DelegateCache[27] = new IPropertyValue_Delegates.GetSingleArray_27(Do_Abi_GetSingleArray_27)).ToPointer(), + _GetDoubleArray_28 = Marshal.GetFunctionPointerForDelegate(DelegateCache[28] = new IPropertyValue_Delegates.GetDoubleArray_28(Do_Abi_GetDoubleArray_28)).ToPointer(), + _GetChar16Array_29 = Marshal.GetFunctionPointerForDelegate(DelegateCache[29] = new IPropertyValue_Delegates.GetChar16Array_29(Do_Abi_GetChar16Array_29)).ToPointer(), + _GetBooleanArray_30 = Marshal.GetFunctionPointerForDelegate(DelegateCache[30] = new IPropertyValue_Delegates.GetBooleanArray_30(Do_Abi_GetBooleanArray_30)).ToPointer(), + _GetStringArray_31 = Marshal.GetFunctionPointerForDelegate(DelegateCache[31] = new IPropertyValue_Delegates.GetStringArray_31(Do_Abi_GetStringArray_31)).ToPointer(), + _GetInspectableArray_32 = Marshal.GetFunctionPointerForDelegate(DelegateCache[32] = new IPropertyValue_Delegates.GetInspectableArray_32(Do_Abi_GetInspectableArray_32)).ToPointer(), + _GetGuidArray_33 = Marshal.GetFunctionPointerForDelegate(DelegateCache[33] = new IPropertyValue_Delegates.GetGuidArray_33(Do_Abi_GetGuidArray_33)).ToPointer(), + _GetDateTimeArray_34 = Marshal.GetFunctionPointerForDelegate(DelegateCache[34] = new IPropertyValue_Delegates.GetDateTimeArray_34(Do_Abi_GetDateTimeArray_34)).ToPointer(), + _GetTimeSpanArray_35 = Marshal.GetFunctionPointerForDelegate(DelegateCache[35] = new IPropertyValue_Delegates.GetTimeSpanArray_35(Do_Abi_GetTimeSpanArray_35)).ToPointer(), + _GetPointArray_36 = Marshal.GetFunctionPointerForDelegate(DelegateCache[36] = new IPropertyValue_Delegates.GetPointArray_36(Do_Abi_GetPointArray_36)).ToPointer(), + _GetSizeArray_37 = Marshal.GetFunctionPointerForDelegate(DelegateCache[37] = new IPropertyValue_Delegates.GetSizeArray_37(Do_Abi_GetSizeArray_37)).ToPointer(), + _GetRectArray_38 = Marshal.GetFunctionPointerForDelegate(DelegateCache[38] = new IPropertyValue_Delegates.GetRectArray_38(Do_Abi_GetRectArray_38)).ToPointer(), +#else + _get_Type_0 = (delegate*)&Do_Abi_get_Type_0, + _get_IsNumericScalar_1 = (delegate*)&Do_Abi_get_IsNumericScalar_1, + _GetUInt8_2 = (delegate*)&Do_Abi_GetUInt8_2, + _GetInt16_3 = (delegate*)&Do_Abi_GetInt16_3, + _GetUInt16_4 = (delegate*)&Do_Abi_GetUInt16_4, + _GetInt32_5 = (delegate*)&Do_Abi_GetInt32_5, + _GetUInt32_6 = (delegate*)&Do_Abi_GetUInt32_6, + _GetInt64_7 = (delegate*)&Do_Abi_GetInt64_7, + _GetUInt64_8 = (delegate*)&Do_Abi_GetUInt64_8, + _GetSingle_9 = (delegate*)&Do_Abi_GetSingle_9, + _GetDouble_10 = (delegate*)&Do_Abi_GetDouble_10, + _GetChar16_11 = (delegate*)&Do_Abi_GetChar16_11, + _GetBoolean_12 = (delegate*)&Do_Abi_GetBoolean_12, + _GetString_13 = (delegate*)&Do_Abi_GetString_13, + _GetGuid_14 = (delegate*)&Do_Abi_GetGuid_14, + _GetDateTime_15 = (delegate*)&Do_Abi_GetDateTime_15, + _GetTimeSpan_16 = (delegate*)&Do_Abi_GetTimeSpan_16, + _GetPoint_17 = (delegate*)&Do_Abi_GetPoint_17, + _GetSize_18 = (delegate*)&Do_Abi_GetSize_18, + _GetRect_19 = (delegate*)&Do_Abi_GetRect_19, + _GetUInt8Array_20 = (delegate*)&Do_Abi_GetUInt8Array_20, + _GetInt16Array_21 = (delegate*)&Do_Abi_GetInt16Array_21, + _GetUInt16Array_22 = (delegate*)&Do_Abi_GetUInt16Array_22, + _GetInt32Array_23 = (delegate*)&Do_Abi_GetInt32Array_23, + _GetUInt32Array_24 = (delegate*)&Do_Abi_GetUInt32Array_24, + _GetInt64Array_25 = (delegate*)&Do_Abi_GetInt64Array_25, + _GetUInt64Array_26 = (delegate*)&Do_Abi_GetUInt64Array_26, + _GetSingleArray_27 = (delegate*)&Do_Abi_GetSingleArray_27, + _GetDoubleArray_28 = (delegate*)&Do_Abi_GetDoubleArray_28, + _GetChar16Array_29 = (delegate*)&Do_Abi_GetChar16Array_29, + _GetBooleanArray_30 = (delegate*)&Do_Abi_GetBooleanArray_30, + _GetStringArray_31 = (delegate*)&Do_Abi_GetStringArray_31, + _GetInspectableArray_32 = (delegate*)&Do_Abi_GetInspectableArray_32, + _GetGuidArray_33 = (delegate*)&Do_Abi_GetGuidArray_33, + _GetDateTimeArray_34 = (delegate*)&Do_Abi_GetDateTimeArray_34, + _GetTimeSpanArray_35 = (delegate*)&Do_Abi_GetTimeSpanArray_35, + _GetPointArray_36 = (delegate*)&Do_Abi_GetPointArray_36, + _GetSizeArray_37 = (delegate*)&Do_Abi_GetSizeArray_37, _GetRectArray_38 = (delegate*)&Do_Abi_GetRectArray_38, #endif }; @@ -437,8 +437,8 @@ private static unsafe int Do_Abi_GetUInt8_2(IntPtr thisPtr, byte* value) return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -454,8 +454,8 @@ private static unsafe int Do_Abi_GetInt16_3(IntPtr thisPtr, short* value) return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -471,8 +471,8 @@ private static unsafe int Do_Abi_GetUInt16_4(IntPtr thisPtr, ushort* value) return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -488,8 +488,8 @@ private static unsafe int Do_Abi_GetInt32_5(IntPtr thisPtr, int* value) return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -505,8 +505,8 @@ private static unsafe int Do_Abi_GetUInt32_6(IntPtr thisPtr, uint* value) return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -522,8 +522,8 @@ private static unsafe int Do_Abi_GetInt64_7(IntPtr thisPtr, long* value) return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -539,8 +539,8 @@ private static unsafe int Do_Abi_GetUInt64_8(IntPtr thisPtr, ulong* value) return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -556,8 +556,8 @@ private static unsafe int Do_Abi_GetSingle_9(IntPtr thisPtr, float* value) return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -573,8 +573,8 @@ private static unsafe int Do_Abi_GetDouble_10(IntPtr thisPtr, double* value) return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -591,8 +591,8 @@ private static unsafe int Do_Abi_GetChar16_11(IntPtr thisPtr, ushort* value) return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -609,8 +609,8 @@ private static unsafe int Do_Abi_GetBoolean_12(IntPtr thisPtr, byte* value) return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -627,8 +627,8 @@ private static unsafe int Do_Abi_GetString_13(IntPtr thisPtr, IntPtr* value) return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -645,8 +645,8 @@ private static unsafe int Do_Abi_GetGuid_14(IntPtr thisPtr, Guid* value) return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -663,8 +663,8 @@ private static unsafe int Do_Abi_GetDateTime_15(IntPtr thisPtr, global::ABI.Syst return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -681,8 +681,8 @@ private static unsafe int Do_Abi_GetTimeSpan_16(IntPtr thisPtr, global::ABI.Syst return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -699,8 +699,8 @@ private static unsafe int Do_Abi_GetPoint_17(IntPtr thisPtr, global::Windows.Fou return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -717,8 +717,8 @@ private static unsafe int Do_Abi_GetSize_18(IntPtr thisPtr, global::Windows.Foun return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -735,8 +735,8 @@ private static unsafe int Do_Abi_GetRect_19(IntPtr thisPtr, global::Windows.Foun return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -755,8 +755,8 @@ private static unsafe int Do_Abi_GetUInt8Array_20(IntPtr thisPtr, int* __valueSi return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -778,8 +778,8 @@ private static unsafe int Do_Abi_GetInt16Array_21(IntPtr thisPtr, int* __valueSi return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -801,8 +801,8 @@ private static unsafe int Do_Abi_GetUInt16Array_22(IntPtr thisPtr, int* __valueS return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -824,8 +824,8 @@ private static unsafe int Do_Abi_GetInt32Array_23(IntPtr thisPtr, int* __valueSi return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -847,8 +847,8 @@ private static unsafe int Do_Abi_GetUInt32Array_24(IntPtr thisPtr, int* __valueS return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -870,8 +870,8 @@ private static unsafe int Do_Abi_GetInt64Array_25(IntPtr thisPtr, int* __valueSi return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -893,8 +893,8 @@ private static unsafe int Do_Abi_GetUInt64Array_26(IntPtr thisPtr, int* __valueS return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -916,8 +916,8 @@ private static unsafe int Do_Abi_GetSingleArray_27(IntPtr thisPtr, int* __valueS return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -939,8 +939,8 @@ private static unsafe int Do_Abi_GetDoubleArray_28(IntPtr thisPtr, int* __valueS return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -962,8 +962,8 @@ private static unsafe int Do_Abi_GetChar16Array_29(IntPtr thisPtr, int* __valueS return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -985,8 +985,8 @@ private static unsafe int Do_Abi_GetBooleanArray_30(IntPtr thisPtr, int* __value return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -1009,8 +1009,8 @@ private static unsafe int Do_Abi_GetStringArray_31(IntPtr thisPtr, int* __valueS return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -1032,8 +1032,8 @@ private static unsafe int Do_Abi_GetInspectableArray_32(IntPtr thisPtr, int* __v return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -1056,8 +1056,8 @@ private static unsafe int Do_Abi_GetGuidArray_33(IntPtr thisPtr, int* __valueSiz return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -1080,8 +1080,8 @@ private static unsafe int Do_Abi_GetDateTimeArray_34(IntPtr thisPtr, int* __valu return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -1104,8 +1104,8 @@ private static unsafe int Do_Abi_GetTimeSpanArray_35(IntPtr thisPtr, int* __valu return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -1128,8 +1128,8 @@ private static unsafe int Do_Abi_GetPointArray_36(IntPtr thisPtr, int* __valueSi return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -1152,8 +1152,8 @@ private static unsafe int Do_Abi_GetSizeArray_37(IntPtr thisPtr, int* __valueSiz return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -1176,8 +1176,8 @@ private static unsafe int Do_Abi_GetRectArray_38(IntPtr thisPtr, int* __valueSiz return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -1194,8 +1194,8 @@ private static unsafe int Do_Abi_get_IsNumericScalar_1(IntPtr thisPtr, byte* val return global::WinRT.ExceptionHelpers.GetHRForException(__exception__); } return 0; - } - + } + #if !NETSTANDARD2_0 [UnmanagedCallersOnly] #endif @@ -1298,85 +1298,85 @@ internal unsafe class IPropertyValue : global::Windows.Foundation.IPropertyValue [Guid("4BD682DD-7554-40E9-9A9B-82654EDE7E62")] public struct Vftbl { - internal IInspectable.Vftbl IInspectableVftbl; - internal void* _get_Type_0; - public delegate* stdcall get_Type_0 { get => (delegate* stdcall)_get_Type_0; set => _get_Type_0 = value; } - public void* _get_IsNumericScalar_1; - public delegate* stdcall get_IsNumericScalar_1 { get => (delegate* stdcall)_get_IsNumericScalar_1; set => _get_IsNumericScalar_1 = value; } - internal void* _GetUInt8_2; - public delegate* stdcall GetUInt8_2 { get => (delegate* stdcall)_GetUInt8_2; set => _GetUInt8_2 = value; } - internal void* _GetInt16_3; - public delegate* stdcall GetInt16_3 { get => (delegate* stdcall)_GetInt16_3; set => _GetInt16_3 = value; } - internal void* _GetUInt16_4; - public delegate* stdcall GetUInt16_4 { get => (delegate* stdcall)_GetUInt16_4; set => _GetUInt16_4 = value; } - internal void* _GetInt32_5; - public delegate* stdcall GetInt32_5 { get => (delegate* stdcall)_GetInt32_5; set => _GetInt32_5 = value; } - internal void* _GetUInt32_6; - public delegate* stdcall GetUInt32_6 { get => (delegate* stdcall)_GetUInt32_6; set => _GetUInt32_6 = value; } - internal void* _GetInt64_7; - public delegate* stdcall GetInt64_7 { get => (delegate* stdcall)_GetInt64_7; set => _GetInt64_7 = value; } - internal void* _GetUInt64_8; - public delegate* stdcall GetUInt64_8 { get => (delegate* stdcall)_GetUInt64_8; set => _GetUInt64_8 = value; } - internal void* _GetSingle_9; - public delegate* stdcall GetSingle_9 { get => (delegate* stdcall)_GetSingle_9; set => _GetSingle_9 = value; } - internal void* _GetDouble_10; - public delegate* stdcall GetDouble_10 { get => (delegate* stdcall)_GetDouble_10; set => _GetDouble_10 = value; } - internal void* _GetChar16_11; - public delegate* stdcall GetChar16_11 { get => (delegate* stdcall)_GetChar16_11; set => _GetChar16_11 = value; } - internal void* _GetBoolean_12; - public delegate* stdcall GetBoolean_12 { get => (delegate* stdcall)_GetBoolean_12; set => _GetBoolean_12 = value; } - internal void* _GetString_13; - public delegate* stdcall GetString_13 { get => (delegate* stdcall)_GetString_13; set => _GetString_13 = value; } - internal void* _GetGuid_14; - public delegate* stdcall GetGuid_14 { get => (delegate* stdcall)_GetGuid_14; set => _GetGuid_14 = value; } - internal void* _GetDateTime_15; - public delegate* stdcall GetDateTime_15 { get => (delegate* stdcall)_GetDateTime_15; set => _GetDateTime_15 = value; } - internal void* _GetTimeSpan_16; - public delegate* stdcall GetTimeSpan_16 { get => (delegate* stdcall)_GetTimeSpan_16; set => _GetTimeSpan_16 = value; } - internal void* _GetPoint_17; - public delegate* stdcall GetPoint_17 { get => (delegate* stdcall)_GetPoint_17; set => _GetPoint_17 = value; } - internal void* _GetSize_18; - public delegate* stdcall GetSize_18 { get => (delegate* stdcall)_GetSize_18; set => _GetSize_18 = value; } - internal void* _GetRect_19; - public delegate* stdcall GetRect_19 { get => (delegate* stdcall)_GetRect_19; set => _GetRect_19 = value; } - internal void* _GetUInt8Array_20; - public delegate* stdcall GetUInt8Array_20 { get => (delegate* stdcall)_GetUInt8Array_20; set => _GetUInt8Array_20 = value; } - internal void* _GetInt16Array_21; - public delegate* stdcall GetInt16Array_21 { get => (delegate* stdcall)_GetInt16Array_21; set => _GetInt16Array_21 = value; } - internal void* _GetUInt16Array_22; - public delegate* stdcall GetUInt16Array_22 { get => (delegate* stdcall)_GetUInt16Array_22; set => _GetUInt16Array_22 = value; } - internal void* _GetInt32Array_23; - public delegate* stdcall GetInt32Array_23 { get => (delegate* stdcall)_GetInt32Array_23; set => _GetInt32Array_23 = value; } - internal void* _GetUInt32Array_24; - public delegate* stdcall GetUInt32Array_24 { get => (delegate* stdcall)_GetUInt32Array_24; set => _GetUInt32Array_24 = value; } - internal void* _GetInt64Array_25; - public delegate* stdcall GetInt64Array_25 { get => (delegate* stdcall)_GetInt64Array_25; set => _GetInt64Array_25 = value; } - internal void* _GetUInt64Array_26; - public delegate* stdcall GetUInt64Array_26 { get => (delegate* stdcall)_GetUInt64Array_26; set => _GetUInt64Array_26 = value; } - internal void* _GetSingleArray_27; - public delegate* stdcall GetSingleArray_27 { get => (delegate* stdcall)_GetSingleArray_27; set => _GetSingleArray_27 = value; } - internal void* _GetDoubleArray_28; - public delegate* stdcall GetDoubleArray_28 { get => (delegate* stdcall)_GetDoubleArray_28; set => _GetDoubleArray_28 = value; } - internal void* _GetChar16Array_29; - public delegate* stdcall GetChar16Array_29 { get => (delegate* stdcall)_GetChar16Array_29; set => _GetChar16Array_29 = value; } - internal void* _GetBooleanArray_30; - public delegate* stdcall GetBooleanArray_30 { get => (delegate* stdcall)_GetBooleanArray_30; set => _GetBooleanArray_30 = value; } - internal void* _GetStringArray_31; - public delegate* stdcall GetStringArray_31 { get => (delegate* stdcall)_GetStringArray_31; set => _GetStringArray_31 = value; } - internal void* _GetInspectableArray_32; - public delegate* stdcall GetInspectableArray_32 { get => (delegate* stdcall)_GetInspectableArray_32; set => _GetInspectableArray_32 = value; } - internal void* _GetGuidArray_33; - public delegate* stdcall GetGuidArray_33 { get => (delegate* stdcall)_GetGuidArray_33; set => _GetGuidArray_33 = value; } - internal void* _GetDateTimeArray_34; - public delegate* stdcall GetDateTimeArray_34 { get => (delegate* stdcall)_GetDateTimeArray_34; set => _GetDateTimeArray_34 = value; } - internal void* _GetTimeSpanArray_35; - public delegate* stdcall GetTimeSpanArray_35 { get => (delegate* stdcall)_GetTimeSpanArray_35; set => _GetTimeSpanArray_35 = value; } - internal void* _GetPointArray_36; - public delegate* stdcall GetPointArray_36 { get => (delegate* stdcall)_GetPointArray_36; set => _GetPointArray_36 = value; } - internal void* _GetSizeArray_37; - public delegate* stdcall GetSizeArray_37 { get => (delegate* stdcall)_GetSizeArray_37; set => _GetSizeArray_37 = value; } - internal void* _GetRectArray_38; - public delegate* stdcall GetRectArray_38 { get => (delegate* stdcall)_GetRectArray_38; set => _GetRectArray_38 = value; } + internal IInspectable.Vftbl IInspectableVftbl; + internal void* _get_Type_0; + public delegate* unmanaged[Stdcall] get_Type_0 { get => (delegate* unmanaged[Stdcall])_get_Type_0; set => _get_Type_0 = value; } + public void* _get_IsNumericScalar_1; + public delegate* unmanaged[Stdcall] get_IsNumericScalar_1 { get => (delegate* unmanaged[Stdcall])_get_IsNumericScalar_1; set => _get_IsNumericScalar_1 = value; } + internal void* _GetUInt8_2; + public delegate* unmanaged[Stdcall] GetUInt8_2 { get => (delegate* unmanaged[Stdcall])_GetUInt8_2; set => _GetUInt8_2 = value; } + internal void* _GetInt16_3; + public delegate* unmanaged[Stdcall] GetInt16_3 { get => (delegate* unmanaged[Stdcall])_GetInt16_3; set => _GetInt16_3 = value; } + internal void* _GetUInt16_4; + public delegate* unmanaged[Stdcall] GetUInt16_4 { get => (delegate* unmanaged[Stdcall])_GetUInt16_4; set => _GetUInt16_4 = value; } + internal void* _GetInt32_5; + public delegate* unmanaged[Stdcall] GetInt32_5 { get => (delegate* unmanaged[Stdcall])_GetInt32_5; set => _GetInt32_5 = value; } + internal void* _GetUInt32_6; + public delegate* unmanaged[Stdcall] GetUInt32_6 { get => (delegate* unmanaged[Stdcall])_GetUInt32_6; set => _GetUInt32_6 = value; } + internal void* _GetInt64_7; + public delegate* unmanaged[Stdcall] GetInt64_7 { get => (delegate* unmanaged[Stdcall])_GetInt64_7; set => _GetInt64_7 = value; } + internal void* _GetUInt64_8; + public delegate* unmanaged[Stdcall] GetUInt64_8 { get => (delegate* unmanaged[Stdcall])_GetUInt64_8; set => _GetUInt64_8 = value; } + internal void* _GetSingle_9; + public delegate* unmanaged[Stdcall] GetSingle_9 { get => (delegate* unmanaged[Stdcall])_GetSingle_9; set => _GetSingle_9 = value; } + internal void* _GetDouble_10; + public delegate* unmanaged[Stdcall] GetDouble_10 { get => (delegate* unmanaged[Stdcall])_GetDouble_10; set => _GetDouble_10 = value; } + internal void* _GetChar16_11; + public delegate* unmanaged[Stdcall] GetChar16_11 { get => (delegate* unmanaged[Stdcall])_GetChar16_11; set => _GetChar16_11 = value; } + internal void* _GetBoolean_12; + public delegate* unmanaged[Stdcall] GetBoolean_12 { get => (delegate* unmanaged[Stdcall])_GetBoolean_12; set => _GetBoolean_12 = value; } + internal void* _GetString_13; + public delegate* unmanaged[Stdcall] GetString_13 { get => (delegate* unmanaged[Stdcall])_GetString_13; set => _GetString_13 = value; } + internal void* _GetGuid_14; + public delegate* unmanaged[Stdcall] GetGuid_14 { get => (delegate* unmanaged[Stdcall])_GetGuid_14; set => _GetGuid_14 = value; } + internal void* _GetDateTime_15; + public delegate* unmanaged[Stdcall] GetDateTime_15 { get => (delegate* unmanaged[Stdcall])_GetDateTime_15; set => _GetDateTime_15 = value; } + internal void* _GetTimeSpan_16; + public delegate* unmanaged[Stdcall] GetTimeSpan_16 { get => (delegate* unmanaged[Stdcall])_GetTimeSpan_16; set => _GetTimeSpan_16 = value; } + internal void* _GetPoint_17; + public delegate* unmanaged[Stdcall] GetPoint_17 { get => (delegate* unmanaged[Stdcall])_GetPoint_17; set => _GetPoint_17 = value; } + internal void* _GetSize_18; + public delegate* unmanaged[Stdcall] GetSize_18 { get => (delegate* unmanaged[Stdcall])_GetSize_18; set => _GetSize_18 = value; } + internal void* _GetRect_19; + public delegate* unmanaged[Stdcall] GetRect_19 { get => (delegate* unmanaged[Stdcall])_GetRect_19; set => _GetRect_19 = value; } + internal void* _GetUInt8Array_20; + public delegate* unmanaged[Stdcall] GetUInt8Array_20 { get => (delegate* unmanaged[Stdcall])_GetUInt8Array_20; set => _GetUInt8Array_20 = value; } + internal void* _GetInt16Array_21; + public delegate* unmanaged[Stdcall] GetInt16Array_21 { get => (delegate* unmanaged[Stdcall])_GetInt16Array_21; set => _GetInt16Array_21 = value; } + internal void* _GetUInt16Array_22; + public delegate* unmanaged[Stdcall] GetUInt16Array_22 { get => (delegate* unmanaged[Stdcall])_GetUInt16Array_22; set => _GetUInt16Array_22 = value; } + internal void* _GetInt32Array_23; + public delegate* unmanaged[Stdcall] GetInt32Array_23 { get => (delegate* unmanaged[Stdcall])_GetInt32Array_23; set => _GetInt32Array_23 = value; } + internal void* _GetUInt32Array_24; + public delegate* unmanaged[Stdcall] GetUInt32Array_24 { get => (delegate* unmanaged[Stdcall])_GetUInt32Array_24; set => _GetUInt32Array_24 = value; } + internal void* _GetInt64Array_25; + public delegate* unmanaged[Stdcall] GetInt64Array_25 { get => (delegate* unmanaged[Stdcall])_GetInt64Array_25; set => _GetInt64Array_25 = value; } + internal void* _GetUInt64Array_26; + public delegate* unmanaged[Stdcall] GetUInt64Array_26 { get => (delegate* unmanaged[Stdcall])_GetUInt64Array_26; set => _GetUInt64Array_26 = value; } + internal void* _GetSingleArray_27; + public delegate* unmanaged[Stdcall] GetSingleArray_27 { get => (delegate* unmanaged[Stdcall])_GetSingleArray_27; set => _GetSingleArray_27 = value; } + internal void* _GetDoubleArray_28; + public delegate* unmanaged[Stdcall] GetDoubleArray_28 { get => (delegate* unmanaged[Stdcall])_GetDoubleArray_28; set => _GetDoubleArray_28 = value; } + internal void* _GetChar16Array_29; + public delegate* unmanaged[Stdcall] GetChar16Array_29 { get => (delegate* unmanaged[Stdcall])_GetChar16Array_29; set => _GetChar16Array_29 = value; } + internal void* _GetBooleanArray_30; + public delegate* unmanaged[Stdcall] GetBooleanArray_30 { get => (delegate* unmanaged[Stdcall])_GetBooleanArray_30; set => _GetBooleanArray_30 = value; } + internal void* _GetStringArray_31; + public delegate* unmanaged[Stdcall] GetStringArray_31 { get => (delegate* unmanaged[Stdcall])_GetStringArray_31; set => _GetStringArray_31 = value; } + internal void* _GetInspectableArray_32; + public delegate* unmanaged[Stdcall] GetInspectableArray_32 { get => (delegate* unmanaged[Stdcall])_GetInspectableArray_32; set => _GetInspectableArray_32 = value; } + internal void* _GetGuidArray_33; + public delegate* unmanaged[Stdcall] GetGuidArray_33 { get => (delegate* unmanaged[Stdcall])_GetGuidArray_33; set => _GetGuidArray_33 = value; } + internal void* _GetDateTimeArray_34; + public delegate* unmanaged[Stdcall] GetDateTimeArray_34 { get => (delegate* unmanaged[Stdcall])_GetDateTimeArray_34; set => _GetDateTimeArray_34 = value; } + internal void* _GetTimeSpanArray_35; + public delegate* unmanaged[Stdcall] GetTimeSpanArray_35 { get => (delegate* unmanaged[Stdcall])_GetTimeSpanArray_35; set => _GetTimeSpanArray_35 = value; } + internal void* _GetPointArray_36; + public delegate* unmanaged[Stdcall] GetPointArray_36 { get => (delegate* unmanaged[Stdcall])_GetPointArray_36; set => _GetPointArray_36 = value; } + internal void* _GetSizeArray_37; + public delegate* unmanaged[Stdcall] GetSizeArray_37 { get => (delegate* unmanaged[Stdcall])_GetSizeArray_37; set => _GetSizeArray_37 = value; } + internal void* _GetRectArray_38; + public delegate* unmanaged[Stdcall] GetRectArray_38 { get => (delegate* unmanaged[Stdcall])_GetRectArray_38; set => _GetRectArray_38 = value; } } public static ObjectReference FromAbi(IntPtr thisPtr) => ObjectReference.FromAbi(thisPtr); diff --git a/WinRT.Runtime/Projections/IStringable.cs b/WinRT.Runtime/Projections/IStringable.cs index 072cbdb26..154ec7a19 100644 --- a/WinRT.Runtime/Projections/IStringable.cs +++ b/WinRT.Runtime/Projections/IStringable.cs @@ -13,7 +13,7 @@ internal unsafe struct ManagedIStringableVftbl internal IInspectable.Vftbl IInspectableVftbl; private void* _ToString_0; - private delegate* stdcall ToString_0 { get => (delegate* stdcall)_ToString_0; set => _ToString_0 = value; } + private delegate* unmanaged[Stdcall] ToString_0 { get => (delegate* unmanaged[Stdcall])_ToString_0; set => _ToString_0 = value; } private static readonly ManagedIStringableVftbl AbiToProjectionVftable; public static readonly IntPtr AbiToProjectionVftablePtr; diff --git a/WinRT.Runtime/Projections/NotifyCollectionChangedEventArgs.cs b/WinRT.Runtime/Projections/NotifyCollectionChangedEventArgs.cs index dd40c971a..be41f5e27 100644 --- a/WinRT.Runtime/Projections/NotifyCollectionChangedEventArgs.cs +++ b/WinRT.Runtime/Projections/NotifyCollectionChangedEventArgs.cs @@ -8,7 +8,7 @@ using WinRT.Interop; namespace ABI.Microsoft.UI.Xaml.Interop -{ +{ [global::WinRT.ObjectReferenceWrapper(nameof(_obj))] [Guid("DA049FF2-D2E0-5FE8-8C7B-F87F26060B6F")] internal unsafe class INotifyCollectionChangedEventArgs @@ -19,15 +19,15 @@ public struct Vftbl { internal IInspectable.Vftbl IInspectableVftbl; private void* _get_Action_0; - public delegate* stdcall get_Action_0 => (delegate* stdcall)_get_Action_0; + public delegate* unmanaged[Stdcall] get_Action_0 => (delegate* unmanaged[Stdcall])_get_Action_0; private void* _get_NewItems_1; - public delegate* stdcall get_NewItems_1 => (delegate* stdcall)_get_NewItems_1; + public delegate* unmanaged[Stdcall] get_NewItems_1 => (delegate* unmanaged[Stdcall])_get_NewItems_1; private void* _get_OldItems_2; - public delegate* stdcall get_OldItems_2 => (delegate* stdcall)_get_OldItems_2; + public delegate* unmanaged[Stdcall] get_OldItems_2 => (delegate* unmanaged[Stdcall])_get_OldItems_2; private void* _get_NewStartingIndex_3; - public delegate* stdcall get_NewStartingIndex_3 => (delegate* stdcall)_get_NewStartingIndex_3; + public delegate* unmanaged[Stdcall] get_NewStartingIndex_3 => (delegate* unmanaged[Stdcall])_get_NewStartingIndex_3; private void* _get_OldStartingIndex_4; - public delegate* stdcall get_OldStartingIndex_4 => (delegate* stdcall)_get_OldStartingIndex_4; + public delegate* unmanaged[Stdcall] get_OldStartingIndex_4 => (delegate* unmanaged[Stdcall])_get_OldStartingIndex_4; } internal static ObjectReference FromAbi(IntPtr thisPtr) => ObjectReference.FromAbi(thisPtr); @@ -107,7 +107,7 @@ public unsafe int OldStartingIndex } } } - + [global::WinRT.ObjectReferenceWrapper(nameof(_obj))] [Guid("5108EBA4-4892-5A20-8374-A96815E0FD27")] internal unsafe class WinRTNotifyCollectionChangedEventArgsRuntimeClassFactory @@ -118,7 +118,7 @@ public struct Vftbl { internal IInspectable.Vftbl IInspectableVftbl; private void* _CreateInstanceWithAllParameters_0; - public delegate* stdcall CreateInstanceWithAllParameters_0 => (delegate* stdcall)_CreateInstanceWithAllParameters_0; + public delegate* unmanaged[Stdcall] CreateInstanceWithAllParameters_0 => (delegate* unmanaged[Stdcall])_CreateInstanceWithAllParameters_0; } public static ObjectReference FromAbi(IntPtr thisPtr) => ObjectReference.FromAbi(thisPtr); diff --git a/WinRT.Runtime/Projections/PropertyChangedEventArgs.cs b/WinRT.Runtime/Projections/PropertyChangedEventArgs.cs index 4d0665fdf..469f112cc 100644 --- a/WinRT.Runtime/Projections/PropertyChangedEventArgs.cs +++ b/WinRT.Runtime/Projections/PropertyChangedEventArgs.cs @@ -14,10 +14,10 @@ internal unsafe struct IPropertyChangedEventArgsVftbl { internal IInspectable.Vftbl IInspectableVftbl; private void* _get_PropertyName_0; - public delegate* stdcall get_PropertyName_0 => (delegate* stdcall)_get_PropertyName_0; - } + public delegate* unmanaged[Stdcall] get_PropertyName_0 => (delegate* unmanaged[Stdcall])_get_PropertyName_0; + } + - [global::WinRT.ObjectReferenceWrapper(nameof(_obj))] [Guid("7C0C27A8-0B41-5070-B160-FC9AE960A36C")] internal unsafe class WinRTPropertyChangedEventArgsRuntimeClassFactory @@ -28,7 +28,7 @@ public struct Vftbl { internal IInspectable.Vftbl IInspectableVftbl; private void* _CreateInstance_0; - public delegate* stdcall CreateInstance_0 => (delegate* stdcall)_CreateInstance_0; + public delegate* unmanaged[Stdcall] CreateInstance_0 => (delegate* unmanaged[Stdcall])_CreateInstance_0; } public static ObjectReference FromAbi(IntPtr thisPtr) => ObjectReference.FromAbi(thisPtr); diff --git a/WinRT.Runtime/Projections/Uri.cs b/WinRT.Runtime/Projections/Uri.cs index 69f3f3cab..78fd103d9 100644 --- a/WinRT.Runtime/Projections/Uri.cs +++ b/WinRT.Runtime/Projections/Uri.cs @@ -22,7 +22,7 @@ internal unsafe struct IUriRuntimeClassVftbl public IntPtr get_Query_8; public IntPtr get_QueryParsed_9; public void* _get_RawUri_10; - public delegate* stdcall get_RawUri_10 => (delegate* stdcall)_get_RawUri_10; + public delegate* unmanaged[Stdcall] get_RawUri_10 => (delegate* unmanaged[Stdcall])_get_RawUri_10; public IntPtr get_SchemeName_11; public IntPtr get_UserName_12; public IntPtr get_Port_13; @@ -45,7 +45,7 @@ public unsafe struct Vftbl { internal IInspectable.Vftbl IInspectableVftbl; private void* _CreateUri_0; - public delegate* stdcall CreateUri_0 => (delegate* stdcall)_CreateUri_0; + public delegate* unmanaged[Stdcall] CreateUri_0 => (delegate* unmanaged[Stdcall])_CreateUri_0; public IntPtr _CreateWithRelativeUri; } public static ObjectReference FromAbi(IntPtr thisPtr) => ObjectReference.FromAbi(thisPtr); diff --git a/WinUIDesktopSample/MainPage.xaml.cs b/WinUIDesktopSample/MainPage.xaml.cs index 9fc31783b..cafcff12c 100644 --- a/WinUIDesktopSample/MainPage.xaml.cs +++ b/WinUIDesktopSample/MainPage.xaml.cs @@ -5,23 +5,23 @@ using System.Threading.Tasks; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; -using Microsoft.UI.Xaml.Input; - +using Microsoft.UI.Xaml.Input; + namespace WinUIDesktopSample { /// /// Interaction logic for MainPage.xaml /// public partial class MainPage : Page - { - public MainPage() - { - InitializeComponent(); - this.AddHandler(UIElement.TappedEvent, new TappedEventHandler(Foo_PointerTapped), true /*handledEventsToo*/); - } - - private void Foo_PointerTapped(object sender, TappedRoutedEventArgs e) - { - } + { + public MainPage() + { + InitializeComponent(); + this.AddHandler(UIElement.TappedEvent, new TappedEventHandler(Foo_PointerTapped), true /*handledEventsToo*/); + } + + private void Foo_PointerTapped(object sender, TappedRoutedEventArgs e) + { + } } } diff --git a/WinUIDesktopSample/Net5_WinUI_Fixup.Targets b/WinUIDesktopSample/Net5_WinUI_Fixup.Targets new file mode 100644 index 000000000..4366e8253 --- /dev/null +++ b/WinUIDesktopSample/Net5_WinUI_Fixup.Targets @@ -0,0 +1,78 @@ + + + + + Windows + 10.0.18362.0 + $(TargetPlatformMinVersion) + $([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformSdkLocation("Windows", "10.0")) + $(WindowsSdkPath)\Platforms\UAP\$(TargetPlatformVersion)\ + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\AppxPackage\Microsoft.AppXPackage.Targets + + + + + + + + + + + + + + UAP + $(TargetPlatformMinVersion) + + + + + + + + + + + + + UAP + $(TargetPlatformMinVersion) + + + + + + + + + + + + + UAP + $(TargetPlatformMinVersion) + + + + + + + + + + + + + UAP + $(TargetPlatformMinVersion) + + + + + + + + + + + diff --git a/WinUIDesktopSample/WinUIDesktopSample.csproj b/WinUIDesktopSample/WinUIDesktopSample.csproj index 64cc5e1ab..7cdabc0fd 100644 --- a/WinUIDesktopSample/WinUIDesktopSample.csproj +++ b/WinUIDesktopSample/WinUIDesktopSample.csproj @@ -3,7 +3,6 @@ WinExe net5.0 - 10.0.18362.0 DISABLE_XAML_GENERATED_MAIN WinUIDesktopSample.exe.manifest DoNotGenerateOtherProviders x86;x64 + $(MSBuildThisFileDirectory)Net5_WinUI_Fixup.Targets diff --git a/build.cmd b/build.cmd index 86671c590..776e8830e 100644 --- a/build.cmd +++ b/build.cmd @@ -1,6 +1,7 @@ @echo off +if /i "%cswinrt_echo%" == "on" @echo on -set CsWinRTNet5SdkVersion=5.0.100-preview.7.20366.6 +set CsWinRTNet5SdkVersion=5.0.100-rc.1.20454.5 :dotnet rem Install required .NET 5 SDK version and add to environment @@ -78,18 +79,52 @@ if not exist %prerelease_targets% ( echo ^ >> %prerelease_targets% ) +rem VS 16.8 BuildTools support (temporary, until VS 16.8 is deployed to Azure Devops agents in 12/2020) +msbuild -ver | findstr 16.8 >nul +if ErrorLevel 1 ( + echo Using VS Build Tools 16.8 + if %cswinrt_platform%==x86 ( + set msbuild_path="%cd%\.buildtools\MSBuild\Current\Bin\\" + ) else ( + set msbuild_path="%cd%\.buildtools\MSBuild\Current\Bin\amd64\\" + ) + if not exist !msbuild_path! ( + if not exist .buildtools md .buildtools + powershell -NoProfile -ExecutionPolicy unrestricted -File .\get_buildtools.ps1 + ) + set nuget_params=-MSBuildPath !msbuild_path! +) else ( + set msbuild_path= + set nuget_params= +) + if not "%cswinrt_label%"=="" goto %cswinrt_label% :restore +rem When a preview nuget is required, update -self doesn't work, so manually update +if exist .nuget\nuget.exe ( + .nuget\nuget.exe | findstr 5.8.0 >nul + if ErrorLevel 1 ( + echo Updating to nuget 5.8.0 + rd /s/q .nuget >nul 2>&1 + ) +) if not exist .nuget md .nuget -if not exist .nuget\nuget.exe powershell -Command "Invoke-WebRequest https://dist.nuget.org/win-x86-commandline/v5.6.0/nuget.exe -OutFile .nuget\nuget.exe" +if not exist .nuget\nuget.exe powershell -Command "Invoke-WebRequest https://dist.nuget.org/win-x86-commandline/v5.8.0-preview.2/nuget.exe -OutFile .nuget\nuget.exe" .nuget\nuget update -self -.nuget\nuget.exe restore +rem Note: packages.config-based (vcxproj) projects do not support msbuild /t:restore +call :exec .nuget\nuget.exe restore %nuget_params% :build call get_testwinrt.cmd echo Building cswinrt for %cswinrt_platform% %cswinrt_configuration% -msbuild cswinrt.sln %cswinrt_build_params% /p:platform=%cswinrt_platform%;configuration=%cswinrt_configuration%;VersionNumber=%cswinrt_version_number%;VersionString=%cswinrt_version_string%;GenerateTestProjection=true +call :exec %msbuild_path%msbuild.exe %cswinrt_build_params% /p:platform=%cswinrt_platform%;configuration=%cswinrt_configuration%;VersionNumber=%cswinrt_version_number%;VersionString=%cswinrt_version_string%;GenerateTestProjection=true cswinrt.sln +if ErrorLevel 1 ( + echo. + echo ERROR: Build failed + exit /b !ErrorLevel! +) +if "%cswinrt_build_only%"=="true" goto :eof :test rem Build/Run xUnit tests, generating xml output report for Azure Devops reporting, via XunitXml.TestLogger NuGet @@ -107,8 +142,7 @@ rem WinUI NuGet package's Microsoft.WinUI.AppX.targets attempts to import a file rem executing "dotnet test --no-build ...", which evidently still needs to parse and load the entire project. rem Work around by using a dummy targets file and assigning it to the MsAppxPackageTargets property. echo ^ > %temp%\EmptyMsAppxPackage.Targets - -%dotnet_exe% test --no-build --logger xunit;LogFilePath=%~dp0unittest_%cswinrt_version_string%.xml unittest/UnitTest.csproj /nologo /m /p:platform=%cswinrt_platform%;configuration=%cswinrt_configuration%;MsAppxPackageTargets=%temp%\EmptyMsAppxPackage.Targets +call :exec %dotnet_exe% test --no-build --logger xunit;LogFilePath=%~dp0unittest_%cswinrt_version_string%.xml unittest/UnitTest.csproj /nologo /m /p:platform=%cswinrt_platform%;configuration=%cswinrt_configuration%;MsAppxPackageTargets=%temp%\EmptyMsAppxPackage.Targets if ErrorLevel 1 ( echo. echo ERROR: Unit test failed, skipping NuGet pack @@ -116,7 +150,8 @@ if ErrorLevel 1 ( ) rem Run WinRT.Host tests -%~dp0_build\%cswinrt_platform%\%cswinrt_configuration%\HostTest\bin\HostTest.exe --gtest_output=xml:%~dp0hosttest_%cswinrt_version_string%.xml +echo Running cswinrt host tests for %cswinrt_platform% %cswinrt_configuration% +call :exec %~dp0_build\%cswinrt_platform%\%cswinrt_configuration%\HostTest\bin\HostTest.exe --gtest_output=xml:%~dp0hosttest_%cswinrt_version_string%.xml if ErrorLevel 1 ( echo. echo ERROR: Host test failed, skipping NuGet pack @@ -129,4 +164,16 @@ set cswinrt_exe=%cswinrt_bin_dir%cswinrt.exe set netstandard2_runtime=%~dp0WinRT.Runtime\bin\%cswinrt_configuration%\netstandard2.0\WinRT.Runtime.dll set net5_runtime=%~dp0WinRT.Runtime\bin\%cswinrt_configuration%\net5.0\WinRT.Runtime.dll set source_generator=%~dp0Authoring\WinRT.SourceGenerator\bin\%cswinrt_configuration%\netstandard2.0\WinRT.SourceGenerator.dll -.nuget\nuget pack nuget/Microsoft.Windows.CsWinRT.nuspec -Properties cswinrt_exe=%cswinrt_exe%;netstandard2_runtime=%netstandard2_runtime%;net5_runtime=%net5_runtime%;source_generator=%source_generator%;cswinrt_nuget_version=%cswinrt_version_string% -OutputDirectory %cswinrt_bin_dir% -NonInteractive -Verbosity Detailed -NoPackageAnalysis +echo Creating nuget package +call :exec .nuget\nuget pack nuget/Microsoft.Windows.CsWinRT.nuspec -Properties cswinrt_exe=%cswinrt_exe%;netstandard2_runtime=%netstandard2_runtime%;net5_runtime=%net5_runtime%;source_generator=%source_generator%;cswinrt_nuget_version=%cswinrt_version_string% -OutputDirectory %cswinrt_bin_dir% -NonInteractive -Verbosity Detailed -NoPackageAnalysis +goto :eof + +:exec +if /i "%cswinrt_echo%" == "only" ( +echo Command Line: +echo %* +echo. +) else ( +%* +) +goto :eof diff --git a/cswinrt.sln b/cswinrt.sln index cf484efe2..c344f8276 100644 --- a/cswinrt.sln +++ b/cswinrt.sln @@ -1,388 +1,388 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29009.5 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestComponentCSharp", "TestComponentCSharp\TestComponentCSharp.vcxproj", "{7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}" - ProjectSection(ProjectDependencies) = postProject - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637} = {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTest", "UnitTest\UnitTest.csproj", "{9A9F52CA-F624-43A4-B5EF-C50861F584C2}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cswinrt", "cswinrt\cswinrt.vcxproj", "{6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}" - ProjectSection(ProjectDependencies) = postProject - {25244CED-966E-45F2-9711-1F51E951FF89} = {25244CED-966E-45F2-9711-1F51E951FF89} - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Files", "Files", "{96495AB4-2D86-47D1-A174-27D0B436DC98}" - ProjectSection(SolutionItems) = preProject - .gitignore = .gitignore - build.cmd = build.cmd - Directory.Build.props = Directory.Build.props - HostTest\Directory.Build.targets = HostTest\Directory.Build.targets - get_testwinrt.cmd = get_testwinrt.cmd - README.md = README.md - Strings.props = Strings.props - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestComponent", "TestWinRT\TestComponent\TestComponent.vcxproj", "{2954F343-85A7-46F5-A3F3-F106FDD13900}" - ProjectSection(ProjectDependencies) = postProject - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637} = {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinRT.Runtime", "WinRT.Runtime\WinRT.Runtime.csproj", "{25244CED-966E-45F2-9711-1F51E951FF89}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinUIDesktopSample", "WinUIDesktopSample\WinUIDesktopSample.csproj", "{8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Test", "Projections\Test\Test.csproj", "{C6D580C5-7037-4733-B933-916FF400AFE2}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Projections", "Projections", "{6D41796B-9904-40B8-BBCB-40B2D1BAE44B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Windows", "Projections\Windows\Windows.csproj", "{FFA9A78B-F53F-43EE-AF87-24A80F4C330A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinUI", "Projections\WinUI\WinUI.csproj", "{0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Nuget", "Nuget", "{5A94EFDF-A6AC-494D-A731-A0A8A37F1F6C}" - ProjectSection(SolutionItems) = preProject - nuget\LICENSE = nuget\LICENSE - nuget\Microsoft.Windows.CsWinRT.nuspec = nuget\Microsoft.Windows.CsWinRT.nuspec - nuget\Microsoft.Windows.CsWinRT.props = nuget\Microsoft.Windows.CsWinRT.props - nuget\Microsoft.Windows.CsWinRT.targets = nuget\Microsoft.Windows.CsWinRT.targets - nuget\readme.md = nuget\readme.md - nuget\readme.txt = nuget\readme.txt - nuget\SignConfig.xml = nuget\SignConfig.xml - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Benchmarks", "Benchmarks\Benchmarks.csproj", "{B34C96F4-3660-4B2D-8ABD-A4B428166DC7}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BenchmarkComponent", "TestWinRT\BenchmarkComponent\BenchmarkComponent.vcxproj", "{78D85F23-7CB1-44A1-9238-6DF2C76754E4}" - ProjectSection(ProjectDependencies) = postProject - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637} = {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Benchmark", "Projections\Benchmark\Benchmark.csproj", "{03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinRT.Host", "WinRT.Host\WinRT.Host.vcxproj", "{7E33BCB7-19C5-4061-981D-BA695322708A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HostTest", "HostTest\HostTest.vcxproj", "{B511B7C9-C8E2-47ED-A0D1-538C00747D30}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinRT.Host.Shim", "WinRT.Host.Shim\WinRT.Host.Shim.csproj", "{0BB8F82D-874E-45AA-BCA3-20CE0562164A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestHost.ProbeByClass", "Projections\TestHost.ProbeByClass\TestHost.ProbeByClass.csproj", "{EF3326B5-716F-41D2-AB30-4EFAB30955E2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinRT.SourceGenerator", "Authoring\WinRT.SourceGenerator\WinRT.SourceGenerator.csproj", "{E0C26D3A-504A-4826-BAE2-DE775F865B2A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AuthoringSample", "Authoring\AuthoringSample\AuthoringSample.csproj", "{41E2A272-150F-42F5-AD40-047AAD9088A0}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|ARM = Debug|ARM - Debug|ARM64 = Debug|ARM64 - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|ARM = Release|ARM - Release|ARM64 = Release|ARM64 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|ARM.ActiveCfg = Debug|Win32 - {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|ARM64.ActiveCfg = Debug|Win32 - {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|x64.ActiveCfg = Debug|x64 - {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|x64.Build.0 = Debug|x64 - {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|x86.ActiveCfg = Debug|Win32 - {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|x86.Build.0 = Debug|Win32 - {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|Any CPU.ActiveCfg = Release|Win32 - {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|ARM.ActiveCfg = Release|Win32 - {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|ARM64.ActiveCfg = Release|Win32 - {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|x64.ActiveCfg = Release|x64 - {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|x64.Build.0 = Release|x64 - {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|x86.ActiveCfg = Release|Win32 - {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|x86.Build.0 = Release|Win32 - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|ARM.ActiveCfg = Debug|Any CPU - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|ARM.Build.0 = Debug|Any CPU - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|ARM64.ActiveCfg = Debug|Any CPU - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|ARM64.Build.0 = Debug|Any CPU - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|x64.ActiveCfg = Debug|x64 - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|x64.Build.0 = Debug|x64 - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|x86.ActiveCfg = Debug|x86 - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|x86.Build.0 = Debug|x86 - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|Any CPU.Build.0 = Release|Any CPU - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|ARM.ActiveCfg = Release|Any CPU - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|ARM.Build.0 = Release|Any CPU - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|ARM64.ActiveCfg = Release|Any CPU - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|ARM64.Build.0 = Release|Any CPU - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|x64.ActiveCfg = Release|x64 - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|x64.Build.0 = Release|x64 - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|x86.ActiveCfg = Release|x86 - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|x86.Build.0 = Release|x86 - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|ARM.ActiveCfg = Debug|Win32 - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|ARM64.ActiveCfg = Debug|Win32 - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|x64.ActiveCfg = Debug|x64 - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|x64.Build.0 = Debug|x64 - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|x86.ActiveCfg = Debug|Win32 - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|x86.Build.0 = Debug|Win32 - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|Any CPU.ActiveCfg = Release|Win32 - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|ARM.ActiveCfg = Release|Win32 - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|ARM64.ActiveCfg = Release|Win32 - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|x64.ActiveCfg = Release|x64 - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|x64.Build.0 = Release|x64 - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|x86.ActiveCfg = Release|Win32 - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|x86.Build.0 = Release|Win32 - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|ARM.ActiveCfg = Debug|ARM - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|ARM.Build.0 = Debug|ARM - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|ARM64.ActiveCfg = Debug|Win32 - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|x64.ActiveCfg = Debug|x64 - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|x64.Build.0 = Debug|x64 - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|x86.ActiveCfg = Debug|Win32 - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|x86.Build.0 = Debug|Win32 - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|Any CPU.ActiveCfg = Release|Win32 - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|ARM.ActiveCfg = Release|ARM - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|ARM.Build.0 = Release|ARM - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|ARM64.ActiveCfg = Release|Win32 - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|x64.ActiveCfg = Release|x64 - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|x64.Build.0 = Release|x64 - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|x86.ActiveCfg = Release|Win32 - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|x86.Build.0 = Release|Win32 - {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|Any CPU.Build.0 = Debug|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|ARM.ActiveCfg = Debug|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|ARM.Build.0 = Debug|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|ARM64.ActiveCfg = Debug|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|ARM64.Build.0 = Debug|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|x64.ActiveCfg = Debug|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|x64.Build.0 = Debug|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|x86.ActiveCfg = Debug|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|x86.Build.0 = Debug|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Release|Any CPU.ActiveCfg = Release|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Release|Any CPU.Build.0 = Release|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Release|ARM.ActiveCfg = Release|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Release|ARM.Build.0 = Release|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Release|ARM64.ActiveCfg = Release|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Release|ARM64.Build.0 = Release|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Release|x64.ActiveCfg = Release|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Release|x64.Build.0 = Release|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Release|x86.ActiveCfg = Release|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Release|x86.Build.0 = Release|Any CPU - {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|Any CPU.ActiveCfg = Debug|x86 - {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|ARM.ActiveCfg = Debug|x86 - {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|ARM64.ActiveCfg = Debug|x86 - {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|x64.ActiveCfg = Debug|x64 - {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|x64.Build.0 = Debug|x64 - {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|x86.ActiveCfg = Debug|x86 - {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|x86.Build.0 = Debug|x86 - {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|Any CPU.ActiveCfg = Release|x86 - {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|ARM.ActiveCfg = Release|x86 - {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|ARM64.ActiveCfg = Release|x86 - {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|x64.ActiveCfg = Release|x64 - {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|x64.Build.0 = Release|x64 - {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|x86.ActiveCfg = Release|x86 - {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|x86.Build.0 = Release|x86 - {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|Any CPU.ActiveCfg = Debug|x86 - {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|ARM.ActiveCfg = Debug|x86 - {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|ARM64.ActiveCfg = Debug|x86 - {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|x64.ActiveCfg = Debug|x64 - {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|x64.Build.0 = Debug|x64 - {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|x86.ActiveCfg = Debug|x86 - {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|x86.Build.0 = Debug|x86 - {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|Any CPU.ActiveCfg = Release|x86 - {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|ARM.ActiveCfg = Release|x86 - {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|ARM64.ActiveCfg = Release|x86 - {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|x64.ActiveCfg = Release|x64 - {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|x64.Build.0 = Release|x64 - {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|x86.ActiveCfg = Release|x86 - {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|x86.Build.0 = Release|x86 - {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|Any CPU.ActiveCfg = Debug|x86 - {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|ARM.ActiveCfg = Debug|x86 - {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|ARM64.ActiveCfg = Debug|x86 - {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|x64.ActiveCfg = Debug|x64 - {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|x64.Build.0 = Debug|x64 - {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|x86.ActiveCfg = Debug|x86 - {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|x86.Build.0 = Debug|x86 - {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|Any CPU.ActiveCfg = Release|x86 - {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|ARM.ActiveCfg = Release|x86 - {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|ARM64.ActiveCfg = Release|x86 - {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|x64.ActiveCfg = Release|x64 - {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|x64.Build.0 = Release|x64 - {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|x86.ActiveCfg = Release|x86 - {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|x86.Build.0 = Release|x86 - {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|Any CPU.ActiveCfg = Debug|x86 - {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|ARM.ActiveCfg = Debug|x86 - {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|ARM64.ActiveCfg = Debug|x86 - {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|x64.ActiveCfg = Debug|x64 - {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|x64.Build.0 = Debug|x64 - {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|x86.ActiveCfg = Debug|x86 - {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|x86.Build.0 = Debug|x86 - {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|Any CPU.ActiveCfg = Release|x86 - {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|ARM.ActiveCfg = Release|x86 - {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|ARM64.ActiveCfg = Release|x86 - {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|x64.ActiveCfg = Release|x64 - {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|x64.Build.0 = Release|x64 - {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|x86.ActiveCfg = Release|x86 - {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|x86.Build.0 = Release|x86 - {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|Any CPU.ActiveCfg = Debug|x86 - {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|ARM.ActiveCfg = Debug|x86 - {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|ARM64.ActiveCfg = Debug|x86 - {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|x64.ActiveCfg = Debug|x64 - {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|x64.Build.0 = Debug|x64 - {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|x86.ActiveCfg = Debug|x86 - {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|Any CPU.ActiveCfg = Release|x86 - {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|ARM.ActiveCfg = Release|x86 - {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|ARM64.ActiveCfg = Release|x86 - {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|x64.ActiveCfg = Release|x64 - {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|x64.Build.0 = Release|x64 - {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|x86.ActiveCfg = Release|x86 - {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|ARM.ActiveCfg = Debug|Win32 - {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|ARM64.ActiveCfg = Debug|Win32 - {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|x64.ActiveCfg = Debug|x64 - {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|x64.Build.0 = Debug|x64 - {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|x86.ActiveCfg = Debug|Win32 - {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|x86.Build.0 = Debug|Win32 - {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|Any CPU.ActiveCfg = Release|Win32 - {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|ARM.ActiveCfg = Release|Win32 - {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|ARM64.ActiveCfg = Release|Win32 - {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|x64.ActiveCfg = Release|x64 - {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|x64.Build.0 = Release|x64 - {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|x86.ActiveCfg = Release|Win32 - {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|x86.Build.0 = Release|Win32 - {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|Any CPU.ActiveCfg = Debug|x86 - {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|ARM.ActiveCfg = Debug|x86 - {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|ARM64.ActiveCfg = Debug|x86 - {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|x64.ActiveCfg = Debug|x64 - {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|x64.Build.0 = Debug|x64 - {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|x86.ActiveCfg = Debug|x86 - {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|x86.Build.0 = Debug|x86 - {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|Any CPU.ActiveCfg = Release|x86 - {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|ARM.ActiveCfg = Release|x86 - {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|ARM64.ActiveCfg = Release|x86 - {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|x64.ActiveCfg = Release|x64 - {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|x64.Build.0 = Release|x64 - {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|x86.ActiveCfg = Release|x86 - {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|x86.Build.0 = Release|x86 - {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|ARM.ActiveCfg = Debug|Win32 - {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|ARM64.ActiveCfg = Debug|Win32 - {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|x64.ActiveCfg = Debug|x64 - {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|x64.Build.0 = Debug|x64 - {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|x86.ActiveCfg = Debug|Win32 - {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|x86.Build.0 = Debug|Win32 - {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|Any CPU.ActiveCfg = Release|Win32 - {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|ARM.ActiveCfg = Release|Win32 - {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|ARM64.ActiveCfg = Release|Win32 - {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|x64.ActiveCfg = Release|x64 - {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|x64.Build.0 = Release|x64 - {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|x86.ActiveCfg = Release|Win32 - {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|x86.Build.0 = Release|Win32 - {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|ARM.ActiveCfg = Debug|Win32 - {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|ARM64.ActiveCfg = Debug|Win32 - {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|x64.ActiveCfg = Debug|x64 - {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|x64.Build.0 = Debug|x64 - {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|x86.ActiveCfg = Debug|Win32 - {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|x86.Build.0 = Debug|Win32 - {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|Any CPU.ActiveCfg = Release|Win32 - {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|ARM.ActiveCfg = Release|Win32 - {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|ARM64.ActiveCfg = Release|Win32 - {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|x64.ActiveCfg = Release|x64 - {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|x64.Build.0 = Release|x64 - {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|x86.ActiveCfg = Release|Win32 - {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|x86.Build.0 = Release|Win32 - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|ARM.ActiveCfg = Debug|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|ARM.Build.0 = Debug|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|ARM64.ActiveCfg = Debug|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|ARM64.Build.0 = Debug|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|x64.ActiveCfg = Debug|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|x64.Build.0 = Debug|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|x86.ActiveCfg = Debug|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|x86.Build.0 = Debug|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|Any CPU.Build.0 = Release|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|ARM.ActiveCfg = Release|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|ARM.Build.0 = Release|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|ARM64.ActiveCfg = Release|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|ARM64.Build.0 = Release|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|x64.ActiveCfg = Release|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|x64.Build.0 = Release|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|x86.ActiveCfg = Release|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|x86.Build.0 = Release|Any CPU - {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|Any CPU.ActiveCfg = Debug|x86 - {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|ARM.ActiveCfg = Debug|x86 - {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|ARM64.ActiveCfg = Debug|x86 - {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|x64.ActiveCfg = Debug|x64 - {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|x64.Build.0 = Debug|x64 - {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|x86.ActiveCfg = Debug|x86 - {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|x86.Build.0 = Debug|x86 - {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|Any CPU.ActiveCfg = Release|x86 - {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|ARM.ActiveCfg = Release|x86 - {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|ARM64.ActiveCfg = Release|x86 - {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|x64.ActiveCfg = Release|x64 - {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|x64.Build.0 = Release|x64 - {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|x86.ActiveCfg = Release|x86 - {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|x86.Build.0 = Release|x86 - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|ARM.ActiveCfg = Debug|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|ARM.Build.0 = Debug|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|ARM64.ActiveCfg = Debug|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|ARM64.Build.0 = Debug|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|x64.ActiveCfg = Debug|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|x64.Build.0 = Debug|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|x86.ActiveCfg = Debug|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|x86.Build.0 = Debug|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|Any CPU.Build.0 = Release|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|ARM.ActiveCfg = Release|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|ARM.Build.0 = Release|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|ARM64.ActiveCfg = Release|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|ARM64.Build.0 = Release|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|x64.ActiveCfg = Release|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|x64.Build.0 = Release|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|x86.ActiveCfg = Release|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|x86.Build.0 = Release|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|ARM.ActiveCfg = Debug|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|ARM.Build.0 = Debug|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|ARM64.ActiveCfg = Debug|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|ARM64.Build.0 = Debug|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|x64.ActiveCfg = Debug|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|x64.Build.0 = Debug|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|x86.ActiveCfg = Debug|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|x86.Build.0 = Debug|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|Any CPU.Build.0 = Release|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|ARM.ActiveCfg = Release|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|ARM.Build.0 = Release|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|ARM64.ActiveCfg = Release|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|ARM64.Build.0 = Release|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|x64.ActiveCfg = Release|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|x64.Build.0 = Release|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|x86.ActiveCfg = Release|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {C6D580C5-7037-4733-B933-916FF400AFE2} = {6D41796B-9904-40B8-BBCB-40B2D1BAE44B} - {FFA9A78B-F53F-43EE-AF87-24A80F4C330A} = {6D41796B-9904-40B8-BBCB-40B2D1BAE44B} - {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF} = {6D41796B-9904-40B8-BBCB-40B2D1BAE44B} - {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5} = {6D41796B-9904-40B8-BBCB-40B2D1BAE44B} - {EF3326B5-716F-41D2-AB30-4EFAB30955E2} = {6D41796B-9904-40B8-BBCB-40B2D1BAE44B} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {5AE8C9D7-2613-4E1A-A4F2-579BAC28D0A2} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29009.5 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestComponentCSharp", "TestComponentCSharp\TestComponentCSharp.vcxproj", "{7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}" + ProjectSection(ProjectDependencies) = postProject + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637} = {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637} + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTest", "UnitTest\UnitTest.csproj", "{9A9F52CA-F624-43A4-B5EF-C50861F584C2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cswinrt", "cswinrt\cswinrt.vcxproj", "{6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}" + ProjectSection(ProjectDependencies) = postProject + {25244CED-966E-45F2-9711-1F51E951FF89} = {25244CED-966E-45F2-9711-1F51E951FF89} + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Files", "Files", "{96495AB4-2D86-47D1-A174-27D0B436DC98}" + ProjectSection(SolutionItems) = preProject + .gitignore = .gitignore + build.cmd = build.cmd + Directory.Build.props = Directory.Build.props + Directory.Build.targets = Directory.Build.targets + get_testwinrt.cmd = get_testwinrt.cmd + README.md = README.md + Strings.props = Strings.props + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestComponent", "TestWinRT\TestComponent\TestComponent.vcxproj", "{2954F343-85A7-46F5-A3F3-F106FDD13900}" + ProjectSection(ProjectDependencies) = postProject + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637} = {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637} + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinRT.Runtime", "WinRT.Runtime\WinRT.Runtime.csproj", "{25244CED-966E-45F2-9711-1F51E951FF89}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinUIDesktopSample", "WinUIDesktopSample\WinUIDesktopSample.csproj", "{8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Test", "Projections\Test\Test.csproj", "{C6D580C5-7037-4733-B933-916FF400AFE2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Projections", "Projections", "{6D41796B-9904-40B8-BBCB-40B2D1BAE44B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Windows", "Projections\Windows\Windows.csproj", "{FFA9A78B-F53F-43EE-AF87-24A80F4C330A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinUI", "Projections\WinUI\WinUI.csproj", "{0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Nuget", "Nuget", "{5A94EFDF-A6AC-494D-A731-A0A8A37F1F6C}" + ProjectSection(SolutionItems) = preProject + nuget\LICENSE = nuget\LICENSE + nuget\Microsoft.Windows.CsWinRT.nuspec = nuget\Microsoft.Windows.CsWinRT.nuspec + nuget\Microsoft.Windows.CsWinRT.props = nuget\Microsoft.Windows.CsWinRT.props + nuget\Microsoft.Windows.CsWinRT.targets = nuget\Microsoft.Windows.CsWinRT.targets + nuget\readme.md = nuget\readme.md + nuget\readme.txt = nuget\readme.txt + nuget\SignConfig.xml = nuget\SignConfig.xml + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Benchmarks", "Benchmarks\Benchmarks.csproj", "{B34C96F4-3660-4B2D-8ABD-A4B428166DC7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BenchmarkComponent", "TestWinRT\BenchmarkComponent\BenchmarkComponent.vcxproj", "{78D85F23-7CB1-44A1-9238-6DF2C76754E4}" + ProjectSection(ProjectDependencies) = postProject + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637} = {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637} + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Benchmark", "Projections\Benchmark\Benchmark.csproj", "{03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinRT.Host", "WinRT.Host\WinRT.Host.vcxproj", "{7E33BCB7-19C5-4061-981D-BA695322708A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HostTest", "HostTest\HostTest.vcxproj", "{B511B7C9-C8E2-47ED-A0D1-538C00747D30}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinRT.Host.Shim", "WinRT.Host.Shim\WinRT.Host.Shim.csproj", "{0BB8F82D-874E-45AA-BCA3-20CE0562164A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestHost.ProbeByClass", "Projections\TestHost.ProbeByClass\TestHost.ProbeByClass.csproj", "{EF3326B5-716F-41D2-AB30-4EFAB30955E2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinRT.SourceGenerator", "Authoring\WinRT.SourceGenerator\WinRT.SourceGenerator.csproj", "{E0C26D3A-504A-4826-BAE2-DE775F865B2A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AuthoringSample", "Authoring\AuthoringSample\AuthoringSample.csproj", "{41E2A272-150F-42F5-AD40-047AAD9088A0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|ARM = Debug|ARM + Debug|ARM64 = Debug|ARM64 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|ARM = Release|ARM + Release|ARM64 = Release|ARM64 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|ARM.ActiveCfg = Debug|Win32 + {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|ARM64.ActiveCfg = Debug|Win32 + {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|x64.ActiveCfg = Debug|x64 + {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|x64.Build.0 = Debug|x64 + {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|x86.ActiveCfg = Debug|Win32 + {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|x86.Build.0 = Debug|Win32 + {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|Any CPU.ActiveCfg = Release|Win32 + {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|ARM.ActiveCfg = Release|Win32 + {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|ARM64.ActiveCfg = Release|Win32 + {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|x64.ActiveCfg = Release|x64 + {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|x64.Build.0 = Release|x64 + {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|x86.ActiveCfg = Release|Win32 + {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|x86.Build.0 = Release|Win32 + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|ARM.ActiveCfg = Debug|Any CPU + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|ARM.Build.0 = Debug|Any CPU + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|ARM64.Build.0 = Debug|Any CPU + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|x64.ActiveCfg = Debug|x64 + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|x64.Build.0 = Debug|x64 + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|x86.ActiveCfg = Debug|x86 + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|x86.Build.0 = Debug|x86 + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|Any CPU.Build.0 = Release|Any CPU + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|ARM.ActiveCfg = Release|Any CPU + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|ARM.Build.0 = Release|Any CPU + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|ARM64.ActiveCfg = Release|Any CPU + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|ARM64.Build.0 = Release|Any CPU + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|x64.ActiveCfg = Release|x64 + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|x64.Build.0 = Release|x64 + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|x86.ActiveCfg = Release|x86 + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|x86.Build.0 = Release|x86 + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|ARM.ActiveCfg = Debug|Win32 + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|ARM64.ActiveCfg = Debug|Win32 + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|x64.ActiveCfg = Debug|x64 + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|x64.Build.0 = Debug|x64 + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|x86.ActiveCfg = Debug|Win32 + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|x86.Build.0 = Debug|Win32 + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|Any CPU.ActiveCfg = Release|Win32 + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|ARM.ActiveCfg = Release|Win32 + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|ARM64.ActiveCfg = Release|Win32 + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|x64.ActiveCfg = Release|x64 + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|x64.Build.0 = Release|x64 + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|x86.ActiveCfg = Release|Win32 + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|x86.Build.0 = Release|Win32 + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|ARM.ActiveCfg = Debug|ARM + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|ARM.Build.0 = Debug|ARM + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|ARM64.ActiveCfg = Debug|Win32 + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|x64.ActiveCfg = Debug|x64 + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|x64.Build.0 = Debug|x64 + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|x86.ActiveCfg = Debug|Win32 + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|x86.Build.0 = Debug|Win32 + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|Any CPU.ActiveCfg = Release|Win32 + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|ARM.ActiveCfg = Release|ARM + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|ARM.Build.0 = Release|ARM + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|ARM64.ActiveCfg = Release|Win32 + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|x64.ActiveCfg = Release|x64 + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|x64.Build.0 = Release|x64 + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|x86.ActiveCfg = Release|Win32 + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|x86.Build.0 = Release|Win32 + {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|Any CPU.Build.0 = Debug|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|ARM.ActiveCfg = Debug|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|ARM.Build.0 = Debug|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|ARM64.Build.0 = Debug|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|x64.ActiveCfg = Debug|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|x64.Build.0 = Debug|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|x86.ActiveCfg = Debug|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|x86.Build.0 = Debug|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Release|Any CPU.ActiveCfg = Release|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Release|Any CPU.Build.0 = Release|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Release|ARM.ActiveCfg = Release|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Release|ARM.Build.0 = Release|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Release|ARM64.ActiveCfg = Release|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Release|ARM64.Build.0 = Release|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Release|x64.ActiveCfg = Release|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Release|x64.Build.0 = Release|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Release|x86.ActiveCfg = Release|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Release|x86.Build.0 = Release|Any CPU + {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|Any CPU.ActiveCfg = Debug|x86 + {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|ARM.ActiveCfg = Debug|x86 + {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|ARM64.ActiveCfg = Debug|x86 + {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|x64.ActiveCfg = Debug|x64 + {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|x64.Build.0 = Debug|x64 + {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|x86.ActiveCfg = Debug|x86 + {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|x86.Build.0 = Debug|x86 + {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|Any CPU.ActiveCfg = Release|x86 + {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|ARM.ActiveCfg = Release|x86 + {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|ARM64.ActiveCfg = Release|x86 + {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|x64.ActiveCfg = Release|x64 + {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|x64.Build.0 = Release|x64 + {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|x86.ActiveCfg = Release|x86 + {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|x86.Build.0 = Release|x86 + {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|Any CPU.ActiveCfg = Debug|x86 + {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|ARM.ActiveCfg = Debug|x86 + {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|ARM64.ActiveCfg = Debug|x86 + {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|x64.ActiveCfg = Debug|x64 + {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|x64.Build.0 = Debug|x64 + {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|x86.ActiveCfg = Debug|x86 + {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|x86.Build.0 = Debug|x86 + {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|Any CPU.ActiveCfg = Release|x86 + {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|ARM.ActiveCfg = Release|x86 + {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|ARM64.ActiveCfg = Release|x86 + {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|x64.ActiveCfg = Release|x64 + {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|x64.Build.0 = Release|x64 + {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|x86.ActiveCfg = Release|x86 + {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|x86.Build.0 = Release|x86 + {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|Any CPU.ActiveCfg = Debug|x86 + {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|ARM.ActiveCfg = Debug|x86 + {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|ARM64.ActiveCfg = Debug|x86 + {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|x64.ActiveCfg = Debug|x64 + {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|x64.Build.0 = Debug|x64 + {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|x86.ActiveCfg = Debug|x86 + {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|x86.Build.0 = Debug|x86 + {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|Any CPU.ActiveCfg = Release|x86 + {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|ARM.ActiveCfg = Release|x86 + {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|ARM64.ActiveCfg = Release|x86 + {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|x64.ActiveCfg = Release|x64 + {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|x64.Build.0 = Release|x64 + {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|x86.ActiveCfg = Release|x86 + {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|x86.Build.0 = Release|x86 + {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|Any CPU.ActiveCfg = Debug|x86 + {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|ARM.ActiveCfg = Debug|x86 + {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|ARM64.ActiveCfg = Debug|x86 + {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|x64.ActiveCfg = Debug|x64 + {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|x64.Build.0 = Debug|x64 + {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|x86.ActiveCfg = Debug|x86 + {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|x86.Build.0 = Debug|x86 + {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|Any CPU.ActiveCfg = Release|x86 + {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|ARM.ActiveCfg = Release|x86 + {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|ARM64.ActiveCfg = Release|x86 + {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|x64.ActiveCfg = Release|x64 + {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|x64.Build.0 = Release|x64 + {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|x86.ActiveCfg = Release|x86 + {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|x86.Build.0 = Release|x86 + {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|Any CPU.ActiveCfg = Debug|x86 + {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|ARM.ActiveCfg = Debug|x86 + {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|ARM64.ActiveCfg = Debug|x86 + {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|x64.ActiveCfg = Debug|x64 + {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|x64.Build.0 = Debug|x64 + {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|x86.ActiveCfg = Debug|x86 + {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|Any CPU.ActiveCfg = Release|x86 + {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|ARM.ActiveCfg = Release|x86 + {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|ARM64.ActiveCfg = Release|x86 + {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|x64.ActiveCfg = Release|x64 + {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|x64.Build.0 = Release|x64 + {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|x86.ActiveCfg = Release|x86 + {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|ARM.ActiveCfg = Debug|Win32 + {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|ARM64.ActiveCfg = Debug|Win32 + {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|x64.ActiveCfg = Debug|x64 + {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|x64.Build.0 = Debug|x64 + {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|x86.ActiveCfg = Debug|Win32 + {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|x86.Build.0 = Debug|Win32 + {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|Any CPU.ActiveCfg = Release|Win32 + {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|ARM.ActiveCfg = Release|Win32 + {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|ARM64.ActiveCfg = Release|Win32 + {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|x64.ActiveCfg = Release|x64 + {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|x64.Build.0 = Release|x64 + {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|x86.ActiveCfg = Release|Win32 + {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|x86.Build.0 = Release|Win32 + {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|Any CPU.ActiveCfg = Debug|x86 + {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|ARM.ActiveCfg = Debug|x86 + {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|ARM64.ActiveCfg = Debug|x86 + {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|x64.ActiveCfg = Debug|x64 + {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|x64.Build.0 = Debug|x64 + {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|x86.ActiveCfg = Debug|x86 + {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|x86.Build.0 = Debug|x86 + {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|Any CPU.ActiveCfg = Release|x86 + {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|ARM.ActiveCfg = Release|x86 + {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|ARM64.ActiveCfg = Release|x86 + {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|x64.ActiveCfg = Release|x64 + {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|x64.Build.0 = Release|x64 + {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|x86.ActiveCfg = Release|x86 + {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|x86.Build.0 = Release|x86 + {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|ARM.ActiveCfg = Debug|Win32 + {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|ARM64.ActiveCfg = Debug|Win32 + {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|x64.ActiveCfg = Debug|x64 + {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|x64.Build.0 = Debug|x64 + {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|x86.ActiveCfg = Debug|Win32 + {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|x86.Build.0 = Debug|Win32 + {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|Any CPU.ActiveCfg = Release|Win32 + {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|ARM.ActiveCfg = Release|Win32 + {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|ARM64.ActiveCfg = Release|Win32 + {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|x64.ActiveCfg = Release|x64 + {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|x64.Build.0 = Release|x64 + {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|x86.ActiveCfg = Release|Win32 + {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|x86.Build.0 = Release|Win32 + {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|ARM.ActiveCfg = Debug|Win32 + {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|ARM64.ActiveCfg = Debug|Win32 + {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|x64.ActiveCfg = Debug|x64 + {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|x64.Build.0 = Debug|x64 + {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|x86.ActiveCfg = Debug|Win32 + {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|x86.Build.0 = Debug|Win32 + {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|Any CPU.ActiveCfg = Release|Win32 + {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|ARM.ActiveCfg = Release|Win32 + {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|ARM64.ActiveCfg = Release|Win32 + {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|x64.ActiveCfg = Release|x64 + {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|x64.Build.0 = Release|x64 + {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|x86.ActiveCfg = Release|Win32 + {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|x86.Build.0 = Release|Win32 + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|ARM.ActiveCfg = Debug|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|ARM.Build.0 = Debug|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|ARM64.Build.0 = Debug|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|x64.ActiveCfg = Debug|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|x64.Build.0 = Debug|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|x86.ActiveCfg = Debug|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|x86.Build.0 = Debug|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|Any CPU.Build.0 = Release|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|ARM.ActiveCfg = Release|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|ARM.Build.0 = Release|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|ARM64.ActiveCfg = Release|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|ARM64.Build.0 = Release|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|x64.ActiveCfg = Release|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|x64.Build.0 = Release|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|x86.ActiveCfg = Release|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|x86.Build.0 = Release|Any CPU + {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|Any CPU.ActiveCfg = Debug|x86 + {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|ARM.ActiveCfg = Debug|x86 + {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|ARM64.ActiveCfg = Debug|x86 + {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|x64.ActiveCfg = Debug|x64 + {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|x64.Build.0 = Debug|x64 + {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|x86.ActiveCfg = Debug|x86 + {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|x86.Build.0 = Debug|x86 + {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|Any CPU.ActiveCfg = Release|x86 + {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|ARM.ActiveCfg = Release|x86 + {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|ARM64.ActiveCfg = Release|x86 + {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|x64.ActiveCfg = Release|x64 + {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|x64.Build.0 = Release|x64 + {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|x86.ActiveCfg = Release|x86 + {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|x86.Build.0 = Release|x86 + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|ARM.ActiveCfg = Debug|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|ARM.Build.0 = Debug|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|ARM64.Build.0 = Debug|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|x64.ActiveCfg = Debug|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|x64.Build.0 = Debug|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|x86.ActiveCfg = Debug|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|x86.Build.0 = Debug|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|Any CPU.Build.0 = Release|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|ARM.ActiveCfg = Release|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|ARM.Build.0 = Release|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|ARM64.ActiveCfg = Release|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|ARM64.Build.0 = Release|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|x64.ActiveCfg = Release|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|x64.Build.0 = Release|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|x86.ActiveCfg = Release|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|x86.Build.0 = Release|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|ARM.ActiveCfg = Debug|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|ARM.Build.0 = Debug|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|ARM64.Build.0 = Debug|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|x64.ActiveCfg = Debug|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|x64.Build.0 = Debug|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|x86.ActiveCfg = Debug|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|x86.Build.0 = Debug|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|Any CPU.Build.0 = Release|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|ARM.ActiveCfg = Release|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|ARM.Build.0 = Release|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|ARM64.ActiveCfg = Release|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|ARM64.Build.0 = Release|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|x64.ActiveCfg = Release|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|x64.Build.0 = Release|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|x86.ActiveCfg = Release|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {C6D580C5-7037-4733-B933-916FF400AFE2} = {6D41796B-9904-40B8-BBCB-40B2D1BAE44B} + {FFA9A78B-F53F-43EE-AF87-24A80F4C330A} = {6D41796B-9904-40B8-BBCB-40B2D1BAE44B} + {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF} = {6D41796B-9904-40B8-BBCB-40B2D1BAE44B} + {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5} = {6D41796B-9904-40B8-BBCB-40B2D1BAE44B} + {EF3326B5-716F-41D2-AB30-4EFAB30955E2} = {6D41796B-9904-40B8-BBCB-40B2D1BAE44B} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {5AE8C9D7-2613-4E1A-A4F2-579BAC28D0A2} + EndGlobalSection +EndGlobal diff --git a/cswinrt/code_writers.h b/cswinrt/code_writers.h index 191c3c5c0..f1078da68 100644 --- a/cswinrt/code_writers.h +++ b/cswinrt/code_writers.h @@ -3386,6 +3386,7 @@ return 0;)", { if (method.SpecialName()) return; + auto generic_type = distance(method.Parent().GenericParam()) > 0; method_signature signature{ method }; auto return_sig = signature.return_signature(); auto type_name = write_type_name_temp(w, method.Parent()); @@ -3402,7 +3403,7 @@ private static unsafe int Do_Abi_%% { % })", - !settings.netstandard_compat && !have_generic_params ? "[UnmanagedCallersOnly]" : "", + !settings.netstandard_compat && !generic_type ? "[UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvStdcall) })]" : "", vmethod_name, bind(method), bind( @@ -3418,6 +3419,7 @@ private static unsafe int Do_Abi_%% { auto [getter, setter] = get_property_methods(prop); auto type_name = write_type_name_temp(w, prop.Parent()); + auto generic_type = distance(prop.Parent().GenericParam()) > 0; if (setter) { method_signature setter_sig{ setter }; @@ -3437,7 +3439,7 @@ private static unsafe int Do_Abi_%% { % })", - !settings.netstandard_compat ? "[UnmanagedCallersOnly]" : "", + !settings.netstandard_compat && !generic_type ? "[UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvStdcall) })]" : "", vmethod_name, bind(setter), bind( @@ -3467,7 +3469,7 @@ private static unsafe int Do_Abi_%% { % })", - !settings.netstandard_compat ? "[UnmanagedCallersOnly]" : "", + !settings.netstandard_compat && !generic_type ? "[UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvStdcall) })]" : "", vmethod_name, bind(getter), bind( @@ -3484,6 +3486,7 @@ private static unsafe int Do_Abi_%% void write_event_abi_invoke(writer& w, Event const& evt) { auto type_name = write_type_name_temp(w, evt.Parent()); + auto generic_type = distance(evt.Parent().GenericParam()) > 0; auto semantics = get_type_semantics(evt.EventType()); auto [add_method, remove_method] = get_event_methods(evt); auto add_signature = method_signature{ add_method }; @@ -3518,7 +3521,7 @@ catch (Exception __ex) return __ex.HResult; } })", - !settings.netstandard_compat ? "[UnmanagedCallersOnly]" : "", + !settings.netstandard_compat && !generic_type ? "[UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvStdcall) })]" : "", get_vmethod_name(w, add_method.Parent(), add_method), bind(add_method), settings.netstandard_compat ? "" : "*", @@ -3549,7 +3552,7 @@ catch (Exception __ex) return __ex.HResult; } })", - !settings.netstandard_compat ? "[UnmanagedCallersOnly]" : "", + !settings.netstandard_compat && !generic_type ? "[UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvStdcall) })]" : "", get_vmethod_name(w, remove_method.Parent(), remove_method), bind(remove_method), type_name, @@ -3603,36 +3606,26 @@ internal IInspectable.Vftbl IInspectableVftbl; } else { - if (settings.netstandard_compat) + if (settings.netstandard_compat || is_generic) { nongeneric_delegates.push_back(delegate_definition); - vtable_field_type = w.write_temp("delegate* stdcall<%, int>", bind(method_signature{ method })); - } - else - { - vtable_field_type = w.write_temp("delegate* stdcall<%, int>", bind(method_signature{ method })); } + + vtable_field_type = w.write_temp("delegate* unmanaged[Stdcall]<%, int>", bind(method_signature{ method })); function_pointer = true; } } else { // We're a well-known delegate type, but we still need to get the function pointer type. - if (settings.netstandard_compat) - { - vtable_field_type = w.write_temp("delegate* stdcall<%, int>", bind(method_signature{ method })); - } - else - { - vtable_field_type = w.write_temp("delegate* stdcall<%, int>", bind(method_signature{ method })); - } + vtable_field_type = w.write_temp("delegate* unmanaged[Stdcall]<%, int>", bind(method_signature{ method })); function_pointer = true; } if (!function_pointer) { w.write("public % %;", vtable_field_type, vmethod_name); } - else if (settings.netstandard_compat) + else if (settings.netstandard_compat || is_generic) { // Work around https://github.com/dotnet/runtime/issues/37295 w.write("private void* _%;\n", vmethod_name); @@ -3694,7 +3687,7 @@ internal IInspectable.Vftbl IInspectableVftbl; } }, method_signature{ method }))); } - else if (settings.netstandard_compat) + else { method_create_delegates_to_projection.emplace_back( w.write_temp("_% = (void*)Marshal.GetFunctionPointerForDelegate(DelegateCache[%] = new %(Do_Abi_%))", @@ -3703,14 +3696,6 @@ internal IInspectable.Vftbl IInspectableVftbl; delegate_type, vmethod_name)); } - else - { - // Work around C# compiler's lack of support for UnmanagedCallersOnly - method_create_delegates_to_projection.emplace_back( - w.write_temp("_% = &Do_Abi_%", - vmethod_name, vmethod_name) - ); - } } else if (settings.netstandard_compat) { @@ -3769,7 +3754,7 @@ IInspectableVftbl = Marshal.PtrToStructure(vftblPtr.Vftbl); w.write(R"( private static readonly Vftbl AbiToProjectionVftable; public static readonly IntPtr AbiToProjectionVftablePtr; -% +private static Delegate[] DelegateCache = new Delegate[%]; static unsafe Vftbl() { AbiToProjectionVftable = new Vftbl @@ -3782,13 +3767,7 @@ var nativeVftbl = (IntPtr*)ComWrappersSupport.AllocateVtableMemory(typeof(Vftbl) AbiToProjectionVftablePtr = (IntPtr)nativeVftbl; } )", - bind([&](writer& w) - { - if (settings.netstandard_compat) - { - w.write("private static Delegate[] DelegateCache = new Delegate[%];", std::to_string(distance(methods))); - } - }), + std::to_string(distance(methods)), bind_list(",\n", method_create_delegates_to_projection), std::to_string(distance(methods)), bind([&](writer& w) @@ -3803,9 +3782,9 @@ AbiToProjectionVftablePtr = (IntPtr)nativeVftbl; w.write("%", bind_each(method_marshals_to_projection)); } })); - } - else - { + } + else + { w.write(R"( public static readonly IntPtr AbiToProjectionVftablePtr; % @@ -4630,7 +4609,7 @@ public static Guid PIID = GuidGenerator.CreateIID(typeof(%));)", } else { - w.write("var abiInvoke = (delegate* stdcall<%, int>)(delegateToInvoke.Vftbl.Invoke);", + w.write("var abiInvoke = (delegate* unmanaged[Stdcall]<%, int>)(delegateToInvoke.Vftbl.Invoke);", bind(signature)); } }), @@ -4642,7 +4621,7 @@ public static Guid PIID = GuidGenerator.CreateIID(typeof(%));)", // DisposeAbi type_name, // Do_Abi_Invoke - !is_generic && !settings.netstandard_compat ? "\n[UnmanagedCallersOnly]" : "", + !is_generic && !settings.netstandard_compat ? "\n[UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvStdcall) })]" : "", [&](writer& w) { if (!is_generic) { diff --git a/cswinrt/strings/WinRT.cs b/cswinrt/strings/WinRT.cs index d6f4602b2..0425f436f 100644 --- a/cswinrt/strings/WinRT.cs +++ b/cswinrt/strings/WinRT.cs @@ -14,6 +14,7 @@ #pragma warning disable 0169 // The field 'xxx' is never used #pragma warning disable 0649 // Field 'xxx' is never assigned to, and will always have its default value +#pragma warning disable CA1060 namespace WinRT { @@ -49,7 +50,7 @@ internal class Platform [return: MarshalAs(UnmanagedType.Bool)] internal static extern bool FreeLibrary(IntPtr moduleHandle); - [DllImport("kernel32.dll", SetLastError = true)] + [DllImport("kernel32.dll", SetLastError = true, BestFitMapping = false)] internal static extern IntPtr GetProcAddress(IntPtr moduleHandle, [MarshalAs(UnmanagedType.LPStr)] string functionName); internal static T GetProcAddress(IntPtr moduleHandle) @@ -316,12 +317,13 @@ public ActivationFactory() : base(typeof(T).Namespace, typeof(T).FullName) { } public static ObjectReference ActivateInstance() => _factory.Value._ActivateInstance(); } +#pragma warning disable CA2002 internal unsafe class EventSource where TDelegate : class, MulticastDelegate { readonly IObjectReference _obj; - readonly delegate* stdcall _addHandler; - readonly delegate* stdcall _removeHandler; + readonly delegate* unmanaged[Stdcall] _addHandler; + readonly delegate* unmanaged[Stdcall] _removeHandler; private EventRegistrationToken _token; private TDelegate _event; @@ -410,8 +412,8 @@ private System.Delegate EventInvoke } internal EventSource(IObjectReference obj, - delegate* stdcall addHandler, - delegate* stdcall removeHandler) + delegate* unmanaged[Stdcall] addHandler, + delegate* unmanaged[Stdcall] removeHandler) { _obj = obj; _addHandler = addHandler; @@ -424,6 +426,7 @@ void _UnsubscribeFromNative() _token.Value = 0; } } +#pragma warning restore CA2002 // An event registration token table stores mappings from delegates to event tokens, in order to support // sourcing WinRT style events from managed code. diff --git a/cswinrt/strings/WinRT_Interop.cs b/cswinrt/strings/WinRT_Interop.cs index fcd7521a0..55020294f 100644 --- a/cswinrt/strings/WinRT_Interop.cs +++ b/cswinrt/strings/WinRT_Interop.cs @@ -21,7 +21,7 @@ internal unsafe struct IActivationFactoryVftbl { public IInspectable.Vftbl IInspectableVftbl; private void* _ActivateInstance; - public delegate* stdcall ActivateInstance => (delegate* stdcall)_ActivateInstance; + public delegate* unmanaged[Stdcall] ActivateInstance => (delegate* unmanaged[Stdcall])_ActivateInstance; } // IDelegate diff --git a/cswinrt/strings/additions/Windows.Storage/IStorageFolderHandleAccess.cs b/cswinrt/strings/additions/Windows.Storage/IStorageFolderHandleAccess.cs index 11dcb25b0..ef43393a0 100644 --- a/cswinrt/strings/additions/Windows.Storage/IStorageFolderHandleAccess.cs +++ b/cswinrt/strings/additions/Windows.Storage/IStorageFolderHandleAccess.cs @@ -32,7 +32,7 @@ public struct Vftbl { public IUnknownVftbl IUnknownVftbl; private void* _Create_0; - public delegate* stdcall Create_0 => (delegate* stdcall)_Create_0; + public delegate* unmanaged[Stdcall] Create_0 => (delegate* unmanaged[Stdcall])_Create_0; } internal static ObjectReference FromAbi(IntPtr thisPtr) => ObjectReference.FromAbi(thisPtr); diff --git a/cswinrt/strings/additions/Windows.Storage/IStorageItemHandleAccess.cs b/cswinrt/strings/additions/Windows.Storage/IStorageItemHandleAccess.cs index eb9702b83..13858eaa1 100644 --- a/cswinrt/strings/additions/Windows.Storage/IStorageItemHandleAccess.cs +++ b/cswinrt/strings/additions/Windows.Storage/IStorageItemHandleAccess.cs @@ -28,7 +28,7 @@ public struct Vftbl { public IUnknownVftbl IUnknownVftbl; private void* _Create_0; - public delegate* stdcall Create_0 => (delegate* stdcall)_Create_0; + public delegate* unmanaged[Stdcall] Create_0 => (delegate* unmanaged[Stdcall])_Create_0; } internal static ObjectReference FromAbi(IntPtr thisPtr) => ObjectReference.FromAbi(thisPtr); diff --git a/cswinrt/type_writers.h b/cswinrt/type_writers.h index b4453906a..db005e1e4 100644 --- a/cswinrt/type_writers.h +++ b/cswinrt/type_writers.h @@ -36,6 +36,7 @@ using System.Collections.ObjectModel; using System.Diagnostics; using System.Linq.Expressions; using System.Reflection; +using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using WinRT; using WinRT.Interop; @@ -43,6 +44,7 @@ using WinRT.Interop; #pragma warning disable 0169 // warning CS0169: The field '...' is never used #pragma warning disable 0649 // warning CS0169: Field '...' is never assigned to +#pragma warning disable CA2207, CA1063, CA1033, CA1001, CA2213 namespace % { diff --git a/get_buildtools.ps1 b/get_buildtools.ps1 new file mode 100644 index 000000000..8fb9de70f --- /dev/null +++ b/get_buildtools.ps1 @@ -0,0 +1,46 @@ +function LaunchSetupAndWait([string]$exePath, [string[]]$ArgumentList) +{ + Write-Host -NoNewline "Launching $exePath... " + $c = Start-Process $exePath -Wait -PassThru -ArgumentList $ArgumentList + $exitcode = $c.ExitCode + if ($exitCode -eq 0) + { + Write-Host -ForegroundColor Green Done. + } + else + { + Write-Host -ForegroundColor Red "Error $exitcode" + } + return ($exitCode -eq 0) +} + +function Download([uri]$Uri, [string]$OutFile) +{ + Write-Host -NoNewline "Downloading $OutFile... " + Invoke-WebRequest -Uri $Uri -OutFile $OutFile + Write-Host -ForegroundColor Green Done. +} + +function Install-MSBuild +{ + # Install Visual Studio Build Tools 16.8 + $buildtools_dir = join-path $pwd ".buildtools" + New-Item -Path $buildtools_dir -Force -ItemType 'Directory' | Out-Null + $vs_buildtools = join-path $pwd "vs_buildtools.exe" + Download -Uri https://download.visualstudio.microsoft.com/download/pr/ecb3860e-5c66-4a3f-8acf-ef190d5f9a96/18162a4d36635d0958bf56654d4a03b211dcd8474b3a4036c8a0a0fb6a0eb053/vs_BuildTools.exe -OutFile $vs_buildtools + $installed = LaunchSetupAndWait $vs_buildtools -ArgumentList "--quiet --wait --norestart --force --installPath $buildtools_dir --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools --add Microsoft.VisualStudio.Workload.UniversalBuildTools --add Microsoft.VisualStudio.ComponentGroup.UWP.VC.BuildTools" + if (!$installed) + { + # try to figure out what went wrong + $latestClientLog = (Get-ChildItem $env:temp\dd_client_* | Sort-Object -Property LastWriteTime -Descending)[0] + $log = (Get-Content $latestClientLog) + $errorLines = ($log -like '*Error :*') + if ($errorLines) + { + Write-Host $errorLines + } + Write-Host "For more information see %temp%\dd_*.txt" + } +} + +Install-MSBuild