Back to 37KB

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@673 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2002-08-09 14:21:45 +00:00
parent d9fe9f1282
commit 2c01f3ae15
7 changed files with 134 additions and 154 deletions

View file

@ -361,7 +361,7 @@ end:
#ifdef NSIS_COMPRESS_WHOLE
if (dbd_hFile!=INVALID_HANDLE_VALUE) CloseHandle(dbd_hFile);
#endif
if (m_Err) MessageBox(NULL,m_Err,g_caption,MB_OK|MB_ICONSTOP);
if (m_Err) my_MessageBox(m_Err,MB_OK|MB_ICONSTOP);
#ifdef NSIS_CONFIG_PLUGIN_SUPPORT
// Clean up after plug-ins

View file

@ -113,36 +113,20 @@ BOOL my_SetDlgItemText(HWND dlg, WORD id, int strtab) {
}
BOOL SetUIText(HWND defhw, WORD def, WORD custom, int strtab) {
if (custom)
return my_SetDlgItemText(g_hwnd,custom,strtab);
else
return my_SetDlgItemText(defhw,def,strtab);
//my_SetDlgItemText(custom?g_hwnd:defhw,custom?custom:def,strtab);
return my_SetDlgItemText(custom?g_hwnd:defhw,custom?custom:def,strtab);
}
// no tab
BOOL SetUITextNT(HWND defhw, WORD def, WORD custom, const char *text) {
if (custom)
return SetDlgItemText(g_hwnd,custom,text);
else
return SetDlgItemText(defhw,def,text);
//return SetDlgItemText(custom?g_hwnd:defhw,custom?custom:def,text);
return SetDlgItemText(custom?g_hwnd:defhw,custom?custom:def,text);
}
UINT GetUIText(WORD def, WORD custom, char *str, int max_size) {
if (custom)
return GetDlgItemText(g_hwnd,custom,str,max_size);
else
return GetDlgItemText(m_curwnd,def,str,max_size);
//return GetDlgItemText(custom?g_hwnd:m_curwnd,custom?custom:def,str,max_size);
return GetDlgItemText(custom?g_hwnd:m_curwnd,custom?custom:def,str,max_size);
}
HWND GetUIItem(HWND defhw, WORD def, WORD custom) {
if (custom)
return GetDlgItem(g_hwnd,custom);
else
return GetDlgItem(defhw,def);
//return GetDlgItem(custom?g_hwnd:defhw,custom?custom:def);
return GetDlgItem(custom?g_hwnd:defhw,custom?custom:def);
}
#endif
@ -162,28 +146,28 @@ static void SetChildrenStates(HWND hWnd, TV_ITEM *pItem, int iState) {
pItem->mask|=TVIF_PARAM;
TreeView_GetItem(hWnd, pItem);
if (pItem->state >> 12 == 0)
return;
TreeView_GetItem(hWnd, pItem);
if (pItem->state >> 12 == 0)
return;
if (iState < 3 && (g_inst_section[pItem->lParam].default_state & DFS_RO)) l=3;
if (iState < 3 && (g_inst_section[pItem->lParam].default_state & DFS_RO)) l=3;
pItem->state = INDEXTOSTATEIMAGEMASK(iState+l);
pItem->stateMask = TVIS_STATEIMAGEMASK;
pItem->state = INDEXTOSTATEIMAGEMASK(iState+l);
pItem->stateMask = TVIS_STATEIMAGEMASK;
if (!(g_inst_section[pItem->lParam].default_state & DFS_RO))
{
if (iState == 2) g_inst_section[pItem->lParam].default_state |= DFS_SET;
else g_inst_section[pItem->lParam].default_state &= ~DFS_SET;
TreeView_SetItem(hWnd, pItem);
}
if (!(g_inst_section[pItem->lParam].default_state & DFS_RO))
{
if (iState == 2) g_inst_section[pItem->lParam].default_state |= DFS_SET;
else g_inst_section[pItem->lParam].default_state &= ~DFS_SET;
TreeView_SetItem(hWnd, pItem);
}
hItem = TreeView_GetChild(hWnd, pItem->hItem);
while (hItem) {
pItem->hItem = hItem;
SetChildrenStates(hWnd, pItem, iState);
hItem = TreeView_GetNextSibling(hWnd, hItem);
}
hItem = TreeView_GetChild(hWnd, pItem->hItem);
while (hItem) {
pItem->hItem = hItem;
SetChildrenStates(hWnd, pItem, iState);
hItem = TreeView_GetNextSibling(hWnd, hItem);
}
}
static void SetParentState(HWND hWnd, TV_ITEM *pItem) {
@ -191,63 +175,59 @@ static void SetParentState(HWND hWnd, TV_ITEM *pItem) {
HTREEITEM hItem;
int iState = 0, iStatePrev = 0;
HTREEITEM hParent = TreeView_GetParent(hWnd, pItem->hItem);
if (!hParent)
return;
HTREEITEM hParent = TreeView_GetParent(hWnd, pItem->hItem);
if (!hParent)
return;
hItem = TreeView_GetChild(hWnd, hParent);
hItem = TreeView_GetChild(hWnd, hParent);
while (hItem) {
pItem->hItem = hItem;
pItem->mask|=TVIF_PARAM;
TreeView_GetItem(hWnd, pItem);
iState = pItem->state >> 12;
if (iState && !(g_inst_section[pItem->lParam].default_state & DFS_RO))
{
if (iState==5) iState=2;
else if (iState==4) iState=1;
if (iStatePrev && (iStatePrev != iState)) {
iState = 3;
break;
}
iStatePrev = iState;
while (hItem) {
pItem->hItem = hItem;
pItem->mask|=TVIF_PARAM;
TreeView_GetItem(hWnd, pItem);
iState = pItem->state >> 12;
if (iState && !(g_inst_section[pItem->lParam].default_state & DFS_RO))
{
if (iState==5) iState=2;
else if (iState==4) iState=1;
if (iStatePrev && (iStatePrev != iState)) {
iState = 3;
break;
}
hItem = TreeView_GetNextSibling(hWnd, hItem);
}
iStatePrev = iState;
}
hItem = TreeView_GetNextSibling(hWnd, hItem);
}
pItem->hItem = hParent;
if (iState) {
pItem->state = INDEXTOSTATEIMAGEMASK(iState);
TreeView_SetItem(hWnd, pItem);
}
SetParentState(hWnd, pItem);
pItem->hItem = hParent;
if (iState) {
pItem->state = INDEXTOSTATEIMAGEMASK(iState);
TreeView_SetItem(hWnd, pItem);
}
SetParentState(hWnd, pItem);
}
static void CheckTreeItem(HWND hWnd, TV_ITEM *pItem, int checked) {
HTREEITEM hItem = pItem->hItem;
int l=0;
HTREEITEM hItem = pItem->hItem;
int l=0;
pItem->mask = TVIF_STATE|TVIF_PARAM;
TreeView_GetItem(hWnd, pItem);
if (pItem->state >> 12 == 0)
return;
pItem->mask = TVIF_STATE|TVIF_PARAM;
TreeView_GetItem(hWnd, pItem);
if (pItem->state >> 12 == 0)
return;
if (g_inst_section[pItem->lParam].default_state & DFS_RO) l=3;
if (g_inst_section[pItem->lParam].default_state & DFS_RO) l=3;
pItem->state = INDEXTOSTATEIMAGEMASK(checked?2:1+l);
pItem->stateMask = TVIS_STATEIMAGEMASK;
pItem->state = INDEXTOSTATEIMAGEMASK(checked?2:1+l);
pItem->stateMask = TVIS_STATEIMAGEMASK;
TreeView_SetItem(hWnd, pItem);
TreeView_SetItem(hWnd, pItem);
SetChildrenStates(hWnd, pItem, checked?2:1);
pItem->hItem = hItem;
SetParentState(hWnd, pItem);
SetChildrenStates(hWnd, pItem, checked?2:1);
pItem->hItem = hItem;
SetParentState(hWnd, pItem);
}
#endif//NSIS_CONFIG_COMPONENTPAGE
@ -320,42 +300,41 @@ int ui_doinstall(void)
{
// Added by Amir Szekely 3rd August 2002
// Multilingual support
char pa=0;
char pa=1;
int num=g_inst_header->str_tables_num;
LANGID user_lang=GetUserDefaultLangID();
int size=num*sizeof(common_strings);
cur_common_strings_table=common_strings_tables=(common_strings*)GlobalAlloc(GPTR,size);
GetCompressedDataFromDataBlockToMemory(g_inst_header->common.str_tables,(char*)common_strings_tables,size);
#ifdef NSIS_CONFIG_UNINSTALL_SUPPORT
if (!g_is_uninstaller) {
#endif
size=num*sizeof(installer_strings);
cur_install_strings_table=install_strings_tables=(installer_strings*)GlobalAlloc(GPTR,size);
GetCompressedDataFromDataBlockToMemory(g_inst_header->str_tables,(char*)install_strings_tables,size);
#ifdef NSIS_CONFIG_UNINSTALL_SUPPORT
}
else {
if (g_is_uninstaller) {
size=num*sizeof(uninstall_strings);
cur_uninstall_strings_table=uninstall_strings_tables=(uninstall_strings*)GlobalAlloc(GPTR,size);
GetCompressedDataFromDataBlockToMemory(g_inst_uninstheader->str_tables,(char*)uninstall_strings_tables,size);
}
else
#endif
lang_again:
{
size=num*sizeof(installer_strings);
cur_install_strings_table=install_strings_tables=(installer_strings*)GlobalAlloc(GPTR,size);
GetCompressedDataFromDataBlockToMemory(g_inst_header->str_tables,(char*)install_strings_tables,size);
}
lang_again:
for (size=0; size < num; size++) {
if (user_lang == common_strings_tables[size].lang_id) {
cur_install_strings_table = &install_strings_tables[size];
cur_common_strings_table = &common_strings_tables[size];
cur_install_strings_table+=size;
cur_common_strings_table+=size;
#ifdef NSIS_CONFIG_UNINSTALL_SUPPORT
cur_uninstall_strings_table = &uninstall_strings_tables[size];
cur_uninstall_strings_table+=size;
#endif
pa++;
pa--;
break;
}
common_strings_tables[size].lang_id&=0x3ff; // primary lang
}
if (!pa) {
if (pa) {
user_lang&=0x3ff; // primary lang
pa++;
pa--;
goto lang_again;
}
}
@ -542,7 +521,7 @@ static BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l
LANG_BTN_NEXT
);
lstrcpy(g_tmp,g_caption);
process_string_fromtab(g_tmp+lstrlen(g_tmp),COMMON_STR(subcaptions[m_page]));
process_string_fromtab(g_tmp+lstrlen(g_tmp),LANG_SUBCAPTION(m_page));
SetWindowText(hwndDlg,g_tmp);
@ -604,11 +583,6 @@ static BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l
}
}
}
if (uMsg == WM_CTLCOLORSTATIC) {
SetTextColor((HDC)wParam, RGB(0,0,0));
SetBkMode((HDC)wParam, TRANSPARENT);
return (long)GetStockObject(NULL_BRUSH);
}
if (uMsg == WM_CLOSE)
{
if (!IsWindowEnabled(GetDlgItem(hwndDlg,IDCANCEL)) && IsWindowEnabled(GetDlgItem(hwndDlg,IDOK)))
@ -624,9 +598,9 @@ static BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l
#undef _RICHEDIT_VER
static BOOL CALLBACK LicenseProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
static HWND hwLicense = 0;
static HINSTANCE hRichEditDLL = 0;
if (!hRichEditDLL) hRichEditDLL= LoadLibrary("RichEd32.dll");
static HWND hwLicense;
static HINSTANCE hRichEditDLL;
if (!hRichEditDLL) hRichEditDLL=LoadLibrary("RichEd32.dll");
if (uMsg == WM_INITDIALOG)
{
hwLicense=GetDlgItem(hwndDlg,IDC_EDIT1);
@ -641,8 +615,9 @@ static BOOL CALLBACK LicenseProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM
if (enlink->nmhdr.code==EN_LINK) {
if (enlink->msg==WM_LBUTTONDOWN) {
char *szUrl;
SendMessage(hwLicense,EM_SETSEL,enlink->chrg.cpMin,enlink->chrg.cpMax);
szUrl=(char *)GlobalAlloc(GPTR,enlink->chrg.cpMax-enlink->chrg.cpMin+1);
long min=enlink->chrg.cpMin, max=enlink->chrg.cpMax;
SendMessage(hwLicense,EM_SETSEL,min,max);
szUrl=(char *)GlobalAlloc(GPTR,max-min+1);
SendMessage(hwLicense,EM_GETSELTEXT,0,(LPARAM)szUrl);
SetCursor(LoadCursor(0,IDC_WAIT));
ShellExecute(hwndDlg,"open",szUrl,NULL,NULL,SW_SHOWNORMAL);
@ -658,8 +633,7 @@ static BOOL CALLBACK LicenseProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM
}
}
else if (uMsg == WM_CLOSE) {
FreeLibrary(hRichEditDLL);
SendMessage(GetParent(hwndDlg),WM_CLOSE,0,0);
SendMessage(g_hwnd,WM_CLOSE,0,0);
}
return 0;
}
@ -820,7 +794,7 @@ static BOOL CALLBACK DirProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
SetUITextNT(hwndDlg,IDC_SPACEAVAILABLE,g_inst_header->space_avail_id,"");
}
EnableWindow(GetDlgItem(GetParent(hwndDlg),IDOK),
EnableWindow(GetDlgItem(g_hwnd,IDOK),
is_valid_path && (available >= total || available == -1)
#ifdef NSIS_SUPPORT_CODECALLBACKS
&& !ExecuteCodeSegment(g_inst_entry,g_inst_header->code_onVerifyInstDir,NULL)
@ -1183,8 +1157,7 @@ void update_status_text(const char *text1, const char *text2)
if (insthwnd)
{
if (lstrlen(text1)+lstrlen(text2) >= sizeof(ps_tmpbuf)) return;
lstrcpy(ps_tmpbuf,text1);
lstrcat(ps_tmpbuf,text2);
wsprintf(ps_tmpbuf,"%s%s",text1,text2);
if ((ui_st_updateflag&1))
{
// Changed by Amir Szekely 26th July 2002
@ -1242,16 +1215,13 @@ static DWORD WINAPI install_thread(LPVOID p)
#ifdef NSIS_CONFIG_VISIBLE_SUPPORT
static BOOL CALLBACK InstProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
static HBRUSH hBrush;
static int lb_bg,lb_fg;
if (uMsg == WM_DESTROY && hBrush) DeleteObject(hBrush);
if (uMsg == WM_INITDIALOG)
{
DWORD id;
HWND hwnd;
int num=0;
int x=0;
LVCOLUMN lvc = {0, 0, -1, 0, 0, -1};
int lb_bg=g_inst_cmnheader->lb_bg,lb_fg=g_inst_cmnheader->lb_fg;
insthwndbutton=GetDlgItem(hwndDlg,IDC_SHOWDETAILS);
insthwnd2=GetUIItem(hwndDlg,IDC_INTROTEXT,g_inst_header->common.intro_text_id);
@ -1277,9 +1247,9 @@ static BOOL CALLBACK InstProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
ListView_InsertColumn(insthwnd, 0, &lvc);
#define LVS_EX_LABELTIP 0x00004000 // listview unfolds partly hidden labels if it does not have infotip text
ListView_SetExtendedListViewStyleEx(insthwnd, LVS_EX_LABELTIP, LVS_EX_LABELTIP);
ListView_SetBkColor(insthwnd, g_inst_cmnheader->lb_bg);
ListView_SetTextBkColor(insthwnd, g_inst_cmnheader->lb_bg);
ListView_SetTextColor(insthwnd, g_inst_cmnheader->lb_fg);
ListView_SetBkColor(insthwnd, lb_bg);
ListView_SetTextBkColor(insthwnd, lb_bg);
ListView_SetTextColor(insthwnd, lb_fg);
SetWindowText(insthwndbutton,STR(LANG_BTN_DETAILS));
if (g_inst_cmnheader->show_details)
{
@ -1292,16 +1262,14 @@ static BOOL CALLBACK InstProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
g_progresswnd=GetDlgItem(hwndDlg,IDC_PROGRESS1+(g_inst_cmnheader->progress_flags&1));
ShowWindow(g_progresswnd,SW_SHOWNA);
SendMessage(g_progresswnd,PBM_SETRANGE,0,MAKELPARAM(0,30000));
SendMessage(g_progresswnd,PBM_SETPOS,0,0);
if (g_inst_cmnheader->progress_flags&2)
{
SendMessage(g_progresswnd,PBM_SETBARCOLOR,0,g_inst_cmnheader->lb_fg);
SendMessage(g_progresswnd,PBM_SETBKCOLOR,0,g_inst_cmnheader->lb_bg);
SendMessage(g_progresswnd,PBM_SETBARCOLOR,0,lb_fg);
SendMessage(g_progresswnd,PBM_SETBKCOLOR,0,lb_bg);
}
hwnd=GetParent(hwndDlg);
EnableWindow(GetDlgItem(hwnd,IDOK),0);
EnableWindow(GetDlgItem(hwnd,IDCANCEL),0);
EnableWindow(GetDlgItem(g_hwnd,IDOK),0);
EnableWindow(GetDlgItem(g_hwnd,IDCANCEL),0);
CloseHandle(CreateThread(NULL,0,install_thread,(LPVOID)hwndDlg,0,&id));
}
@ -1313,11 +1281,10 @@ static BOOL CALLBACK InstProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
}
if (uMsg == WM_NOTIFY_INSTPROC_DONE)
{
if (g_quit_flag) EndDialog(GetParent(hwndDlg),1);
if (g_quit_flag) EndDialog(g_hwnd,1);
else if (!wParam)
{
HWND h2=GetParent(hwndDlg);
HWND h=GetDlgItem(h2,IDOK);
HWND h=GetDlgItem(g_hwnd,IDOK);
EnableWindow(h,1);
if (!g_autoclose)
{
@ -1325,17 +1292,17 @@ static BOOL CALLBACK InstProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
lstrcpy(g_tmp,g_caption);
process_string_fromtab(g_tmp+lstrlen(g_caption),COMMON_STR(subcaptions[g_max_page+1]));
update_status_text_from_tab(LANG_COMPLETED,"");
SetWindowText(h2,g_tmp);
SetWindowText(g_hwnd,g_tmp);
SetFocus(h);
}
else
{
SendMessage(GetParent(hwndDlg),WM_NOTIFY_OUTER_NEXT,1,0);
SendMessage(g_hwnd,WM_NOTIFY_OUTER_NEXT,1,0);
}
}
else
{
HWND h=GetDlgItem(GetParent(hwndDlg),IDCANCEL);
HWND h=GetDlgItem(g_hwnd,IDCANCEL);
EnableWindow(h,1);
SetFocus(h);
}

View file

@ -269,11 +269,25 @@
#endif
#endif
#ifndef NSIS_COMPRESS_BZIP2_LEVEL
#define NSIS_COMPRESS_BZIP2_LEVEL 9
#endif
#ifdef NSIS_CONFIG_PLUGIN_SUPPORT
#ifndef NSIS_SUPPORT_RMDIR
#error NSIS_CONFIG_PLUGIN_SUPPORT relies on NSIS_SUPPORT_RMDIR, but NSIS_SUPPORT_RMDIR is not defined
#endif
#ifndef NSIS_SUPPORT_FILE
#error NSIS_CONFIG_PLUGIN_SUPPORT relies on NSIS_SUPPORT_FILE, but NSIS_SUPPORT_FILE is not defined
#endif
#ifndef NSIS_SUPPORT_ACTIVEXREG
#error NSIS_CONFIG_PLUGIN_SUPPORT relies on NSIS_SUPPORT_ACTIVEXREG, but NSIS_SUPPORT_ACTIVEXREG is not defined
#endif
#ifndef NSIS_SUPPORT_STACK
#error NSIS_CONFIG_PLUGIN_SUPPORT relies on NSIS_SUPPORT_STACK, but NSIS_SUPPORT_STACK is not defined
#endif
#endif
#if NSIS_MAX_INST_TYPES > 30
#error NSIS_MAX_INST_TYPES > 30
#endif

View file

@ -363,7 +363,7 @@ static int ExecuteEntry(entry *entries, int pos)
process_string_fromtab(buf2,COMMON_STR(fileerrtext));
lstrcpy(g_usrvars[0],buf3); // restore $0
switch (MessageBox(g_hwnd,buf2,g_caption,MB_ABORTRETRYIGNORE|MB_ICONSTOP))
switch (my_MessageBox(buf2,MB_ABORTRETRYIGNORE|MB_ICONSTOP))
{
case IDRETRY:
log_printf("File: error, user retry");
@ -393,15 +393,14 @@ static int ExecuteEntry(entry *entries, int pos)
{
if (ret == -2)
{
lstrcpy(buf,STR(LANG_ERRORWRITING));
lstrcat(buf,buf4);
wsprintf(buf,"%s%s",STR(LANG_ERRORWRITING),buf4);
}
else
{
lstrcpy(buf,STR(LANG_ERRORDECOMPRESSING));
}
log_printf2("%s",buf);
MessageBox(g_hwnd,buf,g_caption,MB_OK|MB_ICONSTOP);
my_MessageBox(buf,MB_OK|MB_ICONSTOP);
return EXEC_ERROR;
}
}
@ -462,7 +461,7 @@ static int ExecuteEntry(entry *entries, int pos)
int v;
process_string_fromtab(buf4,parms[1]);
log_printf3("MessageBox: %d,\"%s\"",parms[0],buf4);
v=MessageBox(g_hwnd,buf4,g_caption,parms[0]);
v=my_MessageBox(buf4,parms[0]);
if (v)
{
if (v==(parms[2]&0xffff))
@ -672,9 +671,7 @@ static int ExecuteEntry(entry *entries, int pos)
process_string_fromtab(buf,parms[0]);
process_string_fromtab(buf2,parms[1]);
process_string_fromtab(buf3,parms[2]);
lstrcpy(buf4,buf);
lstrcat(buf4," ");
lstrcat(buf4,buf2);
wsprintf(buf4,"%s %s",buf,buf2);
update_status_text_from_tab(LANG_EXECSHELL, buf4);
x=(int)ShellExecute(g_hwnd,buf[0]?buf:NULL,buf2,buf3[0]?buf3:NULL,state_output_directory,parms[3]);
if (x < 33)
@ -881,8 +878,7 @@ static int ExecuteEntry(entry *entries, int pos)
buf[lstrlen(buf)+1]=0;
buf2[lstrlen(buf2)+1]=0;
lstrcpy(buf3,STR(LANG_COPYTO));
lstrcat(buf3,buf2);
wsprintf(buf3,"%s%s",STR(LANG_COPYTO),buf2);
op.pFrom=buf;
op.pTo=buf2;
@ -1271,7 +1267,7 @@ static int ExecuteEntry(entry *entries, int pos)
// Changed by Amir Szekely 11th July 2002
unsigned char* unicon_data = (unsigned char*)GlobalAlloc(GMEM_FIXED, g_inst_header->uninsticon_size);
if (unicon_data) {
DWORD i, j;
DWORD i;
unsigned char* seeker = unicon_data + sizeof(DWORD);
GetCompressedDataFromDataBlockToMemory(g_inst_header->uninstdata_offset,
unicon_data,g_inst_header->uninsticon_size);
@ -1281,8 +1277,7 @@ static int ExecuteEntry(entry *entries, int pos)
seeker += sizeof(DWORD);
dwOffset = *(DWORD*)seeker;
seeker += sizeof(DWORD);
for (j = 0; j < dwSize; j++)
filebuf[dwOffset+j] = seeker[j];
mini_memcpy(filebuf, seeker, dwSize);
seeker += dwSize;
}
GlobalFree(unicon_data);
@ -1309,10 +1304,10 @@ static int ExecuteEntry(entry *entries, int pos)
case EW_LOG:
if (parms[0])
{
if (!g_log_file && parms[1]) build_g_logfile();
log_printf2("settings logging to %d",parms[1]);
log_dolog=parms[1];
log_printf2("logging set to %d",parms[1]);
if (!g_log_file && log_dolg) build_g_logfile();
}
else
{
@ -1400,6 +1395,6 @@ static int ExecuteEntry(entry *entries, int pos)
return 0;
#endif // NSIS_CONFIG_PLUGIN_SUPPORT
}
MessageBox(g_hwnd,STR(LANG_INSTCORRUPTED),g_caption,MB_OK|MB_ICONSTOP);
my_MessageBox(STR(LANG_INSTCORRUPTED),MB_OK|MB_ICONSTOP);
return EXEC_ERROR;
}

View file

@ -72,7 +72,7 @@ int loadHeaders(void)
dbd_hFile=CreateFile(fno,GENERIC_WRITE|GENERIC_READ,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_TEMPORARY|FILE_FLAG_DELETE_ON_CLOSE,NULL);
if (dbd_hFile == INVALID_HANDLE_VALUE)
{
MessageBox(NULL,"Error writing temp file",g_caption,MB_OK);
my_MessageBox("Error writing temp file",MB_OK);
return -1;
}
}
@ -82,7 +82,7 @@ int loadHeaders(void)
if (GetCompressedDataFromDataBlockToMemory(-1,data,h.length_of_header) != h.length_of_header)
{
MessageBox(NULL,"Error reading installer info block",g_caption,MB_OK);
my_MessageBox("Error reading installer info block",MB_OK);
GlobalFree((HGLOBAL)data);
return -1;
}

View file

@ -19,14 +19,17 @@ HANDLE g_hInstance;
HANDLE myCreateProcess(char *cmd, char *dir)
{
PROCESS_INFORMATION ProcInfo={0,};
STARTUPINFO StartUp={0,};
StartUp.cb=sizeof(StartUp);
STARTUPINFO StartUp={sizeof(StartUp),};
if (!CreateProcess(NULL, cmd, NULL, NULL, FALSE, 0, NULL, dir, &StartUp, &ProcInfo))
return NULL;
if (NULL != ProcInfo.hThread) CloseHandle( ProcInfo.hThread );
return ProcInfo.hProcess;
}
int my_MessageBox(const char *text, UINT type) {
return MessageBox(g_hwnd, text, g_caption, type);
}
#ifdef NSIS_SUPPORT_RMDIR
void doRMDir(char *buf, int recurse)
{
@ -491,7 +494,7 @@ void process_string(char *out, const char *in)
break;
case VAR_CODES_START + 34: // LANGUAGE
wsprintf(out, "%u", cur_common_strings_table->lang_id);
wsprintf(out, "%u", cur_install_strings_table->lang_id);
break;
#if VAR_CODES_START + 34 >= 255

View file

@ -33,6 +33,7 @@ extern char g_log_file[1024];
#endif
HANDLE myCreateProcess(char *cmd, char *dir);
int my_MessageBox(const char *text, UINT type);
void doRMDir(char *buf, int recurse);