WinHAPPfromPID: Difference between revisions
Appearance
mNo edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
WinHAPPfromPID returns the PM Application Handle ([[HAPP]]) from the process ID. If the process ID is not a valid PM application, then 0 is returned. | WinHAPPfromPID returns the PM Application Handle ([[HAPP]]) from the process ID. If the process ID is not a valid PM application, then 0 is returned. | ||
==Syntax== | ==Syntax== | ||
Line 8: | Line 8: | ||
==Return Code== | ==Return Code== | ||
;happ(HAPP) returns:Application handle. | |||
Application handle. | |||
* NULLHANDLE If the PID is invalid, or an error occurred. | * NULLHANDLE If the PID is invalid, or an error occurred. | ||
* HAPP The Application Handle, if PID is valid. | * HAPP The Application Handle, if PID is valid. | ||
==Remarks== | ==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 | 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 PMMERGE.5198 | |||
WinHAPPfromPID | *WinHSWITCHfromHAPP PMMERGE.5199 | ||
WinHSWITCHfromHAPP | |||
==Example Code== | ==Example Code== | ||
Line 42: | Line 38: | ||
hswitch=WinHSWITCHfromHAPP(happ); /* get HSWITCH from HAPP */ | hswitch=WinHSWITCHfromHAPP(happ); /* get HSWITCH from HAPP */ | ||
rc=WinQuerySwitchEntry(hswitch, | rc=WinQuerySwitchEntry(hswitch, swcntrl); /* interpret HSWITCH */ | ||
if (rc) { | if (rc) { | ||
printf("WinQuerySwitchEntry returned %u\n",rc); | printf("WinQuerySwitchEntry returned %u\n",rc); | ||
Line 64: | Line 60: | ||
==Related Functions== | ==Related Functions== | ||
* [[WinQuerySwitchEntry]] | * [[WinQuerySwitchEntry]] | ||
* [[WinQuerySwitchHandle]] | * [[WinQuerySwitchHandle]] |
Revision as of 04:01, 23 February 2020
WinHAPPfromPID returns the PM Application Handle (HAPP) from the process ID. If the process ID is not a valid PM application, then 0 is returned.
Syntax
HAPP WinHAPPfromPID (PID pid)
Parameters
- pid(PID) input
- Process ID
Return Code
- happ(HAPP) returns
- Application handle.
- NULLHANDLE If the PID is invalid, or an error occurred.
- HAPP The Application Handle, if PID is valid.
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 PMMERGE.5198
- WinHSWITCHfromHAPP PMMERGE.5199
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; }