[NtUser]
[reactos.git] / reactos / base / applications / mstsc / precomp.h
1 #ifndef _MSTSC_PCH_
2 #define _MSTSC_PCH_
3
4 #include <stdarg.h>
5
6 #define WIN32_NO_STATUS
7 #define _INC_WINDOWS
8 #define COM_NO_WINDOWS_H
9
10 #include <windef.h>
11 #include <winbase.h>
12 #include <wingdi.h>
13 #include <wincon.h>
14 #include <shlobj.h>
15 #include <stdio.h>
16
17 #include "rdesktop.h"
18 #include "resource.h"
19
20 #ifndef __TODO_MSTSC_H
21 #define __TODO_MSTSC_H
22
23 #define RDP_INFO_MOUSE 0x00000001
24 #define RDP_INFO_DISABLECTRLALTDEL 0x00000002
25 #define RDP_INFO_AUTOLOGON 0x00000008
26 #define RDP_INFO_UNICODE 0x00000010
27 #define RDP_INFO_MAXIMIZESHELL 0x00000020
28 #define RDP_INFO_COMPRESSION 0x00000080 /* mppc compression with 8kB histroy buffer */
29 #define RDP_INFO_ENABLEWINDOWSKEY 0x00000100
30 #define RDP_INFO_COMPRESSION2 0x00000200 /* rdp5 mppc compression with 64kB history buffer */
31 #define RDP_INFO_REMOTE_CONSOLE_AUDIO 0x00002000
32 #define RDP_INFO_PASSWORD_IS_SC_PIN 0x00040000
33
34 #define RDP5_DISABLE_NOTHING 0x00
35 #define RDP5_NO_WALLPAPER 0x01
36
37 #define RDP_LOGON_NORMAL (RDP_INFO_MOUSE | RDP_INFO_DISABLECTRLALTDEL | RDP_INFO_UNICODE | RDP_INFO_MAXIMIZESHELL)
38
39 #define IS_PERSISTENT(id) (id < 8 && g_pstcache_fd[id] > 0)
40
41 #define MAXKEY 256
42 #define MAXVALUE 256
43 #define NUM_SETTINGS 6
44 extern LPWSTR lpSettings[];
45
46 typedef struct _SETTINGS
47 {
48 WCHAR Key[MAXKEY];
49 WCHAR Type; // holds 'i' or 's'
50 union {
51 INT i;
52 WCHAR s[MAXVALUE];
53 } Value;
54 } SETTINGS, *PSETTINGS;
55
56 typedef struct _RDPSETTINGS
57 {
58 PSETTINGS pSettings;
59 INT NumSettings;
60 } RDPSETTINGS, *PRDPSETTINGS;
61
62 /* As slider control can't contain user data, we have to keep an
63 * array of RESOLUTION_INFO to have our own associated data.
64 */
65 typedef struct _RESOLUTION_INFO
66 {
67 DWORD dmPelsWidth;
68 DWORD dmPelsHeight;
69 } RESOLUTION_INFO, *PRESOLUTION_INFO;
70
71 typedef struct _SETTINGS_ENTRY
72 {
73 struct _SETTINGS_ENTRY *Blink;
74 struct _SETTINGS_ENTRY *Flink;
75 DWORD dmBitsPerPel;
76 DWORD dmPelsWidth;
77 DWORD dmPelsHeight;
78 } SETTINGS_ENTRY, *PSETTINGS_ENTRY;
79
80 typedef struct _DISPLAY_DEVICE_ENTRY
81 {
82 struct _DISPLAY_DEVICE_ENTRY *Flink;
83 LPWSTR DeviceDescription;
84 LPWSTR DeviceName;
85 LPWSTR DeviceKey;
86 LPWSTR DeviceID;
87 DWORD DeviceStateFlags;
88 PSETTINGS_ENTRY Settings; /* sorted by increasing dmPelsHeight, BPP */
89 DWORD SettingsCount;
90 PRESOLUTION_INFO Resolutions;
91 DWORD ResolutionsCount;
92 PSETTINGS_ENTRY CurrentSettings; /* Points into Settings list */
93 SETTINGS_ENTRY InitialSettings;
94 } DISPLAY_DEVICE_ENTRY, *PDISPLAY_DEVICE_ENTRY;
95
96 typedef struct _INFO
97 {
98 PRDPSETTINGS pRdpSettings;
99 PDISPLAY_DEVICE_ENTRY DisplayDeviceList;
100 PDISPLAY_DEVICE_ENTRY CurrentDisplayDevice;
101 HWND hSelf;
102 HWND hTab;
103 HWND hGeneralPage;
104 HWND hDisplayPage;
105 HBITMAP hHeader;
106 BITMAP headerbitmap;
107 HICON hMstscSm;
108 HICON hMstscLg;
109 HICON hLogon;
110 HICON hConn;
111 HICON hRemote;
112 HICON hColor;
113 HBITMAP hSpectrum;
114 BITMAP bitmap;
115 } INFO, *PINFO;
116
117 BOOL InitRdpSettings(PRDPSETTINGS pRdpSettings);
118 BOOL OpenRDPConnectDialog(HINSTANCE hInstance, PRDPSETTINGS pRdpSettings);
119 BOOL LoadRdpSettingsFromFile(PRDPSETTINGS pRdpSettings, LPWSTR lpFile);
120 BOOL SaveRdpSettingsToFile(LPWSTR lpFile, PRDPSETTINGS pRdpSettings);
121 INT GetIntegerFromSettings(PRDPSETTINGS pSettings, LPWSTR lpValue);
122 LPWSTR GetStringFromSettings(PRDPSETTINGS pSettings, LPWSTR lpValue);
123 BOOL SetIntegerToSettings(PRDPSETTINGS pRdpSettings, LPWSTR lpKey, INT Value);
124 BOOL SetStringToSettings(PRDPSETTINGS pRdpSettings, LPWSTR lpKey, LPWSTR lpValue);
125 VOID SaveAllSettings(PINFO pInfo);
126
127 #endif /* __TODO_MSTSC_H */
128
129 #endif /* _MSTSC_PCH_ */