DosQueryProcAddr
Appearance
DosQueryProcAddr
Syntax
rc = DosQueryProcAddr( hMod, ulOrdinal, pszProcName, pProcAddr );
Parameters
- HMODULE hMod (input)
- Handle for the module to be queried (from DosLoadModule).
- ULONG ulOrdinal (input)
- Ordinal number for the sought process. If 0 then pszProcName is used.
- PSZ pszProcName (input)
- Pointer to string containing the sought processes name. Not case sensitive.
- PFN* pProcAddr (output)
- Address of a function pointer, which will contain the address of the procedure.
Returns
- APIRET rc
- Indicates if any error occured.
0 | NO_ERROR |
6 | ERROR_INVALID_HANDLE |
123 | ERROR_INVALID_NAME |
65079 | ERROR_ENTRY_IS_CALLGATE |
Include Info
- define INCL_DOSMODULEMGR
#include <os2.h>
Usage Explanation
DosQueryProcAddr is used to find the address of a process in a dynamic link module.
Relevant Structures
Gotchas
Sample Code
void (* my_dll_function)(int, char*); /* Pointer to process */ HMODULE hmod; APIRET rc = 0; /* Load DLL and get hmod with DosLoadModule*/ /* Get address for process in DLL */ rc = DosQueryProcAddr(hmod, 0, "MY_DLL_FUNCTION", (PFN *) my_dll_function); if(rc) { /* Failure? */ printf("Error. Cannot get the address for my_dll_function. DosQueryProcAddr returned %d.\n",rc); return(-1); } /* Call my_dll_function */ my_dll_function(4711,"Hello World!\n");