Sync with trunk r63786.
[reactos.git] / dll / shellext / deskmon / deskmon.h
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,...);