public CComCoClass<CDrivesFolder, &CLSID_MyComputer>,
public CComObjectRootEx<CComMultiThreadModelNoCS>,
public IShellFolder2,
- public IPersistFolder2
+ public IPersistFolder2,
+ public IContextMenuCB
{
private:
/* both paths are parsible from the desktop */
LPITEMIDLIST pidlRoot; /* absolute pidl */
- LPWSTR sName;
+ CComPtr<IShellFolder2> m_regFolder;
+
public:
CDrivesFolder();
~CDrivesFolder();
virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidl);
// IPersistFolder2
- virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST * pidl);
+ virtual HRESULT WINAPI GetCurFolder(PIDLIST_ABSOLUTE * pidl);
+
+ // IContextMenuCB
+ virtual HRESULT WINAPI CallBack(IShellFolder *psf, HWND hwndOwner, IDataObject *pdtobj, UINT uMsg, WPARAM wParam, LPARAM lParam);
DECLARE_REGISTRY_RESOURCEID(IDR_MYCOMPUTER)
DECLARE_CENTRAL_INSTANCE_NOT_AGGREGATABLE(CDrivesFolder)
COM_INTERFACE_ENTRY_IID(IID_IPersistFolder, IPersistFolder)
COM_INTERFACE_ENTRY_IID(IID_IPersistFolder2, IPersistFolder2)
COM_INTERFACE_ENTRY_IID(IID_IPersist, IPersist)
+ COM_INTERFACE_ENTRY_IID(IID_IContextMenuCB, IContextMenuCB)
END_COM_MAP()
};