114 lines
2.6 KiB
C
114 lines
2.6 KiB
C
/***************************************************************************
|
||
*
|
||
* video16.h
|
||
*
|
||
* Copyright (c) 1994 Microsoft Corporation
|
||
*
|
||
* 32-bit Thunks for avicap32.dll
|
||
*
|
||
* Structures for mapping video
|
||
*
|
||
**************************************************************************/
|
||
|
||
|
||
/*
|
||
* Make sure the compiler doesn't think it knows better about packing
|
||
* The 16-bit stack is effectively pack(2)
|
||
*/
|
||
|
||
#pragma pack(2)
|
||
|
||
/*
|
||
* Definitions to help with thunking video calls
|
||
*/
|
||
|
||
typedef WORD HVIDEO16;
|
||
typedef HVIDEO16 *LPHVIDEO16;
|
||
|
||
|
||
/*
|
||
* Note that everything is in the reverse order to keep with the PASCAL
|
||
* calling convention on the other side
|
||
*/
|
||
|
||
|
||
/****************************************************************************
|
||
|
||
video entry point parameter lists
|
||
|
||
****************************************************************************/
|
||
|
||
|
||
typedef struct {
|
||
DWORD dwP2;
|
||
DWORD dwP1;
|
||
WORD msg;
|
||
HVIDEO16 hVideo;
|
||
} UNALIGNED *PvideoMessageParms16;
|
||
|
||
typedef struct {
|
||
DWORD dwFlags;
|
||
DWORD dwDeviceId;
|
||
LPHVIDEO16 lphVideo;
|
||
} UNALIGNED *PvideoOpenParms16;
|
||
|
||
typedef struct {
|
||
HVIDEO16 hVideo;
|
||
} UNALIGNED *PvideoCloseParms16;
|
||
|
||
|
||
/*
|
||
* Our shadow header structure for use with callbacks
|
||
* (see videoStreamAddBuffer)
|
||
*/
|
||
|
||
typedef struct {
|
||
LPVOID pHdr16; /* Remember address on 16-bit side */
|
||
LPVOID pHdr32; /* 32-bit version of pHdr16 */
|
||
LPBYTE lpData16; /* Remember pointer for flushing */
|
||
VIDEOHDR videoHdr;
|
||
} VIDEOHDR32, *PVIDEOHDR32;
|
||
|
||
|
||
/*
|
||
* Instance data for videoStreamInit - contains pointer to 16-bit side
|
||
* instance data
|
||
*/
|
||
|
||
typedef struct {
|
||
DWORD dwFlags; // Real flags
|
||
DWORD dwCallbackInst; // Real instance data
|
||
DWORD dwCallback;
|
||
HVIDEO16 hVideo;
|
||
} VIDEOINSTANCEDATA32, *PVIDEOINSTANCEDATA32;
|
||
|
||
/*
|
||
* Thunk 16-bit mmtime
|
||
*/
|
||
|
||
#pragma pack(2)
|
||
|
||
typedef struct {
|
||
WORD wType; /* indicates the contents of the union */
|
||
union {
|
||
DWORD ms; /* milliseconds */
|
||
DWORD sample; /* samples */
|
||
DWORD cb; /* byte count */
|
||
struct { /* SMPTE */
|
||
BYTE hour; /* hours */
|
||
BYTE min; /* minutes */
|
||
BYTE sec; /* seconds */
|
||
BYTE frame; /* frames */
|
||
BYTE fps; /* frames per second */
|
||
BYTE dummy; /* pad */
|
||
} smpte;
|
||
struct { /* MIDI */
|
||
DWORD songptrpos; /* song pointer position */
|
||
} midi;
|
||
} u;
|
||
} MMTIME16;
|
||
|
||
#pragma pack()
|
||
|
||
|
||
|