• <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 飛飛龍

            學習了  回復  更多評論   

            亚洲AⅤ优女AV综合久久久| 亚洲精品乱码久久久久久按摩 | 亚洲国产成人乱码精品女人久久久不卡 | 色播久久人人爽人人爽人人片aV| 久久亚洲电影| 日韩久久久久久中文人妻| 久久精品草草草| 欧美亚洲国产精品久久久久| 久久精品无码专区免费东京热| 91精品免费久久久久久久久| 亚洲七七久久精品中文国产| 日韩精品久久久肉伦网站| 久久精品国产亚洲Aⅴ香蕉| 久久精品午夜一区二区福利| 亚洲欧美久久久久9999| 色噜噜狠狠先锋影音久久| 亚洲国产精品无码久久SM| 久久无码精品一区二区三区| 久久66热人妻偷产精品9| 亚洲欧美日韩久久精品| 66精品综合久久久久久久| 亚洲精品乱码久久久久久自慰| 天堂无码久久综合东京热| 天天综合久久久网| 久久这里只有精品久久| 久久亚洲AV成人无码电影| 久久人人爽人人爽人人片AV东京热 | 久久久久久久97| 看久久久久久a级毛片| 理论片午午伦夜理片久久| 精品无码久久久久久国产| 久久中文娱乐网| 亚洲国产精品久久| 精品久久一区二区| 久久国产精品国产自线拍免费| 精品久久久久久无码专区| av无码久久久久不卡免费网站 | 久久人人爽人人爽人人片AV麻豆| 办公室久久精品| 色综合合久久天天给综看| 久久夜色精品国产亚洲av|