Purpose
WinHAPPfromPID returns the PM Application Handle (HAPP) from the process ID. If the proces ID is not a valid PM application, then 0 is returned.
Syntax
#define INCL_PMAPI #include os2.h>
HAPP WinHAPPfromPID
Parameters
pid(PID) input
Returns
happ(HAPP) returns
NULLHANDLE
Remarks
WinHAPPfromHSWITCH and WinHSWITCHfromHAPP may be called from non-PM programs. For some versions of OS/2 it may be necessary to import explicitly these APIs using the following ordinals
WinHAPPfromPID
Related Functions
Example Code
int main (int argc, char *argv[], char *envp[]){
APIRET rc;
HAPP happ;
HSWITCH hswitch;
SWCNTRL swcntrl;
PID pid;
if (argc==1) {
printf("QSWLIST pid\n");
return 0;
} /* endif */
pid=strtoul(argv[1],NULL,0);
happ=WinHAPPfromPID(pid); /* get HAPP from PID */
hswitch=WinHSWITCHfromHAPP(happ); /* get HSWITCH from HAPP */
rc=WinQuerySwitchEntry(hswitch, swcntrl); /* interpret HSWITCH */
if (rc) {
printf("WinQuerySwitchEntry returned %u\n",rc);
return rc;
} /* endif */
printf("Pid %04x, Happ %08x, Hswitch %08x\n", pid, happ, hswitch);
printf("swcntrl.hwnd \t%08x, swcntrl.hwndIcon \t%08x\n",
swcntrl.hwnd, swcntrl.hwndIcon);
printf("swcntrl.hprog \t%08x, swcntrl.idProcess \t%08x\n",
swcntrl.hprog, swcntrl.idProcess);
printf("swcntrl.idSession \t%08x, swcntrl.uchVisbility \t%08x\n",
swcntrl.idSession, swcntrl.uchVisibility);
printf("swcntrl.fbJump \t%08x, swcntrl.bProgType \t%08x\n",
swcntrl.fbJump, swcntrl.bProgType);
printf("swcntrl.szSwtitle %s\n", sz.Swtitle);
return 0;
}