fileinfo.dll是一个shell extension, 该shell extension注册后
在文件管理器中查看*.EXE类文件属性时会添加一个属性页, 显示出
该EXE文件的dos头信息,我没有写过,希望各位能提供一些宝贵的例子
在文件管理器中查看*.EXE类文件属性时会添加一个属性页, 显示出
该EXE文件的dos头信息,我没有写过,希望各位能提供一些宝贵的例子
解决方案 »
- 基于对话框--鼠标拖动图片
- 如果设置了clip_children,父窗口又强制刷新子窗口区域
- Create(pPage->m_nDialogID, this),直接crash掉了,为什么?
- 如何通过CRichEditCntrItem和ActiveX控件通讯,如调用控件的属性和方法?
- ##我希望得到当前系统中所有的文件,文件夹大小图标,如何获得?##
- 散分:各位来讨论一下memcpy和memmove有什么区别????
- 关于ZoneAlarm的网络安全控制
- 我想明年从深圳去上海
- 关于十六进制代码
- 如何实现OnSysCommand()?
- insert 时候乱码问题
- 怎么将一个.IDL文件编译生成DLL?
我没写过啊^____________________________________^
先了解PE格式
添加一个属性页只要实现相应的shell COM接口即可
然后去学PE文件头了.或是
static const char genre_types[][50] = {
"Blues", "Classic Rock", "Country", "Dance",
"Disco", "Funk", "Grunge", "Hip-Hop", "Jazz",
"Metal", "New Age", "Oldies", "Other", "Pop", "R&B",
"Rap", "Reggae", "Rock", "Techno", "Industrial",
"Alternative", "Ska", "Death Metal", "Pranks",
"Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop",
"Vocal", "Jazz+Funk", "Fusion", "Trance",
"Classical", "Instrumental", "Acid", "House",
"Game", "Sound Clip", "Gospel", "Noise",
"AlternRock", "Bass", "Soul", "Punk", "Space",
"Meditative", "Instrumental Pop",
"Instrumental Rock", "Ethnic", "Gothic", "Darkwave",
"Techno-Industrial", "Electronic", "Pop-Folk",
"Eurodance", "Dream", "Southern Rock", "Comedy",
"Cult", "Gangsta", "Top 40", "Christian Rap",
"Pop/Funk", "Jungle", "Native American", "Cabaret",
"New Wave", "Psychadelic", "Rave", "Showtunes",
"Trailer", "Lo-Fi", "Tribal", "Acid Punk",
"Acid Jazz", "Polka", "Retro", "Musical",
"Rock & Roll",
"Hard Rock", "Folk", "Folk/Rock", "National Folk",
"Swing", "Fast Fusion", "Bebob", "Latin", "Revival",
"Celtic", "Bluegrass", "Avantgarde", "Gothic Rock",
"Progressive Rock", "Psychedelic Rock",
"Symphonic Rock", "Slow Rock", "Big Band",
"Chorus", "Easy Listening", "Acoustic", "Humour",
"Speech",
"Chanson", "Opera", "Chamber Music", "Sonata",
"Symphony", "Booty Bass", "Primus", "Porn Groove",
"Satire", "Slow Jam", "Club", "Tango", "Samba",
"Folklore", "Ballad", "Power Ballad",
"Rhythmic Soul", "Freestyle", "Duet",
"Punk Rock", "Drum Solo", "Acapella",
"Euro-house", "Dance Hall"
};struct id3tag
{
char tag[3];
char title[30];
char artist[30];
char album[30];
char year[4];
char comment[29];
char unknown;
char genre_num;
};void process_pchar (char *end)
{
for (;*end == ' ';*end-- = 0)
;
}void process (id3tag *ptag)
{
process_pchar (ptag->artist-1);
process_pchar (ptag->album-1);
process_pchar (ptag->year-1);
process_pchar (((char *)(&(ptag->unknown)))-1);
}HANDLE file = CreateFile (spu::stringt (filename), GENERIC_READ,
FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
if (file == INVALID_HANDLE_VALUE)
{
return S_FALSE;
}// decode id3tag
id3tag tag;
DWORD read;
::SetFilePointer (file, -128, NULL, FILE_END);
if (!ReadFile (file, &tag, 128, &read, NULL))
{
CloseHandle (file);
return S_FALSE;
}process (&tag);// 现在tag内就有不少你想要的信息了