windows-nt/Source/XPSP1/NT/multimedia/media/avi/avicap.io/video16.h
2020-09-26 16:20:57 +08:00

114 lines
2.6 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/***************************************************************************
*
* 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()