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,...); 61