12 class CShellItemIDList
17 CShellItemIDList(LPITEMIDLIST pidl = NULL) : m_pidl(pidl)
22 ::CoTaskMemFree(m_pidl);
25 void Attach(LPITEMIDLIST pidl)
27 ::CoTaskMemFree(m_pidl);
33 LPITEMIDLIST pidl = m_pidl;
40 return (m_pidl == NULL);
43 CShellItemIDList& operator =(LPITEMIDLIST pidl)
49 LPITEMIDLIST* operator &()
54 operator LPITEMIDLIST()
61 return (LPCTSTR)m_pidl;
66 return (LPTSTR)m_pidl;
69 void CreateEmpty(UINT cbSize)
71 ::CoTaskMemFree(m_pidl);
72 m_pidl = (LPITEMIDLIST)::CoTaskMemAlloc(cbSize);
73 ATLASSERT(m_pidl != NULL);
75 memset(m_pidl, 0, cbSize);
80 typedef struct _LVItemData
82 _LVItemData() : ulAttribs(0)
85 CComPtr<IShellFolder> spParentFolder;
90 } LVITEMDATA, *LPLVITEMDATA;
92 typedef struct _TVItemData
97 CComPtr<IShellFolder> spParentFolder;
100 CShellItemIDList lpifq;
102 } TVITEMDATA, *LPTVITEMDATA;
108 int GetIconIndex(LPITEMIDLIST lpi, UINT uFlags);
110 void GetNormalAndSelectedIcons(LPITEMIDLIST lpifq, LPTVITEM lptvitem);
112 LPITEMIDLIST ConcatPidls(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2);
114 BOOL GetName (LPSHELLFOLDER lpsf, LPITEMIDLIST lpi, DWORD dwFlags, LPTSTR lpFriendlyName);
115 LPITEMIDLIST Next(LPCITEMIDLIST pidl);
116 UINT GetSize(LPCITEMIDLIST pidl);
117 LPITEMIDLIST CopyITEMID(LPITEMIDLIST lpi);
119 LPITEMIDLIST GetFullyQualPidl(LPSHELLFOLDER lpsf, LPITEMIDLIST lpi);
121 BOOL DoContextMenu(HWND hwnd, LPSHELLFOLDER lpsfParent, LPITEMIDLIST lpi, POINT point);
124 #endif //__SHELLMGR_H__