home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
MISC
/
LSW270SR.ZIP
/
h
/
api16.h
next >
Wrap
Text File
|
2001-11-18
|
5KB
|
150 lines
/*
* Copyright (C) 1997-2001 Andrei Los.
* This file is part of the lSwitcher source package.
* lSwitcher is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
* by the Free Software Foundation, in version 2 as it comes in the
* "COPYING" file of the lSwitcher main distribution.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef API16_H_INCLUDED
#define API16_H_INCLUDED
#include <os2.h>
#define DCWW_WAIT 0
#define DCWW_NOWAIT 1
typedef struct _GINFOSEG {
ULONG time; /* time in seconds */
ULONG msecs; /* milliseconds */
UCHAR hour; /* hours */
UCHAR minutes; /* minutes */
UCHAR seconds; /* seconds */
UCHAR hundredths; /* hundredths */
USHORT timezone; /* minutes from UTC */
USHORT cusecTimerInterval; /* timer interval (units = 0.0001 seconds) */
UCHAR day; /* day */
UCHAR month; /* month */
USHORT year; /* year */
UCHAR weekday; /* day of week */
UCHAR uchMajorVersion; /* major version number */
UCHAR uchMinorVersion; /* minor version number */
UCHAR chRevisionLetter; /* revision letter */
UCHAR sgCurrent; /* current foreground session */
UCHAR sgMax; /* maximum number of sessions */
UCHAR cHugeShift; /* shift count for huge elements */
UCHAR fProtectModeOnly; /* protect mode only indicator */
USHORT pidForeground; /* pid of last process in foreground session */
UCHAR fDynamicSched; /* dynamic variation flag */
UCHAR csecMaxWait; /* max wait in seconds */
USHORT cmsecMinSlice; /* minimum timeslice (milliseconds) */
USHORT cmsecMaxSlice; /* maximum timeslice (milliseconds) */
USHORT bootdrive; /* drive from which the system was booted */
UCHAR amecRAS[32]; /* system trace major code flag bits */
UCHAR csgWindowableVioMax;/* maximum number of VIO windowable sessions */
UCHAR csgPMMax; /* maximum number of pres. services sessions */
} GINFOSEG;
typedef GINFOSEG *PGINFOSEG;
typedef struct _LINFOSEG {
PID pidCurrent; /* current process id */
PID pidParent; /* process id of parent */
USHORT prtyCurrent; /* priority of current thread */
TID tidCurrent; /* thread ID of current thread */
USHORT sgCurrent; /* session */
UCHAR rfProcStatus; /* process status */
UCHAR dummy1;
BOOL fForeground; /* current process has keyboard focus */
UCHAR typeProcess; /* process type */
UCHAR dummy2;
SEL selEnvironment; /* environment selector */
USHORT offCmdLine; /* command line offset */
USHORT cbDataSegment; /* length of data segment */
USHORT cbStack; /* stack size */
USHORT cbHeap; /* heap size */
HMODULE hmod; /* module handle of the application */
SEL selDS; /* data segment handle of the application */
} LINFOSEG;
typedef LINFOSEG *PLINFOSEG;
#define DosGetInfoSeg DOS16GETINFOSEG
APIRET16 APIENTRY16 DosGetInfoSeg(PSEL GlobalSeg,PSEL LocalSeg);
typedef SHANDLE HMONITOR;
typedef HMONITOR *PHMONITOR;
#pragma pack(2)
typedef struct _MONIN {
USHORT cb;
BYTE abReserved[18];
BYTE abBuffer[108];
} MONIN;
typedef MONIN *PMONIN;
#pragma pack(2)
typedef struct _MONOUT {
USHORT cb;
UCHAR buffer[18];
BYTE abBuf[108];
} MONOUT;
typedef MONOUT *PMONOUT;
//#pragma pack(2)
//typedef struct _KBDKEYINFO { /* kbci */
// UCHAR chChar; /* ASCII character code */
// UCHAR chScan; /* Scan Code */
// UCHAR fbStatus; /* State of the character */
// UCHAR bNlsShift; /* Reserved (set to zero) */
// USHORT fsState; /* State of the shift keys */
// ULONG time; /* Time stamp of keystroke (ms since ipl) */
//} KBDKEYINFO;
#pragma pack(2)
typedef struct _keypacket {
USHORT mnflags;
KBDKEYINFO cp;
USHORT ddflags;
} KEYPACKET;
#pragma seg16(HKBD)
#pragma seg16(MONIN)
#pragma seg16(MONOUT)
#pragma seg16(KEYPACKET)
#define DosMonOpen DOS16MONOPEN
#define DosMonReg DOS16MONREG
#define DosMonClose DOS16MONCLOSE
#define DosMonRead DOS16MONREAD
#define DosMonWrite DOS16MONWRITE
APIRET16 APIENTRY16 DosMonOpen(PSZ DevName,PHMONITOR Handle);
APIRET16 APIENTRY16 DosMonReg(HMONITOR Handle,PBYTE BufferI,PBYTE BufferO,USHORT Posflag,USHORT Index);
APIRET16 APIENTRY16 DosMonClose(HMONITOR Handle);
APIRET16 APIENTRY16 DosMonRead(PBYTE BufferI,USHORT WaitFlag,PBYTE DataBuffer,PUSHORT Bytecnt);
APIRET16 APIENTRY16 DosMonWrite(PBYTE BufferO,PBYTE DataBuffer,USHORT Bytecnt);
/* DosGetPrty = DOSCALLS.9 */
APIRET16 APIENTRY16 DosGetPrty(USHORT usScope, PUSHORT pusPriority, USHORT pid);
#pragma pack()
#endif