[ADVAPI32][SHELL32][DESK.CPL] Kill copy-paste of RegLoadMUIString. (#748)
[reactos.git] / dll / cpl / desk / desk.h
1 #ifndef _DESK_H
2 #define _DESK_H
3
4 #include <stdarg.h>
5
6 #define WIN32_NO_STATUS
7 #define _INC_WINDOWS
8 #define COM_NO_WINDOWS_H
9
10 #define COBJMACROS
11
12 #include <windef.h>
13 #include <winbase.h>
14 #include <winreg.h>
15 #include <wingdi.h>
16 #include <winuser.h>
17 #include <wincon.h>
18 #include <commdlg.h>
19 #include <cpl.h>
20 #include <tchar.h>
21 #include <setupapi.h>
22 #include <shlobj.h>
23 #include <regstr.h>
24 #include <dll/desk/deskcplx.h>
25 #include <strsafe.h>
26 #include <gdiplus.h>
27
28 #include "appearance.h"
29 #include "preview.h"
30 #include "draw.h"
31 #include "monslctl.h"
32
33 #include "resource.h"
34
35 typedef struct _APPLET
36 {
37 int idIcon;
38 int idName;
39 int idDescription;
40 APPLET_PROC AppletProc;
41 } APPLET, *PAPPLET;
42
43 typedef struct _DIBITMAP
44 {
45 BITMAPINFO *info;
46 BYTE *bits;
47 UINT width;
48 UINT height;
49 } DIBITMAP, *PDIBITMAP;
50
51 extern HINSTANCE hApplet;
52
53 HMENU
54 LoadPopupMenu(IN HINSTANCE hInstance,
55 IN LPCTSTR lpMenuName);
56
57 PDIBITMAP DibLoadImage(LPTSTR lpFilename);
58 VOID DibFreeImage(PDIBITMAP lpBitmap);
59
60 INT AllocAndLoadString(LPTSTR *lpTarget,
61 HINSTANCE hInst,
62 UINT uID);
63
64 ULONG __cdecl DbgPrint(PCCH Format,...);
65
66 #define MAX_DESK_PAGES 32
67 #define NUM_SPECTRUM_BITMAPS 3
68
69 /* As slider control can't contain user data, we have to keep an
70 * array of RESOLUTION_INFO to have our own associated data.
71 */
72 typedef struct _RESOLUTION_INFO
73 {
74 DWORD dmPelsWidth;
75 DWORD dmPelsHeight;
76 } RESOLUTION_INFO, *PRESOLUTION_INFO;
77
78 typedef struct _SETTINGS_ENTRY
79 {
80 struct _SETTINGS_ENTRY *Blink;
81 struct _SETTINGS_ENTRY *Flink;
82 DWORD dmBitsPerPel;
83 DWORD dmPelsWidth;
84 DWORD dmPelsHeight;
85 DWORD dmDisplayFrequency;
86 } SETTINGS_ENTRY, *PSETTINGS_ENTRY;
87
88 typedef struct _DISPLAY_DEVICE_ENTRY
89 {
90 struct _DISPLAY_DEVICE_ENTRY *Flink;
91 LPTSTR DeviceDescription;
92 LPTSTR DeviceName;
93 LPTSTR DeviceKey;
94 LPTSTR DeviceID;
95 DWORD DeviceStateFlags;
96 PSETTINGS_ENTRY Settings; /* Sorted by increasing dmPelsHeight, BPP */
97 DWORD SettingsCount;
98 PRESOLUTION_INFO Resolutions;
99 DWORD ResolutionsCount;
100 PSETTINGS_ENTRY CurrentSettings; /* Points into Settings list */
101 SETTINGS_ENTRY InitialSettings;
102 } DISPLAY_DEVICE_ENTRY, *PDISPLAY_DEVICE_ENTRY;
103
104 typedef struct _GLOBAL_DATA
105 {
106 COLORREF desktop_color;
107 LPCWSTR pwszFile;
108 LPCWSTR pwszAction;
109 } GLOBAL_DATA, *PGLOBAL_DATA;
110
111 extern GLOBAL_DATA g_GlobalData;
112 extern HWND hCPLWindow;
113
114 BOOL
115 DisplayAdvancedSettings(HWND hWndParent, PDISPLAY_DEVICE_ENTRY DisplayDevice);
116
117 IDataObject *
118 CreateDevSettings(PDISPLAY_DEVICE_ENTRY DisplayDeviceInfo);
119
120 HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY,LPCWSTR,UINT,IDataObject*);
121
122 INT_PTR CALLBACK
123 AdvGeneralPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
124
125 #endif /* _DESK_H */