BOOL WINAPI myCreateProcessA( LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation) { if (debugEventSocket) { _asm int 3; SOCKET s = debugEventSocket; TESTPROTOIN(0x12345678); TESTPROTOOUT(0x12345678); DWORD dwCode = DRPC_CREATE_PROCESS; S(dwCode); Szs(lpApplicationName); Szs(lpCommandLine); // Sq(lpProcessAttributes); // Sq(lpThreadAttributes); S(bInheritHandles); S(dwCreationFlags); //TODO Senv(lpEnvironment); Szs(lpCurrentDirectory); S(*lpStartupInfo); DWORD dwHandled; R(dwHandled); if (dwHandled) { DWORD dwRet = 0; R(dwRet); PROCESS_INFORMATION info; R(info); if (lpProcessInformation) *lpProcessInformation = info; TESTPROTOIN(0xFEDCBA98); TESTPROTOOUT(0xFEDCBA98); return dwRet; } TESTPROTOIN(0xFEDCBA98); TESTPROTOOUT(0xFEDCBA98); } fprintf(log, "CreateProcess(%s, %s)\n", lpApplicationName, lpCommandLine); fflush(log); return oldCreateProcessA(lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation); }
BEGIN_ENUM_BYTE(ParseStringTokenType) AmPm, Month, Day, Zone, BcAd, END_ENUM_BYTE() const static SZS g_rgszs[] = { #define Szs(sz, val) { _u(sz), sizeof(_u(sz)) - 1, ParseStringTokenType::##szst, val } // bc and ad #undef szst #define szst BcAd Szs("bc", -1), Szs("b.c", -1), Szs("ad", +1), Szs("a.d", +1), // am and pm #undef szst #define szst AmPm Szs("am", -1), Szs("a.m", -1), Szs("pm", +1), Szs("p.m", +1), // time zones #undef szst #define szst Zone