Bring back ext2 code from 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 } 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 BOOL
89 DisplayAdvancedSettings(HWND hWndParent, PDISPLAY_DEVICE_ENTRY DisplayDevice);
90
91 IDataObject *
92 CreateDevSettings(PDISPLAY_DEVICE_ENTRY DisplayDeviceInfo);
93
94 HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY,LPCWSTR,UINT,IDataObject*);
95
96 INT_PTR CALLBACK
97 AdvGeneralPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
98
99 #endif /* __CPL_DESK_H__ */
100