diff --git a/Source/ExcelDna.Integration/ComInterop/DummyComAddIn.cs b/Source/ExcelDna.Integration/ComInterop/DummyComAddIn.cs index 67451754..c9df7c73 100644 --- a/Source/ExcelDna.Integration/ComInterop/DummyComAddIn.cs +++ b/Source/ExcelDna.Integration/ComInterop/DummyComAddIn.cs @@ -24,12 +24,12 @@ public int GetTypeInfo(uint iTInfo, uint lcid, out nint ppTInfo) throw new NotImplementedException(); } - public int GetIDsOfNames(Guid riid, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPWStr, SizeParamIndex = 2)] string[] rgszNames, uint cNames, uint lcid, [In][Out][MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] int[] rgDispId) + public int GetIDsOfNames(in Guid riid, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPWStr, SizeParamIndex = 2)] string[] rgszNames, uint cNames, uint lcid, [In][Out][MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] int[] rgDispId) { throw new NotImplementedException(); } - public int Invoke(int dispIdMember, Guid riid, uint lcid, INVOKEKIND wFlags, [MarshalUsing(typeof(Generator.Interfaces.DispParamsMarshaller))] in Generator.Interfaces.DispParams pDispParams, nint pVarResult, nint pExcepInfo, nint puArgErr) + public int Invoke(int dispIdMember, in Guid riid, uint lcid, ushort wFlags, [MarshalUsing(typeof(Generator.Interfaces.DispParamsMarshaller))] in Generator.Interfaces.DispParams pDispParams, nint pVarResult, nint pExcepInfo, nint puArgErr) { throw new NotImplementedException(); } diff --git a/Source/ExcelDna.Integration/ComInterop/Generator/ExcelObserverRtdServer.cs b/Source/ExcelDna.Integration/ComInterop/Generator/ExcelObserverRtdServer.cs index c597f961..deaeb7d1 100644 --- a/Source/ExcelDna.Integration/ComInterop/Generator/ExcelObserverRtdServer.cs +++ b/Source/ExcelDna.Integration/ComInterop/Generator/ExcelObserverRtdServer.cs @@ -37,14 +37,14 @@ public int GetTypeInfo(uint iTInfo, uint lcid, out nint ppTInfo) throw new NotImplementedException(); } - public int GetIDsOfNames(Guid riid, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPWStr, SizeParamIndex = 2)] string[] rgszNames, uint cNames, uint lcid, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2), Out] int[] rgDispId) + public int GetIDsOfNames(in Guid riid, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPWStr, SizeParamIndex = 2)] string[] rgszNames, uint cNames, uint lcid, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2), Out] int[] rgDispId) { dispatcher.GetIDsOfNames(rgszNames, rgDispId); return 0; } - public int Invoke(int dispIdMember, Guid riid, uint lcid, INVOKEKIND wFlags, [MarshalUsing(typeof(DispParamsMarshaller))] in DispParams pDispParams, nint pVarResult, nint pExcepInfo, nint puArgErr) + public int Invoke(int dispIdMember, in Guid riid, uint lcid, ushort wFlags, [MarshalUsing(typeof(DispParamsMarshaller))] in DispParams pDispParams, nint pVarResult, nint pExcepInfo, nint puArgErr) { dispatcher.Invoke(dispIdMember, pDispParams, pVarResult); diff --git a/Source/ExcelDna.Integration/ComInterop/Generator/ExcelRibbon.cs b/Source/ExcelDna.Integration/ComInterop/Generator/ExcelRibbon.cs index 99486d1e..062f6bf4 100644 --- a/Source/ExcelDna.Integration/ComInterop/Generator/ExcelRibbon.cs +++ b/Source/ExcelDna.Integration/ComInterop/Generator/ExcelRibbon.cs @@ -34,7 +34,7 @@ public int GetTypeInfo(uint iTInfo, uint lcid, out nint ppTInfo) throw new NotImplementedException(); } - public int GetIDsOfNames(Guid riid, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPWStr, SizeParamIndex = 2)] string[] rgszNames, uint cNames, uint lcid, [In][Out][MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] int[] rgDispId) + public int GetIDsOfNames(in Guid riid, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPWStr, SizeParamIndex = 2)] string[] rgszNames, uint cNames, uint lcid, [In][Out][MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] int[] rgDispId) { for (int i = 0; i < cNames; ++i) rgDispId[i] = (rgszNames[i] == "LoadImage") ? methods.Length : Array.FindIndex(methods, m => m?.Name == rgszNames[i]); @@ -42,7 +42,7 @@ public int GetIDsOfNames(Guid riid, [MarshalAs(UnmanagedType.LPArray, ArraySubTy return 0; } - public int Invoke(int dispIdMember, Guid riid, uint lcid, INVOKEKIND wFlags, [MarshalUsing(typeof(Generator.Interfaces.DispParamsMarshaller))] in Generator.Interfaces.DispParams pDispParams, nint pVarResult, nint pExcepInfo, nint puArgErr) + public int Invoke(int dispIdMember, in Guid riid, uint lcid, ushort wFlags, [MarshalUsing(typeof(Generator.Interfaces.DispParamsMarshaller))] in Generator.Interfaces.DispParams pDispParams, nint pVarResult, nint pExcepInfo, nint puArgErr) { try { diff --git a/Source/ExcelDna.Integration/ComInterop/Generator/Interfaces/DispParamsMarshaller.cs b/Source/ExcelDna.Integration/ComInterop/Generator/Interfaces/DispParamsMarshaller.cs index e0edf5ef..277269b5 100644 --- a/Source/ExcelDna.Integration/ComInterop/Generator/Interfaces/DispParamsMarshaller.cs +++ b/Source/ExcelDna.Integration/ComInterop/Generator/Interfaces/DispParamsMarshaller.cs @@ -11,11 +11,18 @@ internal static class DispParamsMarshaller { public static unsafe DispParamsNative ConvertToUnmanaged(DispParams managed) { + int* rgdispidNamedArgs = null; + if (managed.rgdispidNamedArgs != 0) + { + rgdispidNamedArgs = (int*)Marshal.AllocHGlobal(sizeof(int)); + *rgdispidNamedArgs = managed.rgdispidNamedArgs; + } + return new DispParamsNative { cArgs = managed.cArgs, cNamedArgs = managed.cNamedArgs, - rgdispidNamedArgs = managed.rgdispidNamedArgs != 0 ? &managed.rgdispidNamedArgs : null, + rgdispidNamedArgs = rgdispidNamedArgs, rgvarg = managed.rgvarg != null ? ArrayMarshaller.ArrayToPtr(managed.rgvarg.Reverse().Select(VariantMarshaller.ConvertToUnmanaged).ToArray()) @@ -39,6 +46,12 @@ public static unsafe DispParams ConvertToManaged(DispParamsNative unmanaged) }; } + public static unsafe void Free(DispParamsNative unmanaged) + { + if (unmanaged.rgdispidNamedArgs != null) + Marshal.FreeHGlobal((nint)unmanaged.rgdispidNamedArgs); + } + public static void UpdateArg(DispParams dp, Variant v, int i) { int ri = dp.cArgs - 1 - i; diff --git a/Source/ExcelDna.Integration/ComInterop/Generator/Interfaces/DispatchObject.cs b/Source/ExcelDna.Integration/ComInterop/Generator/Interfaces/DispatchObject.cs index b179f863..6f67143c 100644 --- a/Source/ExcelDna.Integration/ComInterop/Generator/Interfaces/DispatchObject.cs +++ b/Source/ExcelDna.Integration/ComInterop/Generator/Interfaces/DispatchObject.cs @@ -106,7 +106,7 @@ private int[] GetDispIDs(string propName) var dispIds = new int[names.Length]; var hr = dispatch!.GetIDsOfNames( - emptyGuid, + in emptyGuid, names, (uint)names.Length, LOCALE_USER_DEFAULT, @@ -126,9 +126,9 @@ private int[] GetDispIDs(string propName) var hr = dispatch!.Invoke( dispIds[0], - emptyGuid, + in emptyGuid, LOCALE_USER_DEFAULT, - kind, + (ushort)kind, dispParams, variantResult.Ptr, 0, diff --git a/Source/ExcelDna.Integration/ComInterop/Generator/Interfaces/IDispatch.cs b/Source/ExcelDna.Integration/ComInterop/Generator/Interfaces/IDispatch.cs index d176a244..806be2e4 100644 --- a/Source/ExcelDna.Integration/ComInterop/Generator/Interfaces/IDispatch.cs +++ b/Source/ExcelDna.Integration/ComInterop/Generator/Interfaces/IDispatch.cs @@ -19,7 +19,7 @@ internal partial interface IDispatch [PreserveSig] int GetIDsOfNames( - Guid riid, + in Guid riid, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPWStr, SizeParamIndex = 2)] string[] rgszNames, uint cNames, uint lcid, @@ -29,9 +29,9 @@ int GetIDsOfNames( [PreserveSig] int Invoke( int dispIdMember, - Guid riid, + in Guid riid, uint lcid, - INVOKEKIND wFlags, + ushort wFlags, [MarshalUsing(typeof(DispParamsMarshaller))] in DispParams pDispParams, nint pVarResult, nint pExcepInfo, diff --git a/Source/ExcelDna.Integration/ComInterop/Generator/RTDUpdateEvent.cs b/Source/ExcelDna.Integration/ComInterop/Generator/RTDUpdateEvent.cs index 47193892..fb30c0d7 100644 --- a/Source/ExcelDna.Integration/ComInterop/Generator/RTDUpdateEvent.cs +++ b/Source/ExcelDna.Integration/ComInterop/Generator/RTDUpdateEvent.cs @@ -69,12 +69,12 @@ int IDispatch.GetTypeInfo(uint iTInfo, uint lcid, out nint ppTInfo) throw new NotImplementedException(); } - int IDispatch.GetIDsOfNames(Guid riid, string[] rgszNames, uint cNames, uint lcid, int[] rgDispId) + int IDispatch.GetIDsOfNames(in Guid riid, string[] rgszNames, uint cNames, uint lcid, int[] rgDispId) { throw new NotImplementedException(); } - int IDispatch.Invoke(int dispIdMember, Guid riid, uint lcid, INVOKEKIND wFlags, in DispParams pDispParams, nint pVarResult, nint pExcepInfo, nint puArgErr) + int IDispatch.Invoke(int dispIdMember, in Guid riid, uint lcid, ushort wFlags, in DispParams pDispParams, nint pVarResult, nint pExcepInfo, nint puArgErr) { throw new NotImplementedException(); } diff --git a/Source/ExcelDna.SourceGenerator.NativeAOT/Generator.cs b/Source/ExcelDna.SourceGenerator.NativeAOT/Generator.cs index 29c2fe50..f1a4fb1c 100644 --- a/Source/ExcelDna.SourceGenerator.NativeAOT/Generator.cs +++ b/Source/ExcelDna.SourceGenerator.NativeAOT/Generator.cs @@ -43,7 +43,7 @@ namespace ExcelDna.SourceGenerator.NativeAOT { public unsafe class AddInInitialize { - [UnmanagedCallersOnly(EntryPoint = "Initialize", CallConvs = new[] { typeof(CallConvCdecl) })] + [UnmanagedCallersOnly(EntryPoint = "Initialize", CallConvs = new[] { typeof(CallConvStdcall) })] [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage("Trimming", "IL3050:RequiresDynamicCode", Justification = "SourceGenerator preserves types and methods")] public static short Initialize(void* xlAddInExportInfoAddress, void* hModuleXll, void* pPathXLL, byte disableAssemblyContextUnload, void* pTempDirPath) { diff --git a/Source/ExcelDna.TestAOT/ExcelDna.TestAOT.csproj b/Source/ExcelDna.TestAOT/ExcelDna.TestAOT.csproj index 563c64f8..36078a82 100644 --- a/Source/ExcelDna.TestAOT/ExcelDna.TestAOT.csproj +++ b/Source/ExcelDna.TestAOT/ExcelDna.TestAOT.csproj @@ -8,15 +8,25 @@ true - win-x64 true true - ExcelDna.TestAOT64 enable enable true + + x86;x64 + + + + win-x64 + ExcelDna.TestAOT64 + + + + win-x86 + ExcelDna.TestAOT @@ -40,7 +50,8 @@ - + + diff --git a/Source/ExcelDna.sln b/Source/ExcelDna.sln index b7dc7c45..87448607 100644 --- a/Source/ExcelDna.sln +++ b/Source/ExcelDna.sln @@ -144,6 +144,7 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExcelDna.AddIn.RuntimeTestsNET4", "Tests\ExcelDna.AddIn.RuntimeTestsNET4\ExcelDna.AddIn.RuntimeTestsNET4.csproj", "{CA911B12-8A16-FBA5-E2E7-E1961AC273CA}" ProjectSection(ProjectDependencies) = postProject {59AE5BC6-F37E-4CE3-BAE3-796F807A9882} = {59AE5BC6-F37E-4CE3-BAE3-796F807A9882} + {A8D668E2-63C1-4F4E-A01E-E026C6E4D601} = {A8D668E2-63C1-4F4E-A01E-E026C6E4D601} {A9887347-3E93-4E4E-96DF-227648E57B60} = {A9887347-3E93-4E4E-96DF-227648E57B60} {DC10CEC8-C6CE-4148-838F-C3DD4EA2A2A3} = {DC10CEC8-C6CE-4148-838F-C3DD4EA2A2A3} {FD7F2EE3-9922-4825-96A2-BE2C877BAEB9} = {FD7F2EE3-9922-4825-96A2-BE2C877BAEB9} @@ -198,17 +199,17 @@ Global {B5CC04D3-0507-4431-9F45-7C60BAC3047A}.Release|x64.ActiveCfg = Release|Any CPU {B5CC04D3-0507-4431-9F45-7C60BAC3047A}.Release|x64.Build.0 = Release|Any CPU {C9CAD3E4-E6F1-4BD2-AF89-57950AB15388}.Debug|Win32.ActiveCfg = Debug|Any CPU - {C9CAD3E4-E6F1-4BD2-AF89-57950AB15388}.Debug|Win32.Build.0 = Debug|Any CPU {C9CAD3E4-E6F1-4BD2-AF89-57950AB15388}.Debug|x64.ActiveCfg = Debug|Any CPU {C9CAD3E4-E6F1-4BD2-AF89-57950AB15388}.Debug|x64.Build.0 = Debug|Any CPU {C9CAD3E4-E6F1-4BD2-AF89-57950AB15388}.Release|Win32.ActiveCfg = Release|Any CPU - {C9CAD3E4-E6F1-4BD2-AF89-57950AB15388}.Release|Win32.Build.0 = Release|Any CPU {C9CAD3E4-E6F1-4BD2-AF89-57950AB15388}.Release|x64.ActiveCfg = Release|Any CPU {C9CAD3E4-E6F1-4BD2-AF89-57950AB15388}.Release|x64.Build.0 = Release|Any CPU {3AFD9408-48AC-43B4-8E55-4E7D73168FEA}.Debug|Win32.ActiveCfg = Debug|Any CPU + {3AFD9408-48AC-43B4-8E55-4E7D73168FEA}.Debug|Win32.Build.0 = Debug|Any CPU {3AFD9408-48AC-43B4-8E55-4E7D73168FEA}.Debug|x64.ActiveCfg = Debug|Any CPU {3AFD9408-48AC-43B4-8E55-4E7D73168FEA}.Debug|x64.Build.0 = Debug|Any CPU {3AFD9408-48AC-43B4-8E55-4E7D73168FEA}.Release|Win32.ActiveCfg = Release|Any CPU + {3AFD9408-48AC-43B4-8E55-4E7D73168FEA}.Release|Win32.Build.0 = Release|Any CPU {3AFD9408-48AC-43B4-8E55-4E7D73168FEA}.Release|x64.ActiveCfg = Release|Any CPU {3AFD9408-48AC-43B4-8E55-4E7D73168FEA}.Release|x64.Build.0 = Release|Any CPU {DC10CEC8-C6CE-4148-838F-C3DD4EA2A2A3}.Debug|Win32.ActiveCfg = Debug|Any CPU @@ -241,42 +242,50 @@ Global {28D046D4-B414-4DAF-818F-897A97B921DF}.Release|Win32.Build.0 = Release|Any CPU {28D046D4-B414-4DAF-818F-897A97B921DF}.Release|x64.ActiveCfg = Release|Any CPU {28D046D4-B414-4DAF-818F-897A97B921DF}.Release|x64.Build.0 = Release|Any CPU - {297D72F7-FD48-4751-B2EF-F97DBAD0C901}.Debug|Win32.ActiveCfg = Debug|Any CPU - {297D72F7-FD48-4751-B2EF-F97DBAD0C901}.Debug|x64.ActiveCfg = Debug|Any CPU - {297D72F7-FD48-4751-B2EF-F97DBAD0C901}.Debug|x64.Build.0 = Debug|Any CPU - {297D72F7-FD48-4751-B2EF-F97DBAD0C901}.Release|Win32.ActiveCfg = Release|Any CPU - {297D72F7-FD48-4751-B2EF-F97DBAD0C901}.Release|x64.ActiveCfg = Release|Any CPU - {297D72F7-FD48-4751-B2EF-F97DBAD0C901}.Release|x64.Build.0 = Release|Any CPU + {297D72F7-FD48-4751-B2EF-F97DBAD0C901}.Debug|Win32.ActiveCfg = Debug|x86 + {297D72F7-FD48-4751-B2EF-F97DBAD0C901}.Debug|Win32.Build.0 = Debug|x86 + {297D72F7-FD48-4751-B2EF-F97DBAD0C901}.Debug|x64.ActiveCfg = Debug|x64 + {297D72F7-FD48-4751-B2EF-F97DBAD0C901}.Debug|x64.Build.0 = Debug|x64 + {297D72F7-FD48-4751-B2EF-F97DBAD0C901}.Release|Win32.ActiveCfg = Release|x86 + {297D72F7-FD48-4751-B2EF-F97DBAD0C901}.Release|Win32.Build.0 = Release|x86 + {297D72F7-FD48-4751-B2EF-F97DBAD0C901}.Release|x64.ActiveCfg = Release|x64 + {297D72F7-FD48-4751-B2EF-F97DBAD0C901}.Release|x64.Build.0 = Release|x64 {238F95C5-87DF-4973-88C2-5A9509C3935F}.Debug|Win32.ActiveCfg = Debug|Any CPU - {238F95C5-87DF-4973-88C2-5A9509C3935F}.Debug|Win32.Build.0 = Debug|Any CPU {238F95C5-87DF-4973-88C2-5A9509C3935F}.Debug|x64.ActiveCfg = Debug|Any CPU {238F95C5-87DF-4973-88C2-5A9509C3935F}.Debug|x64.Build.0 = Debug|Any CPU {238F95C5-87DF-4973-88C2-5A9509C3935F}.Release|Win32.ActiveCfg = Release|Any CPU - {238F95C5-87DF-4973-88C2-5A9509C3935F}.Release|Win32.Build.0 = Release|Any CPU {238F95C5-87DF-4973-88C2-5A9509C3935F}.Release|x64.ActiveCfg = Release|Any CPU {238F95C5-87DF-4973-88C2-5A9509C3935F}.Release|x64.Build.0 = Release|Any CPU - {8D04B68B-1EFE-48DC-A0B5-D7ACC293694B}.Debug|Win32.ActiveCfg = Debug|Any CPU - {8D04B68B-1EFE-48DC-A0B5-D7ACC293694B}.Debug|x64.ActiveCfg = Debug|Any CPU - {8D04B68B-1EFE-48DC-A0B5-D7ACC293694B}.Debug|x64.Build.0 = Debug|Any CPU - {8D04B68B-1EFE-48DC-A0B5-D7ACC293694B}.Release|Win32.ActiveCfg = Release|Any CPU - {8D04B68B-1EFE-48DC-A0B5-D7ACC293694B}.Release|x64.ActiveCfg = Release|Any CPU - {8D04B68B-1EFE-48DC-A0B5-D7ACC293694B}.Release|x64.Build.0 = Release|Any CPU + {8D04B68B-1EFE-48DC-A0B5-D7ACC293694B}.Debug|Win32.ActiveCfg = Debug|x86 + {8D04B68B-1EFE-48DC-A0B5-D7ACC293694B}.Debug|Win32.Build.0 = Debug|x86 + {8D04B68B-1EFE-48DC-A0B5-D7ACC293694B}.Debug|x64.ActiveCfg = Debug|x64 + {8D04B68B-1EFE-48DC-A0B5-D7ACC293694B}.Debug|x64.Build.0 = Debug|x64 + {8D04B68B-1EFE-48DC-A0B5-D7ACC293694B}.Release|Win32.ActiveCfg = Release|x86 + {8D04B68B-1EFE-48DC-A0B5-D7ACC293694B}.Release|Win32.Build.0 = Release|x86 + {8D04B68B-1EFE-48DC-A0B5-D7ACC293694B}.Release|x64.ActiveCfg = Release|x64 + {8D04B68B-1EFE-48DC-A0B5-D7ACC293694B}.Release|x64.Build.0 = Release|x64 {55AEB960-2857-323E-3E82-5A8AA5913A18}.Debug|Win32.ActiveCfg = Debug|Any CPU + {55AEB960-2857-323E-3E82-5A8AA5913A18}.Debug|Win32.Build.0 = Debug|Any CPU {55AEB960-2857-323E-3E82-5A8AA5913A18}.Debug|x64.ActiveCfg = Debug|Any CPU {55AEB960-2857-323E-3E82-5A8AA5913A18}.Debug|x64.Build.0 = Debug|Any CPU {55AEB960-2857-323E-3E82-5A8AA5913A18}.Release|Win32.ActiveCfg = Release|Any CPU + {55AEB960-2857-323E-3E82-5A8AA5913A18}.Release|Win32.Build.0 = Release|Any CPU {55AEB960-2857-323E-3E82-5A8AA5913A18}.Release|x64.ActiveCfg = Release|Any CPU {55AEB960-2857-323E-3E82-5A8AA5913A18}.Release|x64.Build.0 = Release|Any CPU {2F5539CC-E302-49B6-88A9-9264DC6413B3}.Debug|Win32.ActiveCfg = Debug|Any CPU + {2F5539CC-E302-49B6-88A9-9264DC6413B3}.Debug|Win32.Build.0 = Debug|Any CPU {2F5539CC-E302-49B6-88A9-9264DC6413B3}.Debug|x64.ActiveCfg = Debug|Any CPU {2F5539CC-E302-49B6-88A9-9264DC6413B3}.Debug|x64.Build.0 = Debug|Any CPU {2F5539CC-E302-49B6-88A9-9264DC6413B3}.Release|Win32.ActiveCfg = Release|Any CPU + {2F5539CC-E302-49B6-88A9-9264DC6413B3}.Release|Win32.Build.0 = Release|Any CPU {2F5539CC-E302-49B6-88A9-9264DC6413B3}.Release|x64.ActiveCfg = Release|Any CPU {2F5539CC-E302-49B6-88A9-9264DC6413B3}.Release|x64.Build.0 = Release|Any CPU {7CA501E1-FB74-4903-B34D-EFE513C5B428}.Debug|Win32.ActiveCfg = Debug|Any CPU + {7CA501E1-FB74-4903-B34D-EFE513C5B428}.Debug|Win32.Build.0 = Debug|Any CPU {7CA501E1-FB74-4903-B34D-EFE513C5B428}.Debug|x64.ActiveCfg = Debug|Any CPU {7CA501E1-FB74-4903-B34D-EFE513C5B428}.Debug|x64.Build.0 = Debug|Any CPU {7CA501E1-FB74-4903-B34D-EFE513C5B428}.Release|Win32.ActiveCfg = Release|Any CPU + {7CA501E1-FB74-4903-B34D-EFE513C5B428}.Release|Win32.Build.0 = Release|Any CPU {7CA501E1-FB74-4903-B34D-EFE513C5B428}.Release|x64.ActiveCfg = Release|Any CPU {7CA501E1-FB74-4903-B34D-EFE513C5B428}.Release|x64.Build.0 = Release|Any CPU {151AE960-6320-402D-BDD0-D76DF96F2BD7}.Debug|Win32.ActiveCfg = Debug|Any CPU @@ -303,12 +312,14 @@ Global {DAF494B7-16F3-AAA7-5F71-234663023BB6}.Release|Win32.Build.0 = Release|Any CPU {DAF494B7-16F3-AAA7-5F71-234663023BB6}.Release|x64.ActiveCfg = Release|Any CPU {DAF494B7-16F3-AAA7-5F71-234663023BB6}.Release|x64.Build.0 = Release|Any CPU - {1EC2EE86-7C59-4CA9-9D6A-FBF206DA9D3F}.Debug|Win32.ActiveCfg = Debug|Any CPU - {1EC2EE86-7C59-4CA9-9D6A-FBF206DA9D3F}.Debug|x64.ActiveCfg = Debug|Any CPU - {1EC2EE86-7C59-4CA9-9D6A-FBF206DA9D3F}.Debug|x64.Build.0 = Debug|Any CPU - {1EC2EE86-7C59-4CA9-9D6A-FBF206DA9D3F}.Release|Win32.ActiveCfg = Release|Any CPU - {1EC2EE86-7C59-4CA9-9D6A-FBF206DA9D3F}.Release|x64.ActiveCfg = Release|Any CPU - {1EC2EE86-7C59-4CA9-9D6A-FBF206DA9D3F}.Release|x64.Build.0 = Release|Any CPU + {1EC2EE86-7C59-4CA9-9D6A-FBF206DA9D3F}.Debug|Win32.ActiveCfg = Debug|x86 + {1EC2EE86-7C59-4CA9-9D6A-FBF206DA9D3F}.Debug|Win32.Build.0 = Debug|x86 + {1EC2EE86-7C59-4CA9-9D6A-FBF206DA9D3F}.Debug|x64.ActiveCfg = Debug|x64 + {1EC2EE86-7C59-4CA9-9D6A-FBF206DA9D3F}.Debug|x64.Build.0 = Debug|x64 + {1EC2EE86-7C59-4CA9-9D6A-FBF206DA9D3F}.Release|Win32.ActiveCfg = Release|x86 + {1EC2EE86-7C59-4CA9-9D6A-FBF206DA9D3F}.Release|Win32.Build.0 = Release|x86 + {1EC2EE86-7C59-4CA9-9D6A-FBF206DA9D3F}.Release|x64.ActiveCfg = Release|x64 + {1EC2EE86-7C59-4CA9-9D6A-FBF206DA9D3F}.Release|x64.Build.0 = Release|x64 {D47CC5BF-712E-4FFA-BE52-E783BDCC6D33}.Debug|Win32.ActiveCfg = Debug|Any CPU {D47CC5BF-712E-4FFA-BE52-E783BDCC6D33}.Debug|Win32.Build.0 = Debug|Any CPU {D47CC5BF-712E-4FFA-BE52-E783BDCC6D33}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -317,16 +328,20 @@ Global {D47CC5BF-712E-4FFA-BE52-E783BDCC6D33}.Release|Win32.Build.0 = Release|Any CPU {D47CC5BF-712E-4FFA-BE52-E783BDCC6D33}.Release|x64.ActiveCfg = Release|Any CPU {D47CC5BF-712E-4FFA-BE52-E783BDCC6D33}.Release|x64.Build.0 = Release|Any CPU - {3949BFC8-2A6A-4AC7-828B-CDE748DD2A92}.Debug|Win32.ActiveCfg = Debug|Any CPU - {3949BFC8-2A6A-4AC7-828B-CDE748DD2A92}.Debug|x64.ActiveCfg = Debug|Any CPU - {3949BFC8-2A6A-4AC7-828B-CDE748DD2A92}.Debug|x64.Build.0 = Debug|Any CPU - {3949BFC8-2A6A-4AC7-828B-CDE748DD2A92}.Release|Win32.ActiveCfg = Release|Any CPU - {3949BFC8-2A6A-4AC7-828B-CDE748DD2A92}.Release|x64.ActiveCfg = Release|Any CPU - {3949BFC8-2A6A-4AC7-828B-CDE748DD2A92}.Release|x64.Build.0 = Release|Any CPU + {3949BFC8-2A6A-4AC7-828B-CDE748DD2A92}.Debug|Win32.ActiveCfg = Debug|x86 + {3949BFC8-2A6A-4AC7-828B-CDE748DD2A92}.Debug|Win32.Build.0 = Debug|x86 + {3949BFC8-2A6A-4AC7-828B-CDE748DD2A92}.Debug|x64.ActiveCfg = Debug|x64 + {3949BFC8-2A6A-4AC7-828B-CDE748DD2A92}.Debug|x64.Build.0 = Debug|x64 + {3949BFC8-2A6A-4AC7-828B-CDE748DD2A92}.Release|Win32.ActiveCfg = Release|x86 + {3949BFC8-2A6A-4AC7-828B-CDE748DD2A92}.Release|Win32.Build.0 = Release|x86 + {3949BFC8-2A6A-4AC7-828B-CDE748DD2A92}.Release|x64.ActiveCfg = Release|x64 + {3949BFC8-2A6A-4AC7-828B-CDE748DD2A92}.Release|x64.Build.0 = Release|x64 {CA911B12-8A16-FBA5-E2E7-E1961AC273CA}.Debug|Win32.ActiveCfg = Debug|Any CPU + {CA911B12-8A16-FBA5-E2E7-E1961AC273CA}.Debug|Win32.Build.0 = Debug|Any CPU {CA911B12-8A16-FBA5-E2E7-E1961AC273CA}.Debug|x64.ActiveCfg = Debug|Any CPU {CA911B12-8A16-FBA5-E2E7-E1961AC273CA}.Debug|x64.Build.0 = Debug|Any CPU {CA911B12-8A16-FBA5-E2E7-E1961AC273CA}.Release|Win32.ActiveCfg = Release|Any CPU + {CA911B12-8A16-FBA5-E2E7-E1961AC273CA}.Release|Win32.Build.0 = Release|Any CPU {CA911B12-8A16-FBA5-E2E7-E1961AC273CA}.Release|x64.ActiveCfg = Release|Any CPU {CA911B12-8A16-FBA5-E2E7-E1961AC273CA}.Release|x64.Build.0 = Release|Any CPU EndGlobalSection diff --git a/Source/Tests/ExcelDna.AddIn.RegistrationSample/ExcelDna.AddIn.RegistrationSample-AddIn.dna b/Source/Tests/ExcelDna.AddIn.RegistrationSample/ExcelDna.AddIn.RegistrationSample-AddIn.dna new file mode 100644 index 00000000..d3fb088c --- /dev/null +++ b/Source/Tests/ExcelDna.AddIn.RegistrationSample/ExcelDna.AddIn.RegistrationSample-AddIn.dna @@ -0,0 +1,3 @@ + + + diff --git a/Source/Tests/ExcelDna.AddIn.RegistrationSample/ExcelDna.AddIn.RegistrationSample.csproj b/Source/Tests/ExcelDna.AddIn.RegistrationSample/ExcelDna.AddIn.RegistrationSample.csproj index 63ac6f64..1c4a5582 100644 --- a/Source/Tests/ExcelDna.AddIn.RegistrationSample/ExcelDna.AddIn.RegistrationSample.csproj +++ b/Source/Tests/ExcelDna.AddIn.RegistrationSample/ExcelDna.AddIn.RegistrationSample.csproj @@ -17,13 +17,17 @@ + + PreserveNewest + PreserveNewest - + + diff --git a/Source/Tests/ExcelDna.AddIn.RegistrationSampleFS/ExcelDna.AddIn.RegistrationSampleFS-AddIn.dna b/Source/Tests/ExcelDna.AddIn.RegistrationSampleFS/ExcelDna.AddIn.RegistrationSampleFS-AddIn.dna new file mode 100644 index 00000000..7e939f54 --- /dev/null +++ b/Source/Tests/ExcelDna.AddIn.RegistrationSampleFS/ExcelDna.AddIn.RegistrationSampleFS-AddIn.dna @@ -0,0 +1,3 @@ + + + diff --git a/Source/Tests/ExcelDna.AddIn.RegistrationSampleFS/ExcelDna.AddIn.RegistrationSampleFS.fsproj b/Source/Tests/ExcelDna.AddIn.RegistrationSampleFS/ExcelDna.AddIn.RegistrationSampleFS.fsproj index d6324e6c..12a35778 100644 --- a/Source/Tests/ExcelDna.AddIn.RegistrationSampleFS/ExcelDna.AddIn.RegistrationSampleFS.fsproj +++ b/Source/Tests/ExcelDna.AddIn.RegistrationSampleFS/ExcelDna.AddIn.RegistrationSampleFS.fsproj @@ -24,10 +24,14 @@ PreserveNewest + + PreserveNewest + - + + diff --git a/Source/Tests/ExcelDna.AddIn.RegistrationSampleVB/ExcelDna.AddIn.RegistrationSampleVB-AddIn.dna b/Source/Tests/ExcelDna.AddIn.RegistrationSampleVB/ExcelDna.AddIn.RegistrationSampleVB-AddIn.dna new file mode 100644 index 00000000..b43cba25 --- /dev/null +++ b/Source/Tests/ExcelDna.AddIn.RegistrationSampleVB/ExcelDna.AddIn.RegistrationSampleVB-AddIn.dna @@ -0,0 +1,3 @@ + + + diff --git a/Source/Tests/ExcelDna.AddIn.RegistrationSampleVB/ExcelDna.AddIn.RegistrationSampleVB.vbproj b/Source/Tests/ExcelDna.AddIn.RegistrationSampleVB/ExcelDna.AddIn.RegistrationSampleVB.vbproj index 2cc663aa..3307f996 100644 --- a/Source/Tests/ExcelDna.AddIn.RegistrationSampleVB/ExcelDna.AddIn.RegistrationSampleVB.vbproj +++ b/Source/Tests/ExcelDna.AddIn.RegistrationSampleVB/ExcelDna.AddIn.RegistrationSampleVB.vbproj @@ -14,13 +14,17 @@ + + PreserveNewest + PreserveNewest - + + diff --git a/Source/Tests/ExcelDna.AddIn.RuntimeTests/ExcelDna.AddIn.RuntimeTests-AddIn.dna b/Source/Tests/ExcelDna.AddIn.RuntimeTests/ExcelDna.AddIn.RuntimeTests-AddIn.dna new file mode 100644 index 00000000..fb7831dd --- /dev/null +++ b/Source/Tests/ExcelDna.AddIn.RuntimeTests/ExcelDna.AddIn.RuntimeTests-AddIn.dna @@ -0,0 +1,3 @@ + + + diff --git a/Source/Tests/ExcelDna.AddIn.RuntimeTests/ExcelDna.AddIn.RuntimeTests.csproj b/Source/Tests/ExcelDna.AddIn.RuntimeTests/ExcelDna.AddIn.RuntimeTests.csproj index 60b418fa..fa490dca 100644 --- a/Source/Tests/ExcelDna.AddIn.RuntimeTests/ExcelDna.AddIn.RuntimeTests.csproj +++ b/Source/Tests/ExcelDna.AddIn.RuntimeTests/ExcelDna.AddIn.RuntimeTests.csproj @@ -4,6 +4,7 @@ net6.0-windows enable enable + x86;x64 @@ -18,10 +19,14 @@ PreserveNewest + + PreserveNewest + - + + diff --git a/Source/Tests/ExcelDna.AddIn.RuntimeTestsAOT/ExcelDna.AddIn.RuntimeTestsAOT.csproj b/Source/Tests/ExcelDna.AddIn.RuntimeTestsAOT/ExcelDna.AddIn.RuntimeTestsAOT.csproj index 5fb026ef..4fc2a70a 100644 --- a/Source/Tests/ExcelDna.AddIn.RuntimeTestsAOT/ExcelDna.AddIn.RuntimeTestsAOT.csproj +++ b/Source/Tests/ExcelDna.AddIn.RuntimeTestsAOT/ExcelDna.AddIn.RuntimeTestsAOT.csproj @@ -8,15 +8,24 @@ true - win-x64 true true - ExcelDna.AddIn.RuntimeTestsAOT64 enable enable true + x86;x64 + + + + win-x64 + ExcelDna.AddIn.RuntimeTestsAOT64 + + + + win-x86 + ExcelDna.AddIn.RuntimeTestsAOT @@ -32,7 +41,8 @@ - + + diff --git a/Source/Tests/ExcelDna.AddIn.RuntimeTestsNET4/ExcelDna.AddIn.RuntimeTestsNET4-AddIn.dna b/Source/Tests/ExcelDna.AddIn.RuntimeTestsNET4/ExcelDna.AddIn.RuntimeTestsNET4-AddIn.dna new file mode 100644 index 00000000..deb0e385 --- /dev/null +++ b/Source/Tests/ExcelDna.AddIn.RuntimeTestsNET4/ExcelDna.AddIn.RuntimeTestsNET4-AddIn.dna @@ -0,0 +1,3 @@ + + + diff --git a/Source/Tests/ExcelDna.AddIn.RuntimeTestsNET4/ExcelDna.AddIn.RuntimeTestsNET4.csproj b/Source/Tests/ExcelDna.AddIn.RuntimeTestsNET4/ExcelDna.AddIn.RuntimeTestsNET4.csproj index 95844d72..8698e49b 100644 --- a/Source/Tests/ExcelDna.AddIn.RuntimeTestsNET4/ExcelDna.AddIn.RuntimeTestsNET4.csproj +++ b/Source/Tests/ExcelDna.AddIn.RuntimeTestsNET4/ExcelDna.AddIn.RuntimeTestsNET4.csproj @@ -13,13 +13,17 @@ + + PreserveNewest + PreserveNewest - + + diff --git a/Source/Tests/ExcelDna.RuntimeTests/AddInPath.cs b/Source/Tests/ExcelDna.RuntimeTests/AddInPath.cs index 8a07c0db..c3ef9b1a 100644 --- a/Source/Tests/ExcelDna.RuntimeTests/AddInPath.cs +++ b/Source/Tests/ExcelDna.RuntimeTests/AddInPath.cs @@ -3,19 +3,29 @@ internal class AddInPath { #if DEBUG - public const string RuntimeTestsAOT = @"..\..\..\..\ExcelDna.AddIn.RuntimeTestsAOT\bin\Debug\net10.0-windows\win-x64\publish\ExcelDna.AddIn.RuntimeTestsAOT"; - public const string RuntimeTests = @"..\..\..\..\ExcelDna.AddIn.RuntimeTests\bin\Debug\net6.0-windows\ExcelDna.AddIn.RuntimeTests-AddIn"; - public const string RuntimeTestsNET4 = @"..\..\..\..\ExcelDna.AddIn.RuntimeTestsNET4\bin\Debug\net48\ExcelDna.AddIn.RuntimeTestsNET4-AddIn"; - public const string RegistrationSample = @"..\..\..\..\ExcelDna.AddIn.RegistrationSample\bin\Debug\net6.0-windows\ExcelDna.AddIn.RegistrationSample-AddIn"; - public const string RegistrationSampleFS = @"..\..\..\..\ExcelDna.AddIn.RegistrationSampleFS\bin\Debug\net6.0-windows\ExcelDna.AddIn.RegistrationSampleFS-AddIn"; - public const string RegistrationSampleVB = @"..\..\..\..\ExcelDna.AddIn.RegistrationSampleVB\bin\Debug\net6.0-windows\ExcelDna.AddIn.RegistrationSampleVB-AddIn"; +#if X64 + public const string RuntimeTestsAOT = @"..\..\..\..\..\ExcelDna.AddIn.RuntimeTestsAOT\bin\x64\Debug\net10.0-windows\win-x64\publish\ExcelDna.AddIn.RuntimeTestsAOT"; + public const string RuntimeTests = @"..\..\..\..\..\ExcelDna.AddIn.RuntimeTests\bin\x64\Debug\net6.0-windows\ExcelDna.AddIn.RuntimeTests-AddIn"; #else - public const string RuntimeTestsAOT = @"..\..\..\..\ExcelDna.AddIn.RuntimeTestsAOT\bin\Release\net10.0-windows\win-x64\publish\ExcelDna.AddIn.RuntimeTestsAOT"; - public const string RuntimeTests = @"..\..\..\..\ExcelDna.AddIn.RuntimeTests\bin\Release\net6.0-windows\ExcelDna.AddIn.RuntimeTests-AddIn"; - public const string RuntimeTestsNET4 = @"..\..\..\..\ExcelDna.AddIn.RuntimeTestsNET4\bin\Release\net48\ExcelDna.AddIn.RuntimeTestsNET4-AddIn"; - public const string RegistrationSample = @"..\..\..\..\ExcelDna.AddIn.RegistrationSample\bin\Release\net6.0-windows\ExcelDna.AddIn.RegistrationSample-AddIn"; - public const string RegistrationSampleFS = @"..\..\..\..\ExcelDna.AddIn.RegistrationSampleFS\bin\Release\net6.0-windows\ExcelDna.AddIn.RegistrationSampleFS-AddIn"; - public const string RegistrationSampleVB = @"..\..\..\..\ExcelDna.AddIn.RegistrationSampleVB\bin\Release\net6.0-windows\ExcelDna.AddIn.RegistrationSampleVB-AddIn"; + public const string RuntimeTestsAOT = @"..\..\..\..\..\ExcelDna.AddIn.RuntimeTestsAOT\bin\x86\Debug\net10.0-windows\win-x86\publish\ExcelDna.AddIn.RuntimeTestsAOT"; + public const string RuntimeTests = @"..\..\..\..\..\ExcelDna.AddIn.RuntimeTests\bin\x86\Debug\net6.0-windows\ExcelDna.AddIn.RuntimeTests-AddIn"; +#endif + public const string RuntimeTestsNET4 = @"..\..\..\..\..\ExcelDna.AddIn.RuntimeTestsNET4\bin\Debug\net48\ExcelDna.AddIn.RuntimeTestsNET4-AddIn"; + public const string RegistrationSample = @"..\..\..\..\..\ExcelDna.AddIn.RegistrationSample\bin\Debug\net6.0-windows\ExcelDna.AddIn.RegistrationSample-AddIn"; + public const string RegistrationSampleFS = @"..\..\..\..\..\ExcelDna.AddIn.RegistrationSampleFS\bin\Debug\net6.0-windows\ExcelDna.AddIn.RegistrationSampleFS-AddIn"; + public const string RegistrationSampleVB = @"..\..\..\..\..\ExcelDna.AddIn.RegistrationSampleVB\bin\Debug\net6.0-windows\ExcelDna.AddIn.RegistrationSampleVB-AddIn"; +#else +#if X64 + public const string RuntimeTestsAOT = @"..\..\..\..\..\ExcelDna.AddIn.RuntimeTestsAOT\bin\x64\Release\net10.0-windows\win-x64\publish\ExcelDna.AddIn.RuntimeTestsAOT"; + public const string RuntimeTests = @"..\..\..\..\..\ExcelDna.AddIn.RuntimeTests\bin\x64\Release\net6.0-windows\ExcelDna.AddIn.RuntimeTests-AddIn"; +#else + public const string RuntimeTestsAOT = @"..\..\..\..\..\ExcelDna.AddIn.RuntimeTestsAOT\bin\x86\Release\net10.0-windows\win-x86\publish\ExcelDna.AddIn.RuntimeTestsAOT"; + public const string RuntimeTests = @"..\..\..\..\..\ExcelDna.AddIn.RuntimeTests\bin\x86\Release\net6.0-windows\ExcelDna.AddIn.RuntimeTests-AddIn"; +#endif + public const string RuntimeTestsNET4 = @"..\..\..\..\..\ExcelDna.AddIn.RuntimeTestsNET4\bin\Release\net48\ExcelDna.AddIn.RuntimeTestsNET4-AddIn"; + public const string RegistrationSample = @"..\..\..\..\..\ExcelDna.AddIn.RegistrationSample\bin\Release\net6.0-windows\ExcelDna.AddIn.RegistrationSample-AddIn"; + public const string RegistrationSampleFS = @"..\..\..\..\..\ExcelDna.AddIn.RegistrationSampleFS\bin\Release\net6.0-windows\ExcelDna.AddIn.RegistrationSampleFS-AddIn"; + public const string RegistrationSampleVB = @"..\..\..\..\..\ExcelDna.AddIn.RegistrationSampleVB\bin\Release\net6.0-windows\ExcelDna.AddIn.RegistrationSampleVB-AddIn"; #endif } } diff --git a/Source/Tests/ExcelDna.RuntimeTests/ExcelDna.RuntimeTests.csproj b/Source/Tests/ExcelDna.RuntimeTests/ExcelDna.RuntimeTests.csproj index 20f77ffd..99bf1e23 100644 --- a/Source/Tests/ExcelDna.RuntimeTests/ExcelDna.RuntimeTests.csproj +++ b/Source/Tests/ExcelDna.RuntimeTests/ExcelDna.RuntimeTests.csproj @@ -7,6 +7,11 @@ false true + x64;x86 + + + + $(DefineConstants);X64 diff --git a/Source/Tests/ExcelDna.RuntimeTests/NativeAOT.cs b/Source/Tests/ExcelDna.RuntimeTests/NativeAOT.cs index 8e86e32b..b5c211fc 100644 --- a/Source/Tests/ExcelDna.RuntimeTests/NativeAOT.cs +++ b/Source/Tests/ExcelDna.RuntimeTests/NativeAOT.cs @@ -334,7 +334,13 @@ public void ObjectHandles() Range functionRange2 = ((Worksheet)ExcelDna.Testing.Util.Workbook.Sheets[1]).Range["D2"]; functionRange2.Formula = "=NativeGetAssemblyName(D1)"; - Assert.Equal("ExcelDna.AddIn.RuntimeTestsAOT64", functionRange2.Value.ToString()); + Assert.Equal( +#if X64 + "ExcelDna.AddIn.RuntimeTestsAOT64" +#else + "ExcelDna.AddIn.RuntimeTestsAOT" +#endif + , functionRange2.Value.ToString()); } { Range functionRange1 = ((Worksheet)ExcelDna.Testing.Util.Workbook.Sheets[1]).Range["E1"]; diff --git a/Source/Tests/ExcelDna.RuntimeTests/UI.cs b/Source/Tests/ExcelDna.RuntimeTests/UI.cs index 9e26e2ce..b9f7c3ef 100644 --- a/Source/Tests/ExcelDna.RuntimeTests/UI.cs +++ b/Source/Tests/ExcelDna.RuntimeTests/UI.cs @@ -26,7 +26,13 @@ public void Command() [ExcelFact(Workbook = "", AddIn = AddInPath.RuntimeTestsAOT)] public void NativeCommand() { - CommandBarPopup? menu = FindPopupMenu("ExcelDna.AddIn.RuntimeTestsAOT64"); + CommandBarPopup? menu = FindPopupMenu( +#if X64 + "ExcelDna.AddIn.RuntimeTestsAOT64" +#else + "ExcelDna.AddIn.RuntimeTestsAOT" +#endif + ); Assert.NotNull(menu); CommandBarButton? button = FindButton(menu, "NativeCommandHello"); diff --git a/Source/Tests/ExcelDna.SourceGenerator.NativeAOT.Tests/Generator.cs b/Source/Tests/ExcelDna.SourceGenerator.NativeAOT.Tests/Generator.cs index 5abeb2cf..5f6fa8a5 100644 --- a/Source/Tests/ExcelDna.SourceGenerator.NativeAOT.Tests/Generator.cs +++ b/Source/Tests/ExcelDna.SourceGenerator.NativeAOT.Tests/Generator.cs @@ -644,7 +644,7 @@ namespace ExcelDna.SourceGenerator.NativeAOT { public unsafe class AddInInitialize { - [UnmanagedCallersOnly(EntryPoint = "Initialize", CallConvs = new[] { typeof(CallConvCdecl) })] + [UnmanagedCallersOnly(EntryPoint = "Initialize", CallConvs = new[] { typeof(CallConvStdcall) })] [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage("Trimming", "IL3050:RequiresDynamicCode", Justification = "SourceGenerator preserves types and methods")] public static short Initialize(void* xlAddInExportInfoAddress, void* hModuleXll, void* pPathXLL, byte disableAssemblyContextUnload, void* pTempDirPath) { diff --git a/Source/Tests/ExcelDna.SourceGenerator.NativeAOT.Tests/RibbonDispatch.cs b/Source/Tests/ExcelDna.SourceGenerator.NativeAOT.Tests/RibbonDispatch.cs index 7489003c..ae4ddfaf 100644 --- a/Source/Tests/ExcelDna.SourceGenerator.NativeAOT.Tests/RibbonDispatch.cs +++ b/Source/Tests/ExcelDna.SourceGenerator.NativeAOT.Tests/RibbonDispatch.cs @@ -53,7 +53,7 @@ private static ExcelRibbon CreateRibbon() try { Marshal.StructureToPtr(default(VariantNative), pVarResult, false); - ribbon.Invoke(dispId, Guid.Empty, 0, INVOKEKIND.INVOKE_FUNC, in dispParams, pVarResult, 0, 0); + ribbon.Invoke(dispId, Guid.Empty, 0, (ushort)INVOKEKIND.INVOKE_FUNC, in dispParams, pVarResult, 0, 0); return VariantMarshaller.ConvertToManaged(Marshal.PtrToStructure(pVarResult)).Value; } finally @@ -108,7 +108,7 @@ public void Invoke_OnToggle_BindsPressedBoolArgument() ExcelRibbon ribbon = CreateRibbon(); TestRibbon.LastPressed = false; DispParams dispParams = new DispParams { cArgs = 2, rgvarg = new[] { new Variant(null), new Variant(true) } }; - ribbon.Invoke(GetDispId(ribbon, "OnToggle"), Guid.Empty, 0, INVOKEKIND.INVOKE_FUNC, in dispParams, 0, 0, 0); + ribbon.Invoke(GetDispId(ribbon, "OnToggle"), Guid.Empty, 0, (ushort)INVOKEKIND.INVOKE_FUNC, in dispParams, 0, 0, 0); Assert.True(TestRibbon.LastPressed); } @@ -118,7 +118,7 @@ public void Invoke_OnChange_BindsTextStringArgument() ExcelRibbon ribbon = CreateRibbon(); TestRibbon.LastText = null; DispParams dispParams = new DispParams { cArgs = 2, rgvarg = new[] { new Variant(null), new Variant("hello") } }; - ribbon.Invoke(GetDispId(ribbon, "OnChange"), Guid.Empty, 0, INVOKEKIND.INVOKE_FUNC, in dispParams, 0, 0, 0); + ribbon.Invoke(GetDispId(ribbon, "OnChange"), Guid.Empty, 0, (ushort)INVOKEKIND.INVOKE_FUNC, in dispParams, 0, 0, 0); Assert.Equal("hello", TestRibbon.LastText); } }