• <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 楊粼波 閱讀(1826) 評論(1)  編輯 收藏 引用

            評論

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

            學習了  回復  更多評論   

            综合网日日天干夜夜久久| 99久久婷婷国产一区二区| 久久只这里是精品66| 亚洲综合伊人久久综合| 国内精品久久久久久野外| 久久毛片免费看一区二区三区| 亚洲国产一成久久精品国产成人综合| 亚洲AV无码一区东京热久久| 国产99精品久久| 久久午夜福利无码1000合集| 国内精品九九久久久精品| 亚洲国产成人久久综合碰| 国内精品人妻无码久久久影院| 久久成人18免费网站| 色综合久久无码五十路人妻| 久久成人国产精品一区二区| 久久99精品久久久久久久不卡| 久久强奷乱码老熟女网站| 精品国产福利久久久| 中文字幕久久精品无码| 久久久这里有精品中文字幕| 久久伊人精品青青草原高清| 蜜臀久久99精品久久久久久小说| 麻豆久久| 久久国产成人午夜AV影院| 国产精品一区二区久久国产| 亚洲欧洲久久久精品| AA级片免费看视频久久| 久久国产精品99久久久久久老狼| 日产精品久久久久久久性色| 午夜精品久久影院蜜桃| 久久免费视频6| 久久久亚洲精品蜜桃臀| 久久性精品| 欧美久久一区二区三区| 性做久久久久久久久| 亚洲午夜精品久久久久久app| 日韩va亚洲va欧美va久久| 久久无码一区二区三区少妇| 亚洲国产婷婷香蕉久久久久久 | 国产69精品久久久久9999APGF|