Go to the source code of this file.
|
| WINE_DEFAULT_DEBUG_CHANNEL (shell) |
|
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) |
|
LSTATUS | AddClassKeyToArray (const WCHAR *szClass, 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) |
|
static DWORD WINAPI | _ShowPropertiesDialogThread (LPVOID lpParameter) |
|
HRESULT WINAPI | Shell_DefaultContextMenuCallBack (IShellFolder *psf, IDataObject *pdtobj) |
|
◆ _ShowPropertiesDialogThread()
Definition at line 465 of file shlfolder.cpp.
466{
469
470 CDataObjectHIDA cida(pDataObject);
471
473 return cida.hr();
474
475 if (cida->cidl > 1)
476 {
477 ERR(
"SHMultiFileProperties is not yet implemented\n");
479 }
480
484 return 0;
485
488 ERR(
"SH_ShowPropertiesDialog failed\n");
489
490 return 0;
491}
#define FAILED_UNEXPECTEDLY(hr)
BOOL SH_ShowPropertiesDialog(LPCWSTR pwszPath, IDataObject *pDataObj)
HRESULT WINAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName)
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
static PCUIDLIST_RELATIVE HIDA_GetPIDLItem(CIDA const *pida, SIZE_T i)
static PCUIDLIST_ABSOLUTE HIDA_GetPIDLFolder(CIDA const *pida)
Referenced by Shell_DefaultContextMenuCallBack().
◆ AddClassKeyToArray()
Definition at line 277 of file shlfolder.cpp.
278{
279 if (*cKeys >= 16)
281
285 {
286 array[*cKeys] = hkey;
287 *cKeys += 1;
288 }
290}
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
#define HKEY_CLASSES_ROOT
Referenced by AddFSClassKeysToArray(), CDrivesContextMenu_CreateInstance(), CGuidItemContextMenu_CreateInstance(), CDesktopFolder::CreateViewObject(), CDrivesFolder::CreateViewObject(), CFSFolder::CreateViewObject(), and CNetFolder::GetUIObjectOf().
◆ AddFSClassKeysToArray()
Definition at line 292 of file shlfolder.cpp.
293{
294
295
296
297 ASSERT(cidl >= 1 && apidl);
300 {
304 if (pFileData)
305 {
307 }
308 else
309 {
312 }
314
315 if (extension)
316 {
321 {
322
324
325
326 if (cidl == 1)
328 }
329
330 swprintf(wszSFA,
L"SystemFileAssociations\\%s", extension);
332
333 dwSize =
sizeof(wszClass);
335 {
336 swprintf(wszSFA,
L"SystemFileAssociations\\%s", wszClass);
338 }
339 }
340
343 }
345 {
346
347
348
349
350
354 }
355 else
356 {
357 ERR(
"Got non FS pidl\n");
358 }
359}
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)
LSTATUS AddClassKeyToArray(const WCHAR *szClass, HKEY *array, UINT *cKeys)
#define PathFindExtension
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
Referenced by CDesktopFolder::GetUIObjectOf(), and CFSFolder::GetUIObjectOf().
◆ SH_GetApidlFromDataObject()
◆ SHCreateLinks()
◆ SHELL32_BindToSF()
Definition at line 168 of file shlfolder.cpp.
170{
172 if (!pidlChild)
174
177 ppfti,
178 pidlChild,
182
185
187 return psf->QueryInterface(
riid, ppvOut);
188 else
190}
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 157 of file shlfolder.cpp.
159{
160
161 PERSIST_FOLDER_TARGET_INFO pfti = {0};
162 pfti.dwAttributes = -1;
163 pfti.csidl = csidl;
164
166}
◆ SHELL32_CoCreateInitSF() [2/2]
Definition at line 130 of file shlfolder.cpp.
132{
135
139
143
145 {
146 ppf3->InitializeEx(
NULL, pidlAbsolute, ppfti);
147 }
149 {
150 ppf->Initialize(pidlAbsolute);
151 }
153
154 return pShellFolder->QueryInterface(
riid, ppvOut);
155}
HRESULT WINAPI SHCoCreateInstance(LPCWSTR aclsid, const CLSID *clsid, LPUNKNOWN pUnkOuter, REFIID refiid, LPVOID *ppv)
Referenced by SHELL32_BindToSF(), and SHELL32_CoCreateInitSF().
◆ SHELL32_CompareChildren()
◆ SHELL32_CompareDetails()
Definition at line 247 of file shlfolder.cpp.
248{
253
257
261
265
269
273
275}
HRESULT WINAPI StrRetToBufW(LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, UINT len)
HRESULT GetDetailsOf([in] PCUITEMID_CHILD pidl, [in] UINT iColumn, [out] SHELLDETAILS *psd)
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_GetDisplayNameOfChild()
◆ SHELL32_ParseNextElement()
Definition at line 79 of file shlfolder.cpp.
81{
87
89
90
94
95 hr = psfChild->ParseDisplayName(hwndOwner, pbc, szNext, pEaten, &pidlOut, pdwAttributes);
98
100 if (!pidlTemp)
101 {
103 if (pidlOut)
106 }
107
108 if (pidlOut)
110
111 if (pidlIn)
113
114 *pidlInOut = pidlTemp;
115
116 TRACE (
"-- pidl=%p ret=0x%08x\n", pidlInOut ? *pidlInOut :
NULL,
hr);
118}
Referenced by CRegFolder::ParseDisplayName().
◆ Shell_DefaultContextMenuCallBack()
◆ Shell_NextElement()
Definition at line 30 of file shlfolder.cpp.
35{
37
38 if (!*ppch)
40
43 if (pchNext)
44 {
45 if (*ppch < pchNext)
46 {
47
49 ++pchNext;
50
51 if (!*pchNext)
53
55 }
56 else
57 {
60 }
61 }
62 else
63 {
66 }
67
68 *ppch = pchNext;
69
71 {
74 }
75
77}
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 402 of file shlfolder.cpp.
406{
407 ERR(
"SHOpenFolderAndSelectItems() is hackplemented\n");
410 if (cidl)
411 {
412
414 {
415 pidlItem = apidl[0];
416 }
417 else
418 {
419 HRESULT hr = SHILCombine(pidlFolder, apidl[0], &pidlItem);
423 }
424 }
425 else
426 {
427 pidlItem = pidlFolder;
428 }
429
431
435
437 hr = psfDesktop->GetDisplayNameOf(pidlItem, SHGDN_FORPARSING, &strret);
440
445
447 wcscpy(wszParams,
L"/select,");
448 wcscat(wszParams, wszBuf);
449
451 memset(&sei, 0,
sizeof sei);
456
459 else
461}
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 |
| ) |
|