diff --git a/Microsoft.Toolkit.Win32.UI.XamlApplication/Microsoft.Toolkit.Win32.UI.XamlApplication.vcxproj b/Microsoft.Toolkit.Win32.UI.XamlApplication/Microsoft.Toolkit.Win32.UI.XamlApplication.vcxproj
index 481387a..0c5bfb8 100644
--- a/Microsoft.Toolkit.Win32.UI.XamlApplication/Microsoft.Toolkit.Win32.UI.XamlApplication.vcxproj
+++ b/Microsoft.Toolkit.Win32.UI.XamlApplication/Microsoft.Toolkit.Win32.UI.XamlApplication.vcxproj
@@ -1,6 +1,6 @@
-
+
true
true
@@ -99,9 +99,9 @@
Level4
%(AdditionalOptions) /bigobj
28204
- _WINRT_DLL;%(PreprocessorDefinitions)
+ _WINRT_DLL;%(PreprocessorDefinitions);WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP
$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)
- true
+ false
Guard
@@ -151,16 +151,23 @@
+
+
+ Windows Desktop Extensions for the UWP
+
+
-
+
+
This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
-
+
+
+
diff --git a/Microsoft.Toolkit.Win32.UI.XamlApplication/ReadMe.md b/Microsoft.Toolkit.Win32.UI.XamlApplication/ReadMe.md
index 853365a..775f73c 100644
--- a/Microsoft.Toolkit.Win32.UI.XamlApplication/ReadMe.md
+++ b/Microsoft.Toolkit.Win32.UI.XamlApplication/ReadMe.md
@@ -1 +1,12 @@
-Xaml Application for Win32
\ No newline at end of file
+# Xaml Application Object for Win32 Apps
+Xaml Application object implementation, used in Xaml Island consuming projects (WinForms, WPF, C++)
+
+## To Build
+
+Install the .Net 3 SDK from [this location](https://dotnet.microsoft.com/download/visual-studio-sdks).
+
+## To Run
+
+- In the XamlHost\Samples node of Solution Explorer
+- Set Microsoft.Toolkit.Sample.Forms.App or Microsoft.Toolkit.Sample.Wpf.App as the startup project.
+- F5
diff --git a/Microsoft.Toolkit.Win32.UI.XamlApplication/XamlApplication.cpp b/Microsoft.Toolkit.Win32.UI.XamlApplication/XamlApplication.cpp
index 1b07893..69bde3e 100644
--- a/Microsoft.Toolkit.Win32.UI.XamlApplication/XamlApplication.cpp
+++ b/Microsoft.Toolkit.Win32.UI.XamlApplication/XamlApplication.cpp
@@ -1,21 +1,18 @@
-#include "pch.h"
+#include "pch.h"
#include "XamlApplication.h"
-namespace xaml = ::winrt::Windows::UI::Xaml;
-
-extern "C" {
- WINBASEAPI HMODULE WINAPI LoadLibraryExW(_In_ LPCWSTR lpLibFileName, _Reserved_ HANDLE hFile, _In_ DWORD dwFlags);
- WINBASEAPI HMODULE WINAPI GetModuleHandleW(_In_opt_ LPCWSTR lpModuleName);
- WINUSERAPI BOOL WINAPI PeekMessageW(_Out_ LPMSG lpMsg, _In_opt_ HWND hWnd, _In_ UINT wMsgFilterMin, _In_ UINT wMsgFilterMax, _In_ UINT wRemoveMsg);
- WINUSERAPI LRESULT WINAPI DispatchMessageW(_In_ CONST MSG* lpMsg);
+namespace winrt
+{
+ using namespace winrt::Windows::UI::Xaml;
+ using namespace winrt::Windows::UI::Xaml::Hosting;
}
namespace winrt::Microsoft::Toolkit::Win32::UI::XamlHost::implementation
{
- XamlApplication::XamlApplication(winrt::Windows::Foundation::Collections::IVector providers)
+ XamlApplication::XamlApplication(const winrt::Windows::Foundation::Collections::IVector& providers)
{
- for(auto provider : providers)
+ for (auto&& provider : providers)
{
m_providers.Append(provider);
}
@@ -23,31 +20,16 @@ namespace winrt::Microsoft::Toolkit::Win32::UI::XamlHost::implementation
Initialize();
}
- XamlApplication::XamlApplication()
- {
- }
-
void XamlApplication::Initialize()
{
- const auto out = outer();
- if (out)
- {
- winrt::Windows::UI::Xaml::Markup::IXamlMetadataProvider provider(nullptr);
- winrt::check_hresult(out->QueryInterface(
- winrt::guid_of(),
- reinterpret_cast(winrt::put_abi(provider))));
- m_providers.Append(provider);
- }
+ winrt::Windows::UI::Xaml::Markup::IXamlMetadataProvider provider{ nullptr };
+ winrt::check_hresult(outer()->QueryInterface(winrt::guid_of(), winrt::put_abi(provider)));
+ m_providers.Append(provider);
const auto dispatcherQueue = winrt::Windows::System::DispatcherQueue::GetForCurrentThread();
if (!dispatcherQueue)
{
- m_executionMode = ExecutionMode::Win32;
- m_windowsXamlManager = xaml::Hosting::WindowsXamlManager::InitializeForCurrentThread();
- }
- else
- {
- m_executionMode = ExecutionMode::UWP;
+ m_windowsXamlManager = winrt::Hosting::WindowsXamlManager::InitializeForCurrentThread();
}
}
@@ -84,7 +66,7 @@ namespace winrt::Microsoft::Toolkit::Win32::UI::XamlHost::implementation
Close();
}
- xaml::Markup::IXamlType XamlApplication::GetXamlType(xaml::Interop::TypeName const& type)
+ winrt::Markup::IXamlType XamlApplication::GetXamlType(winrt::Interop::TypeName const& type)
{
for (const auto& provider : m_providers)
{
@@ -98,7 +80,7 @@ namespace winrt::Microsoft::Toolkit::Win32::UI::XamlHost::implementation
return nullptr;
}
- xaml::Markup::IXamlType XamlApplication::GetXamlType(winrt::hstring const& fullName)
+ winrt::Markup::IXamlType XamlApplication::GetXamlType(winrt::hstring const& fullName)
{
for (const auto& provider : m_providers)
{
@@ -112,9 +94,9 @@ namespace winrt::Microsoft::Toolkit::Win32::UI::XamlHost::implementation
return nullptr;
}
- winrt::com_array XamlApplication::GetXmlnsDefinitions()
+ winrt::com_array XamlApplication::GetXmlnsDefinitions()
{
- std::list definitions;
+ std::list definitions;
for (const auto& provider : m_providers)
{
auto defs = provider.GetXmlnsDefinitions();
@@ -124,10 +106,10 @@ namespace winrt::Microsoft::Toolkit::Win32::UI::XamlHost::implementation
}
}
- return winrt::com_array(definitions.begin(), definitions.end());
+ return winrt::com_array(definitions.begin(), definitions.end());
}
- winrt::Windows::Foundation::Collections::IVector XamlApplication::MetadataProviders()
+ winrt::Windows::Foundation::Collections::IVector XamlApplication::MetadataProviders()
{
return m_providers;
}
@@ -157,4 +139,4 @@ namespace winrt::Microsoft::Toolkit::Win32::UI::XamlHost::factory_implementation
::FreeLibrary(module);
}
}
-}
\ No newline at end of file
+}
diff --git a/Microsoft.Toolkit.Win32.UI.XamlApplication/XamlApplication.h b/Microsoft.Toolkit.Win32.UI.XamlApplication/XamlApplication.h
index 77097f8..6495efc 100644
--- a/Microsoft.Toolkit.Win32.UI.XamlApplication/XamlApplication.h
+++ b/Microsoft.Toolkit.Win32.UI.XamlApplication/XamlApplication.h
@@ -1,10 +1,7 @@
-#pragma once
+#pragma once
+#include "pch.h"
#include "XamlApplication.g.h"
-#include
-#include
-#include
-#include
namespace winrt::Microsoft::Toolkit::Win32::UI::XamlHost::implementation
{
@@ -17,8 +14,8 @@ namespace winrt::Microsoft::Toolkit::Win32::UI::XamlHost::implementation
class XamlApplication : public XamlApplicationT
{
public:
- XamlApplication();
- XamlApplication(winrt::Windows::Foundation::Collections::IVector providers);
+ XamlApplication() = default;
+ XamlApplication(const winrt::Windows::Foundation::Collections::IVector& providers);
~XamlApplication();
void Initialize();
@@ -38,7 +35,6 @@ namespace winrt::Microsoft::Toolkit::Win32::UI::XamlHost::implementation
}
private:
- ExecutionMode m_executionMode = ExecutionMode::Win32;
winrt::Windows::UI::Xaml::Hosting::WindowsXamlManager m_windowsXamlManager = nullptr;
winrt::Windows::Foundation::Collections::IVector m_providers = winrt::single_threaded_vector();
bool m_bIsClosed = false;
diff --git a/Microsoft.Toolkit.Win32.UI.XamlApplication/packages.config b/Microsoft.Toolkit.Win32.UI.XamlApplication/packages.config
index cee5cec..215a653 100644
--- a/Microsoft.Toolkit.Win32.UI.XamlApplication/packages.config
+++ b/Microsoft.Toolkit.Win32.UI.XamlApplication/packages.config
@@ -1,4 +1,5 @@
-
+
+
\ No newline at end of file
diff --git a/Microsoft.Toolkit.Win32.UI.XamlApplication/pch.h b/Microsoft.Toolkit.Win32.UI.XamlApplication/pch.h
index 6bd4c07..d853684 100644
--- a/Microsoft.Toolkit.Win32.UI.XamlApplication/pch.h
+++ b/Microsoft.Toolkit.Win32.UI.XamlApplication/pch.h
@@ -1,12 +1,14 @@
-#pragma once
+#pragma once
-#include
-//#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
-#include
-#include
-
-#include // To enable support for non-WinRT interfaces, unknwn.h must be included before any C++/WinRT headers.
+#include
#include
+#include
+#undef GetCurrentTime
#include
+#include
#include
+
+#include
+
+#include
diff --git a/global.json b/global.json
index e1f41b8..783ce27 100644
--- a/global.json
+++ b/global.json
@@ -1,5 +1,5 @@
{
"sdk": {
- "version": "3.1.409"
+ "version": "3.1.412"
}
}