xpra icon
Bug tracker and wiki

This bug tracker and wiki are being discontinued
please use https://github.com/Xpra-org/xpra instead.


Ticket #1442: 1442_desktop.cs

File 1442_desktop.cs, 2.9 KB (added by Tijs van der Zwaan, 6 months ago)
Line 
1using System;
2using System.Runtime.InteropServices;
3
4namespace Tribion.LocalClient.Core.Products.OpenVpo.Win32
5{
6    class Desktop
7    {
8        public const int MAXIMUM_ALLOWED = 0x02000000;
9
10        [DllImport("User32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
11        public static extern IntPtr CreateDesktop(string lpszDesktop, string lpszDevice, IntPtr pDevmode, int dwFlags, int dwDesiredAccess, IntPtr lpsa);
12
13        [DllImport("User32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
14        public static extern bool SwitchDesktop(IntPtr hDesktop);
15
16        [DllImport("User32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
17        public static extern bool SetThreadDesktop(IntPtr hDesktop);
18
19        [DllImport("User32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
20        public static extern bool OpenDesktop(string lpszDesktop, int dwFlags, bool fInherit, int dwDesiredAccess);
21
22        [DllImport("User32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
23        public static extern bool CloseDesktop(IntPtr hDesktop);
24
25        [DllImport("User32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
26        public static extern IntPtr GetThreadDesktop(int dwThreadId);
27
28        [DllImport("Kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
29        public static extern int GetCurrentThreadId();
30
31        [DllImport("kernel32.dll")]
32        public static extern bool CreateProcess(
33            string lpApplicationName,
34            string lpCommandLine,
35            IntPtr lpProcessAttributes,
36            IntPtr lpThreadAttributes,
37            bool bInheritHandles,
38            int dwCreationFlags,
39            IntPtr lpEnvironment,
40            string lpCurrentDirectory,
41            ref STARTUPINFO lpStartupInfo,
42            ref PROCESS_INFORMATION lpProcessInformation
43            );
44        [StructLayout(LayoutKind.Sequential)]
45        public struct PROCESS_INFORMATION
46        {
47            public IntPtr hProcess;
48            public IntPtr hThread;
49            public int dwProcessId;
50            public int dwThreadId;
51        }
52
53        [StructLayout(LayoutKind.Sequential)]
54        public struct STARTUPINFO
55        {
56            public int cb;
57            public string lpReserved;
58            public string lpDesktop;
59            public string lpTitle;
60            public int dwX;
61            public int dwY;
62            public int dwXSize;
63            public int dwYSize;
64            public int dwXCountChars;
65            public int dwYCountChars;
66            public int dwFillAttribute;
67            public int dwFlags;
68            public short wShowWindow;
69            public short cbReserved2;
70            public IntPtr lpReserved2;
71            public IntPtr hStdInput;
72            public IntPtr hStdOutput;
73            public IntPtr hStdError;
74        }
75
76    }
77}