| 1 | /* $Id: os2newapi.h,v 1.3 2000-03-11 00:00:04 sandervl Exp $ */ | 
|---|
| 2 | /* | 
|---|
| 3 | * | 
|---|
| 4 | * Project Odin Software License can be found in LICENSE.TXT | 
|---|
| 5 | * | 
|---|
| 6 | */ | 
|---|
| 7 | #ifndef __OS2NEWAPI_H__ | 
|---|
| 8 | #define __OS2NEWAPI_H__ | 
|---|
| 9 |  | 
|---|
| 10 | #ifdef __cplusplus | 
|---|
| 11 | extern "C" { | 
|---|
| 12 | #endif | 
|---|
| 13 |  | 
|---|
| 14 | #ifdef INCL_WIN | 
|---|
| 15 | #ifdef INCL_WINMESSAGEMGR | 
|---|
| 16 | BOOL APIENTRY WinThreadAssocQueue(HAB hab, HMQ hmq); | 
|---|
| 17 | BOOL APIENTRY WinWakeThread(HMQ hmq); | 
|---|
| 18 | BOOL APIENTRY WinReplyMsg(HAB hab, HMQ hmqSender, HMQ hmqReceiver, MRESULT mresult); | 
|---|
| 19 | HMQ  APIENTRY WinQueueFromID(HAB hab, PID pid, TID tid); | 
|---|
| 20 | BOOL APIENTRY WinQueryQueueInfo(HMQ hmq, PMQINFO pmqi, ULONG cbCopy); | 
|---|
| 21 | HMQ  APIENTRY WinQuerySendMsg(HAB hab, HMQ hmqSender, HMQ hmqReceiver, PQMSG pqmsg); | 
|---|
| 22 | BOOL APIENTRY WinLockInput(HMQ hmq, ULONG fLock); | 
|---|
| 23 | #endif | 
|---|
| 24 | #endif | 
|---|
| 25 |  | 
|---|
| 26 | #ifdef INCL_DOSSEL | 
|---|
| 27 | /* Segment attribute flags (used with DosAllocSeg) */ | 
|---|
| 28 |  | 
|---|
| 29 | #define SEG_NONSHARED       0x0000 | 
|---|
| 30 | #define SEG_GIVEABLE        0x0001 | 
|---|
| 31 | #define SEG_GETTABLE        0x0002 | 
|---|
| 32 | #define SEG_DISCARDABLE     0x0004 | 
|---|
| 33 |  | 
|---|
| 34 | #define DosAllocSeg     Dos16AllocSeg | 
|---|
| 35 | #define DosFreeSeg      Dos16FreeSeg | 
|---|
| 36 | #define DosGetSeg       Dos16GetSeg | 
|---|
| 37 | #define DosGiveSeg      Dos16GiveSeg | 
|---|
| 38 | #define DosReallocSeg   Dos16ReallocSeg | 
|---|
| 39 | #define DosSizeSeg      Dos16SizeSeg | 
|---|
| 40 |  | 
|---|
| 41 | USHORT APIENTRY16 DosAllocSeg(USHORT cbSize, PSEL pSel, USHORT fsAlloc); | 
|---|
| 42 | USHORT APIENTRY16 DosFreeSeg(SEL sel); | 
|---|
| 43 | USHORT APIENTRY16 DosGetSeg(SEL sel); | 
|---|
| 44 | USHORT APIENTRY16 DosGiveSeg(SEL sel, PID pid, PSEL pSelRecipient); | 
|---|
| 45 | USHORT APIENTRY16 DosReallocSeg(USHORT cbNewSize, SEL sel); | 
|---|
| 46 | USHORT APIENTRY16 DosSizeSeg(SEL sel, PULONG pcbSize); | 
|---|
| 47 |  | 
|---|
| 48 | #ifndef __EMX__ | 
|---|
| 49 | #define DosSelToFlat Dos32SelToFlat | 
|---|
| 50 | #endif | 
|---|
| 51 | ULONG _Optlink DosSelToFlat(ULONG seladdr); | 
|---|
| 52 |  | 
|---|
| 53 | #ifndef __EMX__ | 
|---|
| 54 | #define DosFlatToSel Dos32FlatToSel | 
|---|
| 55 | #endif | 
|---|
| 56 | ULONG _Optlink DosFlatToSel(ULONG lin); | 
|---|
| 57 |  | 
|---|
| 58 | #endif | 
|---|
| 59 |  | 
|---|
| 60 | //undocumented OS/2 api to read data from an executable image | 
|---|
| 61 |  | 
|---|
| 62 | #define QHINF_EXEINFO       1 /* NE exeinfo. */ | 
|---|
| 63 | #define QHINF_READRSRCTBL   2 /* Reads from the resource table. */ | 
|---|
| 64 | #define QHINF_READFILE      3 /* Reads from the executable file. */ | 
|---|
| 65 | #define QHINF_LIBPATHLENGTH 4 /* Gets the libpath length. */ | 
|---|
| 66 | #define QHINF_LIBPATH       5 /* Gets the entire libpath. */ | 
|---|
| 67 | #define QHINF_FIXENTRY      6 /* NE only */ | 
|---|
| 68 | #define QHINF_STE           7 /* NE only */ | 
|---|
| 69 | #define QHINF_MAPSEL        8 /* NE only */ | 
|---|
| 70 |  | 
|---|
| 71 | APIRET APIENTRY DosQueryHeaderInfo(HMODULE hmod, | 
|---|
| 72 | ULONG   ulIndex, | 
|---|
| 73 | PVOID   pvBuffer, | 
|---|
| 74 | ULONG   cbBuffer, | 
|---|
| 75 | ULONG   ulSubFunction); | 
|---|
| 76 |  | 
|---|
| 77 | #ifdef __cplusplus | 
|---|
| 78 | } // extern "C" | 
|---|
| 79 | #endif | 
|---|
| 80 |  | 
|---|
| 81 | #endif //__OS2SEL_H__ | 
|---|