ReactOS 0.4.17-dev-1190-g4c812f4
CShellItem.cpp File Reference
#include "precomp.h"
#include "prop.h"
Include dependency graph for CShellItem.cpp:

Go to the source code of this file.

Functions

 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)
 

Function Documentation

◆ SHCreateItemFromIDList()

EXTERN_C HRESULT WINAPI SHCreateItemFromIDList ( _In_ PCIDLIST_ABSOLUTE  pidl,
_In_ REFIID  riid,
_Out_ void **  ppv 
)

Definition at line 512 of file CShellItem.cpp.

513{
515 HRESULT hr;
516
517 TRACE("(%p,%s,%p)\n", pidl, debugstr_guid(&riid), ppv);
518
519 if (!ppv)
520 return E_POINTER;
521 *ppv = NULL;
522
523 if (!pidl)
524 return E_INVALIDARG;
525
526 hr = SHCreateShellItem(NULL, NULL, pidl, &item);
528 return hr;
529
530 return item->QueryInterface(riid, ppv);
531}
#define E_INVALIDARG
Definition: ddrawi.h:101
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
HRESULT WINAPI SHCreateShellItem(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psfParent, PCUITEMID_CHILD pidl, IShellItem **ppsi)
Definition: CShellItem.cpp:433
#define FAILED_UNEXPECTEDLY
Definition: utils.cpp:33
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
#define E_POINTER
Definition: winerror.h:3480

Referenced by init_function_pointers(), SHCreateItemFromParsingName(), SHCreateItemFromRelativeName(), SHCreateItemInKnownFolder(), SHGetItemFromDataObject(), SHGetItemFromObject(), and SHGetKnownFolderItem().

◆ SHCreateItemFromParsingName()

EXTERN_C HRESULT WINAPI SHCreateItemFromParsingName ( _In_ PCWSTR  pszPath,
_In_opt_ IBindCtx *  pbc,
_In_ REFIID  riid,
_Out_ void **  ppv 
)

Definition at line 537 of file CShellItem.cpp.

542{
544 HRESULT hr;
545
546 TRACE("(%s,%p,%s,%p)\n", debugstr_w(pszPath), pbc, debugstr_guid(&riid), ppv);
547
548 if (!ppv)
549 return E_POINTER;
550 *ppv = NULL;
551
552 hr = SHParseDisplayName(pszPath, pbc, &pidl, 0, NULL);
553 if (SUCCEEDED(hr))
555
556 return hr;
557}
EXTERN_C HRESULT WINAPI SHCreateItemFromIDList(_In_ PCIDLIST_ABSOLUTE pidl, _In_ REFIID riid, _Out_ void **ppv)
Definition: CShellItem.cpp:512
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define debugstr_w
Definition: kernel32.h:32
HRESULT WINAPI SHParseDisplayName(LPCWSTR pszName, IBindCtx *pbc, LPITEMIDLIST *ppidl, SFGAOF sfgaoIn, SFGAOF *psfgaoOut)
Definition: pidl.c:1548

Referenced by init_function_pointers(), SHGetItemFromDataObject(), and SHGetPropertyStoreFromParsingName().

◆ SHCreateItemFromRelativeName()

EXTERN_C HRESULT WINAPI SHCreateItemFromRelativeName ( _In_ IShellItem *  parent,
_In_ PCWSTR  pszName,
_In_opt_ IBindCtx *  pbc,
_In_ REFIID  riid,
_Out_ void **  ppv 
)

Definition at line 671 of file CShellItem.cpp.

677{
678 CComPtr<IShellFolder> desktop;
680 CComHeapPtr<ITEMIDLIST> pidlFolder;
681 CComHeapPtr<ITEMIDLIST> pidlChild;
682 HRESULT hr;
683
684 TRACE("(%p,%s,%p,%s,%p)\n", parent, debugstr_w(pszName), pbc, debugstr_guid(&riid), ppv);
685
686 if (!ppv)
687 return E_POINTER;
688 *ppv = NULL;
689
690 if (!pszName)
691 return E_INVALIDARG;
692
693 hr = SHGetIDListFromObject(parent, &pidlFolder);
694 if (hr != S_OK)
695 return hr;
696
697 hr = SHGetDesktopFolder(&desktop);
699 return hr;
700
701 if (!_ILIsDesktop(pidlFolder))
702 {
703 hr = desktop->BindToObject(pidlFolder, NULL, IID_PPV_ARG(IShellFolder, &folder));
705 return hr;
706 }
707
708 {
709 IShellFolder *psfBind = folder.p ? folder.p : desktop.p;
710 hr = psfBind->ParseDisplayName(NULL, pbc, const_cast<LPWSTR>(pszName), NULL, &pidlChild, NULL);
711 }
713 return hr;
714
715 return SHCreateItemFromIDList(pidlChild, riid, ppv);
716}
BOOL _ILIsDesktop(LPCITEMIDLIST pidl)
Definition: CBandSite.h:24
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
#define IID_PPV_ARG(Itype, ppType)
r parent
Definition: btrfs.c:3010
HRESULT ParseDisplayName([in] HWND hwndOwner, [in] LPBC pbcReserved, [in, string] LPOLESTR lpszDisplayName, [out] ULONG *pchEaten, [out] PIDLIST_RELATIVE *ppidl, [in, out, unique] ULONG *pdwAttributes)
#define S_OK
Definition: intsafe.h:52
HRESULT WINAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl)
Definition: pidl.c:1682
Definition: fci.c:112
uint16_t * LPWSTR
Definition: typedefs.h:56

Referenced by init_function_pointers(), and SHCreateItemInKnownFolder().

◆ SHCreateItemInKnownFolder()

EXTERN_C HRESULT WINAPI SHCreateItemInKnownFolder ( _In_ REFKNOWNFOLDERID  kfid,
_In_ DWORD  dwFlags,
_In_opt_ PCWSTR  pszFileName,
_In_ REFIID  riid,
_Out_ void **  ppv 
)

Definition at line 728 of file CShellItem.cpp.

734{
737 HRESULT hr;
738
739 TRACE("(%s,%lx,%s,%s,%p)\n", debugstr_guid(&kfid), dwFlags, debugstr_w(pszFileName),
741
742 if (!ppv)
743 return E_POINTER;
744 *ppv = NULL;
745
746 hr = SHGetKnownFolderIDList(kfid, dwFlags, NULL, &pidl);
747 if (hr != S_OK)
748 return hr;
749
752 return hr;
753
754 if (pszFileName)
756 else
757 hr = parent->QueryInterface(riid, ppv);
758
759 return hr;
760}
EXTERN_C HRESULT WINAPI SHGetKnownFolderIDList(REFKNOWNFOLDERID rfid, DWORD flags, HANDLE token, PIDLIST_ABSOLUTE *pidl)
Definition: shellpath.c:5661
EXTERN_C HRESULT WINAPI SHCreateItemFromRelativeName(_In_ IShellItem *parent, _In_ PCWSTR pszName, _In_opt_ IBindCtx *pbc, _In_ REFIID riid, _Out_ void **ppv)
Definition: CShellItem.cpp:671
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141
WORD WORD PSZ PSZ pszFileName
Definition: vdmdbg.h:44

Referenced by init_function_pointers().

◆ SHCreateShellItem()

HRESULT WINAPI SHCreateShellItem ( PCIDLIST_ABSOLUTE  pidlParent,
IShellFolder *  psfParent,
PCUITEMID_CHILD  pidl,
IShellItem **  ppsi 
)

Definition at line 433 of file CShellItem.cpp.

435{
436 HRESULT hr;
437 CComPtr<IShellItem> newShellItem;
438 LPITEMIDLIST new_pidl;
439 CComPtr<IPersistIDList> newPersistIDList;
440
441 TRACE("(%p,%p,%p,%p)\n", pidlParent, psfParent, pidl, ppsi);
442
443 *ppsi = NULL;
444
445 if (!pidl)
446 return E_INVALIDARG;
447
448 if (pidlParent || psfParent)
449 {
450 LPITEMIDLIST temp_parent = NULL;
451 if (!pidlParent)
452 {
453 CComPtr<IPersistFolder2> ppf2Parent;
454
455 if (FAILED(psfParent->QueryInterface(IID_PPV_ARG(IPersistFolder2, &ppf2Parent))))
456 {
457 FIXME("couldn't get IPersistFolder2 interface of parent\n");
458 return E_NOINTERFACE;
459 }
460
461 if (FAILED(ppf2Parent->GetCurFolder(&temp_parent)))
462 {
463 FIXME("couldn't get parent PIDL\n");
464 return E_NOINTERFACE;
465 }
466
467 pidlParent = temp_parent;
468 }
469
470 new_pidl = ILCombine(pidlParent, pidl);
471 ILFree(temp_parent);
472
473 if (!new_pidl)
474 return E_OUTOFMEMORY;
475 }
476 else
477 {
478 new_pidl = ILClone(pidl);
479 if (!new_pidl)
480 return E_OUTOFMEMORY;
481 }
482
483 hr = CShellItem::_CreatorClass::CreateInstance(NULL, IID_PPV_ARG(IShellItem, &newShellItem));
484 if (FAILED(hr))
485 {
486 ILFree(new_pidl);
487 return hr;
488 }
489 hr = newShellItem->QueryInterface(IID_PPV_ARG(IPersistIDList, &newPersistIDList));
490 if (FAILED(hr))
491 {
492 ILFree(new_pidl);
493 return hr;
494 }
495 hr = newPersistIDList->SetIDList(new_pidl);
496 if (FAILED(hr))
497 {
498 ILFree(new_pidl);
499 return hr;
500 }
501 ILFree(new_pidl);
502
503 *ppsi = newShellItem.Detach();
504
505 return hr;
506}
#define FIXME(fmt,...)
Definition: precomp.h:53
T * Detach()
Definition: atlcomcli.h:186
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define FAILED(hr)
Definition: intsafe.h:51
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
Definition: pidl.c:238
void WINAPI ILFree(LPITEMIDLIST pidl)
Definition: pidl.c:1051
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
Definition: pidl.c:817
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
#define E_NOINTERFACE
Definition: winerror.h:3479

Referenced by CreateItem(), CreateShellItemFromParse(), CShellItemArray::GetItemAt(), CShellItem::GetParent(), init_function_pointers(), SHCreateItemFromIDList(), SHCreateShellItemArray(), and SHCreateShellItemArrayFromIDLists().

◆ SHGetItemFromDataObject()

EXTERN_C HRESULT WINAPI SHGetItemFromDataObject ( _In_ IDataObject *  pdtobj,
_In_ DATAOBJ_GET_ITEM_FLAGS  dwFlags,
_In_ REFIID  riid,
_Out_ void **  ppv 
)

Definition at line 563 of file CShellItem.cpp.

568{
569 FORMATETC fmt;
570 STGMEDIUM medium = { 0 };
571 HRESULT hr;
572
573 TRACE("(%p,%x,%s,%p)\n", pdtobj, dwFlags, debugstr_guid(&riid), ppv);
574
575 if (!pdtobj)
576 return E_INVALIDARG;
577
578 fmt.cfFormat = (CLIPFORMAT)RegisterClipboardFormatW(CFSTR_SHELLIDLISTW);
579 fmt.ptd = NULL;
580 fmt.dwAspect = DVASPECT_CONTENT;
581 fmt.lindex = -1;
582 fmt.tymed = TYMED_HGLOBAL;
583
584 hr = pdtobj->GetData(&fmt, &medium);
585 if (SUCCEEDED(hr))
586 {
587 LPIDA pida = (LPIDA)GlobalLock(medium.hGlobal);
588 if (pida && pida->cidl >= 1 &&
589 ((pida->cidl > 1 && !(dwFlags & DOGIF_ONLY_IF_ONE)) || pida->cidl == 1))
590 {
592 HIDA_GetPIDLItem(pida, 0));
593 if (pidl)
594 {
596 ILFree(pidl);
597 }
598 else
599 {
601 }
602 }
603 else
604 {
605 TRACE("Failed to create item, cidl=%u, dwFlags=%#x\n", pida ? pida->cidl : 0, dwFlags);
606 hr = E_FAIL;
607 }
608
609 if (medium.hGlobal)
610 {
611 GlobalUnlock(medium.hGlobal);
612 ReleaseStgMedium(&medium);
613 }
614 }
615
616 if (FAILED(hr) && !(dwFlags & DOGIF_NO_HDROP))
617 {
618 TRACE("Attempting to fall back on CF_HDROP.\n");
619
620 fmt.cfFormat = CF_HDROP;
621 fmt.ptd = NULL;
622 fmt.dwAspect = DVASPECT_CONTENT;
623 fmt.lindex = -1;
624 fmt.tymed = TYMED_HGLOBAL;
625 ZeroMemory(&medium, sizeof(medium));
626
627 hr = pdtobj->GetData(&fmt, &medium);
628 if (SUCCEEDED(hr))
629 {
630 DROPFILES *df = (DROPFILES *)GlobalLock(medium.hGlobal);
631 hr = E_FAIL;
632 if (df)
633 {
634 LPBYTE files = (LPBYTE)df + df->pFiles;
635 if (!df->fWide)
636 {
637 PCSTR first = (PCSTR)files;
638 BOOL multi = *(first + lstrlenA(first) + 1) != 0;
639 if (!(multi && (dwFlags & DOGIF_ONLY_IF_ONE)))
640 {
644 }
645 }
646 else
647 {
648 PCWSTR first = (PCWSTR)files;
649 BOOL multi = *(first + lstrlenW(first) + 1) != 0;
650 if (!(multi && (dwFlags & DOGIF_ONLY_IF_ONE)))
652 }
653 GlobalUnlock(medium.hGlobal);
654 }
655 ReleaseStgMedium(&medium);
656 }
657 }
658
659 if (FAILED(hr) && !(dwFlags & DOGIF_NO_URL))
660 FIXME("Failed to create item, should try CF_URL.\n");
661
662 return hr;
663}
#define CF_HDROP
Definition: constants.h:410
#define E_FAIL
Definition: ddrawi.h:102
#define CP_ACP
Definition: compat.h:109
#define MAX_PATH
Definition: compat.h:34
#define MultiByteToWideChar
Definition: compat.h:110
#define lstrlenW
Definition: compat.h:750
void WINAPI ReleaseStgMedium(STGMEDIUM *pmedium)
Definition: ole2.c:2014
EXTERN_C HRESULT WINAPI SHCreateItemFromParsingName(_In_ PCWSTR pszPath, _In_opt_ IBindCtx *pbc, _In_ REFIID riid, _Out_ void **ppv)
Definition: CShellItem.cpp:537
unsigned int BOOL
Definition: ntddk_ex.h:94
const GLint * first
Definition: glext.h:5794
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
Definition: heapmem.c:1190
const char * filename
Definition: ioapi.h:137
static ERESOURCE GlobalLock
Definition: sys_arch.c:8
if(dx< 0)
Definition: linetemp.h:194
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
#define ZeroMemory
Definition: minwinbase.h:31
short WCHAR
Definition: pedump.c:58
UINT WINAPI RegisterClipboardFormatW(_In_ LPCWSTR)
static PCUIDLIST_RELATIVE HIDA_GetPIDLItem(CIDA const *pida, SIZE_T i)
Definition: shellutils.h:775
static PCUIDLIST_ABSOLUTE HIDA_GetPIDLFolder(CIDA const *pida)
Definition: shellutils.h:770
struct CIDA * LPIDA
static const WCHAR CFSTR_SHELLIDLISTW[]
Definition: shlobj.h:545
#define _countof(array)
Definition: sndvol32.h:70
Definition: shlobj.h:611
UINT cidl
Definition: shlobj.h:611
DWORD pFiles
Definition: shlobj.h:2354
BOOL fWide
Definition: shlobj.h:2357
Definition: dsound.c:943
const uint16_t * PCWSTR
Definition: typedefs.h:57
unsigned char * LPBYTE
Definition: typedefs.h:53
const char * PCSTR
Definition: typedefs.h:52

Referenced by init_function_pointers().

◆ SHGetItemFromObject()

EXTERN_C HRESULT WINAPI SHGetItemFromObject ( _In_ IUnknown *  punk,
_In_ REFIID  riid,
_Out_ void **  ppv 
)

Definition at line 766 of file CShellItem.cpp.

767{
769 HRESULT hr;
770
771 TRACE("(%p,%s,%p)\n", punk, debugstr_guid(&riid), ppv);
772
773 hr = SHGetIDListFromObject(punk, &pidl);
774 if (SUCCEEDED(hr))
776 return hr;
777}
_In_opt_ IUnknown * punk
Definition: shlwapi.h:158

Referenced by init_function_pointers().

◆ SHGetKnownFolderIDList()

EXTERN_C HRESULT WINAPI SHGetKnownFolderIDList ( REFKNOWNFOLDERID  rfid,
DWORD  flags,
HANDLE  token,
PIDLIST_ABSOLUTE *  pidl 
)

Definition at line 5661 of file shellpath.c.

5662{
5663 TRACE("%s, 0x%08lx, %p, %p\n", debugstr_guid(rfid), flags, token, pidl);
5664
5665 if (!pidl)
5666 return E_INVALIDARG;
5667
5668 if (flags)
5669 FIXME("unsupported flags: 0x%08lx\n", flags);
5670
5671 if (token)
5672 FIXME("user token is not used.\n");
5673
5674 *pidl = NULL;
5675 if (IsEqualIID(rfid, &FOLDERID_Desktop))
5676 *pidl = _ILCreateDesktop();
5677 else if (IsEqualIID(rfid, &FOLDERID_RecycleBinFolder))
5678 *pidl = _ILCreateBitBucket();
5679 else if (IsEqualIID(rfid, &FOLDERID_ComputerFolder))
5680 *pidl = _ILCreateMyComputer();
5681 else if (IsEqualIID(rfid, &FOLDERID_PrintersFolder))
5682 *pidl = _ILCreatePrinters();
5683 else if (IsEqualIID(rfid, &FOLDERID_ControlPanelFolder))
5684 *pidl = _ILCreateControlPanel();
5685 else if (IsEqualIID(rfid, &FOLDERID_NetworkFolder))
5686 *pidl = _ILCreateNetwork();
5687 else if (IsEqualIID(rfid, &FOLDERID_Documents))
5688 *pidl = _ILCreateMyDocuments();
5689 else
5690 {
5691 DWORD attributes = 0;
5692 WCHAR *pathW;
5693 HRESULT hr;
5694
5696 if (FAILED(hr))
5697 return hr;
5698
5701 return hr;
5702 }
5703
5704 return *pidl ? S_OK : E_FAIL;
5705}
void WINAPI CoTaskMemFree(void *ptr)
Definition: malloc.c:389
HRESULT WINAPI SHGetKnownFolderPath(REFKNOWNFOLDERID rfid, DWORD flags, HANDLE token, WCHAR **ret_path)
Definition: shellpath.c:4593
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
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 token
Definition: glfuncs.h:210
static const WCHAR pathW[]
Definition: path.c:2368
static HANDLE ACCESS_MASK ULONG attributes
Definition: om.c:94
LPITEMIDLIST _ILCreateMyComputer(void)
Definition: pidl.c:1807
HRESULT WINAPI SHILCreateFromPathW(LPCWSTR path, LPITEMIDLIST *ppidl, DWORD *attributes)
Definition: pidl.c:404
LPITEMIDLIST _ILCreateDesktop(void)
Definition: pidl.c:1796
LPITEMIDLIST _ILCreateNetwork(void)
Definition: pidl.c:1870
LPITEMIDLIST _ILCreatePrinters(void)
Definition: pidl.c:1843
LPITEMIDLIST _ILCreateControlPanel(void)
Definition: pidl.c:1825
LPITEMIDLIST _ILCreateMyDocuments(void)
Definition: pidl.c:1813
LPITEMIDLIST _ILCreateBitBucket(void)
Definition: pidl.c:1876
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95

Referenced by knownfolder_GetIDList(), loadShell32(), SHCreateItemInKnownFolder(), and SHGetKnownFolderItem().

◆ SHGetPropertyStoreFromParsingName()

EXTERN_C HRESULT WINAPI SHGetPropertyStoreFromParsingName ( _In_ PCWSTR  pszPath,
_In_opt_ IBindCtx *  pbc,
_In_ GETPROPERTYSTOREFLAGS  flags,
_In_ REFIID  riid,
_Out_ void **  ppv 
)

Definition at line 783 of file CShellItem.cpp.

789{
791 HRESULT hr;
792
793 TRACE("(%s,%p,%#x,%s,%p)\n", debugstr_w(pszPath), pbc, flags, debugstr_guid(&riid), ppv);
794
795 if (!ppv)
796 return E_POINTER;
797 *ppv = NULL;
798
800 if (SUCCEEDED(hr))
801 hr = item->GetPropertyStore(flags, riid, ppv);
802
803 return hr;
804}

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( shell  )