diff --git a/.gitignore b/.gitignore index e3295aa..d1458bc 100644 --- a/.gitignore +++ b/.gitignore @@ -230,4 +230,5 @@ _Pvt_Extensions # FAKE - F# Make .fake/ -!x64/Release/VirtualDesktopAccessor.dll \ No newline at end of file +!x64/Release/VirtualDesktopAccessor.dll +**/.ccls-cache diff --git a/VirtualDesktopAccessor.NET/Native.cs b/VirtualDesktopAccessor.NET/Native.cs new file mode 100644 index 0000000..aea1fef --- /dev/null +++ b/VirtualDesktopAccessor.NET/Native.cs @@ -0,0 +1,77 @@ +using System; +using System.Runtime.InteropServices; + +namespace VirtualDesktopAccessor +{ + using GUID = System.Guid; + using HWND = System.IntPtr; + using BOOL = System.Int32; + using HRESULT = System.UInt32; + using UINT = System.UInt32; + using ULONGLONG = System.UInt64; + + + public static class Native + { + [DllImport("VirtualDesktopAccessor")] + public extern static void EnableKeepMinimized(); + [DllImport("VirtualDesktopAccessor")] + public extern static void RestoreMinimized(); + [DllImport("VirtualDesktopAccessor")] + public extern static int GetDesktopCount(); + [DllImport("VirtualDesktopAccessor")] + public extern static int GetDesktopNumberById(GUID desktopId); + [DllImport("VirtualDesktopAccessor")] + public extern static GUID GetWindowDesktopId(HWND window); + [DllImport("VirtualDesktopAccessor")] + public extern static int GetWindowDesktopNumber(HWND window); + [DllImport("VirtualDesktopAccessor")] + public extern static int IsWindowOnCurrentVirtualDesktop(HWND window); + [DllImport("VirtualDesktopAccessor")] + public extern static GUID GetDesktopIdByNumber(int number); + [DllImport("VirtualDesktopAccessor")] + public extern static int IsWindowOnDesktopNumber(HWND window, int number); + [DllImport("VirtualDesktopAccessor")] + public extern static BOOL MoveWindowToDesktopNumber(HWND window, int number); + [DllImport("VirtualDesktopAccessor")] + public extern static int GetCurrentDesktopNumber(); + [DllImport("VirtualDesktopAccessor")] + public extern static void GoToDesktopNumber(int number); + [DllImport("VirtualDesktopAccessor")] + public extern static int IsPinnedWindow(HWND hwnd); + [DllImport("VirtualDesktopAccessor")] + public extern static void PinWindow(HWND hwnd); + [DllImport("VirtualDesktopAccessor")] + public extern static void UnPinWindow(HWND hwnd); + [DllImport("VirtualDesktopAccessor")] + public extern static int IsPinnedApp(HWND hwnd); + [DllImport("VirtualDesktopAccessor")] + public extern static void PinApp(HWND hwnd); + [DllImport("VirtualDesktopAccessor")] + public extern static void UnPinApp(HWND hwnd); + [DllImport("VirtualDesktopAccessor")] + public extern static int ViewIsShownInSwitchers(HWND hwnd); + [DllImport("VirtualDesktopAccessor")] + public extern static int ViewIsVisible(HWND hwnd); + [DllImport("VirtualDesktopAccessor")] + public extern static HWND ViewGetThumbnailHwnd(HWND hwnd); + [DllImport("VirtualDesktopAccessor")] + public extern static HRESULT ViewSetFocus(HWND hwnd); + [DllImport("VirtualDesktopAccessor")] + public extern static HWND ViewGetFocused(); + [DllImport("VirtualDesktopAccessor")] + public extern static HRESULT ViewSwitchTo(HWND hwnd); + [DllImport("VirtualDesktopAccessor")] + public extern static UINT ViewGetByZOrder(HWND[] windows, UINT count, BOOL onlySwitcherWindows, BOOL onlyCurrentDesktop); + [DllImport("VirtualDesktopAccessor")] + public extern static UINT ViewGetByLastActivationOrder(HWND[] windows, UINT count, BOOL onlySwitcherWindows, BOOL onlyCurrentDesktop); + [DllImport("VirtualDesktopAccessor")] + public extern static ULONGLONG ViewGetLastActivationTimestamp(HWND hwnd); + [DllImport("VirtualDesktopAccessor")] + public extern static void RestartVirtualDesktopAccessor(); + [DllImport("VirtualDesktopAccessor")] + public extern static void RegisterPostMessageHook(HWND listener, int messageOffset); + [DllImport("VirtualDesktopAccessor")] + public extern static void UnregisterPostMessageHook(HWND hwnd); + } +} diff --git a/VirtualDesktopAccessor.NET/VirtualDesktopAccessor.NET.csproj b/VirtualDesktopAccessor.NET/VirtualDesktopAccessor.NET.csproj new file mode 100644 index 0000000..8ff5239 --- /dev/null +++ b/VirtualDesktopAccessor.NET/VirtualDesktopAccessor.NET.csproj @@ -0,0 +1,17 @@ + + + + net5.0 + + + + + + + + + PreserveNewest + + + +