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