mmioos2.mh

来自「开放源码的编译器open watcom 1.6.0版的源代码」· MH 代码 · 共 701 行 · 第 1/2 页

MH
701
字号
#define MMIO_DC_JAPANESE  1
#define MMIO_LC_KOREAN 18
#define MMIO_DC_KOREAN  1
#define MMIO_LC_DUTCH 19
#define MMIO_DC_DUTCH  1
#define MMIO_LC_BELGIAN_DUTCH 19
#define MMIO_DC_BELGIAN_DUTCH  2
#define MMIO_LC_NORWEGIAN_BOKMAL 20
#define MMIO_DC_NORWEGIAN_BOKMAL  1
#define MMIO_LC_NORWEGIAN_NYNORSK 20
#define MMIO_DC_NORWEGIAN_NYNORSK  2
#define MMIO_LC_POLISH 21
#define MMIO_DC_POLISH  1
#define MMIO_LC_BRAZILIAN_PORTUGUESE 22
#define MMIO_DC_BRAZILIAN_PORTUGUESE  1
#define MMIO_LC_PORTUGUESE 22
#define MMIO_DC_PORTUGUESE  2
#define MMIO_LC_RHAETO_ROMANIC 23
#define MMIO_DC_RHAETO_ROMANIC  1
#define MMIO_LC_ROMANIAN 24
#define MMIO_DC_ROMANIAN  1
#define MMIO_LC_RUSSIAN 25
#define MMIO_DC_RUSSIAN  1
#define MMIO_LC_SERBO_CROATIAN_LATIN 26
#define MMIO_DC_SERBO_CROATIAN_LATIN  1
#define MMIO_LC_SERBO_CROATIAN_CYRILLIC 26
#define MMIO_DC_SERBO_CROATIAN_CYRILLIC  2
#define MMIO_LC_SLOVAK 27
#define MMIO_DC_SLOVAK  1
#define MMIO_LC_ALBANIAN 28
#define MMIO_DC_ALBANIAN  1
#define MMIO_LC_SWEDISH 29
#define MMIO_DC_SWEDISH  1
#define MMIO_LC_THAI 30
#define MMIO_DC_THAI  1
#define MMIO_LC_TURKISH 31
#define MMIO_DC_TURKISH  1
#define MMIO_LC_URDU 32
#define MMIO_DC_URDU  1
#define MMIO_LC_BAHASA 33
#define MMIO_DC_BAHASA  1

#pragma pack(4)

#ifndef __OS2MEDEF_H__
typedef ULONG HMMIO;
#endif

typedef HMMIO  HMMCF;
typedef ULONG  FOURCC;
typedef FOURCC *PFOURCC;

typedef struct _MMCKINFO {
    FOURCC ckid;
    ULONG  ckSize;
    FOURCC fccType;
    ULONG  ulDataOffset;
    ULONG  ulFlags;
} MMCKINFO, FAR *PMMCKINFO;

typedef LONG (APIENTRY MMIOPROC) (PVOID,USHORT,LONG,LONG);
typedef MMIOPROC FAR *PMMIOPROC;
typedef MMIOPROC FAR **PPMMIOPROC;

typedef struct _MMIOINFO {
    ULONG     ulFlags;
    FOURCC    fccIOProc;
    PMMIOPROC pIOProc;
    ULONG     ulErrorRet;
    LONG      cchBuffer;
    PCHAR     pchBuffer;
    PCHAR     pchNext;
    PCHAR     pchEndRead;
    PCHAR     pchEndWrite;
    LONG      lBufOffset;
    LONG      lDiskOffset;
    ULONG     aulInfo[4];
    LONG      lLogicalFilePos;
    ULONG     ulTranslate;
    FOURCC    fccChildIOProc;
    PVOID     pExtraInfoStruct;
    HMMIO     hmmio;
} MMIOINFO, FAR *PMMIOINFO;

typedef struct _MMCFINFO {
    ULONG  ulHeaderSize;
    ULONG  ulEntriesTotal;
    ULONG  ulEntriesDeleted;
    ULONG  ulEntriesUnused;
    ULONG  ulBytesTotal;
    ULONG  ulBytesDeleted;
    ULONG  ulHeaderFlags;
    USHORT usEntrySize;
    USHORT usNameSize;
    USHORT usExHdrFields;
    USHORT usExEntFields;
} MMCFINFO, FAR *PMMCFINFO;

typedef struct _MMCTOCENTRY {
    ULONG ulOffset;
    ULONG ulSize;
    ULONG ulMedType;
    ULONG ulMedUsage;
    ULONG ulCompressTech;
    ULONG ulUncompressBytes;
} MMCTOCENTRY, FAR *PMMCTOCENTRY;

typedef struct _MMFORMATINFO {
    ULONG  ulStructLen;
    FOURCC fccIOProc;
    ULONG  ulIOProcType;
    ULONG  ulMediaType;
    ULONG  ulFlags;
    CHAR   szDefaultFormatExt[sizeof(FOURCC)+1];
    ULONG  ulCodePage;
    ULONG  ulLanguage;
    LONG   lNameLength;
} MMFORMATINFO;
typedef MMFORMATINFO *PMMFORMATINFO;

#ifdef INCL_GPI
#ifdef INCL_GPIBITMAPS

#define MAX_PALETTE  256

typedef struct _XDIBHDR_PREFIX {
    ULONG  ulMemSize;
    ULONG  ulPelFormat;
    USHORT usTransType;
    ULONG  ulTransVal;
} XDIBHDR_PREFIX;

typedef struct _MMXDIBHEADER {
    XDIBHDR_PREFIX    XDIBHeaderPrefix;
    BITMAPINFOHEADER2 BMPInfoHeader2;
} MMXDIBHEADER, *PMMXDIBHEADER;

typedef struct _MMIMAGEHEADER {
    ULONG        ulHeaderLength;
    ULONG        ulContentType;
    ULONG        ulMediaType;
    MMXDIBHEADER mmXDIBHeader;
    RGB2         bmiColors[MAX_PALETTE];
} MMIMAGEHEADER, *PMMIMAGEHEADER;

#endif
#endif

typedef struct _WAVE_HEADER {
    USHORT usFormatTag;
    USHORT usChannels;
    ULONG  ulSamplesPerSec;
    ULONG  ulAvgBytesPerSec;
    USHORT usBlockAlign;
    USHORT usBitsPerSample;
} WAVE_HEADER;

typedef struct _XWAV_HEADERINFO {
    ULONG ulAudioLengthInMS;
    ULONG ulAudioLengthInBytes;
    PVOID pAdditionalInformation;
} XWAV_HEADERINFO;

typedef struct _MMXWAV_HEADER {
    WAVE_HEADER     WAVEHeader;
    XWAV_HEADERINFO XWAVHeaderInfo;
} MMXWAV_HEADER;

typedef struct _MMAUDIOHEADER {
    ULONG         ulHeaderLength;
    ULONG         ulContentType;
    ULONG         ulMediaType;
    MMXWAV_HEADER mmXWAVHeader;
} MMAUDIOHEADER, *PMMAUDIOHEADER;

typedef struct _MMINIFILEINFO {
    FOURCC fccIOProc;
    CHAR   szDLLName[DLLNAME_SIZE];
    CHAR   szProcName[PROCNAME_SIZE];
    ULONG  ulFlags;
    ULONG  ulExtendLen;
    ULONG  ulMediaType;
    ULONG  ulIOProcType;
    CHAR   szDefExt[sizeof(MAX_EXTENSION_NAME)];
} MMINIFILEINFO, *PMMINIFILEINFO;

#ifdef INCL_MMIO_CODEC

#define MMIO_TRACK 0x00000001
#define MMIO_NORMAL_READ 0x00000002
#define MMIO_SCAN_READ 0x00000004
#define MMIO_REVERSE_READ 0x00000008
#define MMIO_CODEC_ASSOC 0x00000100
#define MMIO_REALTIME_CODEC 0x00000200
#define MMIO_RESETTRACKS -1
#define CODEC_START 0x0EC0
#define CODEC_END 0x0EFF
#define MMIOM_CODEC_CLOSE CODEC_START+1
#define MMIOM_CODEC_OPEN CODEC_START+2
#define MMIOM_CODEC_QUERYNAME CODEC_START+3
#define MMIOM_CODEC_QUERYNAMELENGTH CODEC_START+4
#define MMIOM_CODEC_COMPRESS CODEC_START+5
#define MMIOM_CODEC_DECOMPRESS CODEC_START+6
#define MMIOM_CODEC_HW_CONTROL CODEC_START+7
#define MMIOMP_CODEC_HW_CONTROL_STOP_DISCARD 0
#define MMIOMP_CODEC_HW_CONTROL_STOP_FLUSH 1
#define MMIOMP_CODEC_HW_CONTROL_STOP_PAUSE 2
#define MMIOMP_CODEC_HW_CONTROL_DATATYPE 3

typedef MMIOPROC FAR *PCODECPROC;

typedef struct _CODECINIFILEINFO {
    ULONG  ulStructLen;
    FOURCC fcc;
    CHAR   szDLLName[DLLNAME_SIZE];
    CHAR   szProcName[PROCNAME_SIZE];
    ULONG  ulCompressType;
    ULONG  ulCompressSubType;
    ULONG  ulMediaType;
    ULONG  ulCapsFlags;
    ULONG  ulFlags;
    CHAR   szHWID[CODEC_HW_NAME_SIZE];
    ULONG  ulMaxSrcBufLen;
    ULONG  ulSyncMethod;
    ULONG  fccPreferredFormat;
    ULONG  ulXalignment;
    ULONG  ulYalignment;
    ULONG  ulSpecInfo[CODEC_INFO_SIZE];
} CODECINIFILEINFO, *PCODECINIFILEINFO;

typedef struct _CODECASSOC {
    PVOID pCodecOpen;
    PCODECINIFILEINFO pCODECIniFileInfo;
} CODECASSOC, *PCODECASSOC;

typedef struct _MMEXTENDINFO {
    ULONG ulStructLen;
    ULONG ulBufSize;
    ULONG ulFlags;
    ULONG ulTrackID;
    ULONG ulNumCODECs;
    PCODECASSOC pCODECAssoc;
} MMEXTENDINFO, *PMMEXTENDINFO;

#endif

typedef struct _MMIO_STATUS_PARMS {
    HWND  hwndWindow;
    ULONG ulReturn;
    ULONG ulItem;
    ULONG ulValue;
    ULONG ulType;
} MMIO_STATUS_PARMS, *PMMIO_STATUS_PARMS;

typedef LONG USEC;

typedef struct _MMIO_MEDIT_PARMS {
    ULONG ulStrucLen;
    HWND  hwndWindow;
    USEC  ulStartTime;
    USEC  ulDuration;
    ULONG ulCurrentFilePosition;
    ULONG ulNewFilePosition;
    ULONG ulNewFileLength;
    PVOID pBuffer;
    ULONG ulBufferLength;
    PVOID pHeader;
    BOOL  fUseBuffer;
} MMIO_EDIT_PARMS, *PMMIO_EDIT_PARMS;

typedef struct _MMIO_WINMSG {
    HWND   hwndWindow;
    USHORT usMessage;
    PVOID  pParam1;
    PVOID  pParam2;
} MMIO_WINMSG, *PMMIO_WINMSG;

typedef struct _JPEGOPTIONS {
    ULONG  ulStructLen;
    USHORT usQuantization[4];
    USHORT usScale;
    ULONG  ulColorOrder;
    USHORT usColorSpaceOut;
} JPEGOPTIONS, *PJPEGOPTIONS;

#ifndef __MEERROR_H__
#define INCL_MMIO_ERRORS
#include <meerror.h>
#endif

USHORT APIENTRY mmioAdvance(HMMIO,PMMIOINFO,USHORT);
USHORT APIENTRY mmioAscend(HMMIO,PMMCKINFO,USHORT);
USHORT APIENTRY mmioClose(HMMIO,USHORT);
USHORT APIENTRY mmioCreateChunk(HMMIO,PMMCKINFO,USHORT);
USHORT APIENTRY mmioDescend(HMMIO,PMMCKINFO,PMMCKINFO,USHORT);
USHORT APIENTRY mmioFlush(HMMIO,USHORT);
USHORT APIENTRY mmioGetInfo(HMMIO,PMMIOINFO,USHORT);
ULONG  APIENTRY mmioGetLastError(HMMIO);
PMMIOPROC APIENTRY mmioInstallIOProc(FOURCC,PMMIOPROC,ULONG);
LONG   APIENTRY mmioIOProc(PMMIOINFO,USHORT,LONG,LONG);
HMMIO  APIENTRY mmioOpen(PSZ,PMMIOINFO,ULONG);
LONG   APIENTRY mmioRead(HMMIO,PCHAR,LONG);
LONG   APIENTRY mmioSeek(HMMIO,LONG,LONG);
LONG   APIENTRY mmioSendMessage(HMMIO,USHORT,LONG,LONG);
USHORT APIENTRY mmioSetBuffer(HMMIO,PCHAR,LONG,USHORT);
USHORT APIENTRY mmioSetInfo(HMMIO,PMMIOINFO,USHORT);
FOURCC APIENTRY mmioStringToFOURCC(PSZ,USHORT);
LONG   APIENTRY mmioWrite(HMMIO,PCHAR,LONG);
HMMCF  APIENTRY mmioCFOpen(PSZ,PMMCFINFO,PMMIOINFO,ULONG);
ULONG  APIENTRY mmioCFClose(HMMCF,ULONG);
ULONG  APIENTRY mmioCFGetInfo(HMMCF,PMMCFINFO,ULONG);
ULONG  APIENTRY mmioCFSetInfo(HMMCF,PMMCFINFO,ULONG);
ULONG  APIENTRY mmioCFFindEntry(HMMCF,PMMCTOCENTRY,ULONG);
ULONG  APIENTRY mmioCFAddEntry(HMMCF,PMMCTOCENTRY,ULONG);
ULONG  APIENTRY mmioCFChangeEntry(HMMCF,PMMCTOCENTRY,ULONG);
ULONG  APIENTRY mmioCFDeleteEntry(HMMCF,PMMCTOCENTRY,ULONG);
ULONG  APIENTRY mmioCFAddElement(HMMCF,PSZ,FOURCC,PCHAR,LONG,ULONG);
ULONG  APIENTRY mmioCFCopy(HMMCF,PSZ,ULONG);
ULONG  APIENTRY mmioQueryFormatCount(PMMFORMATINFO,PLONG,ULONG,ULONG);
ULONG  APIENTRY mmioGetFormats(PMMFORMATINFO,LONG,PVOID,PLONG,ULONG,ULONG);
ULONG  APIENTRY mmioGetFormatName(PMMFORMATINFO,PSZ,PLONG,ULONG,ULONG);
ULONG  APIENTRY mmioIdentifyFile(PSZ,PMMIOINFO,PMMFORMATINFO,PFOURCC,ULONG,ULONG);
ULONG  APIENTRY mmioQueryHeaderLength(HMMIO,PLONG,ULONG,ULONG);
ULONG  APIENTRY mmioGetHeader(HMMIO,PVOID,LONG,PLONG,ULONG,ULONG);
ULONG  APIENTRY mmioSetHeader(HMMIO,PVOID,LONG,PLONG,ULONG,ULONG);
ULONG  APIENTRY mmioIniFileHandler(PMMINIFILEINFO,ULONG);
ULONG  APIENTRY mmioIdentifyStorageSystem(PSZ,PMMIOINFO,PFOURCC);
ULONG  APIENTRY mmioDetermineSSIOProc(PSZ,PMMIOINFO,PFOURCC,PSZ);
ULONG  APIENTRY mmioQueryIOProcModuleHandle(PMMIOPROC,PHMODULE);
ULONG  APIENTRY mmioCFCompact(PSZ,ULONG);
ULONG  APIENTRY mmioMigrateIniFile(ULONG);

#ifdef INCL_MMIO_CODEC

ULONG APIENTRY mmioIniFileCODEC(PCODECINIFILEINFO,ULONG);
ULONG APIENTRY mmioSet(HMMIO,PMMEXTENDINFO,ULONG);
ULONG APIENTRY mmioQueryCODECName(PCODECINIFILEINFO,PSZ,PULONG);
ULONG APIENTRY mmioQueryCODECNameLength(PCODECINIFILEINFO,PULONG);
PCODECPROC APIENTRY mmioLoadCODECProc(PCODECINIFILEINFO,PHMODULE,ULONG);
USHORT APIENTRY mmioGetData(HMMIO,PMMIOINFO,USHORT);

#endif

#pragma pack()

:include cplusepi.sp

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?