ReactOS 0.4.17-dev-523-gf6fcb59
CSimpleShellItemArray Class Reference

#include <CSimpleShellItemArray.h>

Inheritance diagram for CSimpleShellItemArray:
Collaboration diagram for CSimpleShellItemArray:

Public Member Functions

HRESULT Initialize (_In_reads_(count) IShellItem **pitems, _In_ UINT count)
 
STDMETHODIMP BindToHandler (_In_opt_ IBindCtx *pbc, _In_ REFGUID rbhid, _In_ REFIID riid, _Out_ void **ppv) override
 
STDMETHODIMP GetPropertyStore (_In_ GETPROPERTYSTOREFLAGS flags, _In_ REFIID riid, _Out_ void **ppv) override
 
STDMETHODIMP GetPropertyDescriptionList (_In_ REFPROPERTYKEY keyType, _In_ REFIID riid, _Out_ void **ppv) override
 
STDMETHODIMP GetAttributes (_In_ SIATTRIBFLAGS dwAttribFlags, _In_ SFGAOF sfgaoMask, _Out_ SFGAOF *psfgaoAttribs) override
 
STDMETHODIMP GetCount (_Out_ DWORD *pdwNumItems) override
 
STDMETHODIMP GetItemAt (_In_ DWORD dwIndex, _Out_ IShellItem **ppsi) override
 
STDMETHODIMP EnumItems (_Out_ IEnumShellItems **ppenumShellItems) 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 ()
 

Private Attributes

CAtlArray< CComPtr< IShellItem > > m_items
 

Additional Inherited Members

- 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 4 of file CSimpleShellItemArray.h.

Member Function Documentation

◆ BindToHandler()

STDMETHODIMP CSimpleShellItemArray::BindToHandler ( _In_opt_ IBindCtx pbc,
_In_ REFGUID  rbhid,
_In_ REFIID  riid,
_Out_ void **  ppv 
)
override

Definition at line 125 of file CShellItemArray.cpp.

126{
128 *ppv = NULL;
129 return E_NOTIMPL;
130}
#define UNIMPLEMENTED
Definition: ntoskrnl.c:15
#define E_NOTIMPL
Definition: ddrawi.h:99
#define NULL
Definition: types.h:112
REFIID LPVOID * ppv
Definition: atlbase.h:39

◆ EnumItems()

STDMETHODIMP CSimpleShellItemArray::EnumItems ( _Out_ IEnumShellItems **  ppenumShellItems)
override

Definition at line 210 of file CShellItemArray.cpp.

211{
213 *ppenumShellItems = NULL;
214 return E_NOTIMPL;
215}

◆ GetAttributes()

STDMETHODIMP CSimpleShellItemArray::GetAttributes ( _In_ SIATTRIBFLAGS  dwAttribFlags,
_In_ SFGAOF  sfgaoMask,
_Out_ SFGAOF psfgaoAttribs 
)
override

Definition at line 149 of file CShellItemArray.cpp.

150{
151 HRESULT hr = S_OK;
152 SFGAOF attr;
153
154 if (!psfgaoAttribs)
155 return E_POINTER;
156
157 if (dwAttribFlags & ~(SIATTRIBFLAGS_AND | SIATTRIBFLAGS_OR))
158 FIXME("%08x contains unsupported attribution flags\n", dwAttribFlags);
159
160 for (size_t i = 0; i < m_items.GetCount(); ++i)
161 {
162 hr = m_items[i]->GetAttributes(sfgaoMask, &attr);
164 break;
165
166 if (i == 0)
167 {
168 *psfgaoAttribs = attr;
169 continue;
170 }
171
172 if ((dwAttribFlags & SIATTRIBFLAGS_MASK) == SIATTRIBFLAGS_AND)
173 *psfgaoAttribs &= attr;
174 else
175 *psfgaoAttribs |= attr;
176 }
177
178 if (SUCCEEDED(hr))
179 {
180 if (*psfgaoAttribs == sfgaoMask)
181 return S_OK;
182 return S_FALSE;
183 }
184 return hr;
185}
#define FIXME(fmt,...)
Definition: precomp.h:53
CAtlArray< CComPtr< IShellItem > > m_items
HRESULT hr
Definition: delayimp.cpp:582
#define FAILED_UNEXPECTEDLY
Definition: utils.cpp:33
static IShellFolder IShellItem **static IBindCtx LPITEMIDLIST SFGAOF
Definition: ebrowser.c:83
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define S_OK
Definition: intsafe.h:52
#define SUCCEEDED(hr)
Definition: intsafe.h:50
Definition: cookie.c:202
#define S_FALSE
Definition: winerror.h:3451
#define E_POINTER
Definition: winerror.h:3480

◆ GetCount()

STDMETHODIMP CSimpleShellItemArray::GetCount ( _Out_ DWORD pdwNumItems)
override

Definition at line 188 of file CShellItemArray.cpp.

189{
190 if (!pdwNumItems)
191 return E_INVALIDARG;
192 *pdwNumItems = static_cast<DWORD>(m_items.GetCount());
193 return S_OK;
194}
#define E_INVALIDARG
Definition: ddrawi.h:101
unsigned long DWORD
Definition: ntddk_ex.h:95

◆ GetItemAt()

STDMETHODIMP CSimpleShellItemArray::GetItemAt ( _In_ DWORD  dwIndex,
_Out_ IShellItem **  ppsi 
)
override

Definition at line 197 of file CShellItemArray.cpp.

198{
199 if (!ppsi)
200 return E_INVALIDARG;
201 *ppsi = NULL;
202 if (dwIndex >= m_items.GetCount())
203 return E_FAIL;
204 *ppsi = m_items[dwIndex];
205 (*ppsi)->AddRef();
206 return S_OK;
207}
#define E_FAIL
Definition: ddrawi.h:102

◆ GetPropertyDescriptionList()

STDMETHODIMP CSimpleShellItemArray::GetPropertyDescriptionList ( _In_ REFPROPERTYKEY  keyType,
_In_ REFIID  riid,
_Out_ void **  ppv 
)
override

Definition at line 141 of file CShellItemArray.cpp.

142{
144 *ppv = NULL;
145 return E_NOTIMPL;
146}

◆ GetPropertyStore()

STDMETHODIMP CSimpleShellItemArray::GetPropertyStore ( _In_ GETPROPERTYSTOREFLAGS  flags,
_In_ REFIID  riid,
_Out_ void **  ppv 
)
override

Definition at line 133 of file CShellItemArray.cpp.

134{
136 *ppv = NULL;
137 return E_NOTIMPL;
138}

◆ Initialize()

HRESULT CSimpleShellItemArray::Initialize ( _In_reads_(count) IShellItem **  pitems,
_In_ UINT  count 
)

Definition at line 110 of file CShellItemArray.cpp.

111{
112 if (!m_items.SetCount(0))
113 return E_OUTOFMEMORY;
114 for (UINT i = 0; i < count; ++i)
115 {
116 CComPtr<IShellItem> ptr = pitems[i];
117 if (!ptr)
118 return E_INVALIDARG;
119 m_items.Add(ptr);
120 }
121 return S_OK;
122}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
GLuint GLuint GLsizei count
Definition: gl.h:1545
unsigned int UINT
Definition: sysinfo.c:13
static PVOID ptr
Definition: dispmode.c:27

Member Data Documentation

◆ m_items

CAtlArray<CComPtr<IShellItem> > CSimpleShellItemArray::m_items
private

Definition at line 9 of file CSimpleShellItemArray.h.

Referenced by GetAttributes(), GetCount(), GetItemAt(), and Initialize().


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