|
|
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);
|