Ignore:
Timestamp:
Jun 11, 2001, 12:32:18 AM (24 years ago)
Author:
sandervl
Message:

CreateProcess: launch win16 loader for NE executables

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/wprocess.cpp

    r5939 r5959  
    1 /* $Id: wprocess.cpp,v 1.122 2001-06-09 19:46:01 sandervl Exp $ */
     1/* $Id: wprocess.cpp,v 1.123 2001-06-10 22:32:18 sandervl Exp $ */
    22
    33/*
     
    786786
    787787    //test if dll is in PE or LX format
    788     fPE = Win32ImageBase::isPEImage(szModname, &Characteristics);
     788    fPE = Win32ImageBase::isPEImage(szModname, &Characteristics, NULL);
    789789
    790790    /** @sketch
     
    16951695    dprintf(("KERNEL32: CreateProcess %s\n", cmdline));
    16961696   
    1697     DWORD Characteristics, SubSystem;
    1698     if(Win32ImageBase::isPEImage(exename, &Characteristics, &SubSystem) == 0) {
     1697    DWORD Characteristics, SubSystem, fNEExe;
     1698    if(Win32ImageBase::isPEImage(exename, &Characteristics, &SubSystem, &fNEExe) == 0) {
    16991699        char *lpszPE;
    17001700        if(SubSystem == IMAGE_SUBSYSTEM_WINDOWS_CUI) {
     
    17261726                               lpProcessInfo);
    17271727    }
    1728     else {//16 bits windows app
     1728    else
     1729    if(fNEExe) {//16 bits windows app
     1730        char *newcmdline;
     1731       
     1732        newcmdline = (char *)malloc(strlen(cmdline) + 16);
     1733        sprintf(newcmdline, "w16odin.exe %s", cmdline);
     1734        free(cmdline);
     1735        cmdline = newcmdline;
     1736        //Force Open32 to use DosStartSession (DosExecPgm won't do)
     1737        dwCreationFlags |= CREATE_NEW_PROCESS_GROUP;
     1738        rc = O32_CreateProcess("w16odin.exe", (LPCSTR)cmdline, lpProcessAttributes,
     1739                               lpThreadAttributes, bInheritHandles, dwCreationFlags,
     1740                               lpEnvironment, lpCurrentDirectory, lpStartupInfo,
     1741                               lpProcessInfo);
     1742    }
     1743    else {//os/2 app??
    17291744        rc = O32_CreateProcess(NULL, (LPCSTR)cmdline,lpProcessAttributes,
    17301745                               lpThreadAttributes, bInheritHandles, dwCreationFlags,
Note: See TracChangeset for help on using the changeset viewer.