home *** CD-ROM | disk | FTP | other *** search
/ Mega Top 1 / os2_top1.zip / os2_top1 / APPS / PROG / PASCAL / SPEED2 / SRC / LIB / API.PAS next >
Encoding:
Pascal/Delphi Source File  |  1994-10-07  |  17.0 KB  |  387 lines

  1. UNIT API;
  2.  
  3.  
  4. {****************************************************************************
  5. *                                                                           *
  6. *                                                                           *
  7. *                     Speed-386 Compiler für OS/2 V 1.0                     *
  8. *                                                                           *
  9. *                  Basic 32 Bit API functions für OS/2 2.1                  *
  10. *                                                                           *
  11. *                                                                           *
  12. *  Dieses File enthält die Deklaration von wichtigen OS/2 API's aus den     *
  13. *  entsprechenden OS/2 DLL's. (DOSCALLS,PMWIN und PMGPI)                    *
  14. *                                                                           *
  15. *  Die Angaben sind nicht überprüft und könnten Fehler enthalten !          *
  16. *                                                                           *
  17. *                                                                           *
  18. ****************************************************************************}
  19.  
  20. INTERFACE
  21.  
  22. USES Pmtypes;
  23.  
  24. {************************COMMON FUNCTIONS********************************}
  25.  
  26. {Common types}
  27. TYPE PFNThread =POINTER;  {Pointer to a procedure}
  28.  
  29.      PRESULTCODES=^RESULTCODES;
  30.      RESULTCODES=RECORD
  31.                        CodeTerminate:LONGWORD;
  32.                        CodeResult:LONGWORD;
  33.  
  34.                  END;
  35.  
  36.  
  37. {DosExit codes}
  38. CONST
  39.  
  40.      EXIT_THREAD       =0;
  41.      EXIT_PROCESS      =1;
  42.  
  43. {DosExit Action code values}
  44. CONST
  45.      DCWA_PROCESS      =0;
  46.      DCWA_PROCESSTREE  =1;
  47.  
  48. {Wait option values}
  49. CONST
  50.      DCWW_WAIT         =0;
  51.      DCWW_NOWAIT       =1;
  52.  
  53. {DosCreateThread values}
  54. CONST
  55.      CREATE_READY         =0;
  56.      CREATE_SUSPENDED     =1;
  57.      STACK_SPARSE         =0;
  58.      STACK_COMMITTED      =2;
  59.  
  60. IMPORTS  {Import all functions with IBM _System calling convention}
  61.    FUNCTION DosBeep(dur,freq:LONGWORD):LONGWORD:        'DOSCALLS' index 286;
  62.    PROCEDURE DosExit(result,action:LONGWORD):           'DOSCALLS' index 234;
  63.    FUNCTION DosCreateThread(cbStack:LONGWORD;
  64.                             flag:LONGWORD;
  65.                             param:LONGWORD;
  66.                             pfn:PFNTHREAD;
  67.                             VAR _Tid:TID):LONGWORD:     'DOSCALLS' index 311;
  68.    FUNCTION DosResumeThread(_tid:TID):LONGWORD:         'DOSCALLS' index 237;
  69.    FUNCTION DosSuspendThread(_tid:TID):LONGWORD:        'DOSCALLS' index 238;
  70.    FUNCTION DosKillThread(_tid:TID):LONGWORD:           'DOSCALLS' index 111;
  71.    FUNCTION DosWaitChild(_pid:PID;
  72.                          VAR ppid:PID;
  73.                          pres:PResultCodes;
  74.                          Options:LONGWORD;
  75.                          Action:LONGWORD):LONGWORD:     'DOSCALLS' index 280;
  76.    FUNCTION DosWaitThread(Options:LONGWORD;
  77.                           VAR _ptid:TID):LONGWORD:      'DOSCALLS' index 349;
  78.    FUNCTION DosSleep(msec:LONGWORD):LONGWORD:           'DOSCALLS' index 229;
  79.    FUNCTION DosEnterCritSec:LONGWORD:                   'DOSCALLS' index 232;
  80.  
  81.    FUNCTION DosExitCritSec:LONGWORD:                    'DOSCALLS' index 233;
  82.    FUNCTION DosExecPgm(PName:PSZ;
  83.                        pres:PResultCodes;
  84.                        penv:PSZ;
  85.                        PArg:PSZ;
  86.                        ExeFlags:LONGWORD;
  87.                        cbObjName:LONGINT;
  88.                        pObjName:PSZ):LONGWORD:          'DOSCALLS' index 283;
  89.    FUNCTION DosSetPriority(PorTid:LONGWORD;
  90.                            delta:LONGINT;
  91.                            _class:LONGWORD;
  92.                            Scope:LONGWORD):LONGWORD:    'DOSCALLS' index 236;
  93.    FUNCTION DosKillProcess(_pid:PID;
  94.                            Action:LONGWORD):LONGWORD:   'DOSCALLS' index 235;
  95. END;
  96.  
  97.  
  98. {************************MEMORY MANAGEMENT********************************}
  99.  
  100. {Access protection}
  101. CONST
  102.      PAG_READ         =$00000001;
  103.      PAG_WRITE        =$00000002;
  104.      PAG_EXECUTE      =$00000004;
  105.      PAG_GUARD        =$00000008;
  106.      PAG_DEFAULT      =$00000400;
  107.  
  108. {Commitment}
  109. CONST
  110.      PAG_COMMIT       =$00000010;
  111.      PAG_DECOMMIT     =$00000020;
  112.  
  113. {Allocation attributes}
  114.  
  115. CONST
  116.      OBJ_TILE         =$00000040;
  117.      OBJ_PROTECTED    =$00000080;
  118.      OBJ_GETTABLE     =$00000100;
  119.      OBJ_GIVEABLE     =$00000200;
  120.  
  121. CONST
  122.      fPERM            =$00000007;
  123.      fSHARE           =$00000300;
  124.  
  125. {DosAllocMem flags}
  126. CONST
  127.      fALLOC           =$00000057;
  128.  
  129. {DosAllocSharedMem flags}
  130.  
  131. CONST
  132.      fALLOCSHR        =$00000357;
  133.  
  134. {DosGetNamedSharedMem flags}
  135.  
  136. CONST
  137.      fGETNMSHR        =$00000007;
  138.  
  139. {DosGetSharedMem flags}
  140.  
  141. CONST
  142.      fGETSHR          =$00000007;
  143.  
  144. {DosGiveSharedMem flags}
  145.  
  146. CONST
  147.      fGIVESHR         =$00000007;
  148.  
  149. {DosSetMem flags}
  150.  
  151. CONST
  152.      fSET             =$00000437;
  153.  
  154. {Dos32SubSet flags}
  155.  
  156. CONST
  157.      DOSSUB_INIT       =$0000001;
  158.      DOSSUB_GROW       =$0000002;
  159.      DOSSUB_SPARSE_OBJ =$0000004;
  160.      DOSSUB_SERIALIZE  =$0000008;
  161.  
  162.  
  163. {Allocation type (returned from DosQueryMem)}
  164.  
  165. CONST
  166.      PAG_SHARED        =$00002000;
  167.      PAG_FREE          =$00004000;
  168.      PAG_BASE          =$00010000;
  169.  
  170.  
  171. IMPORTS {All IMPORTS use IBM _System Calling Convention}
  172.  
  173.    FUNCTION DosAllocMem(flag:LONGWORD;
  174.                         cb:LONGWORD;
  175.                         VAR ppb:POINTER):LONGWORD:    'DOSCALLS' index 299;
  176.    FUNCTION DosFreeMem(pb:POINTER):LONGWORD:          'DOSCALLS' index 304;
  177.    FUNCTION DosSetMem(Flag:LONGWORD;
  178.                       cb:LONGWORD;
  179.                       pb:POINTER):LONGWORD:           'DOSCALLS' index 305;
  180.    FUNCTION DosGiveSharedMem(flag:LONGWORD;
  181.                              _pid:PID;
  182.                              pb:POINTER):LONGWORD:    'DOSCALLS' index 303;
  183.    FUNCTION DosGetSharedMem(Flag:LONGWORD;
  184.                             pb:POINTER):LONGWORD:     'DOSCALLS' index 302;
  185.    FUNCTION DosGetNamedSharedMem(Flag:LONGWORD;
  186.                                  pszName:PSZ;
  187.                                  VAR ppb:POINTER):
  188.                                  LONGWORD:            'DOSCALLS' index 301;
  189.    FUNCTION DosAllocSharedMem(Flag:LONGWORD;
  190.                               cb:LONGWORD;
  191.                               pszName:PSZ;
  192.                               VAR ppb:POINTER):
  193.                               LONGWORD:               'DOSCALLS' index 300;
  194.    FUNCTION DosQueryMem(VAR pFlag:LONGWORD;
  195.                         VAR pcb:LONGWORD;
  196.                         pb:POINTER):LONGWORD:         'DOSCALLS' index 306;
  197.    FUNCTION DosSubAllocMem(cb:LONGWORD;
  198.                            VAR ppb:POINTER;
  199.                            pbBase:POINTER):LONGWORD:  'DOSCALLS' index 345;
  200.    FUNCTION DosSubFreeMem(cb:LONGWORD;
  201.                           pb:POINTER;
  202.                           pbBase:POINTER):LONGWORD:   'DOSCALLS' index 346;
  203.    FUNCTION DosSubSetMem(cb:LONGWORD;
  204.                          Flags:LONGWORD;
  205.                          pbBase:POINTER):LONGWORD:    'DOSCALLS' index 344;
  206.    FUNCTION DosSubUnsetMem(pbBase:POINTER):LONGWORD:  'DOSCALLS' index 347;
  207. END;
  208.  
  209. {**********************MODULE MANAGEMENT**********************************}
  210.  
  211. CONST
  212.     PT_16BIT=0;
  213.     PT_32BIT=1;
  214.  
  215. IMPORTS {All IMPORTS use IBM _System Calling Convention}
  216.  
  217.    FUNCTION DosLoadModule(VAR phmod:HMODULE;
  218.                           pszModName:PSZ;
  219.                           cbname:LONGWORD;
  220.                           pszName:PSZ):LONGWORD:     'DOSCALLS' index 318;
  221.  
  222.    FUNCTION  DosFreeModule(hmod:HMODULE):LONGWORD:   'DOSCALLS' index 322;
  223.  
  224.    FUNCTION DosQueryProcAddr(VAR ppfn:POINTER;
  225.                              pszName:PSZ;
  226.                              ordinal:LONGWORD;
  227.                              hmod:HMODULE):LONGWORD: 'DOSCALLS' index 321;
  228.    FUNCTION DosQueryModuleHandle(VAR phmod:HMODULE;
  229.                                  pszmodName:PSZ):
  230.                                  LONGWORD:           'DOSCALLS' index 319;
  231.    FUNCTION DosQueryModuleName(pch:PSTRING;
  232.                                cbname:LONGWORD;
  233.                                hmod:HMODULE):
  234.                                LONGWORD:             'DOSCALLS' index 320;
  235.     FUNCTION DosQueryProcType(VAR pulproctype:LONGWORD;
  236.                              pszname:PSZ;
  237.                              ordinal:LONGWORD;
  238.                              hmod:HMODULE):LONGWORD: 'DOSCALLS' index 586;
  239. END;
  240.  
  241. IMPORTS
  242.        FUNCTION WinCreateStdWindow(VAR phwndClient:HWND;
  243.                                       idResources:LONGWORD;
  244.                                       hmod:HMODULE;
  245.                                       styleClient:LONGWORD;
  246.                                       pszTitle:PSZ;
  247.                                       pszClientClass:PSZ;
  248.                                       VAR pflCreateFlags:LONGWORD;
  249.                                       flStyle:LONGWORD;
  250.                                       hwndParent:HWND):
  251.                                       LONGWORD:                  PMWIN index 908;
  252.        FUNCTION WinRegisterClass(cbWindowData:LONGWORD;
  253.                                  flStyle:LONGWORD;
  254.                                  pfnWndProc:POINTER;
  255.                                  pszClassName:PSZ;
  256.                                  _hab:LONGWORD):
  257.                                  LONGWORD:                       PMWIN index 926;
  258.        FUNCTION WinSetWindowULong(ul:LONGWORD;
  259.                                   _index:LONGWORD;
  260.                                   _hwnd:HWND):LONGWORD:         PMWIN index 878;
  261.        FUNCTION WinSetWindowPos(fl:LONGWORD;
  262.                                 cy,cx,y,x:LONGWORD;
  263.                                 hwndInsertBehind:HWND;
  264.                                 _hwnd:HWND):LONGWORD:           PMWIN index 875;
  265.        FUNCTION WinBeginPaint(VAR prclPaint:RECTL;
  266.                               _hps:HPS;_hwnd:HWND):
  267.  
  268.                               LONGWORD:                         PMWIN index 703;
  269.        FUNCTION WinEndPaint(_hps:HPS):LONGWORD:                 PMWIN index 738;
  270.        FUNCTION WinQueryWindowRect(VAR prclDest:RECTL;
  271.                                    _hwnd:HWND ):
  272.                                    LONGWORD:                    PMWIN index 840;
  273.        FUNCTION WinFillRect(lColor:LONGWORD;
  274.                             VAR prcl:RECTL;
  275.                             _hps:HPS):LONGWORD:                 PMWIN index 743;
  276.         PROCEDURE WinSubClassWindow(Proc:POINTER;Win:HWND):     PMWIN index 929;
  277.         PROCEDURE WinInvalidateRect(c:LONGWORD;r:POINTER;
  278.                                     Win:HWND):                  PMWIN index 765;
  279.         FUNCTION WinDestroyWindow(_hwnd:HWND):
  280.                                   LONGWORD:                     PMWIN index 728;
  281.         FUNCTION WinQueryWindow(cmd:LONGWORD;
  282.                                 _hwnd:HWND):LONGWORD:           PMWIN index 834;
  283.         FUNCTION WinPostMsg(mp2,mp1:POINTER;
  284.                             msg:LONGWORD;
  285.                             _hwnd:HWND):LONGWORD:               PMWIN index 919;
  286.         FUNCTION WinSendMsg(MPARAM2,MPARAM1:POINTER;
  287.                             msg:LONGWORD;
  288.                             _hwnd:HWND):POINTER:                PMWIN index 920;
  289.         FUNCTION GpiSetColor(lColor:LONGWORD;
  290.                              _hps:HPS):LONGINT:                 PMGPI index 517;
  291.         FUNCTION GpiSetBackColor(lColor:LONGINT;
  292.                                  _hps:HPS):LONGWORD:            PMGPI index 504;
  293.         FUNCTION GpiSetBackMix(lMixMode:LONGINT;
  294.                                _hps:HPS):LONGWORD:              PMGPI index 505;
  295.         FUNCTION GpiCharStringAt(VAR pchString;
  296.                                  lCount:LONGWORD;
  297.                                  VAR pptlPoint:POINTL;
  298.                                  _hps:HPS):LONGWORD:            PMGPI index 359;
  299.         FUNCTION GpiMove(VAR Point:POINTL;hp:HPS):LONGWORD:
  300.                                                                 PMGPI index 404;
  301.         FUNCTION GpiBox(VRound,HRound:LONGWORD;VAR Point:POINTL;
  302.                        Control:LONGWORD;hp:HPS):LONGWORD:       PMGPI index 356;
  303.         FUNCTION WinQueryWindowUShort(_index:LONGWORD;
  304.                                         _hwnd:HWND):WORD:       PMWIN index 844;
  305.         FUNCTION WinQueryWindowULong(_index:LONGWORD;
  306.                                      _hwnd:HWND):
  307.                                      LONGWORD:                  PMWIN index 843;
  308.         FUNCTION WinEnableWindow(fEnable:LONGWORD;
  309.                                  _hwnd:HWND):LONGWORD:          PMWIN index 735;
  310.         FUNCTION WinMessageBox(flStyle:LONGWORD;
  311.                                idWindow:LONGWORD;
  312.                                pszCaption:PSZ;
  313.                                pszText:PSZ;
  314.                                hwndOwner:HWND;
  315.                                hwndParent:HWND):LONGWORD:       PMWIN index 789;
  316.         FUNCTION WinSetWindowText(psztext:PSZ;
  317.                                   _hwnd:HWND):LONGWORD:         PMWIN index 877;
  318.         FUNCTION WinCreateHelpInstance(VAR HInit:THelpInit;
  319.                                        hab:LONGWORD):
  320.                                        LONGWORD:                HELPMGR index 51;
  321.         FUNCTION WinDestroyHelpInstance(hwndHelp:HWND):
  322.                                         LONGWORD:               HELPMGR index 52;
  323.         FUNCTION WinAssociateHelpInstance(Frame,Help:HWND):
  324.                                           LONGWORD:             HELPMGR index 54;
  325.         FUNCTION WinQuerySysValue(iSysValue:LONGWORD;
  326.                                   hwndDesktop:HWND):
  327.                                   LONGWORD:                     PMWIN index 829;
  328.         FUNCTION WinDrawBorder(flCmd,clrBack,ClrFore,cy,cx:LONGWORD;
  329.                                VAR rec:RECTL;hp:HPS):LONGWORD:  PMWIN index 731;
  330.         PROCEDURE WinReleasePS(_hps:HPS):                       PMWIN index 848;
  331.         FUNCTION  WinGetPS(Win:HWND):HPS:                       PMWIN index 757;
  332.         FUNCTION WinWindowFromID(id:LONGWORD;
  333.                                  hwndParent:HWND):HWND:         PMWIN index 899;
  334.         FUNCTION WinCreateWindow(pPresParams:POINTER;
  335.                                  pCtlData:POINTER;
  336.                                  id:LONGWORD;
  337.                                  hwndInsertBehind:HWND;
  338.                                  hwndOwner:HWND;
  339.                                  cy,cx,y,x:LONGWORD;
  340.                                  flStyle:LONGWORD;
  341.                                  pszName:PSZ;
  342.                                  _Class:LONGWORD;
  343.                                  hwndParent:HWND):HWND:         PMWIN index 909;
  344.         FUNCTION WinQueryWindowPos(_swp:SWP;
  345.                                    _hwnd:HWND):LONGWORD:        PMWIN index 837;
  346.         FUNCTION WinSetMultWindowPos(cswp:LONGWORD;
  347.                                      VAR pswp:SWP;
  348.                                      _hab:LONGWORD):
  349.                                      LONGWORD:                  PMWIN index 863;
  350.         FUNCTION WinBeginEnumWindows(_hwnd:HWND):
  351.                                      LONGWORD:                  PMWIN index 702;
  352.         FUNCTION WinGetNextWindow(_henum:LONGWORD):HWND:        PMWIN index 756;
  353.         FUNCTION WinEndEnumWindows(_henum:LONGWORD):
  354.                                    LONGWORD:                    PMWIN index 737;
  355.         FUNCTION WinSetWindowUShort(us:LONGINT;
  356.                                     _index:LONGWORD;
  357.                                     _hwnd:HWND):LONGWORD:       PMWIN index 879;
  358.         FUNCTION WinSetOwner(hwndNewOwner,_hwnd:HWND):
  359.                              LONGWORD:                          PMWIN index 864;
  360.         FUNCTION WinDefWindowProc(para2,para1:POINTER;
  361.                                   msg:LONGWORD;
  362.                                   Win:HWND):LONGWORD:           PMWIN index 911;
  363.         FUNCTION WinGetMsg(p1,p2,p3:LONGWORD;
  364.                            VAR _qmsg:QMSG;AppH:LONGWORD):
  365.                            LONGWORD:                            PMWIN index 915;
  366.         FUNCTION WinDispatchMsg(VAR _qmsg:QMSG;Apph:LONGWORD):
  367.                            LONGWORD:                            PMWIN index 912;
  368.         FUNCTION WinLoadDlg(pCreateParams:POINTER;idDld:LONGWORD;
  369.                            hmod:HMODULE;DlgProc:POINTER;Owner:HWND;
  370.                            Parent:HWND):LONGWORD:               PMWIN index 924;
  371.         FUNCTION WinProcessDlg(hwndDlg:HWND):LONGWORD:          PMWIN index 796;
  372.         FUNCTION WinDefDlgProc(Para2,Para1:POINTER;msg:LONGWORD;
  373.                                hwnddlg:HWND):LONGWORD:          PMWIN index 910;
  374.         FUNCTION WinInitialize(flOptions:LONGWORD):LONGWORD:    PMWIN index 763;
  375.         FUNCTION WinCreateMsgQueue(qsize,hab:LONGWORD):LONGWORD: PMWIN index 716;
  376.         PROCEDURE WinDestroyMsgQueue(Queue:LONGWORD):           PMWIN index 726;
  377.         PROCEDURE WinTerminate(Anchor:LONGWORD):                PMWIN index 888;
  378. END;
  379.  
  380. IMPLEMENTATION
  381.  
  382.  
  383. {We dont need to implement anything !}
  384.  
  385. BEGIN
  386. END.
  387.