Ricardo a écrit :
Ok, I've tried everything. Change the API used (GetStartupInfoA to GetStartupInfoW), changed the code, but I have no idea where to change in wine to, when I have 2 programs, doesn't loose the passed parameters. Here's how it works:
PGM1 starts and ask the username and the password. If it's ok it writes FILE1.DAT and FILE1.IDX with settings to PGM2 to run. These files are wrote correctly, but PGM2 can't read them. When PGM1 finish wine seems like "closing" and than star over with the PGM2 (called by PGM1 with the parameters writen (API CreateProcess)). But PGM2 starts without any parameters (API GetStartupInfo) and without the parameters it cant run, so the program exit.
I've already checked 3 files: loader/module.c, scheduler/process.c and memory/environ.c. And compared it with the MSDN Library, and the codes are the same, so no problems with it.
How does WINE deal with a program calling another one?
this is done by sending back and forth data to the wine server here are the flow chart of the creation, look up for the names
creator wineserver child --- new_process ---> fork <-- init_process-- <-- init_process_done-- <parent gets signaled> --- get_new_process_info->
in your case, you need to extend new_process to pass the extra parameter, init_process to retrieve those parameters, wineserver to store them, the process creation to actually pass them and finally the child startup code to make use of them
HTH A+