DosSelectSession permite a una sesión padre conmutar a uno de sus hijos a primer plano. El Shell de OS/2, por ser padre de todas las sesiones que se abran, puede conmutar a cualquiera de ellas. Para devolver a éste al primer plano está la conbinación CTRL+ESC.
#define INCL_BASE
#include <os2.h>
ULONG ulSessID;
APIRET rc; /* Codigo de error */
rc = DosSelectSession(ulSessID);
Parámetros |
|
---|---|
ulSessID | El identificador de la sesión que se debe conmutar a primer plano. El valor especificado debe haber sido retornado por una llamada previa a DosStartSession, excepto cuando el valor es cero, en cuyo caso se pasa la propia sesión que hace la llamada. |
Codigos de error |
|
---|---|
0 | Sin error |
224 | No existe tal ventana (la sesión no se puede traer a primer plano) |
369 | Identificador de sesión no válido |
418 | Llamada no válida |
459 | Reserva no válida |
460 | La sesión no es hija de la actual |
463 | Reintentar el Sub Alloc |
DosStartSession crea una nueva sesión e inicia en ella la ejecución de un nuevo programa.
#define INCL_BASE
#include <os2.h>
PSTARTDATA pStartData;
PULONG pSessID;
PPID ppidPID;
APIRET rc; /* Codigo de error */
rc = DosStartSession(pStartData, pSessID, ppidPID);
Parámetros |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
pStartData | Puntero a una estructura de sesión con estos datos: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pSessID | Puntero a una doble palabra donde se almacena el identificador de la nueva sesión creada. Es retornado solo cuando el valor especificado en related es 1. Se necesita para las llamadas a DosSelectSession y DosStopSession. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ppidPID | Puntero a una doble palabra donde se almacena el identificador del proceso creado en la nueva sesión. El PID devuelto puede no ser válido para algunas llamadas (por ejemplo, DosSetPriority)) que necesitan una relación padre/hijo. |
Codigos de error |
|
---|---|
0 | Sin error |
369 | Identificador de sesión no válido |
418 | Llamada no válida |
460 | La sesión no es hija de la actual |
463 | Reintentar el Sub Alloc |
DosStopSesion finaliza una sesión.
#define INCL_BASE
#include <os2.h>
ULONG ulTargetOption;
ULONG ulSessID;
APIRET rc; /* Codigo de error */
rc = DosStopSession(ulTargetOption, ulSessID);
Parámetros |
|
---|---|
ulTargetOption | Si vale cero (STOP_SESSION_SPECIFIED) finaliza sóolo la sesión indicada por SessID. Si vale 1 (STOP_SESSION_ALL) finaliza todas las sesiones. |
ulSessID | El identificador de la sesión a finalizar. El valor es el devuelto por una llamada a DosStartSession. Este parámetro se ignora si TargetOption vale uno. |
Codigos de error |
|
---|---|
0 | Sin error |
369 | Identificador de sesión no válido |
418 | Llamada no válida |
458 | Opción de STOP no válida |
459 | Reserva no válida |
460 | La sesión no es hija de la actual |
463 | Reintentar el Sub Alloc |