Jim Park's Unicode NSIS merging - Step 4 : merging more TCHAR stuff that shouldn't have any impact
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6041 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
8ab72b9ece
commit
acf9a8c21f
41 changed files with 937 additions and 586 deletions
|
@ -87,6 +87,11 @@ IF 0
|
|||
.set SYSTEM_LOG_DEBUG,1
|
||||
#endif
|
||||
|
||||
#ifdef _UNICODE
|
||||
#undef _UNICODE
|
||||
.set _UNICODE,1
|
||||
#endif
|
||||
|
||||
#define IFDEF .ifdef
|
||||
#define ELSE .else
|
||||
#define ENDIF .endif
|
||||
|
@ -99,6 +104,7 @@ IF 0
|
|||
#define DATA_SUFFIX :
|
||||
#define BYTE .byte
|
||||
#define DWORD .int
|
||||
#define WORD .word
|
||||
#define ASCII .ascii
|
||||
|
||||
#define MACRO_DECL .macro
|
||||
|
@ -140,7 +146,12 @@ EXTERN __alloca_probe : PROC
|
|||
|
||||
EXTERN __imp__GlobalFree@4 : PROC
|
||||
EXTERN __imp__GetLastError@0 : PROC
|
||||
|
||||
IFDEF _UNICODE
|
||||
EXTERN __imp__wsprintfW : PROC
|
||||
ELSE
|
||||
EXTERN __imp__wsprintfA : PROC
|
||||
ENDIF
|
||||
|
||||
EXTERN _GlobalCopy : PROC
|
||||
|
||||
|
@ -181,54 +192,130 @@ SECTION_DATA
|
|||
|
||||
IFDEF SYSTEM_LOG_DEBUG
|
||||
|
||||
LogStack DATA_SUFFIX ASCII "%s ESP = 0x%08X Stack = 0x%08X Real = 0x%08X"
|
||||
BYTE 0
|
||||
IFDEF _UNICODE
|
||||
LogStack DATA_SUFFIX
|
||||
BYTE '%', 0, 's', 0, ' ', 0, ' ', 0, 'E', 0, 'S', 0, 'P', 0, ' ', 0
|
||||
BYTE ' ', 0, '0', 0, 'x', 0, '%', 0, '0', 0, '8', 0, 'X', 0, ' ', 0
|
||||
BYTE 'S', 0, 't', 0, 'a', 0, 'c', 0, 'k', 0, ' ', 0, '=', 0, ' ', 0
|
||||
BYTE 'x', 0, '%', 0, '0', 0, '8', 0, 'X', 0, ' ', 0, ' ', 0, 'R', 0
|
||||
BYTE 'a', 0, 'l', 0, ' ', 0, '=', 0, ' ', 0, '0', 0, 'x', 0, '%', 0
|
||||
BYTE '8', 0, 'X', 0
|
||||
WORD 0
|
||||
|
||||
LogCall DATA_SUFFIX BYTE 9,9
|
||||
ASCII "Call:"
|
||||
BYTE 10,0
|
||||
LogCall DATA_SUFFIX WORD 9,9
|
||||
BYTE 'C', 0, 'a', 0, 'l', 0, 'l', 0, ':', 0
|
||||
WORD 10,0
|
||||
|
||||
LogBeforeCall DATA_SUFFIX BYTE 9,9,9
|
||||
ASCII "Before call "
|
||||
BYTE 0
|
||||
LogBeforeCall DATA_SUFFIX WORD 9,9,9
|
||||
BYTE 'B', 0, 'e', 0, 'f', 0, 'o', 0, 'r', 0, 'e', 0, ' ', 0, 'c', 0
|
||||
BYTE 'l', 0, 'l', 0, ' ', 0, ' ', 0, ' ', 0, ' ', 0, ' ', 0, ' ', 0
|
||||
BYTE ' ', 0
|
||||
WORD 0
|
||||
|
||||
LogNearCall DATA_SUFFIX BYTE 10,9,9,9
|
||||
ASCII "Near call "
|
||||
BYTE 0
|
||||
LogNearCall DATA_SUFFIX WORD 10,9,9,9
|
||||
BYTE 'N', 0, 'e', 0, 'a', 0, 'r', 0, ' ', 0, 'c', 0, 'a', 0, 'l', 0
|
||||
BYTE ' ', 0, ' ', 0, ' ', 0, ' ', 0, ' ', 0, ' ', 0, ' ', 0, ' ', 0
|
||||
BYTE ' ', 0
|
||||
WORD 0
|
||||
|
||||
LogBackFrom DATA_SUFFIX BYTE 9
|
||||
ASCII "Back from "
|
||||
BYTE 0
|
||||
LogBackFrom DATA_SUFFIX WORD 9
|
||||
BYTE 'B', 0, 'a', 0, 'c', 0, 'k', 0, ' ', 0, 'f', 0, 'r', 0, 'o', 0
|
||||
BYTE ' ', 0
|
||||
WORD 0
|
||||
|
||||
LogAfterCall DATA_SUFFIX BYTE 10,9,9,9
|
||||
ASCII "After call "
|
||||
BYTE 0
|
||||
LogAfterCall DATA_SUFFIX WORD 10,9,9,9
|
||||
BYTE 'A', 0, 'f', 0, 't', 0, 'e', 0, 'r', 0, ' ', 0, 'c', 0, 'a', 0
|
||||
BYTE 'l', 0, ' ', 0, ' ', 0, ' ', 0, ' ', 0, ' ', 0, ' ', 0, ' ', 0
|
||||
BYTE ' ', 0
|
||||
WORD 0
|
||||
|
||||
LogReturnAfter DATA_SUFFIX BYTE 10,9,9,9
|
||||
ASCII "Return 0x%08X 0x%08X"
|
||||
BYTE 0
|
||||
LogReturnAfter DATA_SUFFIX WORD 10,9,9,9
|
||||
BYTE 'R', 0, 'e', 0, 't', 0, 'u', 0, 'r', 0, 'n', 0, ' ', 0, ' ', 0
|
||||
BYTE ' ', 0, ' ', 0, ' ', 0, ' ', 0, ' ', 0, ' ', 0, ' ', 0, ' ', 0
|
||||
BYTE ' ', 0, ' ', 0, ' ', 0, '0', 0, 'x', 0, '%', 0, '0', 0, '8', 0
|
||||
BYTE ' ', 0, ' ', 0, ' ', 0, ' ', 0, '0', 0, 'x', 0, '%', 0, '0', 0
|
||||
BYTE 'X', 0
|
||||
WORD 0
|
||||
|
||||
LogCalled DATA_SUFFIX ASCII "Called callback from "
|
||||
BYTE 0
|
||||
LogCalled DATA_SUFFIX
|
||||
BYTE 'C', 0, 'a', 0, 'l', 0, 'l', 0, 'e', 0, 'd', 0, ' ', 0, 'c', 0
|
||||
BYTE 'l', 0, 'l', 0, 'b', 0, 'a', 0, 'c', 0, 'k', 0, ' ', 0, 'f', 0
|
||||
BYTE 'o', 0, 'm', 0, ' ', 0
|
||||
WORD 0
|
||||
|
||||
LogShortAfter DATA_SUFFIX BYTE 10,9,9,9
|
||||
ASCII "Short-After call "
|
||||
BYTE 0
|
||||
LogShortAfter DATA_SUFFIX WORD 10,9,9,9
|
||||
BYTE 'S', 0, 'h', 0, 'o', 0, 'r', 0, 't', 0, '-', 0, 'A', 0, 'f', 0
|
||||
BYTE 'e', 0, 'r', 0, ' ', 0, 'c', 0, 'a', 0, 'l', 0, 'l', 0, ' ', 0
|
||||
BYTE ' ', 0
|
||||
WORD 0
|
||||
|
||||
LogReturn DATA_SUFFIX BYTE 9,9
|
||||
ASCII "Return from callback:"
|
||||
BYTE 10,0
|
||||
LogReturn DATA_SUFFIX WORD 9,9
|
||||
BYTE 'R', 0, 'e', 0, 't', 0, 'u', 0, 'r', 0, 'n', 0, ' ', 0, 'f', 0
|
||||
BYTE 'o', 0, 'm', 0, ' ', 0, 'c', 0, 'a', 0, 'l', 0, 'l', 0, 'b', 0
|
||||
BYTE 'c', 0, 'k', 0, ':', 0
|
||||
WORD 10,0
|
||||
|
||||
LogBefore DATA_SUFFIX BYTE 9,9,9
|
||||
ASCII "Before call-back "
|
||||
BYTE 0
|
||||
LogBefore DATA_SUFFIX WORD 9,9,9
|
||||
BYTE 'B', 0, 'e', 0, 'f', 0, 'o', 0, 'r', 0, 'e', 0, ' ', 0, 'c', 0
|
||||
BYTE 'l', 0, 'l', 0, '-', 0, 'b', 0, 'a', 0, 'c', 0, 'k', 0, ' ', 0
|
||||
BYTE ' ', 0
|
||||
WORD 0
|
||||
|
||||
LogShortBefore DATA_SUFFIX BYTE 10,9,9,9
|
||||
ASCII "Sh-Before call-back"
|
||||
BYTE 0
|
||||
LogShortBefore DATA_SUFFIX WORD 10,9,9,9
|
||||
BYTE 'S', 0, 'h', 0, '-', 0, 'B', 0, 'e', 0, 'f', 0, 'o', 0, 'r', 0
|
||||
BYTE ' ', 0, 'c', 0, 'a', 0, 'l', 0, 'l', 0, '-', 0, 'b', 0, 'a', 0
|
||||
BYTE 'k', 0
|
||||
WORD 0
|
||||
LogLF DATA_SUFFIX WORD 10,0
|
||||
ELSE
|
||||
LogStack DATA_SUFFIX ASCII "%s ESP = 0x%08X Stack = 0x%08X Real = 0x%08X"
|
||||
BYTE 0
|
||||
|
||||
LogLF DATA_SUFFIX BYTE 10,0
|
||||
LogCall DATA_SUFFIX BYTE 9,9
|
||||
ASCII "Call:"
|
||||
BYTE 10,0
|
||||
|
||||
LogBeforeCall DATA_SUFFIX BYTE 9,9,9
|
||||
ASCII "Before call "
|
||||
BYTE 0
|
||||
|
||||
LogNearCall DATA_SUFFIX BYTE 10,9,9,9
|
||||
ASCII "Near call "
|
||||
BYTE 0
|
||||
|
||||
LogBackFrom DATA_SUFFIX BYTE 9
|
||||
ASCII "Back from "
|
||||
BYTE 0
|
||||
|
||||
LogAfterCall DATA_SUFFIX BYTE 10,9,9,9
|
||||
ASCII "After call "
|
||||
BYTE 0
|
||||
|
||||
LogReturnAfter DATA_SUFFIX BYTE 10,9,9,9
|
||||
ASCII "Return 0x%08X 0x%08X"
|
||||
BYTE 0
|
||||
|
||||
LogCalled DATA_SUFFIX ASCII "Called callback from "
|
||||
BYTE 0
|
||||
|
||||
LogShortAfter DATA_SUFFIX BYTE 10,9,9,9
|
||||
ASCII "Short-After call "
|
||||
BYTE 0
|
||||
|
||||
LogReturn DATA_SUFFIX BYTE 9,9
|
||||
ASCII "Return from callback:"
|
||||
BYTE 10,0
|
||||
|
||||
LogBefore DATA_SUFFIX BYTE 9,9,9
|
||||
ASCII "Before call-back "
|
||||
BYTE 0
|
||||
|
||||
LogShortBefore DATA_SUFFIX BYTE 10,9,9,9
|
||||
ASCII "Sh-Before call-back"
|
||||
BYTE 0
|
||||
|
||||
LogLF DATA_SUFFIX BYTE 10,0
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
SECTION_CODE
|
||||
|
@ -263,7 +350,11 @@ ELSE
|
|||
ENDIF
|
||||
;# Log buffer
|
||||
push edi
|
||||
IFDEF _UNICODE
|
||||
call dword ptr [__imp__wsprintfW]
|
||||
ELSE
|
||||
call dword ptr [__imp__wsprintfA]
|
||||
ENDIF
|
||||
;# If wsprintf succeeds then advance edi by number of bytes
|
||||
;# written to buffer
|
||||
cmp eax,0
|
||||
|
|
|
@ -151,18 +151,21 @@ void system_pushint(int value)
|
|||
system_pushstring(buffer);
|
||||
}
|
||||
|
||||
TCHAR *copymem(TCHAR *output, TCHAR *input, int size)
|
||||
void *copymem(void *output, void *input, size_t cbSize)
|
||||
{
|
||||
TCHAR *out = output;
|
||||
if ((input != NULL) && (output != NULL))
|
||||
while (size-- > 0) *(out++) = *(input++);
|
||||
return output;
|
||||
BYTE *out = (BYTE*) output;
|
||||
BYTE *in = (BYTE*) input;
|
||||
if ((input != NULL) && (output != NULL))
|
||||
{
|
||||
while (cbSize-- > 0) *(out++) = *(in++);
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
HANDLE GlobalCopy(HANDLE Old)
|
||||
{
|
||||
SIZE_T size = GlobalSize(Old);
|
||||
return copymem(GlobalAlloc(GPTR, size), Old, (int) size);
|
||||
size_t size = GlobalSize(Old);
|
||||
return copymem(GlobalAlloc(GPTR, size), Old, size);
|
||||
}
|
||||
|
||||
UINT_PTR NSISCallback(enum NSPIM msg)
|
||||
|
|
|
@ -27,7 +27,7 @@ extern int popint64(); // -1 -> stack empty
|
|||
extern void system_pushint(int value);
|
||||
|
||||
extern HANDLE GlobalCopy(HANDLE Old);
|
||||
extern TCHAR *copymem(TCHAR *output, TCHAR *input, int size);
|
||||
extern void *copymem(void *output, void *input, size_t cbSize);
|
||||
|
||||
extern UINT_PTR NSISCallback(enum NSPIM);
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ CallbackThunk* CallbackThunkListHead;
|
|||
HINSTANCE g_hInstance;
|
||||
|
||||
// Return to callback caller with stack restore
|
||||
TCHAR retexpr[4];
|
||||
char retexpr[4];
|
||||
HANDLE retaddr;
|
||||
|
||||
TCHAR *GetResultStr(SystemProc *proc)
|
||||
|
@ -61,7 +61,7 @@ TCHAR *GetResultStr(SystemProc *proc)
|
|||
#ifdef SYSTEM_LOG_DEBUG
|
||||
|
||||
// System log debugging turned on
|
||||
#define SYSTEM_LOG_ADD(a) { register int _len = lstrlen(syslogbuf); lstrcpyn(syslogbuf + _len, a, sizeof(syslogbuf) - _len); }
|
||||
#define SYSTEM_LOG_ADD(a) { register int _len = lstrlen(syslogbuf); lstrcpyn(syslogbuf + _len, a, _countof(syslogbuf) - _len); }
|
||||
#define SYSTEM_LOG_POST { SYSTEM_LOG_ADD(_T("\n")); WriteToLog(syslogbuf); *syslogbuf = 0; }
|
||||
|
||||
HANDLE logfile = NULL;
|
||||
|
@ -82,11 +82,18 @@ void WriteToLog(TCHAR *buffer)
|
|||
wsprintf(timebuffer, _T("%04d %04d.%03d "), (++logop)%10000, (GetTickCount() / 1000) % 10000,
|
||||
GetTickCount() % 1000);
|
||||
|
||||
#ifdef _UNICODE
|
||||
#ifdef _RPTW0
|
||||
_RPTW0(_CRT_WARN, timebuffer);
|
||||
_RPTW0(_CRT_WARN, buffer);
|
||||
#endif
|
||||
#else
|
||||
_RPT0(_CRT_WARN, timebuffer);
|
||||
_RPT0(_CRT_WARN, buffer);
|
||||
#endif
|
||||
|
||||
WriteFile(logfile, timebuffer, lstrlen(timebuffer), &written, NULL);
|
||||
WriteFile(logfile, buffer, lstrlen(buffer), &written, NULL);
|
||||
WriteFile(logfile, timebuffer, lstrlen(timebuffer)*sizeof(TCHAR), &written, NULL);
|
||||
WriteFile(logfile, buffer, lstrlen(buffer)*sizeof(TCHAR), &written, NULL);
|
||||
// FlushFileBuffers(logfile);
|
||||
}
|
||||
|
||||
|
@ -108,10 +115,17 @@ PLUGINFUNCTION(Debug)
|
|||
SetFilePointer(logfile, 0, 0, FILE_END);
|
||||
|
||||
logop = 0;
|
||||
#ifdef _UNICODE
|
||||
{ // write Unicode Byte-Order Mark
|
||||
DWORD written;
|
||||
unsigned short bom = 0xfeff;
|
||||
WriteFile(logfile, &bom, 2, &written, NULL);
|
||||
}
|
||||
#endif
|
||||
GetLocalTime(&t);
|
||||
GetTimeFormat(LOCALE_SYSTEM_DEFAULT, LOCALE_NOUSEROVERRIDE, &t, NULL, buftime, 1024);
|
||||
GetDateFormat(LOCALE_SYSTEM_DEFAULT, LOCALE_NOUSEROVERRIDE, &t, NULL, bufdate, 1024);
|
||||
wsprintf(buffer, _T("System, %s %s [build "__TIME__" ")__DATE___T("]\n"), buftime, bufdate);
|
||||
wsprintf(buffer, _T("System, %s %s [build ") __TTIME__ _T(" ") __TDATE__ _T("]\n"), buftime, bufdate);
|
||||
WriteToLog(buffer);
|
||||
} else ;
|
||||
else
|
||||
|
@ -543,9 +557,9 @@ SystemProc *PrepareProc(BOOL NeedForCall)
|
|||
case _T('l'):
|
||||
case _T('L'): temp2 = PAT_LONG; break;
|
||||
case _T('m'):
|
||||
case _T('M'):
|
||||
case _T('M'): temp2 = PAT_STRING; break;
|
||||
case _T('t'):
|
||||
case _T('T'): temp2 = PAT_STRING; break;
|
||||
case _T('T'): temp2 = PAT_STRING; break; // will be PAT_WSTRING for Unicode NSIS
|
||||
case _T('g'):
|
||||
case _T('G'): temp2 = PAT_GUID; break;
|
||||
case _T('w'):
|
||||
|
@ -705,7 +719,7 @@ SystemProc *PrepareProc(BOOL NeedForCall)
|
|||
// Use direct system proc address
|
||||
int addr;
|
||||
|
||||
proc->Dll = (HANDLE) INT_TO_POINTER(myatoi64(proc->DllName));
|
||||
proc->Dll = (HMODULE) INT_TO_POINTER(myatoi64(proc->DllName));
|
||||
|
||||
if (proc->Dll == 0)
|
||||
{
|
||||
|
@ -749,8 +763,13 @@ SystemProc *PrepareProc(BOOL NeedForCall)
|
|||
// Get proc address
|
||||
if ((proc->Proc = GetProcAddress(proc->Dll, proc->ProcName)) == NULL)
|
||||
{
|
||||
#ifdef _UNICODE
|
||||
// automatic W discover
|
||||
lstrcat(proc->ProcName, _T("W"));
|
||||
#else
|
||||
// automatic A discover
|
||||
lstrcat(proc->ProcName, _T("A"));
|
||||
lstrcat(proc->ProcName, "A");
|
||||
#endif
|
||||
if ((proc->Proc = GetProcAddress(proc->Dll, proc->ProcName)) == NULL)
|
||||
proc->ProcResult = PR_ERROR;
|
||||
}
|
||||
|
@ -826,7 +845,7 @@ void ParamsIn(SystemProc *proc)
|
|||
break;
|
||||
case PAT_WSTRING:
|
||||
case PAT_GUID:
|
||||
wstr = (LPWSTR) (par->allocatedBlock = GlobalAlloc(GPTR, g_stringsize*2));
|
||||
wstr = (LPWSTR) (par->allocatedBlock = GlobalAlloc(GPTR, g_stringsize*sizeof(WCHAR)));
|
||||
MultiByteToWideChar(CP_ACP, 0, realbuf, g_stringsize, wstr, g_stringsize);
|
||||
if (par->Type == PAT_GUID)
|
||||
{
|
||||
|
@ -900,7 +919,7 @@ void ParamsOut(SystemProc *proc)
|
|||
break;
|
||||
case PAT_STRING:
|
||||
{
|
||||
unsigned num = lstrlen(*((TCHAR**) place));
|
||||
unsigned int num = lstrlen(*((TCHAR**) place));
|
||||
if (num >= g_stringsize) num = g_stringsize-1;
|
||||
lstrcpyn(realbuf,*((TCHAR**) place), num+1);
|
||||
realbuf[num] = 0;
|
||||
|
@ -908,7 +927,7 @@ void ParamsOut(SystemProc *proc)
|
|||
break;
|
||||
case PAT_GUID:
|
||||
wstr = (LPWSTR) GlobalAlloc(GPTR, g_stringsize*2);
|
||||
StringFromGUID2(*((REFGUID*)place), wstr, g_stringsize*2);
|
||||
StringFromGUID2(*((REFGUID*)place), wstr, g_stringsize);
|
||||
WideCharToMultiByte(CP_ACP, 0, wstr, g_stringsize, realbuf, g_stringsize, NULL, NULL);
|
||||
GlobalFree((HGLOBAL)wstr);
|
||||
break;
|
||||
|
@ -942,7 +961,6 @@ HANDLE CreateCallback(SystemProc *cbproc)
|
|||
{
|
||||
char *mem;
|
||||
|
||||
|
||||
if (cbproc->Proc == NULL)
|
||||
{
|
||||
// Set callback index
|
||||
|
@ -975,7 +993,7 @@ void CallStruct(SystemProc *proc)
|
|||
{
|
||||
BOOL ssflag;
|
||||
int i, structsize = 0, size = 0;
|
||||
TCHAR *st, *ptr;
|
||||
char *st, *ptr;
|
||||
|
||||
SYSTEM_LOG_ADD(_T("\t\tStruct..."));
|
||||
|
||||
|
@ -994,7 +1012,7 @@ void CallStruct(SystemProc *proc)
|
|||
if (structsize == 0) structsize = (int) GlobalSize((HANDLE) proc->Proc);
|
||||
|
||||
// Pointer to current data
|
||||
st = (TCHAR*) proc->Proc;
|
||||
st = (char*) proc->Proc;
|
||||
|
||||
for (i = 1; i <= proc->ParamCount; i++)
|
||||
{
|
||||
|
@ -1005,7 +1023,7 @@ void CallStruct(SystemProc *proc)
|
|||
{
|
||||
// Normal
|
||||
size = proc->Params[i].Size*4;
|
||||
ptr = (TCHAR*) &(proc->Params[i].Value);
|
||||
ptr = (char*) &(proc->Params[i].Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1026,13 +1044,14 @@ void CallStruct(SystemProc *proc)
|
|||
// clear unused value bits
|
||||
proc->Params[i].Value &= intmask[((size >= 0) && (size < 4))?(size):(0)];
|
||||
// pointer
|
||||
ptr = (TCHAR*) &(proc->Params[i].Value);
|
||||
ptr = (char*) &(proc->Params[i].Value);
|
||||
break;
|
||||
|
||||
case PAT_STRING:
|
||||
case PAT_GUID:
|
||||
case PAT_WSTRING:
|
||||
ptr = (TCHAR*) proc->Params[i].Value; break;
|
||||
// Jim Park: Pointer for memcopy, so keep as char*
|
||||
ptr = (char*) proc->Params[i].Value; break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1071,7 +1090,7 @@ the same means as used for the _RPT0 macro. This leads to an endless recursion.
|
|||
|
||||
BOOL WINAPI DllMain(HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)
|
||||
{
|
||||
g_hInstance=hInst;
|
||||
g_hInstance=(HINSTANCE)hInst;
|
||||
|
||||
if (ul_reason_for_call == DLL_PROCESS_ATTACH)
|
||||
{
|
||||
|
@ -1084,7 +1103,6 @@ BOOL WINAPI DllMain(HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)
|
|||
LastError = 0;
|
||||
LastProc = NULL;
|
||||
CallbackIndex = 0;
|
||||
retexpr[0] = (char) 0xC2;
|
||||
CallbackThunkListHead = NULL;
|
||||
retexpr[0] = (char) 0xC2;
|
||||
retexpr[2] = 0x00;
|
||||
|
@ -1181,7 +1199,6 @@ unsigned int GetSizeOfProcParam(void)
|
|||
return (sizeof(ProcParameter));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Returns offset for element Size of ProcParameter structure
|
||||
*/
|
||||
|
|
|
@ -87,11 +87,10 @@ struct tag_SystemProc
|
|||
int ProcResult;
|
||||
TCHAR DllName[1024];
|
||||
TCHAR ProcName[1024];
|
||||
HANDLE Dll;
|
||||
HANDLE Proc;
|
||||
HMODULE Dll;
|
||||
HANDLE Proc;
|
||||
int Options;
|
||||
int ParamCount;
|
||||
// if you'll change ProcParameter or SystemProc structure - update SYSTEM_ZERO_PARAM_VALUE_OFFSET value
|
||||
ProcParameter Params[100]; // I hope nobody will use more than 100 params
|
||||
|
||||
// Callback specific
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue