ReactOS 0.4.17-dev-1190-g4c812f4
CTestShellFolder Class Reference
Inheritance diagram for CTestShellFolder:
Collaboration diagram for CTestShellFolder:

Public Member Functions

 CTestShellFolder ()
 
virtual ~CTestShellFolder ()
 
STDMETHOD() QueryInterface (REFIID riid, void **ppvObject) override
 
 STDMETHOD_ (ULONG, AddRef)() override
 
 STDMETHOD_ (ULONG, Release)() override
 
STDMETHOD() ParseDisplayName (HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, ULONG *pchEaten, PIDLIST_RELATIVE *ppidl, ULONG *pdwAttributes) override
 
STDMETHOD() EnumObjects (HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST *ppEnumIDList) override
 
STDMETHOD() BindToObject (PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut) override
 
STDMETHOD() BindToStorage (PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut) override
 
STDMETHOD() CompareIDs (LPARAM lParam, PCUIDLIST_RELATIVE pidl1, PCUIDLIST_RELATIVE pidl2) override
 
STDMETHOD() CreateViewObject (HWND hwndOwner, REFIID riid, LPVOID *ppvOut) override
 
STDMETHOD() GetAttributesOf (UINT cidl, PCUITEMID_CHILD_ARRAY apidl, DWORD *rgfInOut) override
 
STDMETHOD() GetUIObjectOf (HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *prgfInOut, LPVOID *ppvOut) override
 
STDMETHOD() GetDisplayNameOf (PCUITEMID_CHILD pidl, DWORD dwFlags, LPSTRRET strRet) override
 
STDMETHOD() SetNameOf (HWND hwndOwner, PCUITEMID_CHILD pidl, LPCOLESTR lpName, DWORD dwFlags, PITEMID_CHILD *pPidlOut) override
 
- Public Member Functions inherited from IShellFolder
HRESULT ParseDisplayName ([in] HWND hwndOwner, [in] LPBC pbcReserved, [in, string] LPOLESTR lpszDisplayName, [out] ULONG *pchEaten, [out] PIDLIST_RELATIVE *ppidl, [in, out, unique] ULONG *pdwAttributes)
 
HRESULT EnumObjects ([in] HWND hwndOwner, [in] SHCONTF grfFlags, [out] IEnumIDList **ppenumIDList)
 
HRESULT BindToObject ([in] PCUIDLIST_RELATIVE pidl, [in] LPBC pbcReserved, [in] REFIID riid, [out, iid_is(riid)] void **ppvOut)
 
HRESULT BindToStorage ([in] PCUIDLIST_RELATIVE pidl, [in] LPBC pbcReserved, [in] REFIID riid, [out, iid_is(riid)] void **ppvObj)
 
HRESULT CompareIDs ([in] LPARAM lParam, [in] PCUIDLIST_RELATIVE pidl1, [in] PCUIDLIST_RELATIVE pidl2)
 
HRESULT CreateViewObject ([in] HWND hwndOwner, [in] REFIID riid, [out, iid_is(riid)] void **ppvOut)
 
HRESULT GetAttributesOf ([in] UINT cidl, [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, [in, out] SFGAOF *rgfInOut)
 
HRESULT GetUIObjectOf ([in] HWND hwndOwner, [in] UINT cidl, [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, [in] REFIID riid, [in, out, unique] UINT *prgfInOut, [out, iid_is(riid)] void **ppvOut)
 
HRESULT GetDisplayNameOf ([in] PCUITEMID_CHILD pidl, [in] SHGDNF uFlags, [out] STRRET *lpName)
 
HRESULT SetNameOf ([in] HWND hwnd, [in] PCUITEMID_CHILD pidl, [in, string] LPCOLESTR lpszName, [in] SHGDNF uFlags, [out] PITEMID_CHILD *ppidlOut)
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
ULONG AddRef ()
 
ULONG Release ()
 

Static Public Member Functions

static void * operator new (size_t size)
 
static void operator delete (void *ptr)
 
static void operator delete (void *ptr, size_t size)
 

Public Attributes

int m_QISF2 = 0
 

Additional Inherited Members

- Public Types inherited from IShellFolder
enum  tagSHGDN {
  SHGDN_NORMAL = 0 , SHGDN_INFOLDER = 1 , SHGDN_FOREDITING = 0x1000 , SHGDN_INCLUDE_NONFILESYS = 0x2000 ,
  SHGDN_FORADDRESSBAR = 0x4000 , SHGDN_FORPARSING = 0x8000
}
 
enum  tagSHCONTF {
  SHCONTF_FOLDERS = 32 , SHCONTF_NONFOLDERS = 64 , SHCONTF_INCLUDEHIDDEN = 128 , SHCONTF_INIT_ON_FIRST_NEXT = 256 ,
  SHCONTF_NETPRINTERSRCH = 512 , SHCONTF_SHAREABLE = 1024 , SHCONTF_STORAGE = 2048 , SHCONTF_NAVIGATION_ENUM = 0x01000 ,
  SHCONTF_FASTITEMS = 0x02000 , SHCONTF_FLATLIST = 0x04000 , SHCONTF_ENABLE_ASYNC = 0x08000 , SHCONTF_INCLUDESUPERHIDDEN = 0x10000
}
 
typedef IShellFolder * LPSHELLFOLDER
 
typedef enum IShellFolder::tagSHGDN SHGNO
 
typedef DWORD SHGDNF
 
typedef DWORD SHCONTF
 
typedef ULONG SFGAOF
 
- Public Types inherited from IUnknown
typedef IUnknown * LPUNKNOWN
 

Detailed Description

Definition at line 18 of file IShellFolderHelpers.cpp.

Constructor & Destructor Documentation

◆ CTestShellFolder()

CTestShellFolder::CTestShellFolder ( )
inline

Definition at line 23 of file IShellFolderHelpers.cpp.

23{ }

◆ ~CTestShellFolder()

virtual CTestShellFolder::~CTestShellFolder ( )
inlinevirtual

Definition at line 24 of file IShellFolderHelpers.cpp.

24{ }

Member Function Documentation

◆ BindToObject()

STDMETHOD() CTestShellFolder::BindToObject ( PCUIDLIST_RELATIVE  pidl,
LPBC  pbcReserved,
REFIID  riid,
LPVOID *  ppvOut 
)
inlineoverride

Definition at line 99 of file IShellFolderHelpers.cpp.

104 {
105 ok_int(TRUE, FALSE);
106 return E_NOTIMPL;
107 }
#define ok_int(expression, result)
Definition: atltest.h:134
#define E_NOTIMPL
Definition: ddrawi.h:99
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117

◆ BindToStorage()

STDMETHOD() CTestShellFolder::BindToStorage ( PCUIDLIST_RELATIVE  pidl,
LPBC  pbcReserved,
REFIID  riid,
LPVOID *  ppvOut 
)
inlineoverride

Definition at line 108 of file IShellFolderHelpers.cpp.

113 {
114 ok_int(TRUE, FALSE);
115 return E_NOTIMPL;
116 }

◆ CompareIDs()

STDMETHOD() CTestShellFolder::CompareIDs ( LPARAM  lParam,
PCUIDLIST_RELATIVE  pidl1,
PCUIDLIST_RELATIVE  pidl2 
)
inlineoverride

Implements IShellFolder.

Definition at line 117 of file IShellFolderHelpers.cpp.

121 {
122 switch (s_nStep)
123 {
124 case 11:
125 // It shouldn't come here
126 ok_int(TRUE, FALSE);
127 break;
128 case 12:
129 ok_long((LONG)lParam, 0x00001234);
130 break;
131 case 13:
132 ok_long((LONG)lParam, 0x00005678);
133 break;
134 case 99:
135 return lParam;
136 default:
137 skip("\n");
138 break;
139 }
140 ++s_nStep;
141 return 0xFEEDF00D;
142 }
static INT s_nStep
#define ok_long(expression, result)
Definition: atltest.h:133
#define skip(...)
Definition: atltest.h:64
LPARAM lParam
Definition: combotst.c:139
long LONG
Definition: pedump.c:60

◆ CreateViewObject()

STDMETHOD() CTestShellFolder::CreateViewObject ( HWND  hwndOwner,
REFIID  riid,
LPVOID *  ppvOut 
)
inlineoverride

Definition at line 143 of file IShellFolderHelpers.cpp.

147 {
148 ok_int(TRUE, FALSE);
149 return E_NOTIMPL;
150 }

◆ EnumObjects()

STDMETHOD() CTestShellFolder::EnumObjects ( HWND  hwndOwner,
DWORD  dwFlags,
LPENUMIDLIST *  ppEnumIDList 
)
inlineoverride

Definition at line 91 of file IShellFolderHelpers.cpp.

95 {
97 return E_NOTIMPL;
98 }

◆ GetAttributesOf()

STDMETHOD() CTestShellFolder::GetAttributesOf ( UINT  cidl,
PCUITEMID_CHILD_ARRAY  apidl,
DWORD *  rgfInOut 
)
inlineoverride

Definition at line 151 of file IShellFolderHelpers.cpp.

155 {
156 ok_int(TRUE, FALSE);
157 return E_NOTIMPL;
158 }

◆ GetDisplayNameOf()

STDMETHOD() CTestShellFolder::GetDisplayNameOf ( PCUITEMID_CHILD  pidl,
DWORD  dwFlags,
LPSTRRET  strRet 
)
inlineoverride

Definition at line 170 of file IShellFolderHelpers.cpp.

174 {
175 switch (s_nStep)
176 {
177 case 0:
180 break;
181 case 1:
183 break;
184 case 2:
186 break;
187 case 3:
189 break;
190 case 4:
192 break;
193 case 5:
195 break;
196 case 6:
198 break;
199 case 7:
201 break;
202 case 8:
204 break;
205 case 9:
207 break;
208 default:
209 skip("\n");
210 break;
211 }
212 ++s_nStep;
213 return E_FAIL;
214 }
#define E_FAIL
Definition: ddrawi.h:102
@ SHGDN_FORADDRESSBAR
Definition: shobjidl.idl:165
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141

◆ GetUIObjectOf()

STDMETHOD() CTestShellFolder::GetUIObjectOf ( HWND  hwndOwner,
UINT  cidl,
PCUITEMID_CHILD_ARRAY  apidl,
REFIID  riid,
UINT *  prgfInOut,
LPVOID *  ppvOut 
)
inlineoverride

Definition at line 159 of file IShellFolderHelpers.cpp.

166 {
167 ok_int(TRUE, FALSE);
168 return E_NOTIMPL;
169 }

◆ operator delete() [1/2]

static void CTestShellFolder::operator delete ( void *  ptr)
inlinestatic

Definition at line 30 of file IShellFolderHelpers.cpp.

31 {
33 }
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1594
static PVOID ptr
Definition: dispmode.c:27

◆ operator delete() [2/2]

static void CTestShellFolder::operator delete ( void *  ptr,
size_t  size 
)
inlinestatic

Definition at line 34 of file IShellFolderHelpers.cpp.

35 {
37 }

◆ operator new()

static void * CTestShellFolder::operator new ( size_t  size)
inlinestatic

Definition at line 26 of file IShellFolderHelpers.cpp.

27 {
28 return LocalAlloc(LPTR, size);
29 }
GLsizeiptr size
Definition: glext.h:5919
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
Definition: heapmem.c:1390
#define LPTR
Definition: minwinbase.h:93

◆ ParseDisplayName()

STDMETHOD() CTestShellFolder::ParseDisplayName ( HWND  hwndOwner,
LPBC  pbc,
LPOLESTR  lpszDisplayName,
ULONG *  pchEaten,
PIDLIST_RELATIVE *  ppidl,
ULONG *  pdwAttributes 
)
inlineoverride

Implements IShellFolder.

Definition at line 78 of file IShellFolderHelpers.cpp.

85 {
86 ok_ptr(*ppidl, NULL);
87 ok_long(*pdwAttributes, 0);
88 ++s_nStep;
89 return 0xDEADFACE;
90 }
#define ok_ptr(expression, result)
Definition: atltest.h:108
#define NULL
Definition: types.h:112

◆ QueryInterface()

STDMETHOD() CTestShellFolder::QueryInterface ( REFIID  riid,
void **  ppvObject 
)
inlineoverride

Implements IUnknown.

Definition at line 40 of file IShellFolderHelpers.cpp.

41 {
42 if (riid == IID_IShellFolder2)
43 {
44 if (m_QISF2 && !ppvObject)
45 {
46 return E_POINTER;
47 }
48 else if (m_QISF2 > 0)
49 {
50 *ppvObject = static_cast<IShellFolder*>(this); // Note: This is a lie, we are just a v1
51 AddRef();
52 return S_OK;
53 }
54 else if (m_QISF2 < 0)
55 {
56 *ppvObject = NULL;
57 return E_NOINTERFACE;
58 }
59 }
60
61 ok_int(s_nStep, 11);
62 ok_int(IsEqualGUID(riid, IID_IShellFolder2), TRUE);
63 ++s_nStep;
64 return E_NOINTERFACE;
65 }
REFIID riid
Definition: atlbase.h:39
ULONG AddRef()
#define S_OK
Definition: intsafe.h:52
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define E_NOINTERFACE
Definition: winerror.h:3479
#define E_POINTER
Definition: winerror.h:3480

◆ SetNameOf()

STDMETHOD() CTestShellFolder::SetNameOf ( HWND  hwndOwner,
PCUITEMID_CHILD  pidl,
LPCOLESTR  lpName,
DWORD  dwFlags,
PITEMID_CHILD *  pPidlOut 
)
inlineoverride

Implements IShellFolder.

Definition at line 215 of file IShellFolderHelpers.cpp.

221 {
222 ok_int(TRUE, FALSE);
223 return E_NOTIMPL;
224 }

◆ STDMETHOD_() [1/2]

CTestShellFolder::STDMETHOD_ ( ULONG  ,
AddRef   
)
inlineoverride

Definition at line 66 of file IShellFolderHelpers.cpp.

67 {
68 ok(m_QISF2 > 0, "Unexpected unless we implement IShellFolder2\n");
69 return 1;
70 }
#define ok(value,...)
Definition: atltest.h:57

◆ STDMETHOD_() [2/2]

CTestShellFolder::STDMETHOD_ ( ULONG  ,
Release   
)
inlineoverride

Definition at line 71 of file IShellFolderHelpers.cpp.

72 {
73 ok(m_QISF2 > 0, "Unexpected unless we implement IShellFolder2\n");
74 return 1;
75 }

Member Data Documentation

◆ m_QISF2

int CTestShellFolder::m_QISF2 = 0

Definition at line 21 of file IShellFolderHelpers.cpp.

Referenced by QueryInterface(), STDMETHOD_(), and Test_CompareIDs().


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