2 * IShellItem implementation
4 * Copyright 2008 Vincent Povirk for CodeWeavers
5 * Copyright 2009 Andrew Hill
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
26 public CComCoClass
<CShellItem
, &CLSID_ShellItem
>,
27 public CComObjectRootEx
<CComMultiThreadModelNoCS
>,
37 HRESULT
get_parent_pidl(LPITEMIDLIST
*parent_pidl
);
38 HRESULT
get_parent_shellfolder(IShellFolder
**ppsf
);
41 virtual HRESULT WINAPI
BindToHandler(IBindCtx
*pbc
, REFGUID rbhid
, REFIID riid
, void **ppvOut
);
42 virtual HRESULT WINAPI
GetParent(IShellItem
**ppsi
);
43 virtual HRESULT WINAPI
GetDisplayName(SIGDN sigdnName
, LPWSTR
*ppszName
);
44 virtual HRESULT WINAPI
GetAttributes(SFGAOF sfgaoMask
, SFGAOF
*psfgaoAttribs
);
45 virtual HRESULT WINAPI
Compare(IShellItem
*oth
, SICHINTF hint
, int *piOrder
);
48 virtual HRESULT WINAPI
GetClassID(CLSID
*pClassID
);
49 virtual HRESULT WINAPI
SetIDList(LPCITEMIDLIST pidl
);
50 virtual HRESULT WINAPI
GetIDList(LPITEMIDLIST
*ppidl
);
53 DECLARE_NOT_AGGREGATABLE(CShellItem
)
55 DECLARE_PROTECT_FINAL_CONSTRUCT()
57 BEGIN_COM_MAP(CShellItem
)
58 COM_INTERFACE_ENTRY_IID(IID_IShellItem
, IShellItem
)
59 COM_INTERFACE_ENTRY_IID(IID_IPersistIDList
, IPersistIDList
)
63 #endif /* _SHELLITEM_H_ */