merge 37282 from amd64-branch:
[reactos.git] / reactos / dll / cpl / desk / desk.h
1 #ifndef __CPL_DESK_H__
2 #define __CPL_DESK_H__
3
4 #define COBJMACROS
5 #include <windows.h>
6 #include <commctrl.h>
7 #include <commdlg.h>
8 #include <cpl.h>
9 #include <tchar.h>
10 #include <setupapi.h>
11 #include <stdio.h>
12 #include <shlobj.h>
13 #include <regstr.h>
14 #include <cplext.h>
15 #include <dll/desk/deskcplx.h>
16
17 #include "resource.h"
18
19 typedef struct _APPLET
20 {
21 int idIcon;
22 int idName;
23 int idDescription;
24 APPLET_PROC AppletProc;
25 } APPLET, *PAPPLET;
26
27 typedef struct _DIBITMAP
28 {
29 BITMAPFILEHEADER *header;
30 BITMAPINFO *info;
31 BYTE *bits;
32 int width;
33 int height;
34 } DIBITMAP, *PDIBITMAP;
35
36 extern HINSTANCE hApplet;
37
38 HMENU
39 LoadPopupMenu(IN HINSTANCE hInstance,
40 IN LPCTSTR lpMenuName);
41
42 PDIBITMAP DibLoadImage(LPTSTR lpFilename);
43 VOID DibFreeImage(PDIBITMAP lpBitmap);
44
45 INT AllocAndLoadString(LPTSTR *lpTarget,
46 HINSTANCE hInst,
47 UINT uID);
48
49 ULONG __cdecl DbgPrint(PCCH Format,...);
50
51 #define MAX_DESK_PAGES 32
52 #define NUM_SPECTRUM_BITMAPS 3
53
54 /* As slider control can't contain user data, we have to keep an
55 * array of RESOLUTION_INFO to have our own associated data.
56 */
57 typedef struct _RESOLUTION_INFO
58 {
59 DWORD dmPelsWidth;
60 DWORD dmPelsHeight;
61 } RESOLUTION_INFO, *PRESOLUTION_INFO;
62
63 typedef struct _SETTINGS_ENTRY
64 {
65 struct _SETTINGS_ENTRY *Blink;
66 struct _SETTINGS_ENTRY *Flink;
67 DWORD dmBitsPerPel;
68 DWORD dmPelsWidth;
69 DWORD dmPelsHeight;
70 DWORD dmDisplayFrequency;
71 } SETTINGS_ENTRY, *PSETTINGS_ENTRY;
72
73 typedef struct _DISPLAY_DEVICE_ENTRY
74 {
75 struct _DISPLAY_DEVICE_ENTRY *Flink;
76 LPTSTR DeviceDescription;
77 LPTSTR DeviceName;
78 LPTSTR DeviceKey;
79 LPTSTR DeviceID;
80 DWORD DeviceStateFlags;
81 PSETTINGS_ENTRY Settings; /* sorted by increasing dmPelsHeight, BPP */
82 DWORD SettingsCount;
83 PRESOLUTION_INFO Resolutions;
84 DWORD ResolutionsCount;
85 PSETTINGS_ENTRY CurrentSettings; /* Points into Settings list */
86 SETTINGS_ENTRY InitialSettings;
87 } DISPLAY_DEVICE_ENTRY, *PDISPLAY_DEVICE_ENTRY;
88
89 BOOL
90 DisplayAdvancedSettings(HWND hWndParent, PDISPLAY_DEVICE_ENTRY DisplayDevice);
91
92 IDataObject *
93 CreateDevSettings(PDISPLAY_DEVICE_ENTRY DisplayDeviceInfo);
94
95 HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY,LPCWSTR,UINT,IDataObject*);
96
97 INT_PTR CALLBACK
98 AdvGeneralPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
99
100 #endif /* __CPL_DESK_H__ */
101