Last icon used counts, all others deleted
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2012 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
65e19753ac
commit
54240fcfc6
3 changed files with 20 additions and 13 deletions
|
@ -94,7 +94,7 @@ CResourceEditor::~CResourceEditor() {
|
|||
|
||||
// Adds/Replaces/Removes a resource.
|
||||
// If lpData is 0 UpdateResource removes the resource.
|
||||
void CResourceEditor::UpdateResource(char* szType, char* szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize) {
|
||||
bool CResourceEditor::UpdateResource(char* szType, char* szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize) {
|
||||
CResourceDirectory* nameDir = 0;
|
||||
CResourceDirectory* langDir = 0;
|
||||
CResourceDataEntry* data = 0;
|
||||
|
@ -118,7 +118,7 @@ void CResourceEditor::UpdateResource(char* szType, char* szName, LANGID wLanguag
|
|||
// Replace/Add the resource
|
||||
if (data) {
|
||||
data->SetData(lpData, dwSize);
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!nameDir) {
|
||||
|
@ -151,18 +151,20 @@ void CResourceEditor::UpdateResource(char* szType, char* szName, LANGID wLanguag
|
|||
}
|
||||
}
|
||||
}
|
||||
else return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void CResourceEditor::UpdateResource(WORD szType, char* szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize) {
|
||||
UpdateResource(MAKEINTRESOURCE(szType), szName, wLanguage, lpData, dwSize);
|
||||
bool CResourceEditor::UpdateResource(WORD szType, char* szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize) {
|
||||
return UpdateResource(MAKEINTRESOURCE(szType), szName, wLanguage, lpData, dwSize);
|
||||
}
|
||||
|
||||
void CResourceEditor::UpdateResource(char* szType, WORD szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize) {
|
||||
UpdateResource(szType, MAKEINTRESOURCE(szName), wLanguage, lpData, dwSize);
|
||||
bool CResourceEditor::UpdateResource(char* szType, WORD szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize) {
|
||||
return UpdateResource(szType, MAKEINTRESOURCE(szName), wLanguage, lpData, dwSize);
|
||||
}
|
||||
|
||||
void CResourceEditor::UpdateResource(WORD szType, WORD szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize) {
|
||||
UpdateResource(MAKEINTRESOURCE(szType), MAKEINTRESOURCE(szName), wLanguage, lpData, dwSize);
|
||||
bool CResourceEditor::UpdateResource(WORD szType, WORD szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize) {
|
||||
return UpdateResource(MAKEINTRESOURCE(szType), MAKEINTRESOURCE(szName), wLanguage, lpData, dwSize);
|
||||
}
|
||||
|
||||
// Returns a copy of the resource requested
|
||||
|
|
|
@ -62,10 +62,10 @@ public:
|
|||
CResourceEditor(BYTE* pbPE, int iSize);
|
||||
virtual ~CResourceEditor();
|
||||
|
||||
void UpdateResource(char* szType, char* szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize);
|
||||
void UpdateResource(WORD szType, char* szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize);
|
||||
void UpdateResource(char* szType, WORD szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize);
|
||||
void UpdateResource(WORD szType, WORD szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize);
|
||||
bool UpdateResource(char* szType, char* szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize);
|
||||
bool UpdateResource(WORD szType, char* szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize);
|
||||
bool UpdateResource(char* szType, WORD szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize);
|
||||
bool UpdateResource(WORD szType, WORD szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize);
|
||||
BYTE* GetResource(char* szType, char* szName, LANGID wLanguage);
|
||||
|
||||
BYTE* Save(DWORD &dwSize);
|
||||
|
|
|
@ -127,9 +127,14 @@ int replace_icon(CResourceEditor* re, WORD wIconId, char* filename)
|
|||
|
||||
RsrcIconGroupEntry* ige = (RsrcIconGroupEntry*)(rsrcIconGroup + sizeof(IconGroupHeader));
|
||||
|
||||
int i = 1;
|
||||
|
||||
// Delete old icons
|
||||
while (re->UpdateResource(RT_ICON, MAKEINTRESOURCE(i++), MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), 0, 0));
|
||||
|
||||
int iNewIconSize = 0;
|
||||
|
||||
for (int i = 0; i < igh.wCount; i++) {
|
||||
for (i = 0; i < igh.wCount; i++) {
|
||||
fread(ige, sizeof(FileIconGroupEntry)-sizeof(DWORD), 1, f);
|
||||
ige->wRsrcId = i+1;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue