全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课题研究的系统化设计与实施路径-灰蓝色-简约扁平风
- 2026年呼伦贝尔市海拉尔区城管协管人员招聘考试参考题库及答案详解
- 2026年襄樊市樊城区城管协管人员招聘考试备考题库及答案详解
- 职场必修课:授权管理实战指南
- 2026年南通市港闸区城管协管人员招聘笔试参考试题及答案详解
- 2026年沈阳市于洪区(中小学、幼儿园)教师招聘笔试备考试题及答案详解
- 探视陪护管理制度
- 2026年上海市普陀区城管协管人员招聘考试模拟试题及答案详解
- 2026年休宁县带编教师招聘考试参考题库及答案解析
- 肠易激综合征患者运动与休息安排
- 湖北省孝感市一中2026-2027年高三上九月月考英语试卷(含解析无听力音频含听力原文)
- 小学三年级综合实践活动《多彩的叶子》教学设计
- 宁夏南华山国家级自然保护区管理处招聘管护人员的笔试参考题库及答案详解
- 医学课件-胰腺癌研究及诊疗新进展
- 2026年苏州轨道交通有限公司人员招聘笔试备考题库及答案详解
- 2026年建筑施工企业安管人员继续教育试题(含答案)
- 2025年通信工程师中级传输与接入(无线)真题及答案解析
- ISOTS 68182024 中药艾条质量试验方法废颗粒浓度标准立项发展报告
- 工业园区物业服务方案
- 初中地理七年级城镇与乡村(第2课时):变迁·守望·振兴-跨学科主题学习教案
- 糖尿病治疗管理技术进展2026
评论
0/150
提交评论