📄 bsedos.mh
字号:
/*
* bsedos.h OS/2 Base DOS include file for 16-bit development.
*
:include crwatcnt.sp
*/
:include readonly.sp
:include cpluspro.sp
#ifdef INCL_DOS
#define INCL_DOSDATETIME
#define INCL_DOSDEVICES
#define INCL_DOSFILEMGR
#define INCL_DOSINFOSEG
#define INCL_DOSMEMMGR
#define INCL_DOSMISC
#define INCL_DOSMODULEMGR
#define INCL_DOSMONITORS
#define INCL_DOSNLS
#define INCL_DOSNMPIPES
#define INCL_DOSPROCESS
#define INCL_DOSQUEUES
#define INCL_DOSRESOURCES
#define INCL_DOSSEMAPHORES
#define INCL_DOSSESMGR
#define INCL_DOSSIGNALS
#endif
#define CCHMAXPATH 260
#define CCHMAXPATHCOMP 256
#if (defined(INCL_DOSPROCESS) || !defined(INCL_NOCOMMON))
#define EXIT_THREAD 0
#define EXIT_PROCESS 1
#define EXEC_SYNC 0
#define EXEC_ASYNC 1
#define EXEC_ASYNCRESULT 2
#define EXEC_TRACE 3
#define EXEC_BACKGROUND 4
#define EXEC_LOAD 5
#define EXLST_ADD 1
#define EXLST_REMOVE 2
#define EXLST_EXIT 3
#define PRTYS_PROCESS 0
#define PRTYS_PROCESSTREE 1
#define PRTYS_THREAD 2
#define PRTYC_NOCHANGE 0
#define PRTYC_IDLETIME 1
#define PRTYC_REGULAR 2
#define PRTYC_TIMECRITICAL 3
#define PRTYC_FOREGROUNDSERVER 4
#define PRTYD_MINIMUM (-31)
#define PRTYD_MAXIMUM 31
#define DCWA_PROCESS 0
#define DCWA_PROCESSTREE 1
#define DCWW_WAIT 0
#define DCWW_NOWAIT 1
typedef struct _RESULTCODES {
USHORT codeTerminate;
USHORT codeResult;
} RESULTCODES, FAR *PRESULTCODES;
typedef struct _PIDINFO {
PID pid;
TID tid;
PID pidParent;
} PIDINFO, FAR *PPIDINFO;
typedef VOID (FAR *PFNTHREAD)(VOID);
typedef VOID (PASCAL FAR *PFNEXITLIST)(USHORT);
USHORT APIENTRY DosBeep(USHORT,USHORT);
USHORT APIENTRY DosCreateThread(PFNTHREAD,PTID,PBYTE);
USHORT APIENTRY DosCwait(USHORT,USHORT,PRESULTCODES,PPID,PID);
USHORT APIENTRY DosEnterCritSec(VOID);
USHORT APIENTRY DosExecPgm(PCHAR,SHORT,USHORT,PSZ,PSZ,PRESULTCODES,PSZ);
VOID APIENTRY DosExit(USHORT,USHORT);
USHORT APIENTRY DosExitCritSec(VOID);
USHORT APIENTRY DosExitList(USHORT,PFNEXITLIST);
USHORT APIENTRY DosGetPID(PPIDINFO);
USHORT APIENTRY DosGetPPID(USHORT,PUSHORT);
USHORT APIENTRY DosGetPrty(USHORT,PUSHORT,USHORT);
USHORT APIENTRY DosKillProcess(USHORT,PID);
USHORT APIENTRY DosResumeThread(TID);
USHORT APIENTRY DosSetPrty(USHORT,USHORT,SHORT,USHORT);
USHORT APIENTRY DosSleep(ULONG);
USHORT APIENTRY DosSuspendThread(TID);
#endif
#if (defined(INCL_DOSFILEMGR) || !defined(INCL_NOCOMMON))
#define FILE_BEGIN 0
#define FILE_CURRENT 1
#define FILE_END 2
#define HDIR_SYSTEM 0x0001
#define HDIR_CREATE 0xFFFF
#define DCPY_EXISTING 1
#define DCPY_APPEND 2
#define FILE_NORMAL 0x0000
#define FILE_READONLY 0x0001
#define FILE_HIDDEN 0x0002
#define FILE_SYSTEM 0x0004
#define FILE_DIRECTORY 0x0010
#define FILE_ARCHIVED 0x0020
#define FILE_EXISTED 1
#define FILE_CREATED 2
#define FILE_TRUNCATED 3
#define FILE_OPEN 0x0001
#define FILE_TRUNCATE 0x0002
#define FILE_CREATE 0x0010
#define OPEN_ACTION_FAIL_IF_EXISTS 0
#define OPEN_ACTION_OPEN_IF_EXISTS 1
#define OPEN_ACTION_REPLACE_IF_EXISTS 2
#define OPEN_ACTION_FAIL_IF_NEW 0x0000
#define OPEN_ACTION_CREATE_IF_NEW 0x0010
#define OPEN_ACCESS_READONLY 0x0000
#define OPEN_ACCESS_WRITEONLY 0x0001
#define OPEN_ACCESS_READWRITE 0x0002
#define OPEN_SHARE_DENYREADWRITE 0x0010
#define OPEN_SHARE_DENYWRITE 0x0020
#define OPEN_SHARE_DENYREAD 0x0030
#define OPEN_SHARE_DENYNONE 0x0040
#define OPEN_FLAGS_NOINHERIT 0x0080
#define OPEN_FLAGS_NO_LOCALITY 0x0000
#define OPEN_FLAGS_SEQUENTIAL 0x0100
#define OPEN_FLAGS_RANDOM 0x0200
#define OPEN_FLAGS_RANDOMSEQUENTIAL 0x0300
#define OPEN_FLAGS_NO_CACHE 0x1000
#define OPEN_FLAGS_FAIL_ON_ERROR 0x2000
#define OPEN_FLAGS_WRITE_THROUGH 0x4000
#define OPEN_FLAGS_DASD 0x8000
#define SEARCH_PATH 0
#define SEARCH_CUR_DIRECTORY 1
#define SEARCH_ENVIRONMENT 2
#define SEARCH_IGNORENETERRS 4
#define FIO_LOCK 0
#define FIO_UNLOCK 1
#define FIO_SEEK 2
#define FIO_READ 3
#define FIO_WRITE 4
#define FIO_NOSHARE 0
#define FIO_SHAREREAD 1
#define FSIL_ALLOC 1
#define FSIL_VOLSER 2
#define FHT_DISKFILE 0
#define FHT_CHRDEV 1
#define FHT_PIPE 2
#define FHB_DSKREMOTE 0x8000
#define FHB_CHRDEVREMOTE 0x8000
#define FHB_PIPEREMOTE 0x8000
#define FEA_NEEDEA 0x80
#define EAT_BINARY 0xFFFE
#define EAT_ASCII 0xFFFD
#define EAT_BITMAP 0xFFFB
#define EAT_METAFILE 0xFFFA
#define EAT_ICON 0xFFF9
#define EAT_EA 0xFFEE
#define EAT_MVMT 0xFFDF
#define EAT_MVST 0xFFDE
#define EAT_ASN1 0xFFDD
#define HANDTYPE_FILE 0x0000
#define HANDTYPE_DEVICE 0x0001
#define HANDTYPE_PIPE 0x0002
#define HANDTYPE_NETWORK 0x8000
typedef SHANDLE HDIR;
typedef HDIR FAR *PHDIR;
typedef struct _DENA1 {
UCHAR reserved;
UCHAR cbName;
USHORT cbValue;
UCHAR szName[1];
} DENA1;
typedef struct _FDATE {
unsigned day : 5;
unsigned month : 4;
unsigned year : 7;
} FDATE;
typedef struct _FTIME {
unsigned twosecs : 5;
unsigned minutes : 6;
unsigned hours : 5;
} FTIME;
typedef struct _FILEFINDBUF {
FDATE fdateCreation;
FTIME ftimeCreation;
FDATE fdateLastAccess;
FTIME ftimeLastAccess;
FDATE fdateLastWrite;
FTIME ftimeLastWrite;
ULONG cbFile;
ULONG cbFileAlloc;
USHORT attrFile;
UCHAR cchName;
CHAR achName[CCHMAXPATHCOMP];
} FILEFINDBUF, FAR *PFILEFINDBUF;
typedef struct _FILEFINDBUF2 {
FDATE fdateCreation;
FTIME ftimeCreation;
FDATE fdateLastAccess;
FTIME ftimeLastAccess;
FDATE fdateLastWrite;
FTIME ftimeLastWrite;
ULONG cbFile;
ULONG cbFileAlloc;
USHORT attrFile;
ULONG cbList;
UCHAR cchName;
CHAR achName[CCHMAXPATHCOMP];
} FILEFINDBUF2, FAR *PFILEFINDBUF2;
typedef struct _FILESTATUS {
FDATE fdateCreation;
FTIME ftimeCreation;
FDATE fdateLastAccess;
FTIME ftimeLastAccess;
FDATE fdateLastWrite;
FTIME ftimeLastWrite;
ULONG cbFile;
ULONG cbFileAlloc;
USHORT attrFile;
} FILESTATUS, FAR *PFILESTATUS;
typedef struct _FSALLOCATE {
ULONG idFileSystem;
ULONG cSectorUnit;
ULONG cUnit;
ULONG cUnitAvail;
USHORT cbSector;
} FSALLOCATE, FAR *PFSALLOCATE;
typedef struct _GEA {
BYTE cbName;
CHAR szName[1];
} GEA, FAR *PGEA;
typedef struct _GEALIST {
ULONG cbList;
GEA list[1];
} GEALIST, FAR *PGEALIST;
typedef struct _FEA {
BYTE fEA;
BYTE cbName;
USHORT cbValue;
} FEA, FAR *PFEA;
typedef struct _FEALIST {
ULONG cbList;
FEA list[1];
} FEALIST, FAR *PFEALIST;
typedef struct _EAOP {
PGEALIST fpGEAList;
PFEALIST fpFEAList;
ULONG oError;
} EAOP, FAR *PEAOP;
typedef struct _VOLUMELABEL {
BYTE cch;
CHAR szVolLabel[12];
} VOLUMELABEL, FAR *PVOLUMELABEL;
typedef struct _FSINFO {
FDATE fdateCreation;
FTIME ftimeCreation;
VOLUMELABEL vol;
} FSINFO, FAR *PFSINFO;
USHORT APIENTRY DosBufReset(HFILE);
USHORT APIENTRY DosChDir(PSZ,ULONG);
USHORT APIENTRY DosChgFilePtr(HFILE,LONG,USHORT,PULONG);
USHORT APIENTRY DosClose(HFILE);
USHORT APIENTRY DosCopy(PSZ,PSZ,USHORT,ULONG);
USHORT APIENTRY DosDelete(PSZ,ULONG);
USHORT APIENTRY DosDupHandle(HFILE,PHFILE);
USHORT APIENTRY DosEditName(USHORT,PSZ,PSZ,PBYTE,USHORT);
USHORT APIENTRY DosEnumAttribute(USHORT,PVOID,ULONG,PVOID,ULONG,PULONG,ULONG,ULONG);
USHORT APIENTRY DosFileIO(HFILE,PBYTE,USHORT,PLONG);
USHORT APIENTRY DosFileLocks(HFILE,PLONG,PLONG);
USHORT APIENTRY DosFindClose(HDIR);
USHORT APIENTRY DosFindFirst(PSZ,PHDIR,USHORT,PFILEFINDBUF,USHORT,PUSHORT,ULONG);
USHORT APIENTRY DosFindFirst2(PSZ,PHDIR,USHORT,PVOID,USHORT,PUSHORT,USHORT,ULONG);
USHORT APIENTRY DosFindNext(HDIR,PFILEFINDBUF,USHORT,PUSHORT);
USHORT APIENTRY DosFSAttach(PSZ,PSZ,PBYTE,USHORT,USHORT,ULONG);
USHORT APIENTRY DosFSCtl(PBYTE,USHORT,PUSHORT,PBYTE,USHORT,PUSHORT,USHORT,PSZ,HFILE,USHORT,ULONG);
USHORT APIENTRY DosMkDir(PSZ,ULONG);
USHORT APIENTRY DosMkDir2(PSZ,PEAOP,ULONG);
USHORT APIENTRY DosMove(PSZ,PSZ,ULONG);
USHORT APIENTRY DosNewSize(HFILE,ULONG);
USHORT APIENTRY DosOpen(PSZ,PHFILE,PUSHORT,ULONG,USHORT,USHORT,USHORT,ULONG);
USHORT APIENTRY DosOpen2(PSZ,PHFILE,PUSHORT,ULONG,USHORT,USHORT,USHORT,PEAOP,ULONG);
USHORT APIENTRY DosQCurDir(USHORT,PBYTE,PUSHORT);
USHORT APIENTRY DosQCurDisk(PUSHORT,PULONG);
USHORT APIENTRY DosQFHandState(HFILE,PUSHORT);
USHORT APIENTRY DosQFileInfo(HFILE,USHORT,PBYTE,USHORT);
USHORT APIENTRY DosQFileMode(PSZ,PUSHORT,ULONG);
USHORT APIENTRY DosQFSAttach(PSZ,USHORT,USHORT,PBYTE,PUSHORT,ULONG);
USHORT APIENTRY DosQFSInfo(USHORT,USHORT,PBYTE,USHORT);
USHORT APIENTRY DosQHandType(HFILE,PUSHORT,PUSHORT);
USHORT APIENTRY DosQPathInfo(PSZ,USHORT,PBYTE,USHORT,ULONG);
USHORT APIENTRY DosQVerify(PUSHORT);
USHORT APIENTRY DosRead(HFILE,PVOID,USHORT,PUSHORT);
USHORT APIENTRY DosReadAsync(HFILE,PULONG,PUSHORT,PVOID,USHORT,PUSHORT);
USHORT APIENTRY DosRmDir(PSZ,ULONG);
USHORT APIENTRY DosSelectDisk(USHORT);
USHORT APIENTRY DosSetFHandState(HFILE,USHORT);
USHORT APIENTRY DosSetFileInfo(HFILE,USHORT,PBYTE,USHORT);
USHORT APIENTRY DosSetFileMode(PSZ,USHORT,ULONG);
USHORT APIENTRY DosSetFSInfo(USHORT,USHORT,PBYTE,USHORT);
USHORT APIENTRY DosSetMaxFH(USHORT);
USHORT APIENTRY DosSetPathInfo(PSZ,USHORT,PBYTE,USHORT,USHORT,ULONG);
USHORT APIENTRY DosSetVerify(USHORT);
USHORT APIENTRY DosShutdown(ULONG);
USHORT APIENTRY DosWrite(HFILE,PVOID,USHORT,PUSHORT);
USHORT APIENTRY DosWriteAsync(HFILE,PULONG,PUSHORT,PVOID,USHORT,PUSHORT);
#endif
#if (defined(INCL_DOSMEMMGR) || !defined(INCL_NOCOMMON))
#define SEG_NONSHARED 0
#define SEG_GIVEABLE 1
#define SEG_GETTABLE 2
#define SEG_DISCARDABLE 4
USHORT APIENTRY DosAllocHuge(USHORT,USHORT,PSEL,USHORT,USHORT);
USHORT APIENTRY DosAllocSeg(USHORT,PSEL,USHORT);
USHORT APIENTRY DosAllocShrSeg(USHORT,PSZ,PSEL);
USHORT APIENTRY DosCreateCSAlias(SEL,PSEL);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -