BOOL CALLBACK EnumResourceNameCallback(HMODULE hModule, LPCTSTR lpType,
LPWSTR lpName, LONG_PTR lParam)
{
HRSRC hResInfo = FindResource(hModule, lpName, lpType);
if (hResInfo) {
DWORD cbResource = SizeofResource(hModule, hResInfo);
HGLOBAL hResData = LoadResource(hModule, hResInfo);
if (hResData) {
const BYTE* pResource = (const BYTE*)LockResource(hResData);
std::string manifest = std::string((char*)pResource, cbResource);
UnlockResource(hResData);
FreeResource(hResData);
}
}
return TRUE; // Keep going
}
//调用处:
const TCHAR* pszFileName = L"";
HMODULE hModule = LoadLibraryEx(pszFileName, NULL, LOAD_LIBRARY_AS_DATAFILE);
if (hModule) {
EnumResourceNames(hModule, RT_MANIFEST, EnumResourceNameCallback, NULL);
FreeLibrary(hModule);
}