diff --git a/change/react-native-windows-2020-06-25-01-58-53-pgWin32WinUI3.json b/change/react-native-windows-2020-06-25-01-58-53-pgWin32WinUI3.json new file mode 100644 index 00000000000..b342e7a869c --- /dev/null +++ b/change/react-native-windows-2020-06-25-01-58-53-pgWin32WinUI3.json @@ -0,0 +1,8 @@ +{ + "type": "prerelease", + "comment": "WinUI 3 islands support", + "packageName": "react-native-windows", + "email": "asklar@microsoft.com", + "dependentChangeType": "patch", + "date": "2020-06-25T08:58:53.669Z" +} diff --git a/packages/playground/windows/NuGet.Config b/packages/playground/windows/NuGet.Config new file mode 100644 index 00000000000..8a7dab4d15f --- /dev/null +++ b/packages/playground/windows/NuGet.Config @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/playground/windows/Playground-win32 (Package)/Images/LockScreenLogo.scale-200.png b/packages/playground/windows/Playground-win32 (Package)/Images/LockScreenLogo.scale-200.png new file mode 100644 index 00000000000..735f57adb5d Binary files /dev/null and b/packages/playground/windows/Playground-win32 (Package)/Images/LockScreenLogo.scale-200.png differ diff --git a/packages/playground/windows/Playground-win32 (Package)/Images/SplashScreen.scale-200.png b/packages/playground/windows/Playground-win32 (Package)/Images/SplashScreen.scale-200.png new file mode 100644 index 00000000000..023e7f1feda Binary files /dev/null and b/packages/playground/windows/Playground-win32 (Package)/Images/SplashScreen.scale-200.png differ diff --git a/packages/playground/windows/Playground-win32 (Package)/Images/Square150x150Logo.scale-200.png b/packages/playground/windows/Playground-win32 (Package)/Images/Square150x150Logo.scale-200.png new file mode 100644 index 00000000000..af49fec1a54 Binary files /dev/null and b/packages/playground/windows/Playground-win32 (Package)/Images/Square150x150Logo.scale-200.png differ diff --git a/packages/playground/windows/Playground-win32 (Package)/Images/Square44x44Logo.scale-200.png b/packages/playground/windows/Playground-win32 (Package)/Images/Square44x44Logo.scale-200.png new file mode 100644 index 00000000000..ce342a2ec8a Binary files /dev/null and b/packages/playground/windows/Playground-win32 (Package)/Images/Square44x44Logo.scale-200.png differ diff --git a/packages/playground/windows/Playground-win32 (Package)/Images/Square44x44Logo.targetsize-24_altform-unplated.png b/packages/playground/windows/Playground-win32 (Package)/Images/Square44x44Logo.targetsize-24_altform-unplated.png new file mode 100644 index 00000000000..f6c02ce97e0 Binary files /dev/null and b/packages/playground/windows/Playground-win32 (Package)/Images/Square44x44Logo.targetsize-24_altform-unplated.png differ diff --git a/packages/playground/windows/Playground-win32 (Package)/Images/StoreLogo.png b/packages/playground/windows/Playground-win32 (Package)/Images/StoreLogo.png new file mode 100644 index 00000000000..7385b56c0e4 Binary files /dev/null and b/packages/playground/windows/Playground-win32 (Package)/Images/StoreLogo.png differ diff --git a/packages/playground/windows/Playground-win32 (Package)/Images/Wide310x150Logo.scale-200.png b/packages/playground/windows/Playground-win32 (Package)/Images/Wide310x150Logo.scale-200.png new file mode 100644 index 00000000000..288995b397f Binary files /dev/null and b/packages/playground/windows/Playground-win32 (Package)/Images/Wide310x150Logo.scale-200.png differ diff --git a/packages/playground/windows/Playground-win32 (Package)/Package.appxmanifest b/packages/playground/windows/Playground-win32 (Package)/Package.appxmanifest new file mode 100644 index 00000000000..d0507079eb6 --- /dev/null +++ b/packages/playground/windows/Playground-win32 (Package)/Package.appxmanifest @@ -0,0 +1,49 @@ + + + + + + + + Playground-win32 (Package) + asklar + Images\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/playground/windows/Playground-win32 (Package)/Playground-win32 (Package).wapproj b/packages/playground/windows/Playground-win32 (Package)/Playground-win32 (Package).wapproj new file mode 100644 index 00000000000..4491d2a8d72 --- /dev/null +++ b/packages/playground/windows/Playground-win32 (Package)/Playground-win32 (Package).wapproj @@ -0,0 +1,13 @@ + + + + eec4ef0f-3dd6-4d36-84d8-e5ec3f5ed5ff + + + ..\Playground-win32\Playground-win32.vcxproj + + + + + diff --git a/packages/playground/windows/Playground-win32 (Package)/Playground-win32-packaging.proj b/packages/playground/windows/Playground-win32 (Package)/Playground-win32-packaging.proj new file mode 100644 index 00000000000..93bc1e2666d --- /dev/null +++ b/packages/playground/windows/Playground-win32 (Package)/Playground-win32-packaging.proj @@ -0,0 +1,68 @@ + + + + 15.0 + + + + Debug + x86 + + + Release + x86 + + + Debug + x64 + + + Release + x64 + + + + $(MSBuildExtensionsPath)\Microsoft\DesktopBridge\ + NativeOnly + NativeOnly + + + + eec4ef0f-3dd6-4d36-84d8-e5ec3f5ed5ff + 10.0.18362.0 + 10.0.17134.0 + en-US + false + ..\Playground-win32\Playground-win32.vcxproj + + + + Designer + + + + + + + + + + + + + + True + + + + + + + + + true + + + + + diff --git a/packages/playground/windows/playground-win32-packaged.sln b/packages/playground/windows/playground-win32-packaged.sln new file mode 100644 index 00000000000..dc4923da27f --- /dev/null +++ b/packages/playground/windows/playground-win32-packaged.sln @@ -0,0 +1,139 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29102.190 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Playground-win32", "playground-win32\Playground-Win32.vcxproj", "{8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Folly", "..\..\..\vnext\Folly\Folly.vcxproj", "{A990658C-CE31-4BCC-976F-0FC6B1AF693D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ReactCommon", "..\..\..\vnext\ReactCommon\ReactCommon.vcxproj", "{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}" + ProjectSection(ProjectDependencies) = postProject + {A990658C-CE31-4BCC-976F-0FC6B1AF693D} = {A990658C-CE31-4BCC-976F-0FC6B1AF693D} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Chakra", "..\..\..\vnext\Chakra\Chakra.vcxitems", "{C38970C0-5FBF-4D69-90D8-CBAC225AE895}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.ReactNative", "..\..\..\vnext\Microsoft.ReactNative\Microsoft.ReactNative.vcxproj", "{F7D32BD0-2749-483E-9A0D-1635EF7E3136}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JSI.Shared", "..\..\..\vnext\JSI\Shared\JSI.Shared.vcxitems", "{0CC28589-39E4-4288-B162-97B959F8B843}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JSI.Universal", "..\..\..\vnext\JSI\Universal\JSI.Universal.vcxproj", "{A62D504A-16B8-41D2-9F19-E2E86019E5E4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.ReactNative.Cxx", "..\..\..\vnext\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems", "{DA8B35B3-DA00-4B02-BDE6-6A397B3FD46B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Common", "..\..\..\vnext\Common\Common.vcxproj", "{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ReactNative", "ReactNative", "{5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.ReactNative.Shared", "..\..\..\vnext\Shared\Shared.vcxitems", "{2049DBE9-8D13-42C9-AE4B-413AE38FFFD0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mso", "..\..\..\vnext\Mso\Mso.vcxitems", "{84E05BFA-CBAF-4F0D-BFB6-4CE85742A57E}" +EndProject +Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "Playground-win32 (Package)", "Playground-win32 (Package)\Playground-win32 (Package).wapproj", "{EEC4EF0F-3DD6-4D36-84D8-E5EC3F5ED5FF}" +EndProject +Global + GlobalSection(SharedMSBuildProjectFiles) = preSolution + ..\..\..\vnext\JSI\Shared\JSI.Shared.vcxitems*{0cc28589-39e4-4288-b162-97b959f8b843}*SharedItemsImports = 9 + ..\..\..\vnext\Shared\Shared.vcxitems*{2049dbe9-8d13-42c9-ae4b-413ae38fffd0}*SharedItemsImports = 9 + ..\..\..\vnext\Mso\Mso.vcxitems*{84e05bfa-cbaf-4f0d-bfb6-4ce85742a57e}*SharedItemsImports = 9 + ..\..\..\vnext\JSI\Shared\JSI.Shared.vcxitems*{a62d504a-16b8-41d2-9f19-e2e86019e5e4}*SharedItemsImports = 4 + ..\..\..\vnext\Chakra\Chakra.vcxitems*{c38970c0-5fbf-4d69-90d8-cbac225ae895}*SharedItemsImports = 9 + ..\..\..\vnext\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems*{da8b35b3-da00-4b02-bde6-6a397b3fd46b}*SharedItemsImports = 9 + ..\..\..\vnext\Chakra\Chakra.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4 + ..\..\..\vnext\JSI\Shared\JSI.Shared.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4 + ..\..\..\vnext\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4 + ..\..\..\vnext\Mso\Mso.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4 + ..\..\..\vnext\Shared\Shared.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4 + EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Debug|x64.ActiveCfg = Debug|x64 + {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Debug|x64.Build.0 = Debug|x64 + {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Debug|x64.Deploy.0 = Debug|x64 + {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Debug|x86.ActiveCfg = Debug|Win32 + {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Debug|x86.Build.0 = Debug|Win32 + {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Debug|x86.Deploy.0 = Debug|Win32 + {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Release|x64.ActiveCfg = Release|x64 + {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Release|x64.Build.0 = Release|x64 + {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Release|x64.Deploy.0 = Release|x64 + {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Release|x86.ActiveCfg = Release|Win32 + {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Release|x86.Build.0 = Release|Win32 + {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Release|x86.Deploy.0 = Release|Win32 + {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|x64.ActiveCfg = Debug|x64 + {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|x64.Build.0 = Debug|x64 + {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|x86.ActiveCfg = Debug|Win32 + {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|x86.Build.0 = Debug|Win32 + {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|x64.ActiveCfg = Release|x64 + {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|x64.Build.0 = Release|x64 + {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|x86.ActiveCfg = Release|Win32 + {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|x86.Build.0 = Release|Win32 + {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|x64.ActiveCfg = Debug|x64 + {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|x64.Build.0 = Debug|x64 + {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|x86.ActiveCfg = Debug|Win32 + {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|x86.Build.0 = Debug|Win32 + {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|x64.ActiveCfg = Release|x64 + {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|x64.Build.0 = Release|x64 + {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|x86.ActiveCfg = Release|Win32 + {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|x86.Build.0 = Release|Win32 + {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|x64.ActiveCfg = Debug|x64 + {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|x64.Build.0 = Debug|x64 + {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|x86.ActiveCfg = Debug|Win32 + {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|x86.Build.0 = Debug|Win32 + {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|x64.ActiveCfg = Release|x64 + {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|x64.Build.0 = Release|x64 + {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|x86.ActiveCfg = Release|Win32 + {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|x86.Build.0 = Release|Win32 + {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|x64.ActiveCfg = Debug|x64 + {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|x64.Build.0 = Debug|x64 + {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|x86.ActiveCfg = Debug|Win32 + {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|x86.Build.0 = Debug|Win32 + {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|x64.ActiveCfg = Release|x64 + {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|x64.Build.0 = Release|x64 + {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|x86.ActiveCfg = Release|Win32 + {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|x86.Build.0 = Release|Win32 + {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|x64.ActiveCfg = Debug|x64 + {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|x64.Build.0 = Debug|x64 + {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|x86.ActiveCfg = Debug|Win32 + {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|x86.Build.0 = Debug|Win32 + {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|x64.ActiveCfg = Release|x64 + {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|x64.Build.0 = Release|x64 + {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|x86.ActiveCfg = Release|Win32 + {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|x86.Build.0 = Release|Win32 + {EEC4EF0F-3DD6-4D36-84D8-E5EC3F5ED5FF}.Debug|x64.ActiveCfg = Debug|x64 + {EEC4EF0F-3DD6-4D36-84D8-E5EC3F5ED5FF}.Debug|x64.Build.0 = Debug|x64 + {EEC4EF0F-3DD6-4D36-84D8-E5EC3F5ED5FF}.Debug|x64.Deploy.0 = Debug|x64 + {EEC4EF0F-3DD6-4D36-84D8-E5EC3F5ED5FF}.Debug|x86.ActiveCfg = Debug|x86 + {EEC4EF0F-3DD6-4D36-84D8-E5EC3F5ED5FF}.Debug|x86.Build.0 = Debug|x86 + {EEC4EF0F-3DD6-4D36-84D8-E5EC3F5ED5FF}.Debug|x86.Deploy.0 = Debug|x86 + {EEC4EF0F-3DD6-4D36-84D8-E5EC3F5ED5FF}.Release|x64.ActiveCfg = Release|x64 + {EEC4EF0F-3DD6-4D36-84D8-E5EC3F5ED5FF}.Release|x64.Build.0 = Release|x64 + {EEC4EF0F-3DD6-4D36-84D8-E5EC3F5ED5FF}.Release|x64.Deploy.0 = Release|x64 + {EEC4EF0F-3DD6-4D36-84D8-E5EC3F5ED5FF}.Release|x86.ActiveCfg = Release|x86 + {EEC4EF0F-3DD6-4D36-84D8-E5EC3F5ED5FF}.Release|x86.Build.0 = Release|x86 + {EEC4EF0F-3DD6-4D36-84D8-E5EC3F5ED5FF}.Release|x86.Deploy.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {A990658C-CE31-4BCC-976F-0FC6B1AF693D} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1} + {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1} + {C38970C0-5FBF-4D69-90D8-CBAC225AE895} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1} + {F7D32BD0-2749-483E-9A0D-1635EF7E3136} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1} + {0CC28589-39E4-4288-B162-97B959F8B843} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1} + {A62D504A-16B8-41D2-9F19-E2E86019E5E4} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1} + {DA8B35B3-DA00-4B02-BDE6-6A397B3FD46B} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1} + {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1} + {2049DBE9-8D13-42C9-AE4B-413AE38FFFD0} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1} + {84E05BFA-CBAF-4F0D-BFB6-4CE85742A57E} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {F5EAF3BA-6B6F-4E81-B5C6-49B30EC0A32E} + EndGlobalSection +EndGlobal diff --git a/packages/playground/windows/playground-win32.sln b/packages/playground/windows/playground-win32.sln index 17b51fe1d0b..cb5ea341f1b 100644 --- a/packages/playground/windows/playground-win32.sln +++ b/packages/playground/windows/playground-win32.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.29102.190 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Playground-Win32", "playground-win32\Playground-Win32.vcxproj", "{8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Playground-win32", "playground-win32\Playground-Win32.vcxproj", "{8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Folly", "..\..\..\vnext\Folly\Folly.vcxproj", "{A990658C-CE31-4BCC-976F-0FC6B1AF693D}" EndProject @@ -45,88 +45,60 @@ Global ..\..\..\vnext\Shared\Shared.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4 EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|ARM = Debug|ARM Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 - Release|ARM = Release|ARM Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Debug|ARM.ActiveCfg = Debug|ARM - {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Debug|ARM.Build.0 = Debug|ARM - {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Debug|ARM.Deploy.0 = Debug|ARM {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Debug|x64.ActiveCfg = Debug|x64 {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Debug|x64.Build.0 = Debug|x64 {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Debug|x64.Deploy.0 = Debug|x64 {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Debug|x86.ActiveCfg = Debug|Win32 {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Debug|x86.Build.0 = Debug|Win32 {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Debug|x86.Deploy.0 = Debug|Win32 - {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Release|ARM.ActiveCfg = Release|ARM - {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Release|ARM.Build.0 = Release|ARM - {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Release|ARM.Deploy.0 = Release|ARM {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Release|x64.ActiveCfg = Release|x64 {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Release|x64.Build.0 = Release|x64 {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Release|x64.Deploy.0 = Release|x64 {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Release|x86.ActiveCfg = Release|Win32 {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Release|x86.Build.0 = Release|Win32 {8B88FFAE-4DBC-49A2-AFA5-D2477D4AD189}.Release|x86.Deploy.0 = Release|Win32 - {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|ARM.ActiveCfg = Debug|ARM - {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|ARM.Build.0 = Debug|ARM {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|x64.ActiveCfg = Debug|x64 {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|x64.Build.0 = Debug|x64 {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|x86.ActiveCfg = Debug|Win32 {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|x86.Build.0 = Debug|Win32 - {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|ARM.ActiveCfg = Release|ARM - {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|ARM.Build.0 = Release|ARM {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|x64.ActiveCfg = Release|x64 {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|x64.Build.0 = Release|x64 {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|x86.ActiveCfg = Release|Win32 {A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|x86.Build.0 = Release|Win32 - {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|ARM.ActiveCfg = Debug|ARM - {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|ARM.Build.0 = Debug|ARM {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|x64.ActiveCfg = Debug|x64 {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|x64.Build.0 = Debug|x64 {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|x86.ActiveCfg = Debug|Win32 {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|x86.Build.0 = Debug|Win32 - {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|ARM.ActiveCfg = Release|ARM - {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|ARM.Build.0 = Release|ARM {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|x64.ActiveCfg = Release|x64 {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|x64.Build.0 = Release|x64 {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|x86.ActiveCfg = Release|Win32 {A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|x86.Build.0 = Release|Win32 - {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|ARM.ActiveCfg = Debug|ARM - {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|ARM.Build.0 = Debug|ARM {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|x64.ActiveCfg = Debug|x64 {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|x64.Build.0 = Debug|x64 {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|x86.ActiveCfg = Debug|Win32 {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|x86.Build.0 = Debug|Win32 - {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|ARM.ActiveCfg = Release|ARM - {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|ARM.Build.0 = Release|ARM {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|x64.ActiveCfg = Release|x64 {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|x64.Build.0 = Release|x64 {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|x86.ActiveCfg = Release|Win32 {F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|x86.Build.0 = Release|Win32 - {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|ARM.ActiveCfg = Debug|ARM - {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|ARM.Build.0 = Debug|ARM {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|x64.ActiveCfg = Debug|x64 {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|x64.Build.0 = Debug|x64 {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|x86.ActiveCfg = Debug|Win32 {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|x86.Build.0 = Debug|Win32 - {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|ARM.ActiveCfg = Release|ARM - {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|ARM.Build.0 = Release|ARM {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|x64.ActiveCfg = Release|x64 {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|x64.Build.0 = Release|x64 {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|x86.ActiveCfg = Release|Win32 {A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|x86.Build.0 = Release|Win32 - {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|ARM.ActiveCfg = Debug|ARM - {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|ARM.Build.0 = Debug|ARM {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|x64.ActiveCfg = Debug|x64 {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|x64.Build.0 = Debug|x64 {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|x86.ActiveCfg = Debug|Win32 {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|x86.Build.0 = Debug|Win32 - {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|ARM.ActiveCfg = Release|ARM - {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|ARM.Build.0 = Release|ARM {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|x64.ActiveCfg = Release|x64 {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|x64.Build.0 = Release|x64 {FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|x86.ActiveCfg = Release|Win32 diff --git a/packages/playground/windows/playground-win32/Playground-Win32.cpp b/packages/playground/windows/playground-win32/Playground-Win32.cpp index 1aa0a0b9b9f..e3d8f7c127e 100644 --- a/packages/playground/windows/playground-win32/Playground-Win32.cpp +++ b/packages/playground/windows/playground-win32/Playground-Win32.cpp @@ -1,6 +1,8 @@ #include "pch.h" #include "resource.h" +#include + #include #include #include @@ -14,17 +16,20 @@ #include -#include - +#include +#include #include -#include -#include #pragma pop_macro("GetCurrentTime") -namespace WUX = winrt::Windows::UI::Xaml; -namespace WUXC = WUX::Controls; -namespace WUXH = WUX::Hosting; +#ifndef USE_WINUI3 +namespace xaml = winrt::Windows::UI::Xaml; +#else +namespace xaml = winrt::Microsoft::UI::Xaml; +#endif + +namespace controls = xaml::Controls; +namespace hosting = xaml::Hosting; int RunPlayground(int showCmd, bool useWebDebugger); @@ -33,7 +38,7 @@ struct WindowData { static constexpr uint16_t defaultDebuggerPort = 9229; std::wstring m_bundleFile; - WUXH::DesktopWindowXamlSource m_desktopWindowXamlSource; + hosting::DesktopWindowXamlSource m_desktopWindowXamlSource; winrt::Microsoft::ReactNative::ReactRootView m_reactRootView; winrt::Microsoft::ReactNative::ReactNativeHost m_host; @@ -46,7 +51,7 @@ struct WindowData { bool m_breakOnNextLine{false}; uint16_t m_debuggerPort{defaultDebuggerPort}; - WindowData(const WUXH::DesktopWindowXamlSource &desktopWindowXamlSource) + WindowData(const hosting::DesktopWindowXamlSource &desktopWindowXamlSource) : m_desktopWindowXamlSource(desktopWindowXamlSource) {} static WindowData *GetFromWindow(HWND hwnd) { @@ -92,7 +97,7 @@ struct WindowData { host.InstanceSettings().DebuggerPort(m_debuggerPort); host.InstanceSettings().UseDeveloperSupport(true); - auto rootElement = m_desktopWindowXamlSource.Content().as(); + auto rootElement = m_desktopWindowXamlSource.Content().as(); winrt::Microsoft::ReactNative::XamlUIService::SetXamlRoot( host.InstanceSettings().Properties(), rootElement.XamlRoot()); @@ -336,11 +341,11 @@ int RunPlayground(int showCmd, bool useWebDebugger) { winrt::init_apartment(winrt::apartment_type::single_threaded); - WUXH::DesktopWindowXamlSource desktopXamlSource; + hosting::DesktopWindowXamlSource desktopXamlSource; auto windowData = std::make_unique(desktopXamlSource); windowData->m_useWebDebugger = useWebDebugger; - auto xamlContent = WUXC::Grid(); + auto xamlContent = controls::Grid(); desktopXamlSource.Content(xamlContent); HWND hwnd = CreateWindow( diff --git a/packages/playground/windows/playground-win32/Playground-Win32.h b/packages/playground/windows/playground-win32/Playground-Win32.h new file mode 100644 index 00000000000..e37271e3928 --- /dev/null +++ b/packages/playground/windows/playground-win32/Playground-Win32.h @@ -0,0 +1,3 @@ +#pragma once + +int __stdcall WinMain(HINSTANCE instance, HINSTANCE, PSTR, int showCmd); diff --git a/packages/playground/windows/playground-win32/Playground-win32.vcxproj b/packages/playground/windows/playground-win32/Playground-win32.vcxproj index e2b7040f426..afcac25a0ee 100644 --- a/packages/playground/windows/playground-win32/Playground-win32.vcxproj +++ b/packages/playground/windows/playground-win32/Playground-win32.vcxproj @@ -10,6 +10,18 @@ 10.0.18362.0 10.0.18362.0 false + false + + + Playground-win32 + en-US + 16.0 + false + false + Windows Store + 10.0 + 10.0 + 10.0.17134.0 @@ -63,6 +75,7 @@ + False 867D41FE5091AED426000143497EA4DFC29A8097 @@ -97,6 +110,7 @@ + @@ -117,11 +131,11 @@ - + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\AppxPackage\Microsoft.AppXPackage.Targets resources.pri - + @@ -134,6 +148,7 @@ + diff --git a/packages/playground/windows/playground-win32/pch.h b/packages/playground/windows/playground-win32/pch.h index cdf4a1731bc..69d880ad9af 100644 --- a/packages/playground/windows/playground-win32/pch.h +++ b/packages/playground/windows/playground-win32/pch.h @@ -11,9 +11,7 @@ #include +#include #include #include - -#include - #pragma pop_macro("GetCurrentTime") diff --git a/packages/playground/windows/playground/packages.config b/packages/playground/windows/playground/packages.config index a7fde84c020..f38160bf22c 100644 --- a/packages/playground/windows/playground/packages.config +++ b/packages/playground/windows/playground/packages.config @@ -2,5 +2,5 @@ - + diff --git a/vnext/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems b/vnext/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems index b4cc94dd121..213aba27c6e 100644 --- a/vnext/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +++ b/vnext/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems @@ -47,6 +47,8 @@ + + diff --git a/vnext/Microsoft.ReactNative.Cxx/UI.Text.h b/vnext/Microsoft.ReactNative.Cxx/UI.Text.h index d0dbcc19f7a..4b375e44ffd 100644 --- a/vnext/Microsoft.ReactNative.Cxx/UI.Text.h +++ b/vnext/Microsoft.ReactNative.Cxx/UI.Text.h @@ -8,6 +8,9 @@ #ifdef USE_WINUI3 #include namespace text = winrt::Microsoft::UI::Text; +namespace winrt::Microsoft::UI::Text { +using FontStyle = winrt::Windows::UI::Text::FontStyle; +} #else namespace text = winrt::Windows::UI::Text; #endif // USE_WINUI3 diff --git a/vnext/Microsoft.ReactNative.Cxx/UI.Xaml.Hosting.DesktopWindowXamlSource.h b/vnext/Microsoft.ReactNative.Cxx/UI.Xaml.Hosting.DesktopWindowXamlSource.h new file mode 100644 index 00000000000..5f7c46064ee --- /dev/null +++ b/vnext/Microsoft.ReactNative.Cxx/UI.Xaml.Hosting.DesktopWindowXamlSource.h @@ -0,0 +1,11 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#pragma once + +#ifdef USE_WINUI3 +#include +using IDesktopWindowXamlSourceNative2 = IDesktopWindowXamlSourceNative; +#else +#include +#endif // USE_WINUI3 diff --git a/vnext/Microsoft.ReactNative.Cxx/UI.Xaml.Hosting.h b/vnext/Microsoft.ReactNative.Cxx/UI.Xaml.Hosting.h new file mode 100644 index 00000000000..feebbc2d9aa --- /dev/null +++ b/vnext/Microsoft.ReactNative.Cxx/UI.Xaml.Hosting.h @@ -0,0 +1,10 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#pragma once + +#ifdef USE_WINUI3 +#include +#else +#include +#endif // USE_WINUI3 diff --git a/vnext/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp b/vnext/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp index 397a569351c..fceeed86f61 100644 --- a/vnext/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +++ b/vnext/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp @@ -4,7 +4,9 @@ #include "pch.h" #include "DeviceInfoModule.h" #include +#include #include +#include #include #include @@ -30,14 +32,17 @@ void DeviceInfoHolder::InitDeviceInfoHolder( propertyBag.Set(DeviceInfoHolderPropertyId(), std::move(deviceInfoHolder)); auto const &displayInfo = winrt::Windows::Graphics::Display::DisplayInformation::GetForCurrentView(); - auto const &window = xaml::Window::Current().CoreWindow(); - - deviceInfoHolder->m_sizeChangedRevoker = - window.SizeChanged(winrt::auto_revoke, [weakHolder = std::weak_ptr(deviceInfoHolder)](auto &&, auto &&) { - if (auto strongHolder = weakHolder.lock()) { - strongHolder->updateDeviceInfo(); - } - }); + /// TODO: WinUI 3 islands support + if (xaml::Window::Current()) { + auto const &window = xaml::Window::Current().CoreWindow(); + + deviceInfoHolder->m_sizeChangedRevoker = + window.SizeChanged(winrt::auto_revoke, [weakHolder = std::weak_ptr(deviceInfoHolder)](auto &&, auto &&) { + if (auto strongHolder = weakHolder.lock()) { + strongHolder->updateDeviceInfo(); + } + }); + } deviceInfoHolder->m_dpiChangedRevoker = displayInfo.DpiChanged( winrt::auto_revoke, [weakHolder = std::weak_ptr(deviceInfoHolder)](const auto &, const auto &) { @@ -86,14 +91,28 @@ void DeviceInfoHolder::SetCallback( } void DeviceInfoHolder::updateDeviceInfo() noexcept { - auto const displayInfo = winrt::Windows::Graphics::Display::DisplayInformation::GetForCurrentView(); - auto const window = xaml::Window::Current().CoreWindow(); + if (xaml::Window::Current()) { + auto const window = xaml::Window::Current().CoreWindow(); + + m_windowWidth = window.Bounds().Width; + m_windowHeight = window.Bounds().Height; + } else { + /// TODO: WinUI 3 Island - mock for now + m_windowWidth = 600; + m_windowHeight = 800; + + /* + auto interop = m_desktopWindowXamlSource.as(); + + // Get the new child window's hwnd + HWND hWndXamlIsland = nullptr; + winrt::check_hresult(interop->get_WindowHandle(&hWndXamlIsland)); + */ + } winrt::Windows::UI::ViewManagement::UISettings uiSettings; - - m_windowWidth = window.Bounds().Width; - m_windowHeight = window.Bounds().Height; - m_scale = static_cast(displayInfo.ResolutionScale()) / 100; m_textScaleFactor = uiSettings.TextScaleFactor(); + auto const displayInfo = winrt::Windows::Graphics::Display::DisplayInformation::GetForCurrentView(); + m_scale = static_cast(displayInfo.ResolutionScale()) / 100; m_dpi = displayInfo.LogicalDpi(); m_screenWidth = displayInfo.ScreenWidthInRawPixels(); m_screenHeight = displayInfo.ScreenHeightInRawPixels(); diff --git a/vnext/Microsoft.ReactNative/Modules/I18nManagerModule.cpp b/vnext/Microsoft.ReactNative/Modules/I18nManagerModule.cpp index df073057552..c3273869b08 100644 --- a/vnext/Microsoft.ReactNative/Modules/I18nManagerModule.cpp +++ b/vnext/Microsoft.ReactNative/Modules/I18nManagerModule.cpp @@ -5,9 +5,11 @@ #include "I18nManagerModule.h" #include #include +#include #include #include #include "Unicode.h" +#include namespace Microsoft::ReactNative { @@ -27,7 +29,8 @@ static const React::ReactPropertyId &ForceRTLPropertyId() noexcept { } void I18nManager::InitI18nInfo(const winrt::Microsoft::ReactNative::ReactPropertyBag &propertyBag) noexcept { - if (xaml::TryGetCurrentApplication()) { + if (xaml::TryGetCurrentApplication() && !react::uwp::IsXamlIsland()) { + // TODO: Figure out packaged win32 app story for WinUI 3 auto layoutDirection = winrt::Windows::ApplicationModel::Resources::Core::ResourceContext() .GetForCurrentView() .QualifierValues() diff --git a/vnext/Microsoft.ReactNative/Utils/PropertyUtils.h b/vnext/Microsoft.ReactNative/Utils/PropertyUtils.h index ac495d3b81c..6c3e1f0e19b 100644 --- a/vnext/Microsoft.ReactNative/Utils/PropertyUtils.h +++ b/vnext/Microsoft.ReactNative/Utils/PropertyUtils.h @@ -310,12 +310,9 @@ bool TryUpdateFontProperties(const T &element, const std::string &propertyName, } else if (propertyValue.isNull()) { element.ClearValue(T::FontWeightProperty()); } - } else if (propertyName == "fontStyle") { if (propertyValue.isString()) { - element.FontStyle( - (propertyValue.getString() == "italic") ? winrt::Windows::UI::Text::FontStyle::Italic - : winrt::Windows::UI::Text::FontStyle::Normal); + element.FontStyle((propertyValue.getString() == "italic") ? text::FontStyle::Italic : text::FontStyle::Normal); } else if (propertyValue.isNull()) { element.ClearValue(T::FontStyleProperty()); } diff --git a/vnext/Microsoft.ReactNative/Views/TouchEventHandler.cpp b/vnext/Microsoft.ReactNative/Views/TouchEventHandler.cpp index 8c5abe36a49..39df8712920 100644 --- a/vnext/Microsoft.ReactNative/Views/TouchEventHandler.cpp +++ b/vnext/Microsoft.ReactNative/Views/TouchEventHandler.cpp @@ -18,7 +18,9 @@ #include #include #include - +#ifdef USE_WINUI3 +#include +#endif namespace react { namespace uwp { @@ -202,12 +204,18 @@ TouchEventHandler::ReactPointer TouchEventHandler::CreateReactPointer( pointer.target = tag; pointer.identifier = m_touchId++; pointer.pointerId = point.PointerId(); +#ifndef USE_WINUI3 pointer.deviceType = point.PointerDevice().PointerDeviceType(); +#else + pointer.deviceType = point.PointerDeviceType(); +#endif pointer.isLeftButton = props.IsLeftButtonPressed(); pointer.isRightButton = props.IsRightButtonPressed(); pointer.isMiddleButton = props.IsMiddleButtonPressed(); pointer.isHorizontalScrollWheel = props.IsHorizontalMouseWheel(); +#ifndef USE_WINUI3 pointer.isEraser = props.IsEraser(); +#endif UpdateReactPointer(pointer, args, sourceElement); @@ -226,7 +234,9 @@ void TouchEventHandler::UpdateReactPointer( pointer.positionRoot = rootPoint.Position(); pointer.positionView = point.Position(); pointer.timestamp = point.Timestamp() / 1000; // us -> ms +#ifndef USE_WINUI3 pointer.pressure = props.Pressure(); +#endif pointer.isBarrelButton = props.IsBarrelButtonPressed(); pointer.shiftKey = 0 != (keyModifiers & static_cast(winrt::Windows::System::VirtualKeyModifiers::Shift)); pointer.ctrlKey = 0 != (keyModifiers & static_cast(winrt::Windows::System::VirtualKeyModifiers::Control)); diff --git a/vnext/Microsoft.ReactNative/packages.config b/vnext/Microsoft.ReactNative/packages.config index 2864726f934..d64357df546 100644 --- a/vnext/Microsoft.ReactNative/packages.config +++ b/vnext/Microsoft.ReactNative/packages.config @@ -1,4 +1,4 @@ - + @@ -6,5 +6,5 @@ - + \ No newline at end of file diff --git a/vnext/NuGet.Config b/vnext/NuGet.Config index a6d079d69b4..8a7dab4d15f 100644 --- a/vnext/NuGet.Config +++ b/vnext/NuGet.Config @@ -5,6 +5,7 @@ + diff --git a/vnext/PropertySheets/WinUI.props b/vnext/PropertySheets/WinUI.props index 7c099ca9dda..f57ae1f5c47 100644 --- a/vnext/PropertySheets/WinUI.props +++ b/vnext/PropertySheets/WinUI.props @@ -6,7 +6,7 @@ - 3.0.0-preview2.200713.0 + 3.0.0-development.200706.1-CI Microsoft.WinUI @@ -31,10 +31,14 @@ USE_WINUI3;%(PreprocessorDefinitions) + + ENABLE_WINRT_EXPERIMENTAL_TYPES=1;%(PreprocessorDefinitions) USE_WINUI3;%(PreprocessorDefinitions) + + ENABLE_WINRT_EXPERIMENTAL_TYPES=1;DISABLE_MIDL_VERSION_CHECKS=1;%(PreprocessorDefinitions) diff --git a/vnext/Shared/Modules/UIManagerModule.cpp b/vnext/Shared/Modules/UIManagerModule.cpp index 48eda8d068a..2c041985795 100644 --- a/vnext/Shared/Modules/UIManagerModule.cpp +++ b/vnext/Shared/Modules/UIManagerModule.cpp @@ -9,6 +9,7 @@ using namespace std; #include #include +#include #include "ShadowNode.h" #include "ShadowNodeRegistry.h" #include "UIManagerModule.h" @@ -248,20 +249,24 @@ void UIManager::createView( std::string &&className, int64_t /*rootViewTag*/, folly::dynamic && /*ReadableMap*/ props) { - m_nativeUIManager->ensureInBatch(); - auto viewManager = GetViewManager(className); - auto node = viewManager->createShadow(); - node->m_className = std::move(className); - node->m_tag = tag; - node->m_viewManager = viewManager; - - node->createView(); - m_nativeUIManager->CreateView(*node, props); - - m_nodeRegistry.addNode(shadow_ptr(node), tag); - - if (!props.isNull()) - node->updateProperties(std::move(props)); + try { + m_nativeUIManager->ensureInBatch(); + auto viewManager = GetViewManager(className); + auto node = viewManager->createShadow(); + node->m_className = std::move(className); + node->m_tag = tag; + node->m_viewManager = viewManager; + + node->createView(); + m_nativeUIManager->CreateView(*node, props); + + m_nodeRegistry.addNode(shadow_ptr(node), tag); + + if (!props.isNull()) + node->updateProperties(std::move(props)); + } catch (winrt::hresult_error &hr) { + throw Microsoft::Common::Unicode::Utf16ToUtf8(hr.message()); + } } void UIManager::setChildren(int64_t viewTag, folly::dynamic &&childrenTags) {