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