Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / dll / shellext / deskmon / deskmon.h
diff --git a/dll/shellext/deskmon/deskmon.h b/dll/shellext/deskmon/deskmon.h
new file mode 100644 (file)
index 0000000..d2d381a
--- /dev/null
@@ -0,0 +1,80 @@
+#pragma once
+
+typedef struct _DESKMONINFO
+{
+    DISPLAY_DEVICE dd;
+    struct _DESKMONINFO *Next;
+} DESKMONINFO, *PDESKMONINFO;
+
+typedef struct _DESKMONITOR
+{
+    const struct IShellPropSheetExtVtbl *lpIShellPropSheetExtVtbl;
+    const struct IShellExtInitVtbl *lpIShellExtInitVtbl;
+    const struct IClassFactoryVtbl *lpIClassFactoryVtbl;
+    DWORD ref;
+
+    HWND hwndDlg;
+    PDESK_EXT_INTERFACE DeskExtInterface;
+    IDataObject *pdtobj;
+    LPTSTR lpDisplayDevice;
+    DWORD dwMonitorCount;
+    PDESKMONINFO Monitors;
+    PDESKMONINFO SelMonitor;
+    PDEVMODEW lpSelDevMode;
+    PDEVMODEW lpDevModeOnInit;
+    union
+    {
+        DWORD dwFlags;
+        struct
+        {
+            DWORD bModesPruned : 1;
+            DWORD bKeyIsReadOnly : 1;
+            DWORD bPruningOn : 1;
+        };
+    };
+
+} DESKMONITOR, *PDESKMONITOR;
+
+extern LONG dll_refs;
+
+#define impl_to_interface(impl,iface) (struct iface *)(&(impl)->lp##iface##Vtbl)
+#define interface_to_impl(instance,iface) ((PDESKMONITOR)((ULONG_PTR)instance - FIELD_OFFSET(DESKMONITOR,lp##iface##Vtbl)))
+
+HRESULT
+IDeskMonitor_Constructor(REFIID riid,
+                         LPVOID *ppv);
+
+VOID
+IDeskMonitor_InitIface(PDESKMONITOR This);
+
+HRESULT STDMETHODCALLTYPE
+IDeskMonitor_QueryInterface(PDESKMONITOR This,
+                            REFIID iid,
+                            PVOID *pvObject);
+
+ULONG
+IDeskMonitor_AddRef(PDESKMONITOR This);
+
+ULONG
+IDeskMonitor_Release(PDESKMONITOR This);
+
+HRESULT
+IDeskMonitor_Initialize(PDESKMONITOR This,
+                        LPCITEMIDLIST pidlFolder,
+                        IDataObject *pdtobj,
+                        HKEY hkeyProgID);
+
+HRESULT
+IDeskMonitor_AddPages(PDESKMONITOR This,
+                      LPFNADDPROPSHEETPAGE pfnAddPage,
+                      LPARAM lParam);
+
+HRESULT
+IDeskMonitor_ReplacePage(PDESKMONITOR This,
+                         EXPPS uPageID,
+                         LPFNADDPROPSHEETPAGE pfnReplacePage,
+                         LPARAM lParam);
+
+static const GUID CLSID_IDeskMonitor = {0x42071713,0x76d4,0x11d1,{0x8b,0x24,0x00,0xa0,0xc9,0x06,0x8f,0xf3}};
+
+ULONG __cdecl DbgPrint(PCCH Format,...);