137 lines
6 KiB
C
137 lines
6 KiB
C
EXTERN_C const SHCOLUMNID SCID_Author;
|
|
EXTERN_C const SHCOLUMNID SCID_Title;
|
|
EXTERN_C const SHCOLUMNID SCID_Subject;
|
|
EXTERN_C const SHCOLUMNID SCID_Category;
|
|
EXTERN_C const SHCOLUMNID SCID_Copyright;
|
|
EXTERN_C const SHCOLUMNID SCID_CompanyName;
|
|
EXTERN_C const SHCOLUMNID SCID_PageCount;
|
|
EXTERN_C const SHCOLUMNID SCID_Comment;
|
|
EXTERN_C const SHCOLUMNID SCID_DocCreated;
|
|
EXTERN_C const SHCOLUMNID SCID_TYPE;
|
|
EXTERN_C const SHCOLUMNID SCID_WRITETIME;
|
|
EXTERN_C const SHCOLUMNID SCID_CREATETIME;
|
|
EXTERN_C const SHCOLUMNID SCID_ACCESSTIME;
|
|
EXTERN_C const SHCOLUMNID SCID_OWNER;
|
|
EXTERN_C const SHCOLUMNID SCID_NAME;
|
|
EXTERN_C const SHCOLUMNID SCID_DELETEDFROM;
|
|
EXTERN_C const SHCOLUMNID SCID_DATEDELETED;
|
|
EXTERN_C const SHCOLUMNID SCID_SIZE;
|
|
EXTERN_C const SHCOLUMNID SCID_SYNCCOPYIN;
|
|
EXTERN_C const SHCOLUMNID SCID_STATUS;
|
|
EXTERN_C const SHCOLUMNID SCID_DIRECTORY;
|
|
EXTERN_C const SHCOLUMNID SCID_RANK;
|
|
EXTERN_C const SHCOLUMNID SCID_FREESPACE;
|
|
EXTERN_C const SHCOLUMNID SCID_CAPACITY;
|
|
EXTERN_C const SHCOLUMNID SCID_FILESYSTEM;
|
|
EXTERN_C const SHCOLUMNID SCID_CSC_STATUS;
|
|
EXTERN_C const SHCOLUMNID SCID_LINKTARGET;
|
|
EXTERN_C const SHCOLUMNID SCID_LASTVISITED;
|
|
EXTERN_C const SHCOLUMNID SCID_LASTMODIFIED;
|
|
EXTERN_C const SHCOLUMNID SCID_VISITCOUNT;
|
|
EXTERN_C const SHCOLUMNID SCID_ATTRIBUTES;
|
|
EXTERN_C const SHCOLUMNID SCID_ATTRIBUTES_DESCRIPTION;
|
|
EXTERN_C const SHCOLUMNID SCID_LOCATION;
|
|
EXTERN_C const SHCOLUMNID SCID_FINDDATA;
|
|
EXTERN_C const SHCOLUMNID SCID_NETRESOURCE;
|
|
EXTERN_C const SHCOLUMNID SCID_DESCRIPTIONID;
|
|
EXTERN_C const SHCOLUMNID SCID_WHICHFOLDER;
|
|
EXTERN_C const SHCOLUMNID SCID_NETWORKLOCATION;
|
|
EXTERN_C const SHCOLUMNID SCID_COMPUTERNAME;
|
|
EXTERN_C const SHCOLUMNID SCID_DetailsProperties;
|
|
EXTERN_C const SHCOLUMNID SCID_FolderIntroText;
|
|
EXTERN_C const SHCOLUMNID SCID_CONTROLPANELCATEGORY;
|
|
EXTERN_C const SHCOLUMNID SCID_MUSIC_Artist;
|
|
EXTERN_C const SHCOLUMNID SCID_MUSIC_Album;
|
|
EXTERN_C const SHCOLUMNID SCID_MUSIC_Year;
|
|
EXTERN_C const SHCOLUMNID SCID_MUSIC_Track;
|
|
EXTERN_C const SHCOLUMNID SCID_MUSIC_Genre;
|
|
EXTERN_C const SHCOLUMNID SCID_AUDIO_Duration;
|
|
EXTERN_C const SHCOLUMNID SCID_AUDIO_Bitrate;
|
|
EXTERN_C const SHCOLUMNID SCID_ImageCX;
|
|
EXTERN_C const SHCOLUMNID SCID_ImageCY;
|
|
EXTERN_C const SHCOLUMNID SCID_ImageDimensions;
|
|
EXTERN_C const SHCOLUMNID SCID_CameraModel;
|
|
EXTERN_C const SHCOLUMNID SCID_WhenTaken;
|
|
EXTERN_C const SHCOLUMNID SCID_Flash;
|
|
EXTERN_C const SHCOLUMNID SCID_ColorSpace;
|
|
EXTERN_C const SHCOLUMNID SCID_DRM_Protected;
|
|
|
|
// Printer Folder column identifier defs...
|
|
EXTERN_C const SHCOLUMNID SCID_PRN_QUEUESIZE;
|
|
EXTERN_C const SHCOLUMNID SCID_PRN_STATUS;
|
|
EXTERN_C const SHCOLUMNID SCID_PRN_LOCATION;
|
|
EXTERN_C const SHCOLUMNID SCID_PRN_MODEL;
|
|
|
|
// Win32 PE (exe, dll) Version Information column identifier defs...
|
|
EXTERN_C const SHCOLUMNID SCID_FileDescription;
|
|
EXTERN_C const SHCOLUMNID SCID_FileVersion;
|
|
EXTERN_C const SHCOLUMNID SCID_InternalName;
|
|
EXTERN_C const SHCOLUMNID SCID_OriginalFileName;
|
|
EXTERN_C const SHCOLUMNID SCID_ProductName;
|
|
EXTERN_C const SHCOLUMNID SCID_ProductVersion;
|
|
|
|
typedef struct {
|
|
const SHCOLUMNID *pscid;
|
|
VARTYPE vt; // Note that the type of a given FMTID/PID pair is a known, fixed value
|
|
DWORD fmt; // listview format (LVCFMT_LEFT, usually)
|
|
UINT cChars; // count of chars (default col width)
|
|
DWORD csFlags; // SHCOLSTATE flags
|
|
UINT idTitle; // string id for title
|
|
UINT idDescription; // add these, make defview display them too!
|
|
} COLUMN_INFO;
|
|
|
|
#define DEFINE_COL_ENTRY(scid, vt, fmt, cChars, shcs, ids) \
|
|
{ &scid, vt, fmt, cChars, shcs, ids, 0 }
|
|
|
|
#define DEFINE_COL_STR_ENTRY(scid, cChars, ids) \
|
|
{ &scid, VT_LPWSTR, LVCFMT_LEFT, cChars, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, ids, 0 }
|
|
|
|
#define DEFINE_COL_STR_MENU_ENTRY(scid, cChars, ids) \
|
|
{ &scid, VT_LPWSTR, LVCFMT_LEFT, cChars, SHCOLSTATE_TYPE_STR, ids, 0 }
|
|
|
|
#define DEFINE_COL_STR_DLG_ENTRY(scid, cChars, ids) \
|
|
{ &scid, VT_LPWSTR, LVCFMT_LEFT, cChars, SHCOLSTATE_TYPE_STR | SHCOLSTATE_SECONDARYUI, ids, 0 }
|
|
|
|
#define DEFINE_COL_STR_HIDDEN_ENTRY(scid) \
|
|
{ &scid, VT_LPWSTR, LVCFMT_LEFT, 20, SHCOLSTATE_TYPE_STR | SHCOLSTATE_HIDDEN, 0, 0 }
|
|
|
|
#define DEFINE_COL_DATE_ENTRY(scid, ids) \
|
|
{ &scid, VT_DATE, LVCFMT_LEFT, 20, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, ids, 0 }
|
|
|
|
#define DEFINE_COL_DATE_HIDDEN_ENTRY(scid) \
|
|
{ &scid, VT_DATE, LVCFMT_LEFT, 20, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_HIDDEN, 0, 0 }
|
|
|
|
#define DEFINE_COL_INT_ENTRY(scid, cChars, ids) \
|
|
{ &scid, VT_I4, LVCFMT_LEFT, cChars, SHCOLSTATE_TYPE_INT | SHCOLSTATE_ONBYDEFAULT, ids, 0 }
|
|
|
|
#define DEFINE_COL_INT_DLG_ENTRY(scid, cChars, ids) \
|
|
{ &scid, VT_I4, LVCFMT_LEFT, cChars, SHCOLSTATE_TYPE_INT | SHCOLSTATE_SECONDARYUI, ids, 0 }
|
|
|
|
#define DEFINE_COL_INT_HIDDEN_ENTRY(scid) \
|
|
{ &scid, VT_I4, LVCFMT_LEFT, 5, SHCOLSTATE_TYPE_STR | SHCOLSTATE_HIDDEN, 0, 0 }
|
|
|
|
#define DEFINE_COL_SIZE_ENTRY(scid, ids) \
|
|
DEFINE_COL_ENTRY(scid, VT_UI8, LVCFMT_RIGHT, 16, SHCOLSTATE_TYPE_INT | SHCOLSTATE_ONBYDEFAULT, ids)
|
|
|
|
|
|
STDAPI GetDetailsOfInfo(const COLUMN_INFO* pcol_data, UINT nCols, UINT iColumn, SHELLDETAILS *pdi);
|
|
STDAPI_(int) FindSCID(const COLUMN_INFO* pcol_data, UINT nCols, const SHCOLUMNID* pscid);
|
|
STDAPI MapColumnToSCIDImpl(const COLUMN_INFO* pcol_data, UINT nCols, UINT iColumn, SHCOLUMNID* pscid);
|
|
STDAPI_(BOOL) ParseSCIDString(LPCTSTR pszString, SHCOLUMNID *pscid, UINT *pidRes);
|
|
STDAPI SCIDCannonicalName(SHCOLUMNID *pscid, LPTSTR pszName, int cch);
|
|
HRESULT PropVariantToVariant(const PROPVARIANT *pPropVar, VARIANT *pVar);
|
|
|
|
#define CompareSCIDFMTIDPID(fmtid, pid, scid) ((pid == (scid).pid) && IsEqualIID(fmtid, (scid).fmtid))
|
|
#define DEFINE_SCID(name, fmtid, pid) const SHCOLUMNID name = { fmtid, pid }
|
|
|
|
//
|
|
// Constants used while converting a SCID to a string
|
|
//
|
|
#define SCID_PIDSTR_MAX 10 // will take care of any long integer value
|
|
#define SCIDSTR_MAX (GUIDSTR_MAX + 1 + SCID_PIDSTR_MAX)
|
|
|
|
STDAPI_(int) StringFromSCID(const SHCOLUMNID *pscid, LPTSTR lpsz, UINT cch);
|
|
|
|
STDAPI SHFormatForDisplay(REFFMTID fmtid, PROPID pid, const PROPVARIANT *pPropVar,
|
|
PROPERTYUI_FORMAT_FLAGS flags, LPWSTR pwszText, DWORD cchText);
|