typedef HRESULT (STDAPICALLTYPE *PFNREADPROP)(IPropertyStorage *ppropstg, PROPID propid, LPTSTR pszBuf, DWORD cchBuf); typedef struct { const FMTID *pfmtid; // FMTID_ for property set UINT idProp; // property ID PFNREADPROP pfnRead; // function to fetch the string representation UINT idFmtString; // format string to use, should be "%1String %2" } ITEM_PROP; // standard PFNREADPROP callback types STDAPI GetStringProp(IPropertyStorage *ppropstg, PROPID propid, LPTSTR pszBuf, DWORD cchBuf); STDAPI GetFileTimeProp(IPropertyStorage *ppropstg, PROPID propid, LPTSTR pszBuf, DWORD cchBuf); STDAPI GetInfoTipFromStorage(IPropertySetStorage *ppropsetstg, const ITEM_PROP *pip, WCHAR **ppszTip);