ReactOS 0.4.15-dev-7924-g5949c20
CACListISF Class Reference

#include <aclistisf.h>

Inheritance diagram for CACListISF:
Collaboration diagram for CACListISF:

Public Member Functions

 CACListISF ()
 
 ~CACListISF ()
 
HRESULT NextLocation ()
 
HRESULT SetLocation (LPITEMIDLIST pidl)
 
HRESULT GetDisplayName (LPCITEMIDLIST pidlChild, CComHeapPtr< WCHAR > &pszChild)
 
HRESULT GetPaths (LPCITEMIDLIST pidlChild, CComHeapPtr< WCHAR > &pszRaw, CComHeapPtr< WCHAR > &pszExpanded)
 
STDMETHOD() Next (ULONG celt, LPOLESTR *rgelt, ULONG *pceltFetched) override
 
STDMETHOD() Skip (ULONG celt) override
 
STDMETHOD() Reset () override
 
STDMETHOD() Clone (IEnumString **ppenum) override
 
STDMETHOD() Expand (LPCOLESTR pszExpand) override
 
STDMETHOD() SetOptions (DWORD dwFlag) override
 
STDMETHOD() GetOptions (DWORD *pdwFlag) override
 
STDMETHOD() SetOwner (IUnknown *punkOwner) override
 
STDMETHOD() GetClassID (CLSID *pClassID) override
 
STDMETHOD() Initialize (PCIDLIST_ABSOLUTE pidl) override
 
STDMETHOD() GetDirectory (LPWSTR pwzPath, DWORD cchSize) override
 
STDMETHOD() SetDirectory (LPCWSTR pwzPath) override
 
- Public Member Functions inherited from ATL::CComObjectRootEx< CComMultiThreadModelNoCS >
 ~CComObjectRootEx ()
 
ULONG InternalAddRef ()
 
ULONG InternalRelease ()
 
void Lock ()
 
void Unlock ()
 
HRESULT _AtlInitialConstruct ()
 
- Public Member Functions inherited from ATL::CComObjectRootBase
 CComObjectRootBase ()
 
 ~CComObjectRootBase ()
 
void SetVoid (void *)
 
HRESULT _AtlFinalConstruct ()
 
HRESULT FinalConstruct ()
 
void InternalFinalConstructAddRef ()
 
void InternalFinalConstructRelease ()
 
void FinalRelease ()
 
- Public Member Functions inherited from IEnumString
HRESULT Next ([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] LPOLESTR *rgelt, [out] ULONG *pceltFetched)
 
HRESULT RemoteNext ([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] LPOLESTR *rgelt, [out] ULONG *pceltFetched)
 
HRESULT Skip ([in] ULONG celt)
 
HRESULT Reset ()
 
HRESULT Clone ([out] IEnumString **ppenum)
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
ULONG AddRef ()
 
ULONG Release ()
 
HRESULT SetOwner ([in] IUnknown *pUnk)
 
HRESULT Initialize ([in] PCIDLIST_ABSOLUTE pidl)
 
HRESULT GetClassID ([out] CLSID *pClassID)
 

Private Types

enum  LOCATION_TYPE {
  LT_DIRECTORY , LT_DESKTOP , LT_MYCOMPUTER , LT_FAVORITES ,
  LT_MAX
}
 

Private Attributes

DWORD m_dwOptions
 
LOCATION_TYPE m_iNextLocation
 
BOOL m_fShowHidden
 
CStringW m_szRawPath
 
CStringW m_szExpanded
 
CComHeapPtr< ITEMIDLISTm_pidlLocation
 
CComHeapPtr< ITEMIDLISTm_pidlCurDir
 
CComPtr< IEnumIDListm_pEnumIDList
 
CComPtr< IShellFolderm_pShellFolder
 
CComPtr< IBrowserServicem_pBrowserService
 

Additional Inherited Members

- Public Types inherited from IEnumString
typedef IEnumStringLPENUMSTRING
 
- Public Types inherited from IUnknown
typedef IUnknownLPUNKNOWN
 
- Public Types inherited from IPersistFolder
typedef IPersistFolderLPPERSISTFOLDER
 
- Public Types inherited from IPersist
typedef IPersistLPPERSIST
 
- Static Public Member Functions inherited from ATL::CComObjectRootBase
static void WINAPI ObjectMain (bool)
 
static const struct _ATL_CATMAP_ENTRYGetCategoryMap ()
 
static HRESULT WINAPI InternalQueryInterface (void *pThis, const _ATL_INTMAP_ENTRY *pEntries, REFIID iid, void **ppvObject)
 
- Public Attributes inherited from ATL::CComObjectRootBase
LONG m_dwRef
 

Detailed Description

Definition at line 24 of file aclistisf.h.

Member Enumeration Documentation

◆ LOCATION_TYPE

Enumerator
LT_DIRECTORY 
LT_DESKTOP 
LT_MYCOMPUTER 
LT_FAVORITES 
LT_MAX 

Definition at line 34 of file aclistisf.h.

35 {
40 LT_MAX
41 };
@ LT_DIRECTORY
Definition: aclistisf.h:36
@ LT_FAVORITES
Definition: aclistisf.h:39
@ LT_MYCOMPUTER
Definition: aclistisf.h:38
@ LT_DESKTOP
Definition: aclistisf.h:37

Constructor & Destructor Documentation

◆ CACListISF()

CACListISF::CACListISF ( )

Definition at line 24 of file aclistisf.cpp.

28{
29}
BOOL m_fShowHidden
Definition: aclistisf.h:45
LOCATION_TYPE m_iNextLocation
Definition: aclistisf.h:44
DWORD m_dwOptions
Definition: aclistisf.h:43
#define FALSE
Definition: types.h:117
#define ACLO_MYCOMPUTER
Definition: shlobj.h:807
#define ACLO_CURRENTDIR
Definition: shlobj.h:806

◆ ~CACListISF()

CACListISF::~CACListISF ( )

Definition at line 31 of file aclistisf.cpp.

32{
33}

Member Function Documentation

◆ Clone()

STDMETHODIMP CACListISF::Clone ( IEnumString **  ppenum)
override

Implements IEnumString.

Definition at line 307 of file aclistisf.cpp.

308{
309 TRACE("(%p, %p)\n", this, ppOut);
310 *ppOut = NULL;
311 return E_NOTIMPL;
312}
#define E_NOTIMPL
Definition: ddrawi.h:99
#define NULL
Definition: types.h:112
#define TRACE(s)
Definition: solgame.cpp:4

◆ Expand()

STDMETHODIMP CACListISF::Expand ( LPCOLESTR  pszExpand)
override

Definition at line 315 of file aclistisf.cpp.

316{
317 TRACE("(%p, %ls)\n", this, pszExpand);
318
319 m_szRawPath = pszExpand;
321
322 // skip left space
323 while (*pszExpand == L' ')
324 ++pszExpand;
325
326 // expand environment variables (%WINDIR% etc.)
327 WCHAR szExpanded[MAX_PATH], szPath1[MAX_PATH], szPath2[MAX_PATH];
328 ExpandEnvironmentStringsW(pszExpand, szExpanded, _countof(szExpanded));
329 pszExpand = szExpanded;
330
331 // get full path
332 if (szExpanded[0] && szExpanded[1] == L':' && szExpanded[2] == 0)
333 {
334 // 'C:' --> 'C:\'
335 szExpanded[2] = L'\\';
336 szExpanded[3] = 0;
337 }
338 else
339 {
340 if (PathIsRelativeW(pszExpand) &&
342 PathCombineW(szPath2, szPath1, pszExpand))
343 {
344 pszExpand = szPath2;
345 }
346 GetFullPathNameW(pszExpand, _countof(szPath1), szPath1, NULL);
347 pszExpand = szPath1;
348 }
349
351 m_szExpanded = pszExpand;
353 if (SUCCEEDED(hr))
354 {
355 hr = SetLocation(pidl.Detach());
357 {
358 m_szRawPath = L"";
359 m_szExpanded = L"";
360 }
361 }
362 return hr;
363}
CStringW m_szExpanded
Definition: aclistisf.h:47
HRESULT SetLocation(LPITEMIDLIST pidl)
Definition: aclistisf.cpp:109
CComHeapPtr< ITEMIDLIST > m_pidlCurDir
Definition: aclistisf.h:49
CStringW m_szRawPath
Definition: aclistisf.h:46
T * Detach()
Definition: atlalloc.h:168
#define MAX_PATH
Definition: compat.h:34
#define FAILED_UNEXPECTEDLY(hr)
Definition: precomp.h:121
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
Definition: environ.c:519
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
Definition: path.c:1106
BOOL WINAPI PathIsRelativeW(LPCWSTR lpszPath)
Definition: path.c:1579
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define L(x)
Definition: ntvdm.h:50
#define PathCombineW
Definition: pathcch.h:317
HRESULT WINAPI SHParseDisplayName(LPCWSTR pszName, IBindCtx *pbc, LPITEMIDLIST *ppidl, SFGAOF sfgaoIn, SFGAOF *psfgaoOut)
Definition: pidl.c:1405
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
Definition: pidl.c:1353
HRESULT hr
Definition: shlfolder.c:183
#define _countof(array)
Definition: sndvol32.h:68
__wchar_t WCHAR
Definition: xmlstorage.h:180

◆ GetClassID()

STDMETHODIMP CACListISF::GetClassID ( CLSID pClassID)
override

Implements IPersist.

Definition at line 394 of file aclistisf.cpp.

395{
396 TRACE("(%p, %p)\n", this, pClassID);
397 if (pClassID == NULL)
398 return E_POINTER;
399 *pClassID = CLSID_ACListISF;
400 return S_OK;
401}
#define S_OK
Definition: intsafe.h:52
#define E_POINTER
Definition: winerror.h:2365

◆ GetDirectory()

STDMETHODIMP CACListISF::GetDirectory ( LPWSTR  pwzPath,
DWORD  cchSize 
)
override

Definition at line 422 of file aclistisf.cpp.

423{
424 TRACE("(%p, %p, %ld)\n", this, pwzPath, cchSize);
425 return E_NOTIMPL;
426}

◆ GetDisplayName()

HRESULT CACListISF::GetDisplayName ( LPCITEMIDLIST  pidlChild,
CComHeapPtr< WCHAR > &  pszChild 
)

Definition at line 153 of file aclistisf.cpp.

154{
155 TRACE("(%p, %p)\n", this, pidlChild);
156 pszChild.Free();
157
159 DWORD dwFlags = SHGDN_INFOLDER | SHGDN_FORPARSING | SHGDN_FORADDRESSBAR;
160 HRESULT hr = m_pShellFolder->GetDisplayNameOf(pidlChild, dwFlags, &StrRet);
161 if (FAILED(hr))
162 {
163 dwFlags = SHGDN_INFOLDER | SHGDN_FORPARSING;
164 hr = m_pShellFolder->GetDisplayNameOf(pidlChild, dwFlags, &StrRet);
166 return hr;
167 }
168
169 hr = StrRetToStrW(&StrRet, NULL, &pszChild);
171 return hr;
172
173 TRACE("pszChild: '%S'\n", static_cast<LPCWSTR>(pszChild));
174 return hr;
175}
CComPtr< IShellFolder > m_pShellFolder
Definition: aclistisf.h:51
void Free()
Definition: atlalloc.h:153
HRESULT WINAPI StrRetToStrW(LPSTRRET lpStrRet, const ITEMIDLIST *pidl, LPWSTR *ppszName)
Definition: string.c:1631
unsigned long DWORD
Definition: ntddk_ex.h:95
#define FAILED(hr)
Definition: intsafe.h:51
#define StrRet
Definition: shellclasses.h:871
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185

Referenced by GetPaths().

◆ GetOptions()

STDMETHODIMP CACListISF::GetOptions ( DWORD pdwFlag)
override

Definition at line 373 of file aclistisf.cpp.

374{
375 TRACE("(%p, %p)\n", this, pdwFlag);
376 if (pdwFlag)
377 {
378 *pdwFlag = m_dwOptions;
379 return S_OK;
380 }
381 return E_INVALIDARG;
382}
#define E_INVALIDARG
Definition: ddrawi.h:101

◆ GetPaths()

HRESULT CACListISF::GetPaths ( LPCITEMIDLIST  pidlChild,
CComHeapPtr< WCHAR > &  pszRaw,
CComHeapPtr< WCHAR > &  pszExpanded 
)

Definition at line 178 of file aclistisf.cpp.

180{
181 TRACE("(%p, %p)\n", this, pidlChild);
182
183 CComHeapPtr<WCHAR> pszChild;
184 HRESULT hr = GetDisplayName(pidlChild, pszChild);
186 return hr;
187
188 CStringW szRawPath, szExpanded;
190 {
191 INT cchExpand = m_szRawPath.GetLength();
192 if (StrCmpNIW(pszChild, m_szRawPath, cchExpand) != 0 ||
193 pszChild[0] != L'\\' || pszChild[1] != L'\\')
194 {
195 szRawPath = m_szRawPath;
196 szExpanded = m_szExpanded;
197 }
198 }
199 szRawPath += pszChild;
200 szExpanded += pszChild;
201
202 SHStrDupW(szRawPath, &pszRaw);
203 SHStrDupW(szExpanded, &pszExpanded);
204 TRACE("pszRaw: '%S'\n", static_cast<LPCWSTR>(pszRaw));
205 TRACE("pszExpanded: '%S'\n", static_cast<LPCWSTR>(pszExpanded));
206 return S_OK;
207}
int GetLength() const noexcept
Definition: atlsimpstr.h:362
HRESULT GetDisplayName(LPCITEMIDLIST pidlChild, CComHeapPtr< WCHAR > &pszChild)
Definition: aclistisf.cpp:153
INT WINAPI StrCmpNIW(LPCWSTR lpszStr, LPCWSTR lpszComp, INT iLen)
Definition: string.c:311
HRESULT WINAPI SHStrDupW(LPCWSTR src, LPWSTR *dest)
Definition: string.c:2012
int32_t INT
Definition: typedefs.h:58

Referenced by Next().

◆ Initialize()

STDMETHODIMP CACListISF::Initialize ( PCIDLIST_ABSOLUTE  pidl)
override

Implements IPersistFolder.

Definition at line 404 of file aclistisf.cpp.

405{
406 TRACE("(%p, %p)\n", this, pidl);
407 m_pidlCurDir.Free();
408 if (!pidl)
409 return S_OK;
410
411 LPITEMIDLIST pidlClone = ILClone(pidl);
412 if (!pidlClone)
413 {
414 ERR("Out of memory\n");
415 return E_OUTOFMEMORY;
416 }
417 m_pidlCurDir.Attach(pidlClone);
418 return S_OK;
419}
#define ERR(fmt,...)
Definition: debug.h:110
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
Definition: pidl.c:237
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41

◆ Next()

STDMETHODIMP CACListISF::Next ( ULONG  celt,
LPOLESTR rgelt,
ULONG pceltFetched 
)
override

Implements IEnumString.

Definition at line 210 of file aclistisf.cpp.

211{
212 TRACE("(%p, %d, %p, %p)\n", this, celt, rgelt, pceltFetched);
213
214 if (celt == 0)
215 return S_OK;
216 if (!rgelt)
217 return S_FALSE;
218
219 *rgelt = NULL;
220 if (pceltFetched)
221 *pceltFetched = 0;
222
223 if (!m_pEnumIDList)
224 {
225 NextLocation();
226 if (!m_pEnumIDList)
227 return S_FALSE;
228 }
229
230 HRESULT hr;
231 CComHeapPtr<ITEMIDLIST> pidlChild;
232 CComHeapPtr<WCHAR> pszRawPath, pszExpanded;
233
234 do
235 {
236 for (;;)
237 {
238 pidlChild.Free();
239 hr = m_pEnumIDList->Next(1, &pidlChild, NULL);
240 if (hr != S_OK)
241 break;
242
243 pszRawPath.Free();
244 pszExpanded.Free();
245 GetPaths(pidlChild, pszRawPath, pszExpanded);
246 if (!pszRawPath || !pszExpanded)
247 continue;
248
249 if ((m_dwOptions & ACLO_FILESYSDIRS) && !PathIsDirectoryW(pszExpanded))
250 continue;
251 else if ((m_dwOptions & ACLO_FILESYSONLY) && !PathFileExistsW(pszExpanded))
252 continue;
253
254 hr = S_OK;
255 break;
256 }
257 } while (hr == S_FALSE && NextLocation() == S_OK);
258
259 if (hr == S_OK)
260 {
261 *rgelt = pszRawPath.Detach();
262 if (pceltFetched)
263 *pceltFetched = 1;
264 }
265 else
266 {
267 hr = S_FALSE;
268 }
269
270 TRACE("*rgelt: %S\n", *rgelt);
271 return hr;
272}
CComPtr< IEnumIDList > m_pEnumIDList
Definition: aclistisf.h:50
HRESULT GetPaths(LPCITEMIDLIST pidlChild, CComHeapPtr< WCHAR > &pszRaw, CComHeapPtr< WCHAR > &pszExpanded)
Definition: aclistisf.cpp:178
HRESULT NextLocation()
Definition: aclistisf.cpp:35
BOOL WINAPI PathFileExistsW(LPCWSTR lpszPath)
Definition: path.c:1777
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
Definition: path.c:1723
#define ACLO_FILESYSDIRS
Definition: shlobj.h:811
#define ACLO_FILESYSONLY
Definition: shlobj.h:810
#define S_FALSE
Definition: winerror.h:2357

◆ NextLocation()

HRESULT CACListISF::NextLocation ( )

Definition at line 35 of file aclistisf.cpp.

36{
37 TRACE("(%p)\n", this);
38 HRESULT hr;
39 switch (m_iNextLocation)
40 {
41 case LT_DIRECTORY:
44 {
46 hr = SetLocation(pidl.Detach());
47 if (SUCCEEDED(hr))
48 {
49 TRACE("LT_DIRECTORY\n");
50 return hr;
51 }
52 }
53 // FALL THROUGH
54 case LT_DESKTOP:
57 {
61 return S_FALSE;
62 hr = SetLocation(pidl.Detach());
63 if (SUCCEEDED(hr))
64 {
65 TRACE("LT_DESKTOP\n");
66 return hr;
67 }
68 }
69 // FALL THROUGH
70 case LT_MYCOMPUTER:
73 {
77 return S_FALSE;
78 hr = SetLocation(pidl.Detach());
79 if (SUCCEEDED(hr))
80 {
81 TRACE("LT_MYCOMPUTER\n");
82 return hr;
83 }
84 }
85 // FALL THROUGH
86 case LT_FAVORITES:
89 {
93 return S_FALSE;
94 hr = SetLocation(pidl.Detach());
95 if (SUCCEEDED(hr))
96 {
97 TRACE("LT_FAVORITES\n");
98 return hr;
99 }
100 }
101 // FALL THROUGH
102 case LT_MAX:
103 default:
104 TRACE("LT_MAX\n");
105 return S_FALSE;
106 }
107}
HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDLIST *ppidl)
Definition: shellpath.c:3225
#define CSIDL_FAVORITES
Definition: shlobj.h:2164
#define ACLO_DESKTOP
Definition: shlobj.h:808
#define CSIDL_DESKTOP
Definition: shlobj.h:2158
static BOOL ILIsEmpty(_In_opt_ PCUIDLIST_RELATIVE pidl)
Definition: shlobj.h:2504
#define CSIDL_DRIVES
Definition: shlobj.h:2174
#define ACLO_FAVORITES
Definition: shlobj.h:809

Referenced by Next().

◆ Reset()

STDMETHODIMP CACListISF::Reset ( )
override

Implements IEnumString.

Definition at line 274 of file aclistisf.cpp.

275{
276 TRACE("(%p)\n", this);
277
279 m_szRawPath = L"";
280
281 SHELLSTATE ss = { 0 };
283 m_fShowHidden = ss.fShowAllObjects;
284
286 {
289 {
290 m_pBrowserService->GetPidl(&pidl);
291 if (pidl)
292 Initialize(pidl);
293 }
294 HRESULT hr = SetLocation(pidl.Detach());
296 return S_FALSE;
297 }
298 return S_OK;
299}
CComPtr< IBrowserService > m_pBrowserService
Definition: aclistisf.h:52
#define ss
Definition: i386-dis.c:441
VOID WINAPI SHGetSetSettings(LPSHELLSTATE lpss, DWORD dwMask, BOOL bSet)
Definition: shellord.c:202
#define SSF_SHOWALLOBJECTS
Definition: shlobj.h:1593
static void Initialize()
Definition: xlate.c:212

◆ SetDirectory()

STDMETHODIMP CACListISF::SetDirectory ( LPCWSTR  pwzPath)
override

Definition at line 428 of file aclistisf.cpp.

429{
430 TRACE("(%p, %ls, %ld)\n", this, pwzPath);
431 LPITEMIDLIST pidl = ILCreateFromPathW(pwzPath);
432 if (!pidl)
433 {
434 ERR("Out of memory\n");
435 return E_OUTOFMEMORY;
436 }
437 m_pidlCurDir.Attach(pidl);
438 return S_OK;
439}
LPITEMIDLIST WINAPI ILCreateFromPathW(LPCWSTR path)
Definition: pidl.c:995

◆ SetLocation()

HRESULT CACListISF::SetLocation ( LPITEMIDLIST  pidl)

Definition at line 109 of file aclistisf.cpp.

110{
111 TRACE("(%p, %p)\n", this, pidl);
112
113 m_pEnumIDList.Release();
115 m_pidlLocation.Free();
116
117 if (!pidl)
118 return E_FAIL;
119
120 m_pidlLocation.Attach(pidl);
121
122 CComPtr<IShellFolder> pFolder;
123 HRESULT hr = SHGetDesktopFolder(&pFolder);
125 return hr;
126
127 if (!ILIsEmpty(pidl))
128 {
129 hr = pFolder->BindToObject(pidl, NULL, IID_PPV_ARG(IShellFolder, &m_pShellFolder));
131 return hr;
132 }
133 else
134 {
135 m_pShellFolder.Attach(pFolder.Detach());
136 }
137
138 SHCONTF Flags = SHCONTF_FOLDERS | SHCONTF_INIT_ON_FIRST_NEXT;
139 if (m_fShowHidden)
140 Flags |= SHCONTF_INCLUDEHIDDEN;
142 Flags |= SHCONTF_NONFOLDERS;
143
144 hr = m_pShellFolder->EnumObjects(NULL, Flags, &m_pEnumIDList);
145 if (hr != S_OK)
146 {
147 ERR("EnumObjects failed: 0x%lX\n", hr);
148 hr = E_FAIL;
149 }
150 return hr;
151}
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
void Release()
Definition: atlcomcli.h:170
void Attach(T *lp)
Definition: atlcomcli.h:179
T * Detach()
Definition: atlcomcli.h:186
CComHeapPtr< ITEMIDLIST > m_pidlLocation
Definition: aclistisf.h:48
#define E_FAIL
Definition: ddrawi.h:102
static SHCONTF
Definition: ordinal.c:64
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
#define IID_PPV_ARG(Itype, ppType)

Referenced by Expand(), NextLocation(), and Reset().

◆ SetOptions()

STDMETHODIMP CACListISF::SetOptions ( DWORD  dwFlag)
override

Definition at line 366 of file aclistisf.cpp.

367{
368 TRACE("(%p, %lu)\n", this, dwFlag);
369 m_dwOptions = dwFlag;
370 return S_OK;
371}

◆ SetOwner()

STDMETHODIMP CACListISF::SetOwner ( IUnknown punkOwner)
override

Implements IShellService.

Definition at line 385 of file aclistisf.cpp.

386{
387 TRACE("(%p, %p)\n", this, punkOwner);
388 m_pBrowserService.Release();
390 return S_OK;
391}
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)

◆ Skip()

STDMETHODIMP CACListISF::Skip ( ULONG  celt)
override

Implements IEnumString.

Definition at line 301 of file aclistisf.cpp.

302{
303 TRACE("(%p, %d)\n", this, celt);
304 return E_NOTIMPL;
305}

Member Data Documentation

◆ m_dwOptions

DWORD CACListISF::m_dwOptions
private

Definition at line 43 of file aclistisf.h.

Referenced by GetOptions(), Next(), NextLocation(), Reset(), SetLocation(), and SetOptions().

◆ m_fShowHidden

BOOL CACListISF::m_fShowHidden
private

Definition at line 45 of file aclistisf.h.

Referenced by Reset(), and SetLocation().

◆ m_iNextLocation

LOCATION_TYPE CACListISF::m_iNextLocation
private

Definition at line 44 of file aclistisf.h.

Referenced by Expand(), GetPaths(), NextLocation(), and Reset().

◆ m_pBrowserService

CComPtr<IBrowserService> CACListISF::m_pBrowserService
private

Definition at line 52 of file aclistisf.h.

Referenced by Reset(), and SetOwner().

◆ m_pEnumIDList

CComPtr<IEnumIDList> CACListISF::m_pEnumIDList
private

Definition at line 50 of file aclistisf.h.

Referenced by Next(), and SetLocation().

◆ m_pidlCurDir

CComHeapPtr<ITEMIDLIST> CACListISF::m_pidlCurDir
private

Definition at line 49 of file aclistisf.h.

Referenced by Expand(), Initialize(), NextLocation(), and SetDirectory().

◆ m_pidlLocation

CComHeapPtr<ITEMIDLIST> CACListISF::m_pidlLocation
private

Definition at line 48 of file aclistisf.h.

Referenced by SetLocation().

◆ m_pShellFolder

CComPtr<IShellFolder> CACListISF::m_pShellFolder
private

Definition at line 51 of file aclistisf.h.

Referenced by GetDisplayName(), and SetLocation().

◆ m_szExpanded

CStringW CACListISF::m_szExpanded
private

Definition at line 47 of file aclistisf.h.

Referenced by Expand(), and GetPaths().

◆ m_szRawPath

CStringW CACListISF::m_szRawPath
private

Definition at line 46 of file aclistisf.h.

Referenced by Expand(), GetPaths(), and Reset().


The documentation for this class was generated from the following files: