diff --git a/src/User32/PublicAPI.Unshipped.txt b/src/User32/PublicAPI.Unshipped.txt
index 78d97c4e..ab9e7019 100644
--- a/src/User32/PublicAPI.Unshipped.txt
+++ b/src/User32/PublicAPI.Unshipped.txt
@@ -34,14 +34,6 @@ PInvoke.User32.DIALOG_DPI_CHANGE_BEHAVIORS.DDC_DEFAULT = 0 -> PInvoke.User32.DIA
PInvoke.User32.DIALOG_DPI_CHANGE_BEHAVIORS.DDC_DISABLE_ALL = 1 -> PInvoke.User32.DIALOG_DPI_CHANGE_BEHAVIORS
PInvoke.User32.DIALOG_DPI_CHANGE_BEHAVIORS.DDC_DISABLE_CONTROL_RELAYOUT = PInvoke.User32.DIALOG_DPI_CHANGE_BEHAVIORS.DDC_DISABLE_ALL | PInvoke.User32.DIALOG_DPI_CHANGE_BEHAVIORS.DDC_DISABLE_RESIZE -> PInvoke.User32.DIALOG_DPI_CHANGE_BEHAVIORS
PInvoke.User32.DIALOG_DPI_CHANGE_BEHAVIORS.DDC_DISABLE_RESIZE = 2 -> PInvoke.User32.DIALOG_DPI_CHANGE_BEHAVIORS
-PInvoke.User32.DISPLAY_DEVICE
-PInvoke.User32.DISPLAY_DEVICE.DISPLAY_DEVICE() -> void
-PInvoke.User32.DISPLAY_DEVICE.DeviceID -> char*
-PInvoke.User32.DISPLAY_DEVICE.DeviceKey -> char*
-PInvoke.User32.DISPLAY_DEVICE.DeviceName -> char*
-PInvoke.User32.DISPLAY_DEVICE.DeviceString -> char*
-PInvoke.User32.DISPLAY_DEVICE.StateFlags -> PInvoke.User32.DisplayDeviceFlags
-PInvoke.User32.DISPLAY_DEVICE.cb -> uint
PInvoke.User32.DPI_AWARENESS
PInvoke.User32.DPI_AWARENESS.DPI_AWARENESS_INVALID = -1 -> PInvoke.User32.DPI_AWARENESS
PInvoke.User32.DPI_AWARENESS.DPI_AWARENESS_PER_MONITOR_AWARE = 2 -> PInvoke.User32.DPI_AWARENESS
@@ -51,13 +43,6 @@ PInvoke.User32.DPI_HOSTING_BEHAVIOR
PInvoke.User32.DPI_HOSTING_BEHAVIOR.DPI_HOSTING_BEHAVIOR_DEFAULT = 0 -> PInvoke.User32.DPI_HOSTING_BEHAVIOR
PInvoke.User32.DPI_HOSTING_BEHAVIOR.DPI_HOSTING_BEHAVIOR_INVALID = -1 -> PInvoke.User32.DPI_HOSTING_BEHAVIOR
PInvoke.User32.DPI_HOSTING_BEHAVIOR.DPI_HOSTING_BEHAVIOR_MIXED = 1 -> PInvoke.User32.DPI_HOSTING_BEHAVIOR
-PInvoke.User32.DisplayDeviceFlags
-PInvoke.User32.DisplayDeviceFlags.DISPLAY_DEVICE_ACTIVE = 1 -> PInvoke.User32.DisplayDeviceFlags
-PInvoke.User32.DisplayDeviceFlags.DISPLAY_DEVICE_MIRRORING_DRIVER = 8 -> PInvoke.User32.DisplayDeviceFlags
-PInvoke.User32.DisplayDeviceFlags.DISPLAY_DEVICE_MODESPRUNED = 134217728 -> PInvoke.User32.DisplayDeviceFlags
-PInvoke.User32.DisplayDeviceFlags.DISPLAY_DEVICE_PRIMARY_DEVICE = 4 -> PInvoke.User32.DisplayDeviceFlags
-PInvoke.User32.DisplayDeviceFlags.DISPLAY_DEVICE_REMOVABLE = 32 -> PInvoke.User32.DisplayDeviceFlags
-PInvoke.User32.DisplayDeviceFlags.DISPLAY_DEVICE_VGA_COMPATIBLE = 16 -> PInvoke.User32.DisplayDeviceFlags
PInvoke.User32.EnumDisplayDevicesFlags
PInvoke.User32.EnumDisplayDevicesFlags.EDD_GET_DEVICE_INTERFACE_NAME = 1 -> PInvoke.User32.EnumDisplayDevicesFlags
PInvoke.User32.GetMenuDefaultItemFlags
@@ -196,9 +181,6 @@ static PInvoke.User32.CreateCursor(System.IntPtr hInst, int xHotspot, int yHotSp
static PInvoke.User32.CreateCursor(System.IntPtr hInst, int xHotspot, int yHotSpot, int nWidth, int nHeight, byte[] pvANDPlane, byte[] pvXORPlane) -> PInvoke.User32.SafeCursorHandle
static PInvoke.User32.CreateWindowEx(PInvoke.User32.WindowStylesEx dwExStyle, short lpClassName, string lpWindowName, PInvoke.User32.WindowStyles dwStyle, int x, int y, int nWidth, int nHeight, System.IntPtr hWndParent, System.IntPtr hMenu, System.IntPtr hInstance, System.IntPtr lpParam) -> System.IntPtr
static PInvoke.User32.CreateWindowEx(PInvoke.User32.WindowStylesEx dwExStyle, short lpClassName, string lpWindowName, PInvoke.User32.WindowStyles dwStyle, int x, int y, int nWidth, int nHeight, System.IntPtr hWndParent, System.IntPtr hMenu, System.IntPtr hInstance, void* lpParam) -> System.IntPtr
-static PInvoke.User32.DISPLAY_DEVICE.Create() -> PInvoke.User32.DISPLAY_DEVICE
-static PInvoke.User32.EnumDisplayDevices(string lpDevice, uint iDevNum, System.IntPtr lpDisplayDevice, PInvoke.User32.EnumDisplayDevicesFlags dwFlags) -> bool
-static PInvoke.User32.EnumDisplayDevices(string lpDevice, uint iDevNum, ref PInvoke.User32.DISPLAY_DEVICE lpDisplayDevice, PInvoke.User32.EnumDisplayDevicesFlags dwFlags) -> bool
static PInvoke.User32.GetCursorInfo(System.IntPtr pci) -> bool
static PInvoke.User32.GetCursorInfo(out PInvoke.User32.CURSORINFO pci) -> bool
static PInvoke.User32.GetMenuBarInfo(System.IntPtr hwnd, PInvoke.User32.MenuObject idObject, int idItem, System.IntPtr pmbi) -> bool
@@ -229,7 +211,7 @@ static extern PInvoke.User32.AreDpiAwarenessContextsEqual(System.IntPtr dpiConte
static extern PInvoke.User32.CreateCursor(System.IntPtr hInst, int xHotspot, int yHotSpot, int nWidth, int nHeight, byte* pvANDPlane, byte* pvXORPlane) -> PInvoke.User32.SafeCursorHandle
static extern PInvoke.User32.DestroyWindow(System.IntPtr hWnd) -> bool
static extern PInvoke.User32.EnableNonClientDpiScaling(System.IntPtr hwnd) -> bool
-static extern PInvoke.User32.EnumDisplayDevices(string lpDevice, uint iDevNum, PInvoke.User32.DISPLAY_DEVICE* lpDisplayDevice, PInvoke.User32.EnumDisplayDevicesFlags dwFlags) -> bool
+static extern PInvoke.User32.EnumDisplayDevices(string lpDevice, uint iDevNum, PInvoke.DISPLAY_DEVICE* lpDisplayDevice, PInvoke.User32.EnumDisplayDevicesFlags dwFlags) -> bool
static extern PInvoke.User32.GetAwarenessFromDpiAwarenessContext(System.IntPtr dpiAwarenessContext) -> PInvoke.User32.DPI_AWARENESS
static extern PInvoke.User32.GetCursor() -> PInvoke.User32.SafeCursorHandle
static extern PInvoke.User32.GetCursorInfo(PInvoke.User32.CURSORINFO* pci) -> bool
diff --git a/src/User32/User32+DISPLAY_DEVICE.cs b/src/User32/User32+DISPLAY_DEVICE.cs
deleted file mode 100644
index a3c5e641..00000000
--- a/src/User32/User32+DISPLAY_DEVICE.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright © .NET Foundation and Contributors. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-namespace PInvoke
-{
- using System.Runtime.InteropServices;
-
- ///
- /// Contains the nested type.
- ///
- public partial class User32
- {
- ///
- /// Receives information about the display device specified by the iDevNum parameter of the function.
- ///
- public unsafe struct DISPLAY_DEVICE
- {
- ///
- /// Size, in bytes, of the DISPLAY_DEVICE structure. This must be initialized prior to calling .
- ///
- public uint cb;
-
- ///
- /// An array of characters identifying the device name. This is either the adapter device or the monitor device.
- ///
- public fixed char DeviceName[32];
-
- ///
- /// An array of characters containing the device context string. This is either a description of the display adapter or of the display monitor.
- ///
- public fixed char DeviceString[128];
-
- ///
- /// Device state flags.
- ///
- public DisplayDeviceFlags StateFlags;
-
- ///
- /// Not used.
- ///
- public fixed char DeviceID[128];
-
- ///
- /// Reserved.
- ///
- public fixed char DeviceKey[128];
-
- ///
- /// Initializes a new instance of the struct
- /// with the field initialized.
- ///
- ///
- /// An instance of the structure.
- ///
- public static DISPLAY_DEVICE Create() => new DISPLAY_DEVICE { cb = (uint)sizeof(DISPLAY_DEVICE) };
- }
- }
-}
diff --git a/src/User32/User32+DisplayDeviceFlags.cs b/src/User32/User32+DisplayDeviceFlags.cs
deleted file mode 100644
index c91ac32f..00000000
--- a/src/User32/User32+DisplayDeviceFlags.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright © .NET Foundation and Contributors. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-namespace PInvoke
-{
- using System;
-
- ///
- /// Contains the nested type.
- ///
- public partial class User32
- {
- ///
- /// Device state flags.
- ///
- [Flags]
- public enum DisplayDeviceFlags : uint
- {
- ///
- /// DISPLAY_DEVICE_ACTIVE specifies whether a monitor is presented as being "on" by the respective GDI view.
- /// Windows Vista: EnumDisplayDevices will only enumerate monitors that can be presented as being "on".
- ///
- DISPLAY_DEVICE_ACTIVE = 0x00000001,
-
- ///
- /// Represents a pseudo device used to mirror application drawing for remoting or other purposes. An invisible pseudo monitor is associated with this device.
- /// For example, NetMeeting uses it. Note that (SM_MONITORS) only accounts for visible display monitors.
- ///
- DISPLAY_DEVICE_MIRRORING_DRIVER = 0x00000008,
-
- /// The device has more display modes than its output devices support.
- DISPLAY_DEVICE_MODESPRUNED = 0x08000000,
-
- ///
- /// The primary desktop is on the device. For a system with a single display card, this is always set.
- /// For a system with multiple display cards, only one device can have this set.
- ///
- DISPLAY_DEVICE_PRIMARY_DEVICE = 0x00000004,
-
- /// The device is removable; it cannot be the primary display.
- DISPLAY_DEVICE_REMOVABLE = 0x00000020,
-
- /// The device is VGA compatible.
- DISPLAY_DEVICE_VGA_COMPATIBLE = 0x00000010,
- }
- }
-}
diff --git a/src/Windows.Core/DISPLAY_DEVICE+DisplayDeviceFlags.cs b/src/Windows.Core/DISPLAY_DEVICE+DisplayDeviceFlags.cs
new file mode 100644
index 00000000..b7bfb931
--- /dev/null
+++ b/src/Windows.Core/DISPLAY_DEVICE+DisplayDeviceFlags.cs
@@ -0,0 +1,41 @@
+// Copyright © .NET Foundation and Contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+namespace PInvoke
+{
+ using System;
+
+ ///
+ /// Device state flags.
+ ///
+ [Flags]
+ public enum DisplayDeviceFlags : uint
+ {
+ ///
+ /// Specifies whether a monitor is presented as being "on" by the respective GDI view.
+ /// Windows Vista: EnumDisplayDevices will only enumerate monitors that can be presented as being "on".
+ ///
+ DISPLAY_DEVICE_ACTIVE = 0x00000001,
+
+ ///
+ /// Represents a pseudo device used to mirror application drawing for remoting or other purposes. An invisible pseudo monitor is associated with this device.
+ /// For example, NetMeeting uses it. Note that User32.GetSystemMetrics (SM_MONITORS) only accounts for visible display monitors.
+ ///
+ DISPLAY_DEVICE_MIRRORING_DRIVER = 0x00000008,
+
+ /// The device has more display modes than its output devices support.
+ DISPLAY_DEVICE_MODESPRUNED = 0x08000000,
+
+ ///
+ /// The primary desktop is on the device. For a system with a single display card, this is always set.
+ /// For a system with multiple display cards, only one device can have this set.
+ ///
+ DISPLAY_DEVICE_PRIMARY_DEVICE = 0x00000004,
+
+ /// The device is removable; it cannot be the primary display.
+ DISPLAY_DEVICE_REMOVABLE = 0x00000020,
+
+ /// The device is VGA compatible.
+ DISPLAY_DEVICE_VGA_COMPATIBLE = 0x00000010,
+ }
+}
diff --git a/src/Windows.Core/DISPLAY_DEVICE.cs b/src/Windows.Core/DISPLAY_DEVICE.cs
new file mode 100644
index 00000000..9d00c161
--- /dev/null
+++ b/src/Windows.Core/DISPLAY_DEVICE.cs
@@ -0,0 +1,52 @@
+// Copyright © .NET Foundation and Contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+namespace PInvoke
+{
+ using System.Runtime.InteropServices;
+
+ ///
+ /// Receives information about the display device specified by the iDevNum parameter of the User32.EnumDisplayDevices function.
+ ///
+ public unsafe struct DISPLAY_DEVICE
+ {
+ ///
+ /// Size, in bytes, of the DISPLAY_DEVICE structure. This must be initialized prior to calling User32.EnumDisplayDevices.
+ ///
+ public uint cb;
+
+ ///
+ /// An array of characters identifying the device name. This is either the adapter device or the monitor device.
+ ///
+ public fixed char DeviceName[32];
+
+ ///
+ /// An array of characters containing the device context string. This is either a description of the display adapter or of the display monitor.
+ ///
+ public fixed char DeviceString[128];
+
+ ///
+ /// Device state flags.
+ ///
+ public DisplayDeviceFlags StateFlags;
+
+ ///
+ /// Not used.
+ ///
+ public fixed char DeviceID[128];
+
+ ///
+ /// Reserved.
+ ///
+ public fixed char DeviceKey[128];
+
+ ///
+ /// Initializes a new instance of the struct
+ /// with the field initialized.
+ ///
+ ///
+ /// An instance of the structure.
+ ///
+ public static DISPLAY_DEVICE Create() => new DISPLAY_DEVICE { cb = (uint)sizeof(DISPLAY_DEVICE) };
+ }
+}
diff --git a/src/Windows.Core/PublicAPI.Unshipped.txt b/src/Windows.Core/PublicAPI.Unshipped.txt
index c1b2cbe8..cc6c69f5 100644
--- a/src/Windows.Core/PublicAPI.Unshipped.txt
+++ b/src/Windows.Core/PublicAPI.Unshipped.txt
@@ -1,8 +1,24 @@
+PInvoke.DISPLAY_DEVICE
+PInvoke.DISPLAY_DEVICE.DISPLAY_DEVICE() -> void
+PInvoke.DISPLAY_DEVICE.DeviceID -> char*
+PInvoke.DISPLAY_DEVICE.DeviceKey -> char*
+PInvoke.DISPLAY_DEVICE.DeviceName -> char*
+PInvoke.DISPLAY_DEVICE.DeviceString -> char*
+PInvoke.DISPLAY_DEVICE.StateFlags -> PInvoke.DisplayDeviceFlags
+PInvoke.DISPLAY_DEVICE.cb -> uint
+PInvoke.DisplayDeviceFlags
+PInvoke.DisplayDeviceFlags.DISPLAY_DEVICE_ACTIVE = 1 -> PInvoke.DisplayDeviceFlags
+PInvoke.DisplayDeviceFlags.DISPLAY_DEVICE_MIRRORING_DRIVER = 8 -> PInvoke.DisplayDeviceFlags
+PInvoke.DisplayDeviceFlags.DISPLAY_DEVICE_MODESPRUNED = 134217728 -> PInvoke.DisplayDeviceFlags
+PInvoke.DisplayDeviceFlags.DISPLAY_DEVICE_PRIMARY_DEVICE = 4 -> PInvoke.DisplayDeviceFlags
+PInvoke.DisplayDeviceFlags.DISPLAY_DEVICE_REMOVABLE = 32 -> PInvoke.DisplayDeviceFlags
+PInvoke.DisplayDeviceFlags.DISPLAY_DEVICE_VGA_COMPATIBLE = 16 -> PInvoke.DisplayDeviceFlags
PInvoke.HResult.Code.CO_E_CANCEL_DISABLED = 2147549504 -> PInvoke.HResult.Code
PInvoke.HResult.Code.RPC_E_CALL_CANCELED = 2147549186 -> PInvoke.HResult.Code
PInvoke.HResult.Code.RPC_E_CALL_COMPLETE = 2147549463 -> PInvoke.HResult.Code
const PInvoke.ApiSets.api_ms_win_core_errorhandling_l1_1_1 = "api-ms-win-core-errorhandling-l1-1-1.dll" -> string
const PInvoke.ApiSets.api_ms_win_core_registry_l1_1_0 = "api-ms-win-core-registry-l1-1-0.dll" -> string
const PInvoke.ApiSets.api_ms_win_security_sddl_l1_1_0 = "api-ms-win-security-sddl-l1-1-0.dll" -> string
+static PInvoke.DISPLAY_DEVICE.Create() -> PInvoke.DISPLAY_DEVICE
static PInvoke.POINT.implicit operator PInvoke.POINT(System.Drawing.Point point) -> PInvoke.POINT
-static PInvoke.POINT.implicit operator System.Drawing.Point(PInvoke.POINT point) -> System.Drawing.Point
+static PInvoke.POINT.implicit operator System.Drawing.Point(PInvoke.POINT point) -> System.Drawing.Point
\ No newline at end of file