An application can use DosSetSession to establish a bond between a parent session and one of its child sessions. When the two sessions are bound, OS/2 brings the child session to the foreground when the user selects the parent session.

In the following code fragment, a parent session is bound to the child session specified by the ulSessionID parameter:

    #define INCL_DOSPROCESS       /* Process and thread values */
    #define INCL_DOSSESMGR
    #include <os2.h>

    ULONG ulSessionID;
    STATUSDATA stsdata;

    stsdata.Length = sizeof(stsdata);
    stsdata.SelectInd = SET_SESSION_UNCHANGED;   /* Leaves select setting alone */
    stsdata.BondInd = SET_SESSION_BOND;          /* Binds parent and child      */

    DosSetSession(ulSessionID, &stsdata);

When the application uses DosSetSession to establish a parent-child bond, any bond the parent has with another child session is broken. The application can remove the parent-child bond by calling DosSetSession with the BondInd field (in the STATUSDATA structure) set to SET_SESSION_NO_BOND.

A parent session can be executing in either the foreground or the background when it calls DosSetSession.


[Back] [Next]