Go to the source code of this file.
|
| | WINE_DEFAULT_DEBUG_CHANNEL (shell) |
| |
| HRESULT WINAPI | SHCreateShellItem (PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psfParent, PCUITEMID_CHILD pidl, IShellItem **ppsi) |
| |
| EXTERN_C HRESULT WINAPI | SHCreateItemFromIDList (_In_ PCIDLIST_ABSOLUTE pidl, _In_ REFIID riid, _Out_ void **ppv) |
| |
| EXTERN_C HRESULT WINAPI | SHCreateItemFromParsingName (_In_ PCWSTR pszPath, _In_opt_ IBindCtx *pbc, _In_ REFIID riid, _Out_ void **ppv) |
| |
| EXTERN_C HRESULT WINAPI | SHGetItemFromDataObject (_In_ IDataObject *pdtobj, _In_ DATAOBJ_GET_ITEM_FLAGS dwFlags, _In_ REFIID riid, _Out_ void **ppv) |
| |
| EXTERN_C HRESULT WINAPI | SHCreateItemFromRelativeName (_In_ IShellItem *parent, _In_ PCWSTR pszName, _In_opt_ IBindCtx *pbc, _In_ REFIID riid, _Out_ void **ppv) |
| |
| EXTERN_C HRESULT WINAPI | SHGetKnownFolderIDList (REFKNOWNFOLDERID rfid, DWORD flags, HANDLE token, PIDLIST_ABSOLUTE *pidl) |
| |
| EXTERN_C HRESULT WINAPI | SHCreateItemInKnownFolder (_In_ REFKNOWNFOLDERID kfid, _In_ DWORD dwFlags, _In_opt_ PCWSTR pszFileName, _In_ REFIID riid, _Out_ void **ppv) |
| |
| EXTERN_C HRESULT WINAPI | SHGetItemFromObject (_In_ IUnknown *punk, _In_ REFIID riid, _Out_ void **ppv) |
| |
| EXTERN_C HRESULT WINAPI | SHGetPropertyStoreFromParsingName (_In_ PCWSTR pszPath, _In_opt_ IBindCtx *pbc, _In_ GETPROPERTYSTOREFLAGS flags, _In_ REFIID riid, _Out_ void **ppv) |
| |
◆ SHCreateItemFromIDList()
Definition at line 340 of file CShellItem.cpp.
341{
344
346
350
351 if (!pidl)
353
357
359}
HRESULT WINAPI SHCreateShellItem(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psfParent, PCUITEMID_CHILD pidl, IShellItem **ppsi)
#define FAILED_UNEXPECTEDLY
Referenced by ICommDlgBrowser3_fnIncludeObject(), IExplorerBrowserEvents_fnOnNavigationComplete(), IExplorerBrowserEvents_fnOnNavigationPending(), init_function_pointers(), SHCreateItemFromParsingName(), SHCreateItemFromRelativeName(), SHCreateItemInKnownFolder(), SHGetItemFromDataObject(), and SHGetItemFromObject().
◆ SHCreateItemFromParsingName()
◆ SHCreateItemFromRelativeName()
Definition at line 499 of file CShellItem.cpp.
505{
511
513
517
518 if (!pszName)
520
524
528
530 {
534 }
535
536 {
539 }
542
544}
BOOL _ILIsDesktop(LPCITEMIDLIST pidl)
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
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 WINAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl)
#define IID_PPV_ARG(Itype, ppType)
Referenced by init_function_pointers(), and SHCreateItemInKnownFolder().
◆ SHCreateItemInKnownFolder()
Definition at line 556 of file CShellItem.cpp.
562{
566
567#if 0
571
574
578
582
586
589 else
591
593#endif
594}
EXTERN_C HRESULT WINAPI SHGetKnownFolderIDList(REFKNOWNFOLDERID rfid, DWORD flags, HANDLE token, PIDLIST_ABSOLUTE *pidl)
EXTERN_C HRESULT WINAPI SHCreateItemFromRelativeName(_In_ IShellItem *parent, _In_ PCWSTR pszName, _In_opt_ IBindCtx *pbc, _In_ REFIID riid, _Out_ void **ppv)
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
WORD WORD PSZ PSZ pszFileName
Referenced by init_function_pointers().
◆ SHCreateShellItem()
Definition at line 261 of file CShellItem.cpp.
263{
268
269 TRACE(
"(%p,%p,%p,%p)\n", pidlParent, psfParent, pidl, ppsi);
270
272
273 if (!pidl)
275
276 if (pidlParent || psfParent)
277 {
279 if (!pidlParent)
280 {
282
284 {
285 FIXME(
"couldn't get IPersistFolder2 interface of parent\n");
287 }
288
289 if (
FAILED(ppf2Parent->GetCurFolder(&temp_parent)))
290 {
291 FIXME(
"couldn't get parent PIDL\n");
293 }
294
295 pidlParent = temp_parent;
296 }
297
300
301 if (!new_pidl)
303 }
304 else
305 {
307 if (!new_pidl)
309 }
310
313 {
316 }
319 {
322 }
323 hr = newPersistIDList->SetIDList(new_pidl);
325 {
328 }
330
331 *ppsi = newShellItem.
Detach();
332
334}
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
void WINAPI ILFree(LPITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Referenced by CreateShellItemFromParse(), CShellItemArray::GetItemAt(), CShellItem::GetParent(), init_function_pointers(), SHCreateItemFromIDList(), SHCreateShellItemArray(), and SHCreateShellItemArrayFromIDLists().
◆ SHGetItemFromDataObject()
Definition at line 391 of file CShellItem.cpp.
396{
398 STGMEDIUM medium = { 0 };
400
402
403 if (!pdtobj)
405
408 fmt.dwAspect = DVASPECT_CONTENT;
410 fmt.tymed = TYMED_HGLOBAL;
411
412 hr = pdtobj->GetData(&
fmt, &medium);
414 {
416 if (pida && pida->
cidl >= 1 &&
418 {
421 if (pidl)
422 {
425 }
426 else
427 {
429 }
430 }
431 else
432 {
433 TRACE(
"Failed to create item, cidl=%u, dwFlags=%#x\n", pida ? pida->
cidl : 0,
dwFlags);
435 }
436
437 if (medium.hGlobal)
438 {
441 }
442 }
443
445 {
446 TRACE(
"Attempting to fall back on CF_HDROP.\n");
447
450 fmt.dwAspect = DVASPECT_CONTENT;
452 fmt.tymed = TYMED_HGLOBAL;
454
455 hr = pdtobj->GetData(&
fmt, &medium);
457 {
460 if (df)
461 {
464 {
468 {
472 }
473 }
474 else
475 {
480 }
482 }
484 }
485 }
486
488 FIXME(
"Failed to create item, should try CF_URL.\n");
489
491}
EXTERN_C HRESULT WINAPI SHCreateItemFromParsingName(_In_ PCWSTR pszPath, _In_opt_ IBindCtx *pbc, _In_ REFIID riid, _Out_ void **ppv)
#define MultiByteToWideChar
void WINAPI ReleaseStgMedium(STGMEDIUM *pmedium)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
static ERESOURCE GlobalLock
int WINAPI lstrlenA(LPCSTR lpString)
static PCUIDLIST_RELATIVE HIDA_GetPIDLItem(CIDA const *pida, SIZE_T i)
static PCUIDLIST_ABSOLUTE HIDA_GetPIDLFolder(CIDA const *pida)
static const WCHAR CFSTR_SHELLIDLISTW[]
UINT WINAPI RegisterClipboardFormatW(_In_ LPCWSTR)
Referenced by init_function_pointers().
◆ SHGetItemFromObject()
◆ SHGetKnownFolderIDList()
◆ SHGetPropertyStoreFromParsingName()
◆ WINE_DEFAULT_DEBUG_CHANNEL()
| WINE_DEFAULT_DEBUG_CHANNEL |
( |
shell |
| ) |
|