5 #define SWM_ADD_ITEM (WM_USER + 0)
6 #define SWM_UPDATE_STATUS (WM_USER + 1)
9 public CComCoClass
<CFindFolder
, &CLSID_FindFolder
>,
10 public CComObjectRootEx
<CComMultiThreadModelNoCS
>,
12 public IPersistFolder2
14 // *** IShellFolder2 methods ***
15 STDMETHODIMP
GetDefaultSearchGUID(GUID
*pguid
);
17 STDMETHODIMP
EnumSearches(IEnumExtraSearch
**ppenum
);
19 STDMETHODIMP
GetDefaultColumn(DWORD dwRes
, ULONG
*pSort
, ULONG
*pDisplay
);
21 STDMETHODIMP
GetDefaultColumnState(UINT iColumn
, DWORD
*pcsFlags
);
23 STDMETHODIMP
GetDetailsEx(PCUITEMID_CHILD pidl
, const SHCOLUMNID
*pscid
, VARIANT
*pv
);
25 STDMETHODIMP
GetDetailsOf(PCUITEMID_CHILD pidl
, UINT iColumn
, SHELLDETAILS
*pDetails
);
27 STDMETHODIMP
MapColumnToSCID(UINT iColumn
, SHCOLUMNID
*pscid
);
30 // *** IShellFolder methods ***
31 STDMETHODIMP
ParseDisplayName(HWND hwndOwner
, LPBC pbc
, LPOLESTR lpszDisplayName
, ULONG
*pchEaten
,
32 PIDLIST_RELATIVE
*ppidl
, ULONG
*pdwAttributes
);
34 STDMETHODIMP
EnumObjects(HWND hwndOwner
, DWORD dwFlags
, LPENUMIDLIST
*ppEnumIDList
);
36 STDMETHODIMP
BindToObject(PCUIDLIST_RELATIVE pidl
, LPBC pbcReserved
, REFIID riid
, LPVOID
*ppvOut
);
38 STDMETHODIMP
BindToStorage(PCUIDLIST_RELATIVE pidl
, LPBC pbcReserved
, REFIID riid
, LPVOID
*ppvOut
);
40 STDMETHODIMP
CompareIDs(LPARAM lParam
, PCUIDLIST_RELATIVE pidl1
, PCUIDLIST_RELATIVE pidl2
);
42 STDMETHODIMP
CreateViewObject(HWND hwndOwner
, REFIID riid
, LPVOID
*ppvOut
);
44 STDMETHODIMP
GetAttributesOf(UINT cidl
, PCUITEMID_CHILD_ARRAY apidl
, DWORD
*rgfInOut
);
46 STDMETHODIMP
GetUIObjectOf(HWND hwndOwner
, UINT cidl
, PCUITEMID_CHILD_ARRAY apidl
, REFIID riid
, UINT
*prgfInOut
,
49 STDMETHODIMP
GetDisplayNameOf(PCUITEMID_CHILD pidl
, DWORD dwFlags
, LPSTRRET pName
);
51 STDMETHODIMP
SetNameOf(HWND hwndOwner
, PCUITEMID_CHILD pidl
, LPCOLESTR lpName
, DWORD dwFlags
,
52 PITEMID_CHILD
*pPidlOut
);
56 CComPtr
<IShellFolder2
> m_pisfInner
;
58 //// *** IPersistFolder2 methods ***
59 STDMETHODIMP
GetCurFolder(LPITEMIDLIST
*pidl
);
62 // *** IPersistFolder methods ***
63 STDMETHODIMP
Initialize(LPCITEMIDLIST pidl
);
66 // *** IPersist methods ***
67 STDMETHODIMP
GetClassID(CLSID
*pClassId
);
70 DECLARE_REGISTRY_RESOURCEID(IDR_FINDFOLDER
)
72 DECLARE_NOT_AGGREGATABLE(CFindFolder
)
74 DECLARE_PROTECT_FINAL_CONSTRUCT()
76 BEGIN_COM_MAP(CFindFolder
)
77 COM_INTERFACE_ENTRY_IID(IID_IShellFolder2
, IShellFolder2
)
78 COM_INTERFACE_ENTRY_IID(IID_IShellFolder
, IShellFolder
)
79 COM_INTERFACE_ENTRY_IID(IID_IPersistFolder2
, IPersistFolder2
)
80 COM_INTERFACE_ENTRY_IID(IID_IPersistFolder
, IPersistFolder
)
81 COM_INTERFACE_ENTRY_IID(IID_IPersist
, IPersist
)