在vs2005下运行,非unicode时能取得文件夹的图标,但为什么在unicode时取不了?
[code=C/C++]
      DWORD dwFlags = SHGFI_USEFILEATTRIBUTES | SHGFI_DISPLAYNAME | SHGFI_TYPENAME | SHGFI_ICON;
      SHFILEINFO shInfo;
      ZeroMemory(&shInfo, sizeof(shInfo));
      SHGetFileInfo(NULL, FILE_ATTRIBUTE_DIRECTORY, &shInfo, sizeof(SHFILEINFO), dwFlags | SHGFI_SMALLICON);
[/code

解决方案 »

  1.   

    SHGetFileInfo(NULL, FILE_ATTRIBUTE_DIRECTORY, &shInfo, sizeof(SHFILEINFO), dwFlags | SHGFI_SMALLICON); 
    这样好像只要FILE_ATTRIBUTE_DIRECTORY就可以不用路径吧,我只是想获得文件夹图标,而不是某个特定文件夹
      

  2.   

    这个在unicode模式下应该自动选择带W的函数的。楼主估计还是需要设置一个“peseudo"文件夹名字
      

  3.   

    SHGetFileInfo()正解。用SHFILEINFO这个数据结构
    DWORD_PTR SHGetFileInfo(          LPCTSTR pszPath,
        DWORD dwFileAttributes,
        SHFILEINFO *psfi,
        UINT cbFileInfo,
        UINT uFlags
    );
      

  4.   

      LPCTSTR pszPath,还是要有文件夹名