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