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