Go to the source code of this file.
|
| WINE_DEFAULT_DEBUG_CHANNEL (shell) |
|
LPCWSTR | GetNextElementW (LPCWSTR pszNext, LPWSTR pszOut, DWORD dwOut) |
|
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 | AddClassKeyToArray (const WCHAR *szClass, HKEY *array, UINT *cKeys) |
|
void | AddFSClassKeysToArray (PCUITEMID_CHILD pidl, 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 430 of file shlfolder.cpp.
431{
434
435 CDataObjectHIDA cida(pDataObject);
436
438 return cida.hr();
439
440 if (cida->cidl > 1)
441 {
442 ERR(
"SHMultiFileProperties is not yet implemented\n");
444 }
445
449 return 0;
450
453 ERR(
"SH_ShowPropertiesDialog failed\n");
454
455 return 0;
456}
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)
#define FAILED_UNEXPECTEDLY(hr)
static PCUIDLIST_ABSOLUTE HIDA_GetPIDLFolder(CIDA const *pida)
Referenced by Shell_DefaultContextMenuCallBack().
◆ AddClassKeyToArray()
Definition at line 268 of file shlfolder.cpp.
269{
270 if (*cKeys >= 16)
271 return;
272
276 return;
277
278 array[*cKeys] = hkey;
279 *cKeys += 1;
280}
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 282 of file shlfolder.cpp.
283{
285 {
288
289 if (extension)
290 {
292
296 {
297 swprintf(wszClass2,
L"%s//%s", extension, wszClass);
298
301 }
302
303 swprintf(wszClass2,
L"SystemFileAssociations//%s", extension);
305
307 {
308 swprintf(wszClass2,
L"SystemFileAssociations//%s", wszClass);
310 }
311 }
312
315 }
317 {
321 }
322 else
323 {
324 ERR(
"Got non FS pidl\n");
325 }
326}
LSTATUS WINAPI RegGetValueW(HKEY hKey, LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
FileStructW * _ILGetFileStructW(LPCITEMIDLIST pidl)
BOOL _ILIsFolder(LPCITEMIDLIST pidl)
BOOL _ILIsValue(LPCITEMIDLIST pidl)
void AddClassKeyToArray(const WCHAR *szClass, HKEY *array, UINT *cKeys)
#define PathFindExtension
Referenced by CDesktopFolder::GetUIObjectOf(), and CFSFolder::GetUIObjectOf().
◆ GetNextElementW()
Definition at line 44 of file shlfolder.cpp.
45{
48
50
51 *pszOut = 0x0000;
52
53 if (!pszNext || !*pszNext)
55
56 while (*pszTail && (*pszTail != (
WCHAR)
'\\'))
57 pszTail++;
58
59 dwCopy = pszTail - pszNext + 1;
60 lstrcpynW (pszOut, pszNext, (dwOut < dwCopy) ? dwOut : dwCopy);
61
62 if (*pszTail)
63 pszTail++;
64 else
66
68 return pszTail;
69}
Referenced by CFSFolder::ParseDisplayName().
◆ SH_GetApidlFromDataObject()
◆ SHCreateLinks()
◆ SHELL32_BindToSF()
Definition at line 160 of file shlfolder.cpp.
162{
164 if (!pidlChild)
166
169 ppfti,
170 pidlChild,
174
177
179 return psf->QueryInterface(
riid, ppvOut);
180 else
182}
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 149 of file shlfolder.cpp.
151{
152
153 PERSIST_FOLDER_TARGET_INFO pfti = {0};
154 pfti.dwAttributes = -1;
155 pfti.csidl = csidl;
156
158}
◆ SHELL32_CoCreateInitSF() [2/2]
Definition at line 122 of file shlfolder.cpp.
124{
127
131
135
137 {
138 ppf3->InitializeEx(
NULL, pidlAbsolute, ppfti);
139 }
141 {
142 ppf->Initialize(pidlAbsolute);
143 }
145
146 return pShellFolder->QueryInterface(
riid, ppvOut);
147}
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 239 of file shlfolder.cpp.
240{
244
248
252
256
260
264
266}
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 71 of file shlfolder.cpp.
73{
79
81
82
86
87 hr = psfChild->ParseDisplayName(hwndOwner, pbc, szNext, pEaten, &pidlOut, pdwAttributes);
90
92 if (!pidlTemp)
93 {
95 if (pidlOut)
98 }
99
100 if (pidlOut)
102
103 if (pidlIn)
105
106 *pidlInOut = pidlTemp;
107
108 TRACE (
"-- pidl=%p ret=0x%08x\n", pidlInOut ? *pidlInOut :
NULL,
hr);
110}
Referenced by CDesktopFolder::ParseDisplayName(), CDrivesFolder::ParseDisplayName(), CFSFolder::ParseDisplayName(), and CRegFolder::ParseDisplayName().
◆ Shell_DefaultContextMenuCallBack()
◆ SHOpenFolderAndSelectItems()
Definition at line 369 of file shlfolder.cpp.
373{
374 ERR(
"SHOpenFolderAndSelectItems() is hackplemented\n");
376 if (cidl)
377 {
378
380 {
381 pidlItem = apidl[0];
382 }
383 else
384 {
385 pidlItem =
ILCombine(pidlFolder, apidl[0]);
386 }
387 }
388 else
389 {
390 pidlItem = pidlFolder;
391 }
392
394
398
400 hr = psfDesktop->GetDisplayNameOf(pidlItem, SHGDN_FORPARSING, &strret);
403
408
410 wcscpy(wszParams,
L"/select,");
411 wcscat(wszParams, wszBuf);
412
414 memset(&sei, 0,
sizeof sei);
419
422 else
424}
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
BOOL WINAPI DECLSPEC_HOTPATCH ShellExecuteExW(LPSHELLEXECUTEINFOW sei)
Referenced by CFindFolderContextMenu::InvokeCommand(), and CShellLink::OnCommand().
◆ WINE_DEFAULT_DEBUG_CHANNEL()
WINE_DEFAULT_DEBUG_CHANNEL |
( |
shell |
| ) |
|