Go to the source code of this file.
|
| WINE_DEFAULT_DEBUG_CHANNEL (shell) |
|
SHCONTF | SHELL_GetDefaultFolderEnumSHCONTF () |
|
BOOL | SHELL_IncludeItemInFolderEnum (IShellFolder *pSF, PCUITEMID_CHILD pidl, SFGAOF Query, SHCONTF Flags) |
|
HRESULT | SHELL_CreateAbsolutePidl (IShellFolder *pSF, PCUIDLIST_RELATIVE pidlChild, PIDLIST_ABSOLUTE *ppPidl) |
|
HRESULT | Shell_NextElement (_Inout_ LPWSTR *ppch, _Out_ LPWSTR pszOut, _In_ INT cchOut, _In_ BOOL bValidate) |
|
HRESULT | SHELL32_ParseNextElement (IShellFolder2 *psf, HWND hwndOwner, LPBC pbc, LPITEMIDLIST *pidlInOut, LPOLESTR szNext, DWORD *pEaten, DWORD *pdwAttributes) |
|
HRESULT | SHELL32_CoCreateInitSF (LPCITEMIDLIST pidlRoot, PERSIST_FOLDER_TARGET_INFO *ppfti, LPCITEMIDLIST pidlChild, const GUID *clsid, REFIID riid, LPVOID *ppvOut) |
|
HRESULT | SHELL32_CoCreateInitSF (LPCITEMIDLIST pidlRoot, const GUID *clsid, int csidl, REFIID riid, LPVOID *ppvOut) |
|
HRESULT | SHELL32_BindToSF (LPCITEMIDLIST pidlRoot, PERSIST_FOLDER_TARGET_INFO *ppfti, LPCITEMIDLIST pidl, const GUID *clsid, REFIID riid, LPVOID *ppvOut) |
|
HRESULT | SHELL32_GetDisplayNameOfChild (IShellFolder2 *psf, LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet) |
|
HRESULT | SHELL32_CompareChildren (IShellFolder2 *psf, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) |
|
HRESULT | SHELL32_CompareDetails (IShellFolder2 *isf, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) |
|
void | CloseRegKeyArray (HKEY *array, UINT cKeys) |
|
LSTATUS | AddClassKeyToArray (const WCHAR *szClass, HKEY *array, UINT *cKeys) |
|
LSTATUS | AddClsidKeyToArray (REFCLSID clsid, HKEY *array, UINT *cKeys) |
|
void | AddFSClassKeysToArray (UINT cidl, PCUITEMID_CHILD_ARRAY apidl, HKEY *array, UINT *cKeys) |
|
HRESULT | SH_GetApidlFromDataObject (IDataObject *pDataObject, PIDLIST_ABSOLUTE *ppidlfolder, PUITEMID_CHILD **apidlItems, UINT *pcidl) |
|
HRESULT WINAPI | SHCreateLinks (HWND hWnd, LPCSTR lpszDir, IDataObject *lpDataObject, UINT uFlags, LPITEMIDLIST *lppidlLinks) |
|
EXTERN_C HRESULT WINAPI | SHOpenFolderAndSelectItems (PCIDLIST_ABSOLUTE pidlFolder, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, DWORD dwFlags) |
|
HRESULT | SHELL32_ShowPropertiesDialog (IDataObject *pdtobj) |
|
HRESULT | SHELL32_DefaultContextMenuCallBack (IShellFolder *psf, IDataObject *pdo, UINT msg) |
|
◆ AddClassKeyToArray()
Definition at line 323 of file shlfolder.cpp.
324{
325 if (*cKeys >= 16)
327
331 {
332 array[*cKeys] = hkey;
333 *cKeys += 1;
334 }
336}
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
#define HKEY_CLASSES_ROOT
Referenced by AddClsidKeyToArray(), AddFSClassKeysToArray(), CDrivesContextMenu_CreateInstance(), ClassPropDialogInitCallback(), CDesktopFolder::CreateViewObject(), CFSFolder::CreateViewObject(), CRegItemContextMenu_CreateInstance(), CDesktopFolder::GetUIObjectOf(), and CNetFolder::GetUIObjectOf().
◆ AddClsidKeyToArray()
Definition at line 338 of file shlfolder.cpp.
339{
343}
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
LSTATUS AddClassKeyToArray(const WCHAR *szClass, HKEY *array, UINT *cKeys)
Referenced by CDesktopFolder::GetUIObjectOf().
◆ AddFSClassKeysToArray()
Definition at line 345 of file shlfolder.cpp.
346{
347
348
349
350 ASSERT(cidl >= 1 && apidl);
353 {
357 if (pFileData)
358 {
360 }
361 else
362 {
365 }
367
368 if (extension)
369 {
374 {
375
377
378
379 if (cidl == 1)
381 }
382
383 swprintf(wszSFA,
L"SystemFileAssociations\\%s", extension);
385
386 dwSize =
sizeof(wszClass);
388 {
389 swprintf(wszSFA,
L"SystemFileAssociations\\%s", wszClass);
391 }
392 }
393
396 }
398 {
399
400
401
402
403
407 }
408 else
409 {
410 ERR(
"Got non FS pidl\n");
411 }
412}
LSTATUS WINAPI RegGetValueW(HKEY hKey, LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
GLenum GLuint GLenum GLsizei const GLchar * buf
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
FileStructW * _ILGetFileStructW(LPCITEMIDLIST pidl)
BOOL _ILIsFolder(LPCITEMIDLIST pidl)
BOOL _ILIsValue(LPCITEMIDLIST pidl)
DWORD _ILSimpleGetTextW(LPCITEMIDLIST pidl, LPWSTR szOut, UINT uOutSize)
#define PathFindExtension
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
Referenced by FSFolderItemPropDialogInitCallback(), CDesktopFolder::GetUIObjectOf(), and CFSFolder::GetUIObjectOf().
◆ CloseRegKeyArray()
Definition at line 317 of file shlfolder.cpp.
318{
319 for (
UINT i = 0;
i < cKeys; ++
i)
321}
#define RegCloseKey(hKey)
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
◆ SH_GetApidlFromDataObject()
◆ SHCreateLinks()
◆ SHELL32_BindToSF()
Definition at line 208 of file shlfolder.cpp.
210{
212 if (!pidlChild)
214
217 ppfti,
218 pidlChild,
222
225
227 return psf->QueryInterface(
riid, ppvOut);
228 else
230}
BOOL WINAPI _ILIsPidlSimple(LPCITEMIDLIST pidl)
void WINAPI ILFree(LPITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST pidl)
HRESULT SHELL32_CoCreateInitSF(LPCITEMIDLIST pidlRoot, PERSIST_FOLDER_TARGET_INFO *ppfti, LPCITEMIDLIST pidlChild, const GUID *clsid, REFIID riid, LPVOID *ppvOut)
#define IID_PPV_ARG(Itype, ppType)
Referenced by CDrivesFolder::BindToObject(), CFSFolder::BindToObject(), CNetFolder::BindToObject(), and CRegFolder::BindToObject().
◆ SHELL32_CoCreateInitSF() [1/2]
Definition at line 197 of file shlfolder.cpp.
199{
200
201 PERSIST_FOLDER_TARGET_INFO pfti = {0};
202 pfti.dwAttributes = -1;
203 pfti.csidl = csidl;
204
206}
◆ SHELL32_CoCreateInitSF() [2/2]
Definition at line 170 of file shlfolder.cpp.
172{
175
179
183
185 {
186 ppf3->InitializeEx(
NULL, pidlAbsolute, ppfti);
187 }
189 {
190 ppf->Initialize(pidlAbsolute);
191 }
193
194 return pShellFolder->QueryInterface(
riid, ppvOut);
195}
HRESULT WINAPI SHCoCreateInstance(LPCWSTR aclsid, const CLSID *clsid, LPUNKNOWN pUnkOuter, REFIID refiid, LPVOID *ppv)
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
Referenced by SHELL32_BindToSF(), and SHELL32_CoCreateInitSF().
◆ SHELL32_CompareChildren()
◆ SHELL32_CompareDetails()
Definition at line 287 of file shlfolder.cpp.
288{
293
297
301
305
309
313
315}
HRESULT WINAPI StrRetToBufW(LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, UINT len)
HRESULT GetDetailsOf([in] PCUITEMID_CHILD pidl, [in] UINT iColumn, [out] SHELLDETAILS *psd)
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
HRESULT SHELL32_CompareChildren(IShellFolder2 *psf, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
Referenced by CControlPanelFolder::CompareIDs(), CDrivesFolder::CompareIDs(), CFSFolder::CompareIDs(), CPrinterFolder::CompareIDs(), and CRegFolder::CompareIDs().
◆ SHELL32_DefaultContextMenuCallBack()
◆ SHELL32_GetDisplayNameOfChild()
◆ SHELL32_ParseNextElement()
Definition at line 119 of file shlfolder.cpp.
121{
127
129
130
134
135 hr = psfChild->ParseDisplayName(hwndOwner, pbc, szNext, pEaten, &pidlOut, pdwAttributes);
138
140 if (!pidlTemp)
141 {
143 if (pidlOut)
146 }
147
148 if (pidlOut)
150
151 if (pidlIn)
153
154 *pidlInOut = pidlTemp;
155
156 TRACE (
"-- pidl=%p ret=0x%08x\n", pidlInOut ? *pidlInOut :
NULL,
hr);
158}
Referenced by CRegFolder::ParseDisplayName().
◆ SHELL32_ShowPropertiesDialog()
◆ SHELL_CreateAbsolutePidl()
Definition at line 57 of file shlfolder.cpp.
58{
62 {
63 hr = SHILCombine(pidlFolder, pidlChild, ppPidl);
65 }
67}
HRESULT WINAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl)
Referenced by CRegFolder::SetNameOf().
◆ SHELL_GetDefaultFolderEnumSHCONTF()
SHCONTF SHELL_GetDefaultFolderEnumSHCONTF |
( |
| ) |
|
Definition at line 29 of file shlfolder.cpp.
30{
34 if (
ss.fShowAllObjects)
35 Flags |= SHCONTF_INCLUDEHIDDEN;
36 if (
ss.fShowSuperHidden)
37 Flags |= SHCONTF_INCLUDESUPERHIDDEN;
39}
VOID WINAPI SHGetSetSettings(LPSHELLSTATE lpss, DWORD dwMask, BOOL bSet)
#define SSF_SHOWSUPERHIDDEN
#define SSF_SHOWALLOBJECTS
_Must_inspect_result_ _In_ ULONG Flags
Referenced by SHELL32_GetFSItemAttributes().
◆ SHELL_IncludeItemInFolderEnum()
Definition at line 41 of file shlfolder.cpp.
42{
44 {
45 if (
Query & SFGAO_NONENUMERATED)
47 if ((
Query & SFGAO_HIDDEN) && !(
Flags & SHCONTF_INCLUDEHIDDEN))
51 if ((
Flags & (SHCONTF_FOLDERS | SHCONTF_NONFOLDERS)) != (SHCONTF_FOLDERS | SHCONTF_NONFOLDERS))
52 return (
Flags & SHCONTF_FOLDERS) ? (
Query & SFGAO_FOLDER) : !(
Query & SFGAO_FOLDER);
53 }
55}
BOOL Query(LPCTSTR *ServiceArgs, DWORD ArgCount, BOOL bExtended)
HRESULT GetAttributesOf([in] UINT cidl, [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, [in, out] SFGAOF *rgfInOut)
Referenced by CRegFolderEnum::AddItemsFromKey(), and CRegFolderEnum::Initialize().
◆ Shell_NextElement()
Definition at line 70 of file shlfolder.cpp.
75{
77
78 if (!*ppch)
80
83 if (pchNext)
84 {
85 if (*ppch < pchNext)
86 {
87
89 ++pchNext;
90
91 if (!*pchNext)
93
95 }
96 else
97 {
100 }
101 }
102 else
103 {
106 }
107
108 *ppch = pchNext;
109
111 {
114 }
115
117}
BOOL PathIsValidElement(_In_ LPCWSTR pszPath)
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCchCopyNW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc, size_t cchToCopy)
Referenced by CFSFolder::_ParseSimple(), and CFSFolder::ParseDisplayName().
◆ SHOpenFolderAndSelectItems()
Definition at line 455 of file shlfolder.cpp.
459{
460 ERR(
"SHOpenFolderAndSelectItems() is hackplemented\n");
463 if (cidl)
464 {
465
467 {
468 pidlItem = apidl[0];
469 }
470 else
471 {
472 HRESULT hr = SHILCombine(pidlFolder, apidl[0], &pidlItem);
476 }
477 }
478 else
479 {
480 pidlItem = pidlFolder;
481 }
482
484
488
490 hr = psfDesktop->GetDisplayNameOf(pidlItem, SHGDN_FORPARSING, &strret);
493
498
500 wcscpy(wszParams,
L"/select,");
501 wcscat(wszParams, wszBuf);
502
504 memset(&sei, 0,
sizeof sei);
509
512 else
514}
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
#define SEE_MASK_WAITFORINPUTIDLE
static BOOL ILIsSingle(LPCITEMIDLIST pidl)
BOOL WINAPI DECLSPEC_HOTPATCH ShellExecuteExW(LPSHELLEXECUTEINFOW sei)
Referenced by CFindFolderContextMenu::InvokeCommand(), and CShellLink::OnCommand().
◆ WINE_DEFAULT_DEBUG_CHANNEL()
WINE_DEFAULT_DEBUG_CHANNEL |
( |
shell |
| ) |
|