Updated makensisw

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@783 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
rainwater 2002-08-28 18:39:39 +00:00
parent 3744051b21
commit f657ef360f
3 changed files with 20 additions and 18 deletions

View file

@ -17,11 +17,9 @@
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#include <windows.h>
#include <stdio.h>
#include "makensisw.h"
#include "resource.h"
#include "noclib.h"
@ -245,18 +243,9 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
}
return 0;
}
DWORD CALLBACK EditStreamCallback(DWORD dwCookie,LPBYTE pbBuff, LONG cb, LONG FAR *pcb) {
DWORD dwNumberOfBytesRead ;
lstrcpy((char *)pbBuff,"tttttt");
//PeekNamedPipe((HANDLE)dwCookie,pbBuff,cb,&dwNumberOfBytesRead,&dwNumberOfBytesRead,NULL);
BOOL bSuccess = ReadFile((HANDLE)dwCookie,pbBuff,cb,&dwNumberOfBytesRead,NULL);
*pcb = dwNumberOfBytesRead;
return 0;
}
DWORD WINAPI MakeNSISProc(LPVOID p) {
char buf[1024];
EDITSTREAM es;
STARTUPINFO si={sizeof(si),};
SECURITY_ATTRIBUTES sa={sizeof(sa),};
SECURITY_DESCRIPTOR sd={0,};
@ -291,15 +280,24 @@ DWORD WINAPI MakeNSISProc(LPVOID p) {
PostMessage(g_hwnd,WM_MAKENSIS_PROCESSCOMPLETE,0,0);
return 1;
}
unsigned long exit=0,read,avail;
my_memset(buf,0,sizeof(buf));
es.dwCookie = (DWORD)read_stdout;
es.dwError = 0;
es.pfnCallback = EditStreamCallback;
//SendDlgItemMessage(g_hwnd,IDC_LOGWIN,EM_STREAMIN,SF_TEXT,(LPARAM)&es);
while(1) {
//SendDlgItemMessage(g_hwnd,IDC_LOGWIN,EM_STREAMIN,SF_TEXT,(LPARAM)&es);
PeekNamedPipe(read_stdout,buf,sizeof(buf)-1,&read,&avail,NULL);
if (read != 0) {
my_memset(buf,0,sizeof(buf));
if (avail > sizeof(buf)-1) {
while (read >= sizeof(buf)-1) {
ReadFile(read_stdout,buf,sizeof(buf)-1,&read,NULL);
LogMessage(g_hwnd,buf);
my_memset(buf,0,sizeof(buf));
}
}
else {
ReadFile(read_stdout,buf,sizeof(buf),&read,NULL);
LogMessage(g_hwnd,buf);
}
}
GetExitCodeProcess(pi.hProcess,&exit);
if (exit != STILL_ACTIVE) break;
Sleep(TIMEOUT);