• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            一個Windows API的SHGetFileInfo()方法的Wrapper

            頭文件
            /// @class CSHGetFileInfo
            /// SHGetFileInfo的包裹類

            class CSHGetFileInfo
            {

            public:
                CSHGetFileInfo();

                
            virtual ~CSHGetFileInfo();

                
            /// 獲取系統圖像列表
                
            /// @param[in] bSmallIcon ture則為小圖標,false則為大圖標

                HIMAGELIST  GetSystemImageListHandle( BOOL bSmallIcon );

                
            /// 獲取系統圖片列表的文件圖片索引
                
            /// @param[in] strFileName 文件名
                
            /// @param[in] bSmallIcon ture則為小圖標,false則為大圖標

                int GetFileIconIndex( CString strFileName, BOOL bSmallIcon);

                
            /// 獲取系統圖片列表的文件夾圖片索引
                
            /// @param[in] bSmallIcon

                int GetDirIconIndex(BOOL bSmallIcon);

                
            /// 獲取文件的icon的句柄
                
            /// @param[in] strFileName 文件名
                
            /// @param[in] bSmallIcon ture則為小圖標,false則為大圖標

                HICON GetFileIconHandle(CString strFileName, BOOL bSmallIcon);

                
            /// 獲取文件夾的icon的句柄
                
            /// @param[in] bSmallIcon ture則為小圖標,false則為大圖標

                HICON GetFolderIconHandle(BOOL bSmallIcon );

                
            /// 獲取文件類型
                
            /// @param[in] strFileName 文件名

                CString GetFileType(CString strFileName);

            }
            ;


            cpp文件
            CSHGetFileInfo::CSHGetFileInfo()
            {

            }


            CSHGetFileInfo::
            ~CSHGetFileInfo()
            {

            }



            HIMAGELIST  CSHGetFileInfo::GetSystemImageListHandle( BOOL bSmallIcon )
            {
                HIMAGELIST  hSystemImageList; 
                SHFILEINFO    ssfi; 

                
            if (bSmallIcon)
                
            {
                    hSystemImageList 
            = 
                        (HIMAGELIST)SHGetFileInfo( 
                        (LPCTSTR)_T(
            "c:\\"), 
                        
            0
                        
            &ssfi, 
                        
            sizeof(SHFILEINFO), 
                        SHGFI_SYSICONINDEX 
            | SHGFI_SMALLICON); 
                }

                
            else
                
            {
                    hSystemImageList 
            = 
                        (HIMAGELIST)SHGetFileInfo( 
                        (LPCTSTR)_T(
            "c:\\"), 
                        
            0
                        
            &ssfi, 
                        
            sizeof(SHFILEINFO), 
                        SHGFI_SYSICONINDEX 
            | SHGFI_LARGEICON); 
                }

                
            return hSystemImageList;
            }



            int CSHGetFileInfo::GetFileIconIndex( CString strFileName, BOOL bSmallIcon )
            {
                SHFILEINFO    sfi;

                
            if (bSmallIcon)
                
            {
                    SHGetFileInfo(
                        (LPCTSTR)strFileName, 
                        FILE_ATTRIBUTE_NORMAL,
                        
            &sfi, 
                        
            sizeof(SHFILEINFO), 
                        SHGFI_SYSICONINDEX 
            | SHGFI_SMALLICON | SHGFI_USEFILEATTRIBUTES);
                }

                
            else
                
            {
                    SHGetFileInfo(
                        (LPCTSTR)strFileName, 
                        FILE_ATTRIBUTE_NORMAL,
                        
            &sfi, 
                        
            sizeof(SHFILEINFO), 
                        SHGFI_SYSICONINDEX 
            | SHGFI_LARGEICON | SHGFI_USEFILEATTRIBUTES);
                }


                
            return sfi.iIcon;

            }


            int CSHGetFileInfo::GetDirIconIndex(BOOL bSmallIcon )
            {
                SHFILEINFO    sfi;
                
            if (bSmallIcon)
                
            {
                    SHGetFileInfo(
                        (LPCTSTR)
            "Doesn't matter"
                        FILE_ATTRIBUTE_DIRECTORY,
                        
            &sfi, 
                        
            sizeof(SHFILEINFO), 
                        SHGFI_SYSICONINDEX 
            | SHGFI_SMALLICON | SHGFI_USEFILEATTRIBUTES);
                }

                
            else
                
            {
                    SHGetFileInfo(
                        (LPCTSTR)
            "Doesn't matter"
                        FILE_ATTRIBUTE_DIRECTORY,
                        
            &sfi, 
                        
            sizeof(SHFILEINFO), 
                        SHGFI_SYSICONINDEX 
            | SHGFI_LARGEICON | SHGFI_USEFILEATTRIBUTES);

                }

                
            return sfi.iIcon;

            }

            HICON CSHGetFileInfo::GetFileIconHandle(CString strFileName, BOOL bSmallIcon)
            {

                SHFILEINFO    sfi;
                
            if (bSmallIcon)
                
            {
                    SHGetFileInfo(
                        (LPCTSTR)strFileName, 
                        FILE_ATTRIBUTE_NORMAL,
                        
            &sfi, 
                        
            sizeof(SHFILEINFO), 
                        SHGFI_ICON 
            | SHGFI_SMALLICON | SHGFI_USEFILEATTRIBUTES);
                }

                
            else
                
            {
                    SHGetFileInfo(
                        (LPCTSTR)strFileName, 
                        FILE_ATTRIBUTE_NORMAL,
                        
            &sfi, 
                        
            sizeof(SHFILEINFO), 
                        SHGFI_ICON 
            | SHGFI_LARGEICON | SHGFI_USEFILEATTRIBUTES);
                }

                
            return sfi.hIcon;


            }

            HICON CSHGetFileInfo::GetFolderIconHandle(BOOL bSmallIcon )
            {
                SHFILEINFO    sfi;
                
            if (bSmallIcon)
                
            {
                    SHGetFileInfo(
                        (LPCTSTR)
            "Doesn't matter"
                        FILE_ATTRIBUTE_DIRECTORY,
                        
            &sfi, 
                        
            sizeof(SHFILEINFO), 
                        SHGFI_ICON 
            | SHGFI_SMALLICON | SHGFI_USEFILEATTRIBUTES);
                }

                
            else
                
            {
                    SHGetFileInfo(
                        (LPCTSTR)
            "Does not matter"
                        FILE_ATTRIBUTE_DIRECTORY,
                        
            &sfi, 
                        
            sizeof(SHFILEINFO), 
                        SHGFI_ICON 
            | SHGFI_LARGEICON | SHGFI_USEFILEATTRIBUTES);
                }

                
            return sfi.hIcon;
            }


            CString CSHGetFileInfo::GetFileType(CString strFileName)
            {
                SHFILEINFO    sfi;

                SHGetFileInfo(
                    (LPCTSTR)strFileName, 
                    FILE_ATTRIBUTE_NORMAL,
                    
            &sfi, 
                    
            sizeof(SHFILEINFO), 
                    SHGFI_TYPENAME 
            | SHGFI_USEFILEATTRIBUTES);

                
            return sfi.szTypeName;
            }


            posted on 2008-05-05 13:50 楊粼波 閱讀(1816) 評論(1)  編輯 收藏 引用

            評論

            # re: 一個Windows API的SHGetFileInfo()方法的Wrapper 2012-01-31 15:13 飛飛龍

            學習了  回復  更多評論   

            久久精品国产久精国产思思| 国内精品久久久久久久97牛牛| 91精品久久久久久无码| 人人狠狠综合久久亚洲婷婷| 久久99精品国产麻豆不卡| 久久精品国产男包| 久久综合国产乱子伦精品免费| 青青草国产精品久久久久| 久久伊人色| 成人久久综合网| 青青草原综合久久大伊人| 99久久国语露脸精品国产| 一本色道久久综合狠狠躁篇| 国产精品久久久久久福利漫画| 色婷婷综合久久久久中文字幕| 亚洲AV无码一区东京热久久| 91超碰碰碰碰久久久久久综合| 亚洲成色www久久网站夜月| 国产免费福利体检区久久| 婷婷伊人久久大香线蕉AV| 日本精品久久久久久久久免费| 韩国免费A级毛片久久| 亚洲精品无码久久久| 色综合久久久久网| 久久ww精品w免费人成| 无码人妻久久一区二区三区蜜桃 | 久久久艹| 国产成人99久久亚洲综合精品| 久久成人国产精品| 久久久久亚洲AV成人片| 久久久久国产精品嫩草影院| 九九久久精品无码专区| 久久久久久免费一区二区三区| 欧美va久久久噜噜噜久久| 久久精品国产色蜜蜜麻豆| 久久综合色区| 亚洲日韩欧美一区久久久久我| 久久久久国产一级毛片高清板| 国产精品99久久不卡| 91精品国产91久久久久久| 国产高清美女一级a毛片久久w|