fileinfo.dll是一个shell extension, 该shell extension注册后
在文件管理器中查看*.EXE类文件属性时会添加一个属性页, 显示出
该EXE文件的dos头信息,我没有写过,希望各位能提供一些宝贵的例子

解决方案 »

  1.   

    看看 PE格式 和 Shell扩展编程.
    我没写过啊^____________________________________^
      

  2.   

    http://www.vckbase.com/vckbase/vckbase12/vc/nonctrls/vctips_32/1232004.htm
    先了解PE格式
    添加一个属性页只要实现相应的shell COM接口即可
      

  3.   

    http://www.vckbase.com/vckbase/vckbase12/vc/nonctrls/vctips_32/1232004.htm
    然后去学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内就有不少你想要的信息了