Commit f23edde4 authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

shell32: Partially implement MapColumnToSCID().

parent 398d4258
...@@ -100,9 +100,10 @@ static inline ICPanelImpl *impl_from_IShellExecuteHookA(IShellExecuteHookA *ifac ...@@ -100,9 +100,10 @@ static inline ICPanelImpl *impl_from_IShellExecuteHookA(IShellExecuteHookA *ifac
* IShellFolder [ControlPanel] implementation * IShellFolder [ControlPanel] implementation
*/ */
static const shvheader ControlPanelSFHeader[] = { static const shvheader ControlPanelSFHeader[] =
{IDS_SHV_COLUMN8, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15},/*FIXME*/ {
{IDS_SHV_COLUMN9, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 80},/*FIXME*/ { &FMTID_Storage, PID_STG_NAME, IDS_SHV_COLUMN8, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15 },/*FIXME*/
{ NULL, 0, IDS_SHV_COLUMN9, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 80 },/*FIXME*/
}; };
#define CONROLPANELSHELLVIEWCOLUMNS 2 #define CONROLPANELSHELLVIEWCOLUMNS 2
......
...@@ -20,9 +20,13 @@ ...@@ -20,9 +20,13 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include "stgprop.h"
#define CHARS_IN_GUID 39 #define CHARS_IN_GUID 39
typedef struct { typedef struct {
const GUID *fmtid;
DWORD pid;
int colnameid; int colnameid;
int pcsFlags; int pcsFlags;
int fmt; int fmt;
...@@ -30,6 +34,7 @@ typedef struct { ...@@ -30,6 +34,7 @@ typedef struct {
} shvheader; } shvheader;
HRESULT SHELL32_GetColumnDetails(const shvheader *data, int column, SHELLDETAILS *details) DECLSPEC_HIDDEN; HRESULT SHELL32_GetColumnDetails(const shvheader *data, int column, SHELLDETAILS *details) DECLSPEC_HIDDEN;
HRESULT shellfolder_map_column_to_scid(const shvheader *data, UINT column, SHCOLUMNID *scid) DECLSPEC_HIDDEN;
#define GET_SHGDN_FOR(dwFlags) ((DWORD)dwFlags & (DWORD)0x0000FF00) #define GET_SHGDN_FOR(dwFlags) ((DWORD)dwFlags & (DWORD)0x0000FF00)
#define GET_SHGDN_RELATION(dwFlags) ((DWORD)dwFlags & (DWORD)0x000000FF) #define GET_SHGDN_RELATION(dwFlags) ((DWORD)dwFlags & (DWORD)0x000000FF)
......
...@@ -85,12 +85,13 @@ static inline IDesktopFolderImpl *impl_from_IPersistFolder2( IPersistFolder2 *if ...@@ -85,12 +85,13 @@ static inline IDesktopFolderImpl *impl_from_IPersistFolder2( IPersistFolder2 *if
return CONTAINING_RECORD(iface, IDesktopFolderImpl, IPersistFolder2_iface); return CONTAINING_RECORD(iface, IDesktopFolderImpl, IPersistFolder2_iface);
} }
static const shvheader desktop_header[] = { static const shvheader desktop_header[] =
{IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, {
{IDS_SHV_COLUMN2, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, { &FMTID_Storage, PID_STG_NAME, IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15 },
{IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, { &FMTID_Storage, PID_STG_SIZE, IDS_SHV_COLUMN2, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10 },
{IDS_SHV_COLUMN4, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 12}, { &FMTID_Storage, PID_STG_STORAGETYPE, IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10 },
{IDS_SHV_COLUMN5, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 5} { &FMTID_Storage, PID_STG_WRITETIME, IDS_SHV_COLUMN4, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 12 },
{ &FMTID_Storage, PID_STG_ATTRIBUTES, IDS_SHV_COLUMN5, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 5 },
}; };
#define DESKTOPSHELLVIEWCOLUMNS sizeof(desktop_header)/sizeof(shvheader) #define DESKTOPSHELLVIEWCOLUMNS sizeof(desktop_header)/sizeof(shvheader)
...@@ -845,12 +846,16 @@ static HRESULT WINAPI ISF_Desktop_fnGetDetailsOf (IShellFolder2 * iface, ...@@ -845,12 +846,16 @@ static HRESULT WINAPI ISF_Desktop_fnGetDetailsOf (IShellFolder2 * iface,
return hr; return hr;
} }
static HRESULT WINAPI ISF_Desktop_fnMapColumnToSCID ( static HRESULT WINAPI ISF_Desktop_fnMapColumnToSCID(IShellFolder2 *iface, UINT column, SHCOLUMNID *scid)
IShellFolder2 * iface, UINT column, SHCOLUMNID * pscid)
{ {
IDesktopFolderImpl *This = impl_from_IShellFolder2(iface); IDesktopFolderImpl *This = impl_from_IShellFolder2(iface);
FIXME ("(%p)->(%d %p) stub\n", This, column, pscid);
return E_NOTIMPL; TRACE("(%p)->(%u %p)\n", This, column, scid);
if (column >= DESKTOPSHELLVIEWCOLUMNS)
return E_INVALIDARG;
return shellfolder_map_column_to_scid(desktop_header, column, scid);
} }
static const IShellFolder2Vtbl vt_MCFldr_ShellFolder2 = static const IShellFolder2Vtbl vt_MCFldr_ShellFolder2 =
......
...@@ -182,12 +182,13 @@ static const IUnknownVtbl unkvt = ...@@ -182,12 +182,13 @@ static const IUnknownVtbl unkvt =
IUnknown_fnRelease, IUnknown_fnRelease,
}; };
static const shvheader GenericSFHeader[] = { static const shvheader GenericSFHeader[] =
{IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, {
{IDS_SHV_COLUMN2, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, { &FMTID_Storage, PID_STG_NAME, IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15 },
{IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, { &FMTID_Storage, PID_STG_SIZE, IDS_SHV_COLUMN2, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10 },
{IDS_SHV_COLUMN4, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 12}, { &FMTID_Storage, PID_STG_STORAGETYPE, IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10 },
{IDS_SHV_COLUMN5, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 5} { &FMTID_Storage, PID_STG_WRITETIME, IDS_SHV_COLUMN4, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 12 },
{ &FMTID_Storage, PID_STG_ATTRIBUTES, IDS_SHV_COLUMN5, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 5 },
}; };
#define GENERICSHELLVIEWCOLUMNS 5 #define GENERICSHELLVIEWCOLUMNS 5
...@@ -1014,12 +1015,16 @@ IShellFolder_fnGetDetailsOf (IShellFolder2 * iface, LPCITEMIDLIST pidl, ...@@ -1014,12 +1015,16 @@ IShellFolder_fnGetDetailsOf (IShellFolder2 * iface, LPCITEMIDLIST pidl,
} }
static HRESULT WINAPI static HRESULT WINAPI
IShellFolder_fnMapColumnToSCID (IShellFolder2 * iface, UINT column, IShellFolder_fnMapColumnToSCID (IShellFolder2 *iface, UINT column, SHCOLUMNID *scid)
SHCOLUMNID * pscid)
{ {
IGenericSFImpl *This = impl_from_IShellFolder2(iface); IGenericSFImpl *This = impl_from_IShellFolder2(iface);
FIXME ("(%p)\n", This);
return E_NOTIMPL; TRACE("(%p)->(%u %p)\n", This, column, scid);
if (column >= GENERICSHELLVIEWCOLUMNS)
return E_INVALIDARG;
return shellfolder_map_column_to_scid(GenericSFHeader, column, scid);
} }
static const IShellFolder2Vtbl sfvt = static const IShellFolder2Vtbl sfvt =
......
...@@ -79,11 +79,12 @@ static inline IMyComputerFolderImpl *impl_from_IPersistFolder2(IPersistFolder2 * ...@@ -79,11 +79,12 @@ static inline IMyComputerFolderImpl *impl_from_IPersistFolder2(IPersistFolder2 *
* IShellFolder [MyComputer] implementation * IShellFolder [MyComputer] implementation
*/ */
static const shvheader mycomputer_header[] = { static const shvheader mycomputer_header[] =
{IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, {
{IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, { &FMTID_Storage, PID_STG_NAME, IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15 },
{IDS_SHV_COLUMN6, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, { &FMTID_Storage, PID_STG_STORAGETYPE, IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10 },
{IDS_SHV_COLUMN7, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, { NULL, 0, IDS_SHV_COLUMN6, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10 },
{ NULL, 0, IDS_SHV_COLUMN7, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10 },
}; };
#define MYCOMPUTERSHELLVIEWCOLUMNS sizeof(mycomputer_header)/sizeof(shvheader) #define MYCOMPUTERSHELLVIEWCOLUMNS sizeof(mycomputer_header)/sizeof(shvheader)
...@@ -867,12 +868,16 @@ static HRESULT WINAPI ISF_MyComputer_fnGetDetailsOf (IShellFolder2 *iface, ...@@ -867,12 +868,16 @@ static HRESULT WINAPI ISF_MyComputer_fnGetDetailsOf (IShellFolder2 *iface,
return hr; return hr;
} }
static HRESULT WINAPI ISF_MyComputer_fnMapColumnToSCID ( static HRESULT WINAPI ISF_MyComputer_fnMapColumnToSCID (IShellFolder2 *iface, UINT column, SHCOLUMNID *scid)
IShellFolder2 * iface, UINT column, SHCOLUMNID * pscid)
{ {
IMyComputerFolderImpl *This = impl_from_IShellFolder2(iface); IMyComputerFolderImpl *This = impl_from_IShellFolder2(iface);
FIXME ("(%p)\n", This);
return E_NOTIMPL; TRACE("(%p)->(%u %p)\n", This, column, scid);
if (column >= MYCOMPUTERSHELLVIEWCOLUMNS)
return E_INVALIDARG;
return shellfolder_map_column_to_scid(mycomputer_header, column, scid);
} }
static const IShellFolder2Vtbl vt_ShellFolder2 = static const IShellFolder2Vtbl vt_ShellFolder2 =
......
...@@ -73,9 +73,10 @@ static inline IGenericSFImpl *impl_from_IPersistFolder2(IPersistFolder2 *iface) ...@@ -73,9 +73,10 @@ static inline IGenericSFImpl *impl_from_IPersistFolder2(IPersistFolder2 *iface)
} }
static const shvheader networkplaces_header[] = { static const shvheader networkplaces_header[] =
{IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, {
{IDS_SHV_COLUMN9, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10} { NULL, 0, IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15 },
{ NULL, 0, IDS_SHV_COLUMN9, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10 },
}; };
#define NETWORKPLACESSHELLVIEWCOLUMNS sizeof(networkplaces_header)/sizeof(shvheader) #define NETWORKPLACESSHELLVIEWCOLUMNS sizeof(networkplaces_header)/sizeof(shvheader)
...@@ -567,14 +568,16 @@ static HRESULT WINAPI ISF_NetworkPlaces_fnGetDetailsOf (IShellFolder2 * iface, ...@@ -567,14 +568,16 @@ static HRESULT WINAPI ISF_NetworkPlaces_fnGetDetailsOf (IShellFolder2 * iface,
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI ISF_NetworkPlaces_fnMapColumnToSCID (IShellFolder2 * iface, static HRESULT WINAPI ISF_NetworkPlaces_fnMapColumnToSCID (IShellFolder2 *iface, UINT column, SHCOLUMNID *scid)
UINT column, SHCOLUMNID * pscid)
{ {
IGenericSFImpl *This = impl_from_IShellFolder2(iface); IGenericSFImpl *This = impl_from_IShellFolder2(iface);
FIXME ("(%p)\n", This); TRACE("(%p)->(%u %p)\n", This, column, scid);
return E_NOTIMPL; if (column >= NETWORKPLACESSHELLVIEWCOLUMNS)
return E_INVALIDARG;
return shellfolder_map_column_to_scid(networkplaces_header, column, scid);
} }
static const IShellFolder2Vtbl vt_ShellFolder2 = { static const IShellFolder2Vtbl vt_ShellFolder2 = {
......
...@@ -55,12 +55,12 @@ static inline IPrintersFolderImpl *impl_from_IPersistFolder2(IPersistFolder2 *if ...@@ -55,12 +55,12 @@ static inline IPrintersFolderImpl *impl_from_IPersistFolder2(IPersistFolder2 *if
} }
static const shvheader printers_header[] = { static const shvheader printers_header[] = {
{ IDS_SHV_COLUMN8, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 20 }, { &FMTID_Storage, PID_STG_NAME, IDS_SHV_COLUMN8, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 20 },
{ IDS_SHV_COL_DOCS, SHCOLSTATE_TYPE_INT | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 12 }, { NULL, 0, IDS_SHV_COL_DOCS, SHCOLSTATE_TYPE_INT | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 12 },
{ IDS_SHV_COL_STATUS, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 12 }, { NULL, 0, IDS_SHV_COL_STATUS, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 12 },
{ IDS_SHV_COLUMN9, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 30 }, { &FMTID_SummaryInformation, PIDSI_COMMENTS, IDS_SHV_COLUMN9, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 30 },
{ IDS_SHV_COL_LOCATION, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 20 }, { NULL, 0, IDS_SHV_COL_LOCATION, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 20 },
{ IDS_SHV_COL_MODEL, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 20 } { NULL, 0, IDS_SHV_COL_MODEL, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 20 }
}; };
#define PRINTERS_FOLDER_COL_NUM sizeof(printers_header)/sizeof(shvheader) #define PRINTERS_FOLDER_COL_NUM sizeof(printers_header)/sizeof(shvheader)
...@@ -316,12 +316,16 @@ static HRESULT WINAPI IShellFolder_Printers_fnGetDetailsOf (IShellFolder2 *iface ...@@ -316,12 +316,16 @@ static HRESULT WINAPI IShellFolder_Printers_fnGetDetailsOf (IShellFolder2 *iface
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI IShellFolder_Printers_fnMapColumnToSCID ( static HRESULT WINAPI IShellFolder_Printers_fnMapColumnToSCID (IShellFolder2 *iface, UINT column, SHCOLUMNID *scid)
IShellFolder2 * iface, UINT column, SHCOLUMNID * pscid)
{ {
IPrintersFolderImpl *This = impl_from_IShellFolder2(iface); IPrintersFolderImpl *This = impl_from_IShellFolder2(iface);
FIXME ("(%p)->(%u %p) stub\n", This, column, pscid);
return E_NOTIMPL; TRACE("(%p)->(%u %p)\n", This, column, scid);
if (column >= PRINTERS_FOLDER_COL_NUM)
return E_INVALIDARG;
return shellfolder_map_column_to_scid(printers_header, column, scid);
} }
static const IShellFolder2Vtbl vtbl_ShellFolder2 = static const IShellFolder2Vtbl vtbl_ShellFolder2 =
......
...@@ -1470,6 +1470,15 @@ static HRESULT WINAPI ShellFolder2_GetDetailsEx(IShellFolder2* iface, ...@@ -1470,6 +1470,15 @@ static HRESULT WINAPI ShellFolder2_GetDetailsEx(IShellFolder2* iface,
} }
#define SHELLVIEWCOLUMNS 7 #define SHELLVIEWCOLUMNS 7
static const shvheader unixfs_header[SHELLVIEWCOLUMNS] = {
{ &FMTID_Storage, PID_STG_NAME, IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15 },
{ &FMTID_Storage, PID_STG_SIZE, IDS_SHV_COLUMN2, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10 },
{ &FMTID_Storage, PID_STG_STORAGETYPE, IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10 },
{ &FMTID_Storage, PID_STG_WRITETIME, IDS_SHV_COLUMN4, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 12 },
{ NULL, 0, IDS_SHV_COLUMN5, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 9 },
{ NULL, 0, IDS_SHV_COLUMN10, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 7 },
{ NULL, 0, IDS_SHV_COLUMN11, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 7 },
};
static HRESULT WINAPI ShellFolder2_GetDetailsOf(IShellFolder2* iface, static HRESULT WINAPI ShellFolder2_GetDetailsOf(IShellFolder2* iface,
LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS *psd) LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS *psd)
...@@ -1480,16 +1489,6 @@ static HRESULT WINAPI ShellFolder2_GetDetailsOf(IShellFolder2* iface, ...@@ -1480,16 +1489,6 @@ static HRESULT WINAPI ShellFolder2_GetDetailsOf(IShellFolder2* iface,
struct stat statItem; struct stat statItem;
HRESULT hr = S_OK; HRESULT hr = S_OK;
static const shvheader unixfs_header[SHELLVIEWCOLUMNS] = {
{IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15},
{IDS_SHV_COLUMN2, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10},
{IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10},
{IDS_SHV_COLUMN4, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 12},
{IDS_SHV_COLUMN5, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 9},
{IDS_SHV_COLUMN10, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 7},
{IDS_SHV_COLUMN11, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 7}
};
TRACE("(%p)->(%p %d %p)\n", This, pidl, iColumn, psd); TRACE("(%p)->(%p %d %p)\n", This, pidl, iColumn, psd);
if (!psd || iColumn >= SHELLVIEWCOLUMNS) if (!psd || iColumn >= SHELLVIEWCOLUMNS)
...@@ -1549,12 +1548,16 @@ static HRESULT WINAPI ShellFolder2_GetDetailsOf(IShellFolder2* iface, ...@@ -1549,12 +1548,16 @@ static HRESULT WINAPI ShellFolder2_GetDetailsOf(IShellFolder2* iface,
return hr; return hr;
} }
static HRESULT WINAPI ShellFolder2_MapColumnToSCID(IShellFolder2* iface, UINT column, static HRESULT WINAPI ShellFolder2_MapColumnToSCID(IShellFolder2* iface, UINT column, SHCOLUMNID *scid)
SHCOLUMNID *pscid)
{ {
UnixFolder *This = impl_from_IShellFolder2(iface); UnixFolder *This = impl_from_IShellFolder2(iface);
FIXME("(%p)->(%u %p): stub\n", This, column, pscid);
return E_NOTIMPL; TRACE("(%p)->(%u %p)\n", This, column, scid);
if (column >= SHELLVIEWCOLUMNS)
return E_INVALIDARG;
return shellfolder_map_column_to_scid(unixfs_header, column, scid);
} }
static const IShellFolder2Vtbl ShellFolder2Vtbl = { static const IShellFolder2Vtbl ShellFolder2Vtbl = {
......
...@@ -565,6 +565,21 @@ HRESULT SHELL32_GetColumnDetails(const shvheader *data, int column, SHELLDETAILS ...@@ -565,6 +565,21 @@ HRESULT SHELL32_GetColumnDetails(const shvheader *data, int column, SHELLDETAILS
return S_OK; return S_OK;
} }
HRESULT shellfolder_map_column_to_scid(const shvheader *header, UINT column, SHCOLUMNID *scid)
{
if (header[column].fmtid == NULL)
{
FIXME("missing property id for column %u.\n", column);
memset(scid, 0, sizeof(*scid));
return E_NOTIMPL;
}
scid->fmtid = *header[column].fmtid;
scid->pid = header[column].pid;
return S_OK;
}
/*********************************************************************** /***********************************************************************
* SHCreateLinks * SHCreateLinks
* *
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment