Sync to trunk (r46918)
[reactos.git] / dll / shellext / deskadp / deskadp.h
1 #pragma once
2
3 typedef struct _DESKDISPLAYADAPTER
4 {
5 const struct IShellPropSheetExtVtbl *lpIShellPropSheetExtVtbl;
6 const struct IShellExtInitVtbl *lpIShellExtInitVtbl;
7 const struct IClassFactoryVtbl *lpIClassFactoryVtbl;
8 DWORD ref;
9
10 HWND hwndDlg;
11 PDESK_EXT_INTERFACE DeskExtInterface;
12 IDataObject *pdtobj;
13 LPTSTR lpDeviceId;
14 PDEVMODEW lpSelDevMode;
15 PDEVMODEW lpDevModeOnInit;
16 } DESKDISPLAYADAPTER, *PDESKDISPLAYADAPTER;
17
18 extern LONG dll_refs;
19
20 #define impl_to_interface(impl,iface) (struct iface *)(&(impl)->lp##iface##Vtbl)
21 #define interface_to_impl(instance,iface) ((PDESKDISPLAYADAPTER)((ULONG_PTR)instance - FIELD_OFFSET(DESKDISPLAYADAPTER,lp##iface##Vtbl)))
22
23 HRESULT
24 IDeskDisplayAdapter_Constructor(REFIID riid,
25 LPVOID *ppv);
26
27 VOID
28 IDeskDisplayAdapter_InitIface(PDESKDISPLAYADAPTER This);
29
30 HRESULT STDMETHODCALLTYPE
31 IDeskDisplayAdapter_QueryInterface(PDESKDISPLAYADAPTER This,
32 REFIID iid,
33 PVOID *pvObject);
34
35 ULONG
36 IDeskDisplayAdapter_AddRef(PDESKDISPLAYADAPTER This);
37
38 ULONG
39 IDeskDisplayAdapter_Release(PDESKDISPLAYADAPTER This);
40
41 HRESULT
42 IDeskDisplayAdapter_Initialize(PDESKDISPLAYADAPTER This,
43 LPCITEMIDLIST pidlFolder,
44 IDataObject *pdtobj,
45 HKEY hkeyProgID);
46
47 HRESULT
48 IDeskDisplayAdapter_AddPages(PDESKDISPLAYADAPTER This,
49 LPFNADDPROPSHEETPAGE pfnAddPage,
50 LPARAM lParam);
51
52 HRESULT
53 IDeskDisplayAdapter_ReplacePage(PDESKDISPLAYADAPTER This,
54 EXPPS uPageID,
55 LPFNADDPROPSHEETPAGE pfnReplacePage,
56 LPARAM lParam);
57
58 static const GUID CLSID_IDeskDisplayAdapter = {0x42071712,0x76d4,0x11d1,{0x8b,0x24,0x00,0xa0,0xc9,0x06,0x8f,0xf3}};
59
60 ULONG __cdecl DbgPrint(PCCH Format,...);