ReactOS 0.4.17-dev-470-gf9e3448
CFolderItem Class Reference

#include <CFolderItems.h>

Inheritance diagram for CFolderItem:
Collaboration diagram for CFolderItem:

Public Member Functions

 CFolderItem ()
 
 ~CFolderItem ()
 
HRESULT Initialize (Folder *folder, LPCITEMIDLIST idlist)
 
LPCITEMIDLIST GetAbsoluteIDList ()
 
HWND GetHwnd ()
 
HRESULT GetFindDataFromIDList (WIN32_FIND_DATA &wfd)
 
HRESULT HasAttribute (DWORD sfgaof, VARIANT_BOOL *pB)
 
HRESULT GetExtendedProperty (REFPROPERTYKEY pkey, VARIANT *pv)
 
STDMETHOD() get_Application (IDispatch **ppid) override
 
STDMETHOD() get_Parent (IDispatch **ppid) override
 
STDMETHOD() get_Name (BSTR *pbs) override
 
STDMETHOD() put_Name (BSTR bs) override
 
STDMETHOD() get_Path (BSTR *pbs) override
 
STDMETHOD() get_GetLink (IDispatch **ppid) override
 
STDMETHOD() get_GetFolder (IDispatch **ppid) override
 
STDMETHOD() get_IsLink (VARIANT_BOOL *pb) override
 
STDMETHOD() get_IsFolder (VARIANT_BOOL *pb) override
 
STDMETHOD() get_IsFileSystem (VARIANT_BOOL *pb) override
 
STDMETHOD() get_IsBrowsable (VARIANT_BOOL *pb) override
 
STDMETHOD() get_ModifyDate (DATE *pdt) override
 
STDMETHOD() put_ModifyDate (DATE dt) override
 
STDMETHOD() get_Size (LONG *pul) override
 
STDMETHOD() get_Type (BSTR *pbs) override
 
STDMETHOD() Verbs (FolderItemVerbs **ppfic) override
 
STDMETHOD() InvokeVerb (VARIANT vVerb) override
 
STDMETHOD() InvokeVerbEx (VARIANT vVerb, VARIANT vArgs) override
 
STDMETHOD() ExtendedProperty (BSTR bsPropName, VARIANT *pv) 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 ()
 

Static Public Member Functions

static PCUITEMID_CHILD GetLeafPidlRef (const VARIANT *pV)
 
- 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)
 

Private Member Functions

HRESULT GetParentShellFolderAndItem (REFIID riid, void **ppv, PCUITEMID_CHILD &pidlLast)
 

Static Private Member Functions

static LPCITEMIDLIST GetInternalPidlRef (IUnknown *pUnk)
 
static LPCITEMIDLIST GetInternalPidlRef (const VARIANT *pV)
 

Private Attributes

CComHeapPtr< ITEMIDLISTm_idlist
 
CComPtr< Folder > m_Folder
 

Additional Inherited Members

- Public Attributes inherited from ATL::CComObjectRootBase
LONG m_dwRef
 

Detailed Description

Definition at line 12 of file CFolderItems.h.

Constructor & Destructor Documentation

◆ CFolderItem()

CFolderItem::CFolderItem ( )

Definition at line 14 of file CFolderItems.cpp.

15{
16}

◆ ~CFolderItem()

CFolderItem::~CFolderItem ( )

Definition at line 18 of file CFolderItems.cpp.

19{
20}

Member Function Documentation

◆ ExtendedProperty()

HRESULT STDMETHODCALLTYPE CFolderItem::ExtendedProperty ( BSTR  bsPropName,
VARIANT pv 
)
override

Definition at line 305 of file CFolderItems.cpp.

306{
307 if (!pv)
308 return E_INVALIDARG;
309
310 PROPERTYKEY pkeybuf;
311 const PROPERTYKEY *pPK = SHELL_GetPropertyKeyFromString(bsPropName, &pkeybuf);
312 if (pPK && GetExtendedProperty(*pPK, pv) == S_OK)
313 return S_OK;
314
315 V_VT(pv) = VT_EMPTY;
316 return S_FALSE;
317}
HRESULT GetExtendedProperty(REFPROPERTYKEY pkey, VARIANT *pv)
#define E_INVALIDARG
Definition: ddrawi.h:101
@ VT_EMPTY
Definition: compat.h:2295
#define S_OK
Definition: intsafe.h:52
#define V_VT(A)
Definition: oleauto.h:211
const PROPERTYKEY * SHELL_GetPropertyKeyFromString(_In_ PCWSTR pszString, _Out_ PROPERTYKEY *pkey)
Definition: prop.cpp:60
#define S_FALSE
Definition: winerror.h:3451

◆ get_Application()

HRESULT STDMETHODCALLTYPE CFolderItem::get_Application ( IDispatch **  ppid)
override

Definition at line 84 of file CFolderItems.cpp.

85{
86 TRACE("(%p, %p)\n", this, ppid);
87 return m_Folder->get_Application(ppid);
88}
CComPtr< Folder > m_Folder
Definition: CFolderItems.h:19
#define TRACE(s)
Definition: solgame.cpp:4

◆ get_GetFolder()

HRESULT STDMETHODCALLTYPE CFolderItem::get_GetFolder ( IDispatch **  ppid)
override

Definition at line 165 of file CFolderItems.cpp.

166{
167 return ShellObjectCreatorInit<CFolder>(const_cast<LPITEMIDLIST>(GetAbsoluteIDList()), IID_PPV_ARG(IDispatch, ppid));
168}
LPCITEMIDLIST GetAbsoluteIDList()
Definition: CFolderItems.h:31
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
#define IID_PPV_ARG(Itype, ppType)

◆ get_GetLink()

HRESULT STDMETHODCALLTYPE CFolderItem::get_GetLink ( IDispatch **  ppid)
override

Definition at line 159 of file CFolderItems.cpp.

160{
161 TRACE("(%p, %p)\n", this, ppid);
162 return E_NOTIMPL;
163}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ get_IsBrowsable()

HRESULT STDMETHODCALLTYPE CFolderItem::get_IsBrowsable ( VARIANT_BOOL pb)
override

Definition at line 194 of file CFolderItems.cpp.

195{
196 TRACE("(%p, %p)\n", this, pb);
197 return HasAttribute(SFGAO_BROWSABLE, pb);
198}
HRESULT HasAttribute(DWORD sfgaof, VARIANT_BOOL *pB)

◆ get_IsFileSystem()

HRESULT STDMETHODCALLTYPE CFolderItem::get_IsFileSystem ( VARIANT_BOOL pb)
override

Definition at line 188 of file CFolderItems.cpp.

189{
190 TRACE("(%p, %p)\n", this, pb);
191 return HasAttribute(SFGAO_FILESYSTEM, pb);
192}

◆ get_IsFolder()

HRESULT STDMETHODCALLTYPE CFolderItem::get_IsFolder ( VARIANT_BOOL pb)
override

Definition at line 182 of file CFolderItems.cpp.

183{
184 TRACE("(%p, %p)\n", this, pb);
185 return HasAttribute(SFGAO_FOLDER, pb);
186}

◆ get_IsLink()

HRESULT STDMETHODCALLTYPE CFolderItem::get_IsLink ( VARIANT_BOOL pb)
override

Definition at line 176 of file CFolderItems.cpp.

177{
178 TRACE("(%p, %p)\n", this, pb);
179 return HasAttribute(SFGAO_LINK, pb);
180}

◆ get_ModifyDate()

HRESULT STDMETHODCALLTYPE CFolderItem::get_ModifyDate ( DATE pdt)
override

Definition at line 200 of file CFolderItems.cpp.

201{
202 TRACE("(%p, %p)\n", this, pdt);
203
204 WIN32_FIND_DATA wfd;
206 {
207 FILETIME ft;
208 FileTimeToLocalFileTime(&wfd.ftLastWriteTime, &ft);
209 WORD dd, dt;
210 if (FileTimeToDosDateTime(&ft, &dd, &dt) && DosDateTimeToVariantTime(dd, dt, pdt))
211 return S_OK;
212 }
213 *pdt = 0;
214 return S_FALSE;
215}
HRESULT GetFindDataFromIDList(WIN32_FIND_DATA &wfd)
BOOL WINAPI FileTimeToLocalFileTime(IN CONST FILETIME *lpFileTime, OUT LPFILETIME lpLocalFileTime)
Definition: time.c:216
BOOL WINAPI FileTimeToDosDateTime(IN CONST FILETIME *lpFileTime, OUT LPWORD lpFatDate, OUT LPWORD lpFatTime)
Definition: time.c:37
unsigned short WORD
Definition: ntddk_ex.h:93
#define SUCCEEDED(hr)
Definition: intsafe.h:50
INT WINAPI DosDateTimeToVariantTime(USHORT wDosDate, USHORT wDosTime, double *pDateOut)
Definition: variant.c:1211

◆ get_Name()

HRESULT STDMETHODCALLTYPE CFolderItem::get_Name ( BSTR pbs)
override

Definition at line 99 of file CFolderItems.cpp.

100{
101 TRACE("(%p, %p)\n", this, pbs);
102
103 *pbs = NULL;
104
106 PCUITEMID_CHILD last_part;
109 return hr;
110
111 STRRET strret;
112 hr = Parent->GetDisplayNameOf(last_part, SHGDN_INFOLDER, &strret);
114 hr = StrRetToBSTR(&strret, last_part, pbs);
115
116 return hr;
117}
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE Parent
Definition: acpixf.h:732
HRESULT GetParentShellFolderAndItem(REFIID riid, void **ppv, PCUITEMID_CHILD &pidlLast)
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
HRESULT WINAPI StrRetToBSTR(STRRET *lpStrRet, LPCITEMIDLIST pidl, BSTR *pBstrOut)
Definition: string.c:418
#define FAILED_UNEXPECTEDLY
Definition: utils.cpp:33
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
Definition: shtypes.idl:70

◆ get_Parent()

HRESULT STDMETHODCALLTYPE CFolderItem::get_Parent ( IDispatch **  ppid)
override

Definition at line 90 of file CFolderItems.cpp.

91{
92 TRACE("(%p, %p)\n", this, ppid);
93
94 if (!ppid)
95 return E_INVALIDARG;
96 return m_Folder->QueryInterface(IID_PPV_ARG(IDispatch, ppid));
97}

◆ get_Path()

HRESULT STDMETHODCALLTYPE CFolderItem::get_Path ( BSTR pbs)
override

Definition at line 143 of file CFolderItems.cpp.

144{
145 CComPtr<IShellFolder> psfDesktop;
146
147 HRESULT hr = SHGetDesktopFolder(&psfDesktop);
148 if (!SUCCEEDED(hr))
149 return hr;
150
151 STRRET strret;
152 hr = psfDesktop->GetDisplayNameOf(m_idlist, SHGDN_FORPARSING, &strret);
154 return hr;
155
156 return StrRetToBSTR(&strret, NULL, pbs);
157}
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
CComHeapPtr< ITEMIDLIST > m_idlist
Definition: CFolderItems.h:18

◆ get_Size()

HRESULT STDMETHODCALLTYPE CFolderItem::get_Size ( LONG pul)
override

Definition at line 223 of file CFolderItems.cpp.

224{
225 TRACE("(%p, %p)\n", this, pul);
226
227 WIN32_FIND_DATA wfd;
229 {
230 *pul = wfd.nFileSizeLow;
231 return S_OK;
232 }
233 *pul = 0;
234 return S_FALSE;
235}

◆ get_Type()

HRESULT STDMETHODCALLTYPE CFolderItem::get_Type ( BSTR pbs)
override

Definition at line 237 of file CFolderItems.cpp.

238{
239 TRACE("(%p, %p)\n", this, pbs);
240
241 VARIANT v;
242 V_VT(&v) = VT_EMPTY;
243 if (SUCCEEDED(GetExtendedProperty(PKEY_ItemTypeText, &v)))
244 {
246 {
247 *pbs = V_BSTR(&v);
248 return S_OK;
249 }
250 VariantClear(&v);
251 }
253 return hr == S_OK ? S_FALSE : hr;
254}
@ VT_BSTR
Definition: compat.h:2303
#define L(x)
Definition: resources.c:13
const GLdouble * v
Definition: gl.h:2040
#define V_BSTR(A)
Definition: oleauto.h:226
static HRESULT SHELL_SysAllocString(PCWSTR in, BSTR *out)
Definition: shell32_main.h:259
HRESULT WINAPI DECLSPEC_HOTPATCH VariantChangeType(VARIANTARG *pvargDest, VARIANTARG *pvargSrc, USHORT wFlags, VARTYPE vt)
Definition: variant.c:962
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
Definition: variant.c:648

◆ GetAbsoluteIDList()

LPCITEMIDLIST CFolderItem::GetAbsoluteIDList ( )
inline

Definition at line 31 of file CFolderItems.h.

31{ return m_idlist; }

Referenced by get_GetFolder(), GetParentShellFolderAndItem(), HasAttribute(), InvokeVerbEx(), and Verbs().

◆ GetExtendedProperty()

HRESULT CFolderItem::GetExtendedProperty ( REFPROPERTYKEY  pkey,
VARIANT pv 
)

Definition at line 297 of file CFolderItems.cpp.

298{
300 PCUITEMID_CHILD pidlLeaf;
302 return FAILED(hr) ? hr : psf->GetDetailsEx(pidlLeaf, reinterpret_cast<const SHCOLUMNID*>(&pkey), pv);
303}
#define FAILED(hr)
Definition: intsafe.h:51

Referenced by ExtendedProperty(), and get_Type().

◆ GetFindDataFromIDList()

HRESULT CFolderItem::GetFindDataFromIDList ( WIN32_FIND_DATA wfd)

Definition at line 73 of file CFolderItems.cpp.

74{
76 PCUITEMID_CHILD pidlLeaf;
79 return hr;
80 return SHGetDataFromIDListW(psf, pidlLeaf, SHGDFIL_FINDDATA, &wfd, sizeof(wfd));
81}
HRESULT WINAPI SHGetDataFromIDListW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int nFormat, LPVOID dest, int len)
Definition: pidl.c:1358
#define SHGDFIL_FINDDATA
Definition: shlobj.h:1468

Referenced by get_ModifyDate(), and get_Size().

◆ GetHwnd()

HWND CFolderItem::GetHwnd ( )
inline

Definition at line 32 of file CFolderItems.h.

32{ return NULL; }

Referenced by InvokeVerbEx(), and put_Name().

◆ GetInternalPidlRef() [1/2]

LPCITEMIDLIST CFolderItem::GetInternalPidlRef ( const VARIANT pV)
staticprivate

Definition at line 50 of file CFolderItems.cpp.

51{
52 if (!pV)
53 return NULL;
54
55 if (V_VT(pV) == (VT_VARIANT | VT_BYREF) && V_VARIANTREF(pV))
56 pV = V_VARIANTREF(pV);
57
58 switch (V_VT(pV))
59 {
60 case VT_DISPATCH | VT_BYREF:
62 case VT_DISPATCH:
64 }
65 return NULL;
66}
static LPCITEMIDLIST GetInternalPidlRef(IUnknown *pUnk)
@ VT_BYREF
Definition: compat.h:2342
@ VT_VARIANT
Definition: compat.h:2307
@ VT_DISPATCH
Definition: compat.h:2304
#define V_VARIANTREF(A)
Definition: oleauto.h:283
#define V_DISPATCHREF(A)
Definition: oleauto.h:240
#define V_DISPATCH(A)
Definition: oleauto.h:239

◆ GetInternalPidlRef() [2/2]

LPCITEMIDLIST CFolderItem::GetInternalPidlRef ( IUnknown pUnk)
staticprivate

Definition at line 36 of file CFolderItems.cpp.

37{
38 LPCITEMIDLIST pidl = NULL;
39 FolderItem2 *pFI2;
40 if (pUnk && SUCCEEDED(pUnk->QueryInterface(IID_PPV_ARG(FolderItem2, &pFI2))))
41 {
42 // This assumes we are the only implementer of CFolderItem (probably true)
43 // but when we get IParentAndItem we can do this in a safer way
44 pidl = static_cast<CFolderItem*>(pFI2)->m_idlist;
45 pFI2->Release();
46 }
47 return pidl;
48}
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Definition: dplayx.c:30
nsresult QueryInterface(nsIIDRef riid, void **result)
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Definition: shtypes.idl:42

Referenced by GetInternalPidlRef(), and GetLeafPidlRef().

◆ GetLeafPidlRef()

PCUITEMID_CHILD CFolderItem::GetLeafPidlRef ( const VARIANT pV)
static

Definition at line 68 of file CFolderItems.cpp.

69{
71}
LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST pidl)
Definition: pidl.c:199

Referenced by CFolder::GetDetailsOf().

◆ GetParentShellFolderAndItem()

HRESULT CFolderItem::GetParentShellFolderAndItem ( REFIID  riid,
void **  ppv,
PCUITEMID_CHILD pidlLast 
)
inlineprivate

Definition at line 31 of file CFolderItems.cpp.

32{
33 return SHBindToParent(GetAbsoluteIDList(), riid, ppv, &pidlLast);
34}
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
Definition: pidl.c:1504

Referenced by get_Name(), GetExtendedProperty(), GetFindDataFromIDList(), and put_Name().

◆ HasAttribute()

HRESULT CFolderItem::HasAttribute ( DWORD  sfgaof,
VARIANT_BOOL pB 
)

Definition at line 170 of file CFolderItems.cpp.

171{
172 *pB = SHGetAttributes(NULL, GetAbsoluteIDList(), sfgaof) ? VARIANT_TRUE : VARIANT_FALSE;
173 return S_OK;
174}
DWORD SHGetAttributes(_In_ IShellFolder *psf, _In_ LPCITEMIDLIST pidl, _In_ DWORD dwAttributes)
Definition: utils.cpp:510

Referenced by get_IsBrowsable(), get_IsFileSystem(), get_IsFolder(), and get_IsLink().

◆ Initialize()

HRESULT CFolderItem::Initialize ( Folder *  folder,
LPCITEMIDLIST  idlist 
)

Definition at line 22 of file CFolderItems.cpp.

23{
24 m_idlist.Attach(ILClone(idlist));
25 if (!m_idlist)
26 return E_OUTOFMEMORY;
28 return S_OK;
29}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
Definition: pidl.c:238
Definition: fci.c:116

◆ InvokeVerb()

HRESULT STDMETHODCALLTYPE CFolderItem::InvokeVerb ( VARIANT  vVerb)
override

Definition at line 272 of file CFolderItems.cpp.

273{
275 V_VT(&empty) = VT_EMPTY;
276 return InvokeVerbEx(vVerb, empty);
277}
STDMETHOD() InvokeVerbEx(VARIANT vVerb, VARIANT vArgs) override
static const WCHAR empty[1]
Definition: string.c:47

◆ InvokeVerbEx()

HRESULT STDMETHODCALLTYPE CFolderItem::InvokeVerbEx ( VARIANT  vVerb,
VARIANT  vArgs 
)
override

Definition at line 279 of file CFolderItems.cpp.

280{
281 TRACE("(%p, %s)\n", this, wine_dbgstr_variant(&vVerb));
282
284 sei.cbSize = sizeof(sei);
286 sei.hwnd = GetHwnd();
287 sei.lpVerb = V_VT(&vVerb) == VT_BSTR ? V_BSTR(&vVerb) : NULL;
288 sei.lpFile = NULL;
289 sei.lpParameters = V_VT(&vArgs) == VT_BSTR ? V_BSTR(&vArgs) : NULL;
290 sei.lpDirectory = NULL;
291 sei.nShow = SW_SHOW;
292 sei.lpIDList = const_cast<LPITEMIDLIST>(GetAbsoluteIDList());
293 ShellExecuteExW(&sei);
294 return S_OK;
295}
HWND GetHwnd()
Definition: CFolderItems.h:32
#define SEE_MASK_INVOKEIDLIST
Definition: shellapi.h:28
#define SEE_MASK_FLAG_NO_UI
Definition: shellapi.h:38
BOOL WINAPI DECLSPEC_HOTPATCH ShellExecuteExW(LPSHELLEXECUTEINFOW sei)
Definition: shlexec.cpp:2723
LPCWSTR lpDirectory
Definition: shellapi.h:340
LPCWSTR lpParameters
Definition: shellapi.h:339
#define SW_SHOW
Definition: winuser.h:786

Referenced by InvokeVerb().

◆ put_ModifyDate()

HRESULT STDMETHODCALLTYPE CFolderItem::put_ModifyDate ( DATE  dt)
override

Definition at line 217 of file CFolderItems.cpp.

218{
219 TRACE("(%p, %f)\n", this, dt);
220 return E_NOTIMPL;
221}

◆ put_Name()

HRESULT STDMETHODCALLTYPE CFolderItem::put_Name ( BSTR  bs)
override

Definition at line 119 of file CFolderItems.cpp.

120{
121 TRACE("(%p, %s)\n", this, wine_dbgstr_w(bs));
122
124 PCUITEMID_CHILD pidlLeaf;
127 return hr;
128
129 LPITEMIDLIST pidlNew;
130 if (SUCCEEDED(hr = psf->SetNameOf(GetHwnd(), pidlLeaf, bs, SHGDN_INFOLDER, &pidlNew)) && pidlNew)
131 {
132 LPITEMIDLIST pidlClone = ILClone(m_idlist);
133 ILRemoveLastID(pidlClone);
134 if (pidlClone && SUCCEEDED(SHILAppend(pidlNew, &pidlClone)))
135 {
136 m_idlist.Free();
137 m_idlist.Attach(pidlClone);
138 }
139 }
140 return hr;
141}
HRESULT SHILAppend(_Inout_ LPITEMIDLIST pidl, _Inout_ LPITEMIDLIST *ppidl)
Definition: utils.cpp:275
#define wine_dbgstr_w
Definition: kernel32.h:34
static struct msdos_boot_sector bs
Definition: mkdosfs.c:539
BOOL WINAPI ILRemoveLastID(LPITEMIDLIST pidl)
Definition: pidl.c:222

◆ Verbs()

HRESULT STDMETHODCALLTYPE CFolderItem::Verbs ( FolderItemVerbs **  ppfic)
override

Definition at line 256 of file CFolderItems.cpp.

257{
258 if (!ppfic)
259 return E_POINTER;
260
263 if (SUCCEEDED(hr))
264 hr = pVerbs->Init(GetAbsoluteIDList());
266 return hr;
267
268 *ppfic = pVerbs.Detach();
269 return S_OK;
270}
T * Detach()
Definition: atlcomcli.h:186
static HRESULT CreateInstance(CComPtr< CFolderItemVerbs > &objref)
#define E_POINTER
Definition: winerror.h:3480

Member Data Documentation

◆ m_Folder

CComPtr<Folder> CFolderItem::m_Folder
private

Definition at line 19 of file CFolderItems.h.

Referenced by get_Application(), get_Parent(), and Initialize().

◆ m_idlist

CComHeapPtr<ITEMIDLIST> CFolderItem::m_idlist
private

Definition at line 18 of file CFolderItems.h.

Referenced by get_Path(), GetAbsoluteIDList(), GetInternalPidlRef(), Initialize(), and put_Name().


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