Introduction
CFileProperty exposes simple methods to read the file properties, i.e. MP3 ID3 tags and so on.
Using the Code
Copy FileProperty.h and FileProperty.cpp into your project.
You may need to append some includes in the stdafx.h:
#include <map>
#include <NTQuery.h>
#include <shlwapi.h>
#include <ShlGuid.h>
#include <shlobj.h>
#include <shobjidl.h>
#pragma comment( lib, "shlwapi.lib")
The tiny class is very simple to use. Here is the sample code:
CFileProperty oFileProperty;
if( oFileProperty.LoadFromFile(_T("C:\\1.mp3") )
{
tagFilePropMusicInfo stMusicInfo = {0};
oFileProperty.GetMusicInformation(stMusicInfo);
LPCTSTR lpszTitle = oFileProperty.GetProperty
( FMTID_SummaryInformation, PIDSI_TITLE);
std::map<CString, std::map<DWORD, CString> >::iterator iter1;
iter1 = oFileProperty.m_mpProperties.begin();
for( ; iter1 != oFileProperty.m_mpProperties.end(); iter1++)
{
std::map<DWORD, CString> & mpProperty = iter1->second;
std::map<DWORD, CString>::iterator iter2;
iter2 = mpProperty.begin();
for( ; iter2 != mpProperty.end(); iter2++)
{
m_strInfo.AppendFormat( _T("\r\n%s %08ld %s")
, iter1->first
, iter2->first
, iter2->second.IsEmpty() ?
_T("<NULL>") : iter2->second
);
}
}
}
FMTID
A property set is identified with a format identifier (FMTID). Listed below are some FMTIDs for your reference.
| FMTID |
Memo |
FMTID_Storage |
Storage property set |
FMTID_ImageProperties |
Image property set |
FMTID_CustomImageProperties |
Custom image property set |
FMTID_Displaced |
Displaced property set |
FMTID_Briefcase |
Briefcase property set |
FMTID_Misc |
Miscellaneous property set |
FMTID_WebView |
Web property set |
FMTID_MUSIC |
Music property set |
FMTID_DRM |
Digital Rights Management property set |
FMTID_Volume |
Volume property set |
FMTID_Query |
Query property set |
FMTID_SummaryInformation |
Summary information property set. |
FMTID_DocSummaryInformation |
Summary information property set |
FMTID_UserDefinedProperties |
User defined property set |
FMTID_DiscardableInformation |
|
FMTID_ImageSummaryInformation |
Summary information property set |
FMTID_AudioSummaryInformation |
Image summary information property set |
FMTID_VideoSummaryInformation |
Video summary information property set |
FMTID_MediaFileSummaryInformation |
Media file summary information property set |
FMTID_FileAttributes |
|
History
- 8th March, 2009: Initial post