From ac156f5ebe6979c1be17f7f2f53a631b7e80d161 Mon Sep 17 00:00:00 2001 From: kichik Date: Thu, 25 Jan 2007 13:02:50 +0000 Subject: [PATCH] GetResourceSize -> GetResourceSizeA/GetResourceSizeW git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4885 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/ResourceEditor.cpp | 14 +++++++++++++- Source/ResourceEditor.h | 3 ++- Source/script.cpp | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Source/ResourceEditor.cpp b/Source/ResourceEditor.cpp index 44952ddd..4eb4672a 100644 --- a/Source/ResourceEditor.cpp +++ b/Source/ResourceEditor.cpp @@ -319,7 +319,7 @@ BYTE* CResourceEditor::GetResourceA(char* szType, char* szName, LANGID wLanguage // Returns the size of the requested resource // Returns -1 if the requested resource can't be found -int CResourceEditor::GetResourceSize(WCHAR* szType, WCHAR* szName, LANGID wLanguage) { +int CResourceEditor::GetResourceSizeW(WCHAR* szType, WCHAR* szName, LANGID wLanguage) { CResourceDirectory* nameDir = 0; CResourceDirectory* langDir = 0; CResourceDataEntry* data = 0; @@ -345,6 +345,18 @@ int CResourceEditor::GetResourceSize(WCHAR* szType, WCHAR* szName, LANGID wLangu return -1; } +int CResourceEditor::GetResourceSizeA(char* szType, char* szName, LANGID wLanguage) { + WCHAR* szwType = ResStringToUnicode(szType); + WCHAR* szwName = ResStringToUnicode(szName); + + int result = GetResourceSizeW(szwType, szwName, wLanguage); + + FreeUnicodeResString(szwType); + FreeUnicodeResString(szwName); + + return result; +} + void CResourceEditor::FreeResource(BYTE* pbResource) { if (pbResource) diff --git a/Source/ResourceEditor.h b/Source/ResourceEditor.h index 9bd94ec8..662eb26d 100644 --- a/Source/ResourceEditor.h +++ b/Source/ResourceEditor.h @@ -121,7 +121,8 @@ public: bool UpdateResourceA(char* szType, WORD szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize); BYTE* GetResourceW(WCHAR* szType, WCHAR* szName, LANGID wLanguage); BYTE* GetResourceA(char* szType, char* szName, LANGID wLanguage); - int GetResourceSize(WCHAR* szType, WCHAR* szName, LANGID wLanguage); + int GetResourceSizeW(WCHAR* szType, WCHAR* szName, LANGID wLanguage); + int GetResourceSizeA(char* szType, char* szName, LANGID wLanguage); void FreeResource(BYTE* pbResource); bool AddExtraVirtualSize2PESection(const char* pszSectionName, int addsize); diff --git a/Source/script.cpp b/Source/script.cpp index c04bd927..9b9b6314 100644 --- a/Source/script.cpp +++ b/Source/script.cpp @@ -4708,7 +4708,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line) { CResourceEditor *dllre = new CResourceEditor(dll, len); LPBYTE ver = dllre->GetResourceA(VS_FILE_INFO, MAKEINTRESOURCE(VS_VERSION_INFO), 0); - int versize = dllre->GetResourceASize(VS_FILE_INFO, MAKEINTRESOURCE(VS_VERSION_INFO), 0); + int versize = dllre->GetResourceSizeA(VS_FILE_INFO, MAKEINTRESOURCE(VS_VERSION_INFO), 0); if (ver) {