home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / pmqsiz.zip / DMPQUEUE.CMD next >
OS/2 REXX Batch file  |  1995-04-24  |  2KB  |  64 lines

  1. EXTPROC CEnvi2
  2.  
  3. if ( !DosLoadModule("PMWIN",ModuleHandle) ) {
  4.    printf("Cannot load PMWIN\n");
  5. } else {
  6.    printf("\nPMWIN module handle = %d\n",ModuleHandle);
  7.    #define ORD_WIN32CREATEMSGQUEUE 716
  8.    #define ORD_WIN16CREATEMSGQUEUE 58
  9.  
  10.    if ( !DosQueryProcAddr(ModuleHandle,ORD_WIN32CREATEMSGQUEUE,NULL,ProcAddress) ) {
  11.       printf("Cannot find address for 32-bit create msg queue\n");
  12.    } else {
  13.       printf("\nAddress of 32-bit CreateMsgQueue = %08X\n",ProcAddress);
  14.       ShowBytes(ProcAddress);
  15.       if ( !DosQueryProcAddr(ModuleHandle,ORD_WIN16CREATEMSGQUEUE,NULL,ProcAddress) ) {
  16.          printf("Cannot find address for 16-bit create msg queue\n");
  17.       } else {
  18.          printf("\nAddress of 16-bit CreateMsgQueue = %08X\n",ProcAddress);
  19.          ShowBytes(ProcAddress);
  20.       }
  21.    }
  22.    DosFreeModule(ModuleHandle);
  23. }
  24.  
  25. ShowBytes(Address)
  26. {
  27.    for ( i = 0; i < 10; i++ ) {
  28.       for ( j = 0; j < 16; j++ ) {
  29.          printf(" %02X",peek(Address+(i*16)+j));
  30.       }
  31.       puts("");
  32.    }
  33. }
  34.  
  35. DosLoadModule(pModuleName,pRetModuleHandle)
  36. {
  37.    #define ORD_DOS32LOADMODULE  318
  38.    lLoadError[100] = '\0';
  39.    lRc = DynamicLink("DOSCALLS",ORD_DOS32LOADMODULE,BIT32,CDECL,
  40.                      lLoadError,100,pModuleName,lModHandle);
  41.    pRetModuleHandle = lModHandle;
  42.    if ( lRc ) {
  43.       printf("lRc = %d\n",lRc);
  44.       printf("Error message = \"%s\"\n",lLoadError);
  45.    }
  46.    return ( 0 == lRc );
  47. }
  48.  
  49. DosFreeModule(pModuleHandle)
  50. {
  51.    #define ORD_DOS32FREEMODULE  322
  52.    DynamicLink("DOSCALLS",ORD_DOS32FREEMODULE,BIT32,CDECL,pModuleHandle);
  53. }
  54.  
  55. DosQueryProcAddr(pModuleHandle,pOrdinal,pProcName,pRetProcAddress)
  56. {
  57.    #define ORD_DOS32QUERYPROCADDR  321
  58.    lRc = DynamicLink("DOSCALLS",ORD_DOS32QUERYPROCADDR,BIT32,CDECL,
  59.                      pModuleHandle,pOrdinal,pProcName,lRetProcAddress);
  60.    pRetProcAddress = lRetProcAddress;
  61.    return ( 0 == lRc );
  62. }
  63.  
  64.