102 lines
2.2 KiB
C
102 lines
2.2 KiB
C
/***************************************************************************
|
||
*
|
||
* compdef.h
|
||
*
|
||
* Copyright (c) 1993 Microsoft Corporation
|
||
*
|
||
* 32-bit Thunks for msvideo.dll
|
||
*
|
||
* Structures for mapping compression manager calls
|
||
*
|
||
**************************************************************************/
|
||
|
||
/**************************************************************************\
|
||
|
||
Thunking of compman APIs
|
||
|
||
Functions:
|
||
|
||
ICInstall is NOT supported from 16-bit to 32-bit
|
||
|
||
ICRemove is also NOT supported
|
||
|
||
ICInfo - tries the 32-bit side first
|
||
|
||
Handles
|
||
|
||
Are pointers to the PIC table.
|
||
|
||
The 16-bit side handle manager will store these and call us back
|
||
with our 32-bit handles so the thunking routines here receive
|
||
real 32-bit handles.
|
||
|
||
There is NO handle cleanup (why not ???) on task termination
|
||
|
||
/*
|
||
* Make sure the compiler doesn't think it knows better about packing
|
||
* The 16-bit stack is effectively pack(2)
|
||
*/
|
||
|
||
#pragma pack(2)
|
||
|
||
/*
|
||
* Note that everything is in the reverse order to keep with the PASCAL
|
||
* calling convention on the other side
|
||
*/
|
||
|
||
|
||
/****************************************************************************
|
||
|
||
compman entry point parameter lists
|
||
|
||
****************************************************************************/
|
||
|
||
typedef struct {
|
||
#ifdef ICINFOA
|
||
ICINFOA *lpicinfo; // Why is there no ASCII 32-bit API?
|
||
#else
|
||
ICINFO *lpicinfo; // Why is there no ASCII 32-bit API?
|
||
#endif
|
||
DWORD fccHandler;
|
||
DWORD fccType;
|
||
} UNALIGNED *PICInfoParms16;
|
||
|
||
typedef struct {
|
||
DWORD dw2;
|
||
DWORD dw1;
|
||
WORD msg;
|
||
DWORD hic;
|
||
} UNALIGNED *PICSendMessageParms16;
|
||
|
||
typedef struct {
|
||
WORD wMode;
|
||
DWORD fccHandler;
|
||
DWORD fccType;
|
||
} UNALIGNED *PICOpenParms16;
|
||
|
||
typedef struct {
|
||
DWORD hic;
|
||
} UNALIGNED *PICCloseParms16;
|
||
|
||
typedef struct {
|
||
DWORD dwFlags;
|
||
WORD hpal;
|
||
WORD hwnd;
|
||
WORD hdc;
|
||
short xDst;
|
||
short yDst;
|
||
short dxDst;
|
||
short dyDst;
|
||
LPBITMAPINFOHEADER lpbi;
|
||
short xSrc;
|
||
short ySrc;
|
||
short dxSrc;
|
||
short dySrc;
|
||
DWORD dwRate;
|
||
DWORD dwScale;
|
||
} ICDRAWBEGIN16;
|
||
|
||
#pragma pack()
|
||
|
||
|
||
|