diff --git a/WindowsTools/WindowsAPI/ComTypes/ICoreWindowInterop.cs b/WindowsTools/WindowsAPI/ComTypes/ICoreWindowInterop.cs
new file mode 100644
index 0000000..0d143be
--- /dev/null
+++ b/WindowsTools/WindowsAPI/ComTypes/ICoreWindowInterop.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace WindowsTools.WindowsAPI.ComTypes
+{
+ ///
+ /// 使应用能够 (与此接口关联的 CoreWindow) 获取窗口的窗口句柄。
+ ///
+ [ComImport, Guid("45D64A29-A63E-4CB6-B498-5781D298CB4F"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ public partial interface ICoreWindowInterop
+ {
+ ///
+ /// 获取应用的 CoreWindow (HWND) 句柄。
+ ///
+ /// CoreWindow 的窗口句柄
+ /// 此方法返回 HRESULT 成功或错误代码。
+ [PreserveSig]
+ int GetWindowHandle(out IntPtr hwnd);
+
+ ///
+ /// 设置是否已处理到 CoreWindow 的消息。此属性是只写的。
+ ///
+ /// 标志该消息是否已被处理
+ /// 此方法返回 HRESULT 成功或错误代码。
+ [PreserveSig]
+ int SetMessageHandled([MarshalAs(UnmanagedType.Bool)] bool value);
+ }
+}
diff --git a/WindowsTools/WindowsAPI/ComTypes/IDesktopWindowXamlSourceNative2.cs b/WindowsTools/WindowsAPI/ComTypes/IDesktopWindowXamlSourceNative2.cs
new file mode 100644
index 0000000..caa5867
--- /dev/null
+++ b/WindowsTools/WindowsAPI/ComTypes/IDesktopWindowXamlSourceNative2.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace WindowsTools.WindowsAPI.ComTypes
+{
+ [ComImport, Guid("e3dcd8c7-3057-4692-99c3-7b7720afda31"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ public interface IDesktopWindowXamlSourceNative2
+ {
+ ///
+ /// 将当前 IDesktopWindowXamlSourceNative 实例附加到桌面应用中与窗口句柄关联的父 UI 元素。
+ ///
+ /// 要在其中托管 WinRT XAML 控件的父 UI 元素的窗口句柄。
+ /// 如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
+ [PreserveSig]
+ int AttachToWindow(IntPtr parentWnd);
+
+ ///
+ /// 获取与当前 IDesktopWindowXamlSourceNative 实例关联的父 UI 元素的窗口句柄。
+ ///
+ /// 在输出时,此参数包含与当前 IDesktopWindowXamlSourceNative 实例关联的父 UI 元素的窗口句柄。
+ /// 如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
+ [PreserveSig]
+ int GetWindowHandle(out IntPtr hwnd);
+
+ ///
+ /// 使 WinRT XAML 框架能够处理托管 WinRT XAML 控件的 DesktopWindowXamlSource 对象的 Windows 消息。
+ ///
+ /// 要处理的 Windows 消息。
+ /// 如果消息已处理,则为 True;否则为 false。
+ /// 如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
+ [PreserveSig]
+ int PreTranslateMessage(ref MSG message, out bool result);
+ }
+}
diff --git a/WindowsTools/WindowsAPI/ComTypes/IXamlSourceTransparency.cs b/WindowsTools/WindowsAPI/ComTypes/IXamlSourceTransparency.cs
new file mode 100644
index 0000000..62395aa
--- /dev/null
+++ b/WindowsTools/WindowsAPI/ComTypes/IXamlSourceTransparency.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace WindowsTools.WindowsAPI.ComTypes
+{
+ ///
+ /// 获取或设置一个值,该值指定当前线程上所有 DesktopWindowXamlSource 对象的背景是否透明。
+ ///
+ [ComImport, Guid("06636C29-5A17-458D-8EA2-2422D997A922"), InterfaceType(ComInterfaceType.InterfaceIsIInspectable)]
+ public interface IXamlSourceTransparency
+ {
+ ///
+ /// 获取当前线程上所有 DesktopWindowXamlSource 对象的背景是否透明。
+ ///
+ /// 如果窗口背景透明,则为 true ;否则,为 false.
+ /// 如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
+ [PreserveSig]
+ int GetIsBackgroundTransparent([MarshalAs(UnmanagedType.Bool)] out bool isBackgroundTransparent);
+
+ ///
+ /// 设置当前线程上所有 DesktopWindowXamlSource 对象的背景是否透明。
+ ///
+ /// 如果窗口背景透明,则为 true ;否则,为 false.
+ /// 如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
+ [PreserveSig]
+ int SetIsBackgroundTransparent([MarshalAs(UnmanagedType.Bool)] bool isBackgroundTransparent);
+ }
+}
diff --git a/WindowsTools/WindowsAPI/ComTypes/MSG.cs b/WindowsTools/WindowsAPI/ComTypes/MSG.cs
new file mode 100644
index 0000000..c90be0d
--- /dev/null
+++ b/WindowsTools/WindowsAPI/ComTypes/MSG.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace WindowsTools.WindowsAPI.ComTypes
+{
+ ///
+ /// 包含来自线程的消息队列的消息信息。
+ ///
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
+ public struct MSG
+ {
+ ///
+ /// 其窗口过程接收消息的窗口的句柄。 当消息是线程消息时,此成员为 NULL 。
+ ///
+ public IntPtr hwnd;
+
+ ///
+ /// 消息的标识符。 应用程序只能使用低字;高字由系统保留。
+ ///
+ public uint message;
+
+ ///
+ /// 关于消息的附加信息。 确切含义取决于 消息 成员的值。
+ ///
+ public IntPtr wParam;
+
+ ///
+ /// 关于消息的附加信息。 确切含义取决于 消息 成员的值。
+ ///
+ public IntPtr lParam;
+
+ ///
+ /// 消息的发布时间。
+ ///
+ public uint time;
+
+ ///
+ /// 发布消息时的光标位置(以屏幕坐标表示)。
+ ///
+ public int pt_x;
+
+ ///
+ /// 发布消息时的光标位置(以屏幕坐标表示)。
+ ///
+ public int pt_y;
+ }
+}