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

            學習了  回復  更多評論   

            久久人人爽人人爽人人片AV不| 久久91综合国产91久久精品| 66精品综合久久久久久久| 国内精品久久久久久久久电影网 | 久久影视国产亚洲| 久久久久久综合一区中文字幕| 久久精品人人槡人妻人人玩AV| 久久久一本精品99久久精品88| 欧美激情一区二区久久久| 超级碰碰碰碰97久久久久| 久久九九兔免费精品6| 中文字幕日本人妻久久久免费 | 久久九九全国免费| 久久国产视屏| 伊人久久五月天| 欧美日韩精品久久久免费观看| 模特私拍国产精品久久| 久久99国产精品久久99小说 | 伊人久久大香线蕉综合影院首页 | 久久久久久久97| 久久99精品久久久久婷婷| 久久国产精品一区二区| 久久国产精品偷99| 中文精品99久久国产| 久久人人爽人人爽人人片AV不 | 国产呻吟久久久久久久92| 麻豆久久| 国产精品久久久久无码av| 欧美精品丝袜久久久中文字幕 | 国产精品久久久久国产A级| 国产 亚洲 欧美 另类 久久| 亚洲国产成人精品久久久国产成人一区二区三区综| 人妻系列无码专区久久五月天| 国产成人精品三上悠亚久久| 久久精品国产久精国产| 午夜精品久久久久久| 2022年国产精品久久久久| 久久精品视频一| 精品久久久久久久久久中文字幕 | 婷婷久久五月天| 久久精品草草草|