From 954e9f99fb7b3cfe2acb9aef4c80bf0b63b0f143 Mon Sep 17 00:00:00 2001 From: Chris Sutcliffe Date: Thu, 18 Feb 2010 13:01:56 +0000 Subject: [PATCH] 2010-02-17 LRN * include/shlguid.h (IID_IFolderView): Define. * include/shlobj.h (IFolderView interface): Define. * lib/shell32.c (IID_IFolderView): Export. --- winsup/w32api/ChangeLog | 6 ++++++ winsup/w32api/include/shlguid.h | 3 +++ winsup/w32api/include/shlobj.h | 27 +++++++++++++++++++++++++++ winsup/w32api/lib/shell32.c | 1 + 4 files changed, 37 insertions(+) diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog index 824992efb..7a4339f1a 100644 --- a/winsup/w32api/ChangeLog +++ b/winsup/w32api/ChangeLog @@ -1,3 +1,9 @@ +2010-02-17 LRN + + * include/shlguid.h (IID_IFolderView): Define. + * include/shlobj.h (IFolderView interface): Define. + * lib/shell32.c (IID_IFolderView): Export. + 2010-01-26 Chris Sutcliffe * include/shldisp.h (AUTOCOMPLETEOPTIONS): Add version guard around diff --git a/winsup/w32api/include/shlguid.h b/winsup/w32api/include/shlguid.h index 3583e324b..22469c447 100644 --- a/winsup/w32api/include/shlguid.h +++ b/winsup/w32api/include/shlguid.h @@ -79,6 +79,9 @@ extern const GUID IID_IPersistFolder3; extern const GUID IID_IShellFolder2; extern const GUID IID_IFileSystemBindData; #endif +#if (_WIN32_WINNT >= 0x501) +extern const GUID IID_IFolderView; +#endif #ifdef UNICODE #define IID_IFileViewer IID_IFileViewerW #define IID_IShellLink IID_IShellLinkW diff --git a/winsup/w32api/include/shlobj.h b/winsup/w32api/include/shlobj.h index 7fb7c610a..e313c2b8a 100644 --- a/winsup/w32api/include/shlobj.h +++ b/winsup/w32api/include/shlobj.h @@ -1349,6 +1349,33 @@ DECLARE_INTERFACE_(IShellIconOverlayIdentifier,IUnknown) }; #undef INTERFACE +#if (_WIN32_WINNT >= 0x0501) /* WXP */ +typedef _COM_interface IFolderView *LPFOLDERVIEW; + +#define INTERFACE IFolderView +DECLARE_INTERFACE_(IFolderView,IUnknown) +{ + STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD(GetAutoArrange)(THIS) PURE; + STDMETHOD(GetCurrentViewMode)(THIS_ UINT) PURE; + STDMETHOD(GetDefaultSpacing)(THIS_ POINT*) PURE; + STDMETHOD(GetFocusedItem)(THIS_ int*) PURE; + STDMETHOD(GetFolder)(THIS_ REFIID,PVOID*) PURE; + STDMETHOD(GetItemPosition)(THIS_ LPCITEMIDLIST,POINT*) PURE; + STDMETHOD(GetSelectionMarkedItem)(THIS_ int*) PURE; + STDMETHOD(GetSpacing)(THIS_ POINT*) PURE; + STDMETHOD(Item)(THIS_ int,LPITEMIDLIST*) PURE; + STDMETHOD(ItemCount)(THIS_ UINT,int*) PURE; + STDMETHOD(Items)(THIS_ UINT,REFIID,PVOID*) PURE; + STDMETHOD(SelectAndPositionItems)(THIS_ UINT,LPCITEMIDLIST*,POINT*,DWORD) PURE; + STDMETHOD(SelectItem)(THIS_ int,DWORD) PURE; + STDMETHOD(SetCurrentViewMode)(THIS_ UINT) PURE; +}; +#undef INTERFACE +#endif /* _WIN32_WINNT >= 0x0501 */ + #define ISIOI_ICONFILE 0x00000001 #define ISIOI_ICONINDEX 0x00000002 diff --git a/winsup/w32api/lib/shell32.c b/winsup/w32api/lib/shell32.c index b570e0424..349fd2712 100644 --- a/winsup/w32api/lib/shell32.c +++ b/winsup/w32api/lib/shell32.c @@ -77,3 +77,4 @@ DEFINE_GUID(CLSID_MyDocuments,0x450d8fba,0xad25,0x11d0,0x98,0xa8,0x08,0x00,0x36, DEFINE_GUID(CLSID_FolderShortcut,0x0AFACED1,0xE828,0x11D1,0x91,0x87,0xB5,0x32,0xF1,0xE9,0x57,0x5D); DEFINE_GUID(CLSID_ShellFSFolder,0xF3364BA0,0x65B9,0x11CE,0xA9,0xBA,0x00,0xAA,0x00,0x4A,0xE8,0x37); DEFINE_GUID(IID_IShellLinkDataList,0x45E2B4AE,0xB1C3, 0x11D0,0xB9,0x2F,0x00,0xA0,0xC9,0x03,0x12,0xE1); +DEFINE_GUID(IID_IFolderView,0xCDE725B0L,0xCCC9,0x4519,0x91,0x7E,0x32,0x5D,0x72,0xFA,0xB4,0xCE);