Changeset 4372 for trunk/src/kernel32/wprocess.cpp
- Timestamp:
- Oct 2, 2000, 3:39:18 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/wprocess.cpp
r4351 r4372 1 /* $Id: wprocess.cpp,v 1.9 7 2000-10-01 12:05:57sandervl Exp $ */1 /* $Id: wprocess.cpp,v 1.98 2000-10-02 13:38:58 sandervl Exp $ */ 2 2 3 3 /* … … 1643 1643 rc = O32_WaitForInputIdle(procinfo.hProcess, 15000); 1644 1644 if(rc != 0) { 1645 dprintf(("WinExec: WaitForInputIdle %x returned %x", procinfo.hProcess, rc));1645 dprintf(("WinExec: WaitForInputIdle %x returned %x", procinfo.hProcess, rc)); 1646 1646 } 1647 1647 return procinfo.hProcess; //correct? 1648 } 1649 /********************************************************************** 1650 * LoadModule (KERNEL32.499) 1651 * 1652 * Wine: 20000909 1653 * 1654 * Copyright 1995 Alexandre Julliard 1655 */ 1656 HINSTANCE WINAPI LoadModule( LPCSTR name, LPVOID paramBlock ) 1657 { 1658 LOADPARAMS *params = (LOADPARAMS *)paramBlock; 1659 PROCESS_INFORMATION info; 1660 STARTUPINFOA startup; 1661 HINSTANCE hInstance; 1662 LPSTR cmdline, p; 1663 char filename[MAX_PATH]; 1664 BYTE len; 1665 1666 dprintf(("LoadModule %s %x", name, paramBlock)); 1667 1668 if (!name) return ERROR_FILE_NOT_FOUND; 1669 1670 if (!SearchPathA( NULL, name, ".exe", sizeof(filename), filename, NULL ) && 1671 !SearchPathA( NULL, name, NULL, sizeof(filename), filename, NULL )) 1672 return GetLastError(); 1673 1674 len = (BYTE)params->lpCmdLine[0]; 1675 if (!(cmdline = (LPSTR)HeapAlloc( GetProcessHeap(), 0, strlen(filename) + len + 2 ))) 1676 return ERROR_NOT_ENOUGH_MEMORY; 1677 1678 strcpy( cmdline, filename ); 1679 p = cmdline + strlen(cmdline); 1680 *p++ = ' '; 1681 memcpy( p, params->lpCmdLine + 1, len ); 1682 p[len] = 0; 1683 1684 memset( &startup, 0, sizeof(startup) ); 1685 startup.cb = sizeof(startup); 1686 if (params->lpCmdShow) 1687 { 1688 startup.dwFlags = STARTF_USESHOWWINDOW; 1689 startup.wShowWindow = params->lpCmdShow[1]; 1690 } 1691 1692 if (CreateProcessA( filename, cmdline, NULL, NULL, FALSE, 0, 1693 params->lpEnvAddress, NULL, &startup, &info )) 1694 { 1695 /* Give 15 seconds to the app to come up */ 1696 if ( O32_WaitForInputIdle ( info.hProcess, 15000 ) == 0xFFFFFFFF ) 1697 dprintf(("ERROR: WaitForInputIdle failed: Error %ld\n", GetLastError() )); 1698 hInstance = 33; 1699 /* Close off the handles */ 1700 CloseHandle( info.hThread ); 1701 CloseHandle( info.hProcess ); 1702 } 1703 else if ((hInstance = GetLastError()) >= 32) 1704 { 1705 dprintf(("ERROR: Strange error set by CreateProcess: %d\n", hInstance )); 1706 hInstance = 11; 1707 } 1708 1709 HeapFree( GetProcessHeap(), 0, cmdline ); 1710 return hInstance; 1648 1711 } 1649 1712 //******************************************************************************
Note:
See TracChangeset
for help on using the changeset viewer.