1 /* 2 * PROJECT: shell32 3 * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later) 4 * PURPOSE: IActiveDesktop header 5 * COPYRIGHT: Copyright 2018 Mark Jansen (mark.jansen@reactos.org) 6 */ 7 8 #ifndef _CACTIVEDESKTOP_H_ 9 #define _CACTIVEDESKTOP_H_ 10 11 #undef AddDesktopItem 12 13 class CActiveDesktop : 14 public CComCoClass<CActiveDesktop, &CLSID_ActiveDesktop>, 15 public CComObjectRootEx<CComMultiThreadModelNoCS>, 16 public IActiveDesktop, 17 //public IActiveDesktopP, 18 //public IADesktopP2, 19 public IPropertyBag 20 { 21 public: 22 CActiveDesktop(); 23 virtual ~CActiveDesktop(); 24 25 /*** IActiveDesktop methods ***/ 26 STDMETHOD(ApplyChanges)(DWORD dwFlags) override; 27 STDMETHOD(GetWallpaper)(PWSTR pwszWallpaper, UINT cchWallpaper, DWORD dwFlags) override; 28 STDMETHOD(SetWallpaper)(PCWSTR pwszWallpaper, DWORD dwReserved) override; 29 STDMETHOD(GetWallpaperOptions)(LPWALLPAPEROPT pwpo, DWORD dwReserved) override; 30 STDMETHOD(SetWallpaperOptions)(LPCWALLPAPEROPT pwpo, DWORD dwReserved) override; 31 STDMETHOD(GetPattern)(PWSTR pwszPattern, UINT cchPattern, DWORD dwReserved) override; 32 STDMETHOD(SetPattern)(PCWSTR pwszPattern, DWORD dwReserved) override; 33 STDMETHOD(GetDesktopItemOptions)(LPCOMPONENTSOPT pco, DWORD dwReserved) override; 34 STDMETHOD(SetDesktopItemOptions)(LPCCOMPONENTSOPT pco, DWORD dwReserved) override; 35 STDMETHOD(AddDesktopItem)(LPCCOMPONENT pcomp, DWORD dwReserved) override; 36 STDMETHOD(AddDesktopItemWithUI)(HWND hwnd, LPCOMPONENT pcomp, DWORD dwReserved) override; 37 STDMETHOD(ModifyDesktopItem)(LPCCOMPONENT pcomp, DWORD dwFlags) override; 38 STDMETHOD(RemoveDesktopItem)(LPCCOMPONENT pcomp, DWORD dwReserved) override; 39 STDMETHOD(GetDesktopItemCount)(int *pcItems, DWORD dwReserved) override; 40 STDMETHOD(GetDesktopItem)(int nComponent, LPCOMPONENT pcomp, DWORD dwReserved) override; 41 STDMETHOD(GetDesktopItemByID)(ULONG_PTR dwID, LPCOMPONENT pcomp, DWORD dwReserved) override; 42 STDMETHOD(GenerateDesktopItemHtml)(PCWSTR pwszFileName, LPCOMPONENT pcomp, DWORD dwReserved) override; 43 STDMETHOD(AddUrl)(HWND hwnd, PCWSTR pszSource, LPCOMPONENT pcomp, DWORD dwFlags) override; 44 STDMETHOD(GetDesktopItemBySource)(PCWSTR pwszSource, LPCOMPONENT pcomp, DWORD dwReserved) override; 45 46 /*** IPropertyBag methods ***/ 47 STDMETHOD(Read)(LPCOLESTR pszPropName, VARIANT *pVar, IErrorLog *pErrorLog) override; 48 STDMETHOD(Write)(LPCOLESTR pszPropName, VARIANT *pVar) override; 49 50 DECLARE_REGISTRY_RESOURCEID(IDR_ACTIVEDESKTOP) 51 DECLARE_NOT_AGGREGATABLE(CActiveDesktop) 52 53 DECLARE_PROTECT_FINAL_CONSTRUCT() 54 55 BEGIN_COM_MAP(CActiveDesktop) 56 COM_INTERFACE_ENTRY_IID(IID_IActiveDesktop, IActiveDesktop) 57 //COM_INTERFACE_ENTRY_IID(IID_IActiveDesktopP, IActiveDesktopP) 58 //COM_INTERFACE_ENTRY_IID(IID_IADesktopP2, IADesktopP2) 59 COM_INTERFACE_ENTRY_IID(IID_IPropertyBag, IPropertyBag) 60 END_COM_MAP() 61 }; 62 63 64 #endif // _CACTIVEDESKTOP_H_ 65