全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#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年家庭影院播放器评测
- 6.2细胞的分化 课件共44张 2024-2025学年人教版(2019)高中生物学必修1
- 矿石破碎筛分工岗前实操综合知识考核试卷含答案
- 橡胶割胶工安全技能评优考核试卷含答案
- 2026年新科教版高中高一生物上册第三单元物质跨膜运输方式卷含答案
- 电炉炼钢工岗前QC管理考核试卷含答案
- 电子电气产品能效检验员成果模拟考核试卷含答案
- 信用管理师安全理论考核试卷含答案
- 办公设备维修工岗前安全实操考核试卷含答案
- 国际贸易咨询服务方案
- (正式版)DB32∕T 5184-2025 《海域使用权立体分层设权技术规范》
- 七下语文课内文言文阅读夯实基础训练(含答案)
- 韩非子导读课件
- 二年级上册两位数加减法竖式计算300道(进退位)及答案
- VCSEL及光通信激光芯片产业化项目可行性研究报告
- 污水站安全操作应急处置培训考试题及答案
- 2024年下半年成都铁路文化传媒有限责任公司校招笔试题带答案
- 2025年重庆红色旅游市场调研报告
- 东航总部劳务派遣合同6篇
- 外厂人员驻厂安全协议书
评论
0/150
提交评论