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.
|
// Adds/Replaces/Removes a resource.
|
||||||
// If lpData is 0 UpdateResource removes the 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* nameDir = 0;
|
||||||
CResourceDirectory* langDir = 0;
|
CResourceDirectory* langDir = 0;
|
||||||
CResourceDataEntry* data = 0;
|
CResourceDataEntry* data = 0;
|
||||||
|
@ -118,7 +118,7 @@ void CResourceEditor::UpdateResource(char* szType, char* szName, LANGID wLanguag
|
||||||
// Replace/Add the resource
|
// Replace/Add the resource
|
||||||
if (data) {
|
if (data) {
|
||||||
data->SetData(lpData, dwSize);
|
data->SetData(lpData, dwSize);
|
||||||
return;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!nameDir) {
|
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) {
|
bool CResourceEditor::UpdateResource(WORD szType, char* szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize) {
|
||||||
UpdateResource(MAKEINTRESOURCE(szType), szName, wLanguage, lpData, dwSize);
|
return UpdateResource(MAKEINTRESOURCE(szType), szName, wLanguage, lpData, dwSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CResourceEditor::UpdateResource(char* szType, WORD szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize) {
|
bool CResourceEditor::UpdateResource(char* szType, WORD szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize) {
|
||||||
UpdateResource(szType, MAKEINTRESOURCE(szName), wLanguage, lpData, dwSize);
|
return UpdateResource(szType, MAKEINTRESOURCE(szName), wLanguage, lpData, dwSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CResourceEditor::UpdateResource(WORD szType, WORD szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize) {
|
bool CResourceEditor::UpdateResource(WORD szType, WORD szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize) {
|
||||||
UpdateResource(MAKEINTRESOURCE(szType), MAKEINTRESOURCE(szName), wLanguage, lpData, dwSize);
|
return UpdateResource(MAKEINTRESOURCE(szType), MAKEINTRESOURCE(szName), wLanguage, lpData, dwSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns a copy of the resource requested
|
// Returns a copy of the resource requested
|
||||||
|
|
|
@ -62,10 +62,10 @@ public:
|
||||||
CResourceEditor(BYTE* pbPE, int iSize);
|
CResourceEditor(BYTE* pbPE, int iSize);
|
||||||
virtual ~CResourceEditor();
|
virtual ~CResourceEditor();
|
||||||
|
|
||||||
void UpdateResource(char* szType, char* szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize);
|
bool UpdateResource(char* szType, char* szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize);
|
||||||
void UpdateResource(WORD szType, char* szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize);
|
bool UpdateResource(WORD szType, char* szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize);
|
||||||
void UpdateResource(char* szType, WORD szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize);
|
bool 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(WORD szType, WORD szName, LANGID wLanguage, BYTE* lpData, DWORD dwSize);
|
||||||
BYTE* GetResource(char* szType, char* szName, LANGID wLanguage);
|
BYTE* GetResource(char* szType, char* szName, LANGID wLanguage);
|
||||||
|
|
||||||
BYTE* Save(DWORD &dwSize);
|
BYTE* Save(DWORD &dwSize);
|
||||||
|
|
|
@ -127,9 +127,14 @@ int replace_icon(CResourceEditor* re, WORD wIconId, char* filename)
|
||||||
|
|
||||||
RsrcIconGroupEntry* ige = (RsrcIconGroupEntry*)(rsrcIconGroup + sizeof(IconGroupHeader));
|
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;
|
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);
|
fread(ige, sizeof(FileIconGroupEntry)-sizeof(DWORD), 1, f);
|
||||||
ige->wRsrcId = i+1;
|
ige->wRsrcId = i+1;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue