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_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 311 of file shlfolder.cpp.
312{
313 if (*cKeys >= 16)
315
319 {
320 array[*cKeys] = hkey;
321 *cKeys += 1;
322 }
324}
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 326 of file shlfolder.cpp.
327{
331}
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 333 of file shlfolder.cpp.
334{
335
336
337
338 ASSERT(cidl >= 1 && apidl);
341 {
345 if (pFileData)
346 {
348 }
349 else
350 {
353 }
355
356 if (extension)
357 {
362 {
363
365
366
367 if (cidl == 1)
369 }
370
371 swprintf(wszSFA,
L"SystemFileAssociations\\%s", extension);
373
374 dwSize =
sizeof(wszClass);
376 {
377 swprintf(wszSFA,
L"SystemFileAssociations\\%s", wszClass);
379 }
380 }
381
384 }
386 {
387
388
389
390
391
395 }
396 else
397 {
398 ERR(
"Got non FS pidl\n");
399 }
400}
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 305 of file shlfolder.cpp.
306{
307 for (
UINT i = 0;
i < cKeys; ++
i)
309}
#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 196 of file shlfolder.cpp.
198{
200 if (!pidlChild)
202
205 ppfti,
206 pidlChild,
210
213
215 return psf->QueryInterface(
riid, ppvOut);
216 else
218}
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 185 of file shlfolder.cpp.
187{
188
189 PERSIST_FOLDER_TARGET_INFO pfti = {0};
190 pfti.dwAttributes = -1;
191 pfti.csidl = csidl;
192
194}
◆ SHELL32_CoCreateInitSF() [2/2]
Definition at line 158 of file shlfolder.cpp.
160{
163
167
171
173 {
174 ppf3->InitializeEx(
NULL, pidlAbsolute, ppfti);
175 }
177 {
178 ppf->Initialize(pidlAbsolute);
179 }
181
182 return pShellFolder->QueryInterface(
riid, ppvOut);
183}
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 275 of file shlfolder.cpp.
276{
281
285
289
293
297
301
303}
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 107 of file shlfolder.cpp.
109{
115
117
118
122
123 hr = psfChild->ParseDisplayName(hwndOwner, pbc, szNext, pEaten, &pidlOut, pdwAttributes);
126
128 if (!pidlTemp)
129 {
131 if (pidlOut)
134 }
135
136 if (pidlOut)
138
139 if (pidlIn)
141
142 *pidlInOut = pidlTemp;
143
144 TRACE (
"-- pidl=%p ret=0x%08x\n", pidlInOut ? *pidlInOut :
NULL,
hr);
146}
Referenced by CRegFolder::ParseDisplayName().
◆ SHELL32_ShowPropertiesDialog()
◆ 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))
49 if ((
Query & (SFGAO_HIDDEN | SFGAO_SYSTEM)) == (SFGAO_HIDDEN | SFGAO_SYSTEM) && !(
Flags & SHCONTF_INCLUDESUPERHIDDEN))
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 58 of file shlfolder.cpp.
63{
65
66 if (!*ppch)
68
71 if (pchNext)
72 {
73 if (*ppch < pchNext)
74 {
75
77 ++pchNext;
78
79 if (!*pchNext)
81
83 }
84 else
85 {
88 }
89 }
90 else
91 {
94 }
95
96 *ppch = pchNext;
97
99 {
102 }
103
105}
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 443 of file shlfolder.cpp.
447{
448 ERR(
"SHOpenFolderAndSelectItems() is hackplemented\n");
451 if (cidl)
452 {
453
455 {
456 pidlItem = apidl[0];
457 }
458 else
459 {
460 HRESULT hr = SHILCombine(pidlFolder, apidl[0], &pidlItem);
464 }
465 }
466 else
467 {
468 pidlItem = pidlFolder;
469 }
470
472
476
478 hr = psfDesktop->GetDisplayNameOf(pidlItem, SHGDN_FORPARSING, &strret);
481
486
488 wcscpy(wszParams,
L"/select,");
489 wcscat(wszParams, wszBuf);
490
492 memset(&sei, 0,
sizeof sei);
497
500 else
502}
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
#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 |
| ) |
|