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