




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include stdafx.h#include enum_all_icons.h#include save_icon_file_by_handle.hnamespace yg_iconBOOL CALLBACK EnumAllIconInPE:FindGroupIconProc( HANDLE hModule, LPCTSTR lpszType, LPTSTR lpszName, LONG lParam )T_map_icons* all_icons = (T_map_icons*)lParam;HRSRC ico_group_rsrc = :FindResource(HMODULE)hModule, lpszName, lpszType);if (ico_group_rsrc = NULL)return TRUE;HGLOBAL ico_group_handle = :LoadResource(HMODULE)hModule, ico_group_rsrc); if (ico_group_handle = NULL)return TRUE;GRPICONDIR* ico_group_data = (LPGRPICONDIR):LockResource(ico_group_handle); if (ico_group_data = NULL):FreeResource(ico_group_handle);return TRUE;std:map icons;for (int i = 0; i idCount; +i) GRPICONDIRENTRY* ico_entry = &ico_group_data-idEntriesi;HRSRC ico_rsrc = :FindResource(HMODULE) hModule, MAKEINTRESOURCE(ico_entry-nID), RT_ICON);if (ico_rsrc = NULL)break;HGLOBAL img_handle = :LoadResource(HMODULE)hModule, ico_rsrc);if (img_handle = NULL)break;LPVOID icon_image = :LockResource(img_handle);if (icon_image = NULL):FreeResource(img_handle);break;HICON hIcon = :CreateIconFromResourceEx(PBYTE)icon_image, ico_entry-dwBytesInRes, TRUE, 0x00030000, ico_entry-bWidth, ico_entry-bHeight, 0); icons.insert(std:make_pair(icons.size(), hIcon); all_icons-insert(std:make_pair(all_icons-size(), icons);:FreeResource(ico_group_handle);return TRUE;bool EnumAllIconInPE:EnumAll( const std:wstring& pe_path, const std:wstring& save_dir )HMODULE load_lib = :LoadLibraryEx(pe_path.c_str(), NULL, LOAD_LIBRARY_AS_DATAFILE);if(load_lib = NULL)return false;T_map_icons all_icons;:EnumResourceNames(load_lib, RT_GROUP_ICON, (ENUMRESNAMEPROC)&FindGroupIconProc, (LONG)&all_icons);MyCreateDirectory(save_dir);SaveFileByHIcon save_by_handle;T_map_icons:iterator it = all_icons.begin();T_map_icons:iterator itEnd = all_icons.end();for (; it != itEnd; +it)std:wstring save_path = save_dir + L + int2wstr(it-first) + L.ico;save_by_handle.SaveIconFile(it-second, save_path);:FreeLibrary(load_lib);return true;std:wstring EnumAllIconInPE:int2wstr( int nData )wchar_t wchBuf32 = L;_itow_s(nData, wchBuf, 32, 10);return wchBuf;BOOL EnumAllIconInPE:MyCreateDirectory( const std:wstring& strDir )if (strDir.empty() | strDir.length() 3 | strDir1 != L:)return FALSE;std:wstring sub_dir = strDir;wchar_t last_char = sub_dirsub_dir.length()-1;if ( last_char != L & last_char != L/)sub_dir += L;std:wstring:size_type gap_pos_1 = sub_dir.find_first_of(L, 0);std:wstring:size_type gap_pos_2 = sub_dir.find_first_of(L/, 0);if (gap_pos_1 = std:wstring:npos)gap_pos_1 = 0xFFFFFFFF;if (gap_pos_2 = std:wstring:npos)gap_pos_2 = 0xFFFFFFFF;std:wstring:size_type gap_pos = min(gap_pos_1, gap_pos_2);if (gap_pos = 0xFFFFFFFF)return FALSE;BOOL bRet = TRUE;std:wstring:size_type gap_pos_bak = gap_pos;while(gap_pos != std:wstring:npos)std:wstring pre_dir = strDir.substr(0, gap_pos);if(!:PathIsDirectory(pre_dir.c_str()BOOL bCreate = :CreateDirectory(pre_dir.c_str(), NULL);if (bCreate = 0)DWORD dwError = :GetLastError();if (dwError != ERROR_ALREADY_EXISTS)bRet = FALSE;break;gap_pos_bak = gap_pos;std:wstring:size_type gap_pos_1 = sub_dir.find_first_of(L, gap_pos_bak+1);std:wstring:size_type gap_pos_2 = sub_dir.find_first_of(L/, gap_pos_bak+1);if (gap_pos_1 = std:wst
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025自考国考会计试题及答案
- 土木工程考试题库及答案
- 考点解析-人教版九年级《电与磁》综合测评练习题(含答案详解)
- 护理表演学考试题及答案
- 难点详解人教版八年级上册物理光现象《光的直线传播》专项测评试题(含答案及解析)
- 考点攻克人教版九年级《电功率》综合练习试题(含答案及解析)
- 2025-2026学年度上海市六年级上册初中数学9月月考试题 参考答案
- 十大类考试题目及答案
- 滕州二中分班考试试卷及答案
- 湘潭县一中开学考试题及答案
- 2025年江苏省公务员考试行测试题真题及解析
- 2025年矿山建设工程考试题库
- 本科教学审核评估汇报
- 非油提质增效汇报
- 都江堰水利工程课件
- 2025年小学生航空航天知识竞赛题库 (共120题附答案)
- 祛痘培训课件
- 医疗反歧视培训
- 液氮运输投标方案(3篇)
- 《2019年甘肃省职业院校技能大赛学前教育专业教育技能赛项竞赛规程(高职教师组)》
- 护理工作的模式
评论
0/150
提交评论