36157005d9ddc20bf1e798cbf877aa5f699dd0c2
[reactos.git] / reactos / dll / win32 / shellext / deskmon / deskmon.h
1 #ifndef __DESKMON__H
2 #define __DESKMON__H
3
4 typedef struct _DESKMONINFO
5 {
6 DISPLAY_DEVICE dd;
7 struct _DESKMONINFO *Next;
8 } DESKMONINFO, *PDESKMONINFO;
9
10 typedef struct _DESKMONITOR
11 {
12 const struct IShellPropSheetExtVtbl *lpIShellPropSheetExtVtbl;
13 const struct IShellExtInitVtbl *lpIShellExtInitVtbl;
14 const struct IClassFactoryVtbl *lpIClassFactoryVtbl;
15 DWORD ref;
16
17 HWND hwndDlg;
18 PDESK_EXT_INTERFACE DeskExtInterface;
19 IDataObject *pdtobj;
20 LPTSTR lpDisplayDevice;
21 DWORD dwMonitorCount;
22 PDESKMONINFO Monitors;
23 PDESKMONINFO SelMonitor;
24 PDEVMODEW lpSelDevMode;
25 PDEVMODEW lpDevModeOnInit;
26 union
27 {
28 DWORD dwFlags;
29 struct
30 {
31 DWORD bModesPruned : 1;
32 DWORD bKeyIsReadOnly : 1;
33 DWORD bPruningOn : 1;
34 };
35 };
36
37 } DESKMONITOR, *PDESKMONITOR;
38
39 extern LONG dll_refs;
40
41 #define impl_to_interface(impl,iface) (struct iface *)(&(impl)->lp##iface##Vtbl)
42 #define interface_to_impl(instance,iface) ((PDESKMONITOR)((ULONG_PTR)instance - FIELD_OFFSET(DESKMONITOR,lp##iface##Vtbl)))
43
44 HRESULT
45 IDeskMonitor_Constructor(REFIID riid,
46 LPVOID *ppv);
47
48 VOID
49 IDeskMonitor_InitIface(PDESKMONITOR This);
50
51 HRESULT STDMETHODCALLTYPE
52 IDeskMonitor_QueryInterface(PDESKMONITOR This,
53 REFIID iid,
54 PVOID *pvObject);
55
56 ULONG
57 IDeskMonitor_AddRef(PDESKMONITOR This);
58
59 ULONG
60 IDeskMonitor_Release(PDESKMONITOR This);
61
62 HRESULT
63 IDeskMonitor_Initialize(PDESKMONITOR This,
64 LPCITEMIDLIST pidlFolder,
65 IDataObject *pdtobj,
66 HKEY hkeyProgID);
67
68 HRESULT
69 IDeskMonitor_AddPages(PDESKMONITOR This,
70 LPFNADDPROPSHEETPAGE pfnAddPage,
71 LPARAM lParam);
72
73 HRESULT
74 IDeskMonitor_ReplacePage(PDESKMONITOR This,
75 EXPPS uPageID,
76 LPFNADDPROPSHEETPAGE pfnReplacePage,
77 LPARAM lParam);
78
79 static const GUID CLSID_IDeskMonitor = {0x42071713,0x76d4,0x11d1,{0x8b,0x24,0x00,0xa0,0xc9,0x06,0x8f,0xf3}};
80
81 ULONG __cdecl DbgPrint(PCCH Format,...);
82
83 #endif /* __DESKMON__H */