Add declarations for AVICAP and SDK part of Video Capture Driver

Interface.
This commit is contained in:
Rolf Kalbermatter 2005-05-27 09:27:17 +00:00 committed by Alexandre Julliard
parent 018bc9a0cd
commit 12497168fa
1 changed files with 301 additions and 4 deletions

View File

@ -32,10 +32,6 @@ extern "C" {
typedef HANDLE HDRAWDIB;
DWORD VFWAPI VideoForWindowsVersion(void);
LONG VFWAPI InitVFW(void);
LONG VFWAPI TermVFW(void);
/*****************************************************************************
* Predeclare the interfaces
*/
@ -1620,6 +1616,307 @@ BOOL VFWAPI DrawDibTime(HDRAWDIB hdd, LPDRAWDIBTIME lpddtime);
DWORD VFWAPI DrawDibProfileDisplay(LPBITMAPINFOHEADER lpbi);
DECLARE_HANDLE(HVIDEO);
typedef HVIDEO *LPHVIDEO;
DWORD VFWAPI VideoForWindowsVersion(void);
LONG VFWAPI InitVFW(void);
LONG VFWAPI TermVFW(void);
#define DV_ERR_OK (0)
#define DV_ERR_BASE (1)
#define DV_ERR_NONSPECIFIC (DV_ERR_BASE)
#define DV_ERR_BADFORMAT (DV_ERR_BASE + 1)
#define DV_ERR_STILLPLAYING (DV_ERR_BASE + 2)
#define DV_ERR_UNPREPARED (DV_ERR_BASE + 3)
#define DV_ERR_SYNC (DV_ERR_BASE + 4)
#define DV_ERR_TOOMANYCHANNELS (DV_ERR_BASE + 5)
#define DV_ERR_NOTDETECTED (DV_ERR_BASE + 6)
#define DV_ERR_BADINSTALL (DV_ERR_BASE + 7)
#define DV_ERR_CREATEPALETTE (DV_ERR_BASE + 8)
#define DV_ERR_SIZEFIELD (DV_ERR_BASE + 9)
#define DV_ERR_PARAM1 (DV_ERR_BASE + 10)
#define DV_ERR_PARAM2 (DV_ERR_BASE + 11)
#define DV_ERR_CONFIG1 (DV_ERR_BASE + 12)
#define DV_ERR_CONFIG2 (DV_ERR_BASE + 13)
#define DV_ERR_FLAGS (DV_ERR_BASE + 14)
#define DV_ERR_13 (DV_ERR_BASE + 15)
#define DV_ERR_NOTSUPPORTED (DV_ERR_BASE + 16)
#define DV_ERR_NOMEM (DV_ERR_BASE + 17)
#define DV_ERR_ALLOCATED (DV_ERR_BASE + 18)
#define DV_ERR_BADDEVICEID (DV_ERR_BASE + 19)
#define DV_ERR_INVALHANDLE (DV_ERR_BASE + 20)
#define DV_ERR_BADERRNUM (DV_ERR_BASE + 21)
#define DV_ERR_NO_BUFFERS (DV_ERR_BASE + 22)
#define DV_ERR_MEM_CONFLICT (DV_ERR_BASE + 23)
#define DV_ERR_IO_CONFLICT (DV_ERR_BASE + 24)
#define DV_ERR_DMA_CONFLICT (DV_ERR_BASE + 25)
#define DV_ERR_INT_CONFLICT (DV_ERR_BASE + 26)
#define DV_ERR_PROTECT_ONLY (DV_ERR_BASE + 27)
#define DV_ERR_LASTERROR (DV_ERR_BASE + 27)
#define DV_ERR_USER_MSG (DV_ERR_BASE + 1000)
#ifndef MM_DRVM_OPEN
#define MM_DRVM_OPEN 0x3D0
#define MM_DRVM_CLOSE 0x3D1
#define MM_DRVM_DATA 0x3D2
#define MM_DRVM_ERROR 0x3D3
#define DV_VM_OPEN MM_DRVM_OPEN
#define DV_VM_CLOSE MM_DRVM_CLOSE
#define DV_VM_DATA MM_DRVM_DATA
#define DV_VM_ERROR MM_DRVM_ERROR
#endif
typedef struct videohdr_tag {
LPBYTE lpData;
DWORD dwBufferLength;
DWORD dwBytesUsed;
DWORD dwTimeCaptured;
DWORD dwUser;
DWORD dwFlags;
DWORD dwReserved[4];
} VIDEOHDR, *PVIDEOHDR, *LPVIDEOHDR;
#define VHDR_DONE 0x00000001
#define VHDR_PREPARED 0x00000002
#define VHDR_INQUEUE 0x00000004
#define VHDR_KEYFRAME 0x00000008
typedef struct channel_caps_tag {
DWORD dwFlags;
DWORD dwSrcRectXMod;
DWORD dwSrcRectYMod;
DWORD dwSrcRectWidthMod;
DWORD dwSrcRectHeightMod;
DWORD dwDstRectXMod;
DWORD dwDstRectYMod;
DWORD dwDstRectWidthMod;
DWORD dwDstRectHeightMod;
} CHANNEL_CAPS, *PCHANNEL_CAPS, *LPCHANNEL_CAPS;
#define VCAPS_OVERLAY 0x00000001
#define VCAPS_SRC_CAN_CLIP 0x00000002
#define VCAPS_DST_CAN_CLIP 0x00000004
#define VCAPS_CAN_SCALE 0x00000008
#define VIDEO_EXTERNALIN 0x0001
#define VIDEO_EXTERNALOUT 0x0002
#define VIDEO_IN 0x0004
#define VIDEO_OUT 0x0008
#define VIDEO_DLG_QUERY 0x0010
#define VIDEO_CONFIGURE_QUERY 0x8000
#define VIDEO_CONFIGURE_SET 0x1000
#define VIDEO_CONFIGURE_GET 0x2000
#define VIDEO_CONFIGURE_QUERYSIZE 0x0001
#define VIDEO_CONFIGURE_CURRENT 0x0010
#define VIDEO_CONFIGURE_NOMINAL 0x0020
#define VIDEO_CONFIGURE_MIN 0x0040
#define VIDEO_CONFIGURE_MAX 0x0080
#define DVM_USER 0x4000
#define DVM_CONFIGURE_START 0x1000
#define DVM_CONFIGURE_END 0x1FFF
#define DVM_PALETTE (DVM_CONFIGURE_START + 1)
#define DVM_FORMAT (DVM_CONFIGURE_START + 2)
#define DVM_PALETTERGB555 (DVM_CONFIGURE_START + 3)
#define DVM_SRC_RECT (DVM_CONFIGURE_START + 4)
#define DVM_DST_RECT (DVM_CONFIGURE_START + 5)
#define AVICapSM(hwnd,m,w,l) ((IsWindow(hwnd)) ? SendMessage(hwnd,m,w,l) : 0)
#define WM_CAP_START WM_USER
#define WM_CAP_UNICODE_START WM_USER+100
#define WM_CAP_GET_CAPSTREAMPTR (WM_CAP_START + 1)
#define WM_CAP_SET_CALLBACK_ERRORW (WM_CAP_UNICODE_START + 2)
#define WM_CAP_SET_CALLBACK_STATUSW (WM_CAP_UNICODE_START + 3)
#define WM_CAP_SET_CALLBACK_ERRORA (WM_CAP_START + 2)
#define WM_CAP_SET_CALLBACK_STATUSA (WM_CAP_START+ 3)
#define WM_CAP_SET_CALLBACK_ERROR WINELIB_NAME_AW(WM_CAP_SET_CALLBACK_ERROR)
#define WM_CAP_SET_CALLBACK_STATUS WINELIB_NAME_AW(WM_CAP_SET_CALLBACK_STATUS)
#define WM_CAP_SET_CALLBACK_YIELD (WM_CAP_START + 4)
#define WM_CAP_SET_CALLBACK_FRAME (WM_CAP_START + 5)
#define WM_CAP_SET_CALLBACK_VIDEOSTREAM (WM_CAP_START + 6)
#define WM_CAP_SET_CALLBACK_WAVESTREAM (WM_CAP_START + 7)
#define WM_CAP_GET_USER_DATA (WM_CAP_START + 8)
#define WM_CAP_SET_USER_DATA (WM_CAP_START + 9)
#define WM_CAP_DRIVER_CONNECT (WM_CAP_START + 10)
#define WM_CAP_DRIVER_DISCONNECT (WM_CAP_START + 11)
#define WM_CAP_DRIVER_GET_NAMEA (WM_CAP_START + 12)
#define WM_CAP_DRIVER_GET_VERSIONA (WM_CAP_START + 13)
#define WM_CAP_DRIVER_GET_NAMEW (WM_CAP_UNICODE_START + 12)
#define WM_CAP_DRIVER_GET_VERSIONW (WM_CAP_UNICODE_START + 13)
#define WM_CAP_DRIVER_GET_NAME WINELIB_NAME_AW(WM_CAP_DRIVER_GET_NAME)
#define WM_CAP_DRIVER_GET_VERSION WINELIB_NAME_AW(WM_CAP_DRIVER_GET_VERSION)
#define WM_CAP_DRIVER_GET_CAPS (WM_CAP_START + 14)
#define WM_CAP_FILE_SET_CAPTURE_FILEA (WM_CAP_START + 20)
#define WM_CAP_FILE_GET_CAPTURE_FILEA (WM_CAP_START + 21)
#define WM_CAP_FILE_ALLOCATE (WM_CAP_START + 22)
#define WM_CAP_FILE_SAVEASA (WM_CAP_START + 23)
#define WM_CAP_FILE_SET_INFOCHUNK (WM_CAP_START + 24)
#define WM_CAP_FILE_SAVEDIBA (WM_CAP_START + 25)
#define WM_CAP_FILE_SET_CAPTURE_FILEW (WM_CAP_UNICODE_START + 20)
#define WM_CAP_FILE_GET_CAPTURE_FILEW (WM_CAP_UNICODE_START + 21)
#define WM_CAP_FILE_SAVEASW (WM_CAP_UNICODE_START + 23)
#define WM_CAP_FILE_SAVEDIBW (WM_CAP_UNICODE_START + 25)
#define WM_CAP_FILE_SET_CAPTURE_FILE WINELIB_NAME_AW(WM_CAP_FILE_SET_CAPTURE_FILE)
#define WM_CAP_FILE_GET_CAPTURE_FILE WINELIB_NAME_AW(WM_CAP_FILE_GET_CAPTURE_FILE)
#define WM_CAP_FILE_SAVEAS WINELIB_NAME_AW(WM_CAP_FILE_SAVEAS)
#define WM_CAP_FILE_SAVEDIB WINELIB_NAME_AW(WM_CAP_FILE_SAVEDIB)
#define WM_CAP_EDIT_COPY (WM_CAP_START + 30)
#define WM_CAP_SET_AUDIOFORMAT (WM_CAP_START + 35)
#define WM_CAP_GET_AUDIOFORMAT (WM_CAP_START + 36)
#define WM_CAP_DLG_VIDEOFORMAT (WM_CAP_START + 41)
#define WM_CAP_DLG_VIDEOSOURCE (WM_CAP_START + 42)
#define WM_CAP_DLG_VIDEODISPLAY (WM_CAP_START + 43)
#define WM_CAP_GET_VIDEOFORMAT (WM_CAP_START + 44)
#define WM_CAP_SET_VIDEOFORMAT (WM_CAP_START + 45)
#define WM_CAP_DLG_VIDEOCOMPRESSION (WM_CAP_START + 46)
#define WM_CAP_SET_PREVIEW (WM_CAP_START + 50)
#define WM_CAP_SET_OVERLAY (WM_CAP_START + 51)
#define WM_CAP_SET_PREVIEWRATE (WM_CAP_START + 52)
#define WM_CAP_SET_SCALE (WM_CAP_START + 53)
#define WM_CAP_GET_STATUS (WM_CAP_START + 54)
#define WM_CAP_SET_SCROLL (WM_CAP_START + 55)
#define WM_CAP_GRAB_FRAME (WM_CAP_START + 60)
#define WM_CAP_GRAB_FRAME_NOSTOP (WM_CAP_START + 61)
#define WM_CAP_SEQUENCE (WM_CAP_START + 62)
#define WM_CAP_SEQUENCE_NOFILE (WM_CAP_START + 63)
#define WM_CAP_SET_SEQUENCE_SETUP (WM_CAP_START + 64)
#define WM_CAP_GET_SEQUENCE_SETUP (WM_CAP_START + 65)
#define WM_CAP_SET_MCI_DEVICEA (WM_CAP_START + 66)
#define WM_CAP_GET_MCI_DEVICEA (WM_CAP_START + 67)
#define WM_CAP_SET_MCI_DEVICEW (WM_CAP_UNICODE_START + 66)
#define WM_CAP_GET_MCI_DEVICEW (WM_CAP_UNICODE_START + 67)
#define WM_CAP_SET_MCI_DEVICE WINELIB_NAME_AW(WM_CAP_SET_MCI_DEVICE)
#define WM_CAP_GET_MCI_DEVICE WINELIB_NAME_AW(WM_CAP_GET_MCI_DEVICE)
#define WM_CAP_STOP (WM_CAP_START + 68)
#define WM_CAP_ABORT (WM_CAP_START + 69)
#define WM_CAP_SINGLE_FRAME_OPEN (WM_CAP_START + 70)
#define WM_CAP_SINGLE_FRAME_CLOSE (WM_CAP_START + 71)
#define WM_CAP_SINGLE_FRAME (WM_CAP_START + 72)
#define WM_CAP_PAL_OPENA (WM_CAP_START + 80)
#define WM_CAP_PAL_SAVEA (WM_CAP_START + 81)
#define WM_CAP_PAL_OPENW (WM_CAP_UNICODE_START + 80)
#define WM_CAP_PAL_SAVEW (WM_CAP_UNICODE_START + 81)
#define WM_CAP_PAL_OPEN WINELIB_NAME_AW(WM_CAP_PAL_OPEN)
#define WM_CAP_PAL_SAVE WINELIB_NAME_AW(WM_CAP_PAL_SAVE)
#define WM_CAP_PAL_PASTE (WM_CAP_START + 82)
#define WM_CAP_PAL_AUTOCREATE (WM_CAP_START + 83)
#define WM_CAP_PAL_MANUALCREATE (WM_CAP_START + 84)
#define WM_CAP_SET_CALLBACK_CAPCONTROL (WM_CAP_START + 85)
#define WM_CAP_UNICODE_END WM_CAP_PAL_SAVEW
#define WM_CAP_END WM_CAP_UNICODE_END
typedef struct tagCapDriverCaps {
UINT wDeviceIndex;
BOOL fHasOverlay;
BOOL fHasDlgVideoSource;
BOOL fHasDlgVideoFormat;
BOOL fHasDlgVideoDisplay;
BOOL fCaptureInitialized;
BOOL fDriverSuppliesPalettes;
HANDLE hVideoIn;
HANDLE hVideoOut;
HANDLE hVideoExtIn;
HANDLE hVideoExtOut;
} CAPDRIVERCAPS, *PCAPDRIVERCAPS, *LPCAPDRIVERCAPS;
typedef struct tagCapStatus {
UINT uiImageWidth;
UINT uiImageHeight;
BOOL fLiveWindow;
BOOL fOverlayWindow;
BOOL fScale;
POINT ptScroll;
BOOL fUsingDefaultPalette;
BOOL fAudioHardware;
BOOL fCapFileExists;
DWORD dwCurrentVideoFrame;
DWORD dwCurrentVideoFramesDropped;
DWORD dwCurrentWaveSamples;
DWORD dwCurrentTimeElapsedMS;
HPALETTE hPalCurrent;
BOOL fCapturingNow;
DWORD dwReturn;
UINT wNumVideoAllocated;
UINT wNumAudioAllocated;
} CAPSTATUS, *PCAPSTATUS, *LPCAPSTATUS;
typedef struct tagCaptureParms {
DWORD dwRequestMicroSecPerFrame;
BOOL fMakeUserHitOKToCapture;
UINT wPercentDropForError;
BOOL fYield;
DWORD dwIndexSize;
UINT wChunkGranularity;
BOOL fUsingDOSMemory;
UINT wNumVideoRequested;
BOOL fCaptureAudio;
UINT wNumAudioRequested;
UINT vKeyAbort;
BOOL fAbortLeftMouse;
BOOL fAbortRightMouse;
BOOL fLimitEnabled;
UINT wTimeLimit;
BOOL fMCIControl;
BOOL fStepMCIDevice;
DWORD dwMCIStartTime;
DWORD dwMCIStopTime;
BOOL fStepCaptureAt2x;
UINT wStepCaptureAverageFrames;
DWORD dwAudioBufferSize;
BOOL fDisableWriteCache;
UINT AVStreamMaster;
} CAPTUREPARMS, *PCAPTUREPARMS, *LPCAPTUREPARMS;
typedef LRESULT (CALLBACK* CAPYIELDCALLBACK) (HWND hWnd);
typedef LRESULT (CALLBACK* CAPSTATUSCALLBACKW) (HWND hWnd, int nID, LPCWSTR lpsz);
typedef LRESULT (CALLBACK* CAPERRORCALLBACKW) (HWND hWnd, int nID, LPCWSTR lpsz);
typedef LRESULT (CALLBACK* CAPSTATUSCALLBACKA) (HWND hWnd, int nID, LPCSTR lpsz);
typedef LRESULT (CALLBACK* CAPERRORCALLBACKA) (HWND hWnd, int nID, LPCSTR lpsz);
typedef LRESULT (CALLBACK* CAPVIDEOCALLBACK) (HWND hWnd, LPVIDEOHDR lpVHdr);
typedef LRESULT (CALLBACK* CAPWAVECALLBACK) (HWND hWnd, LPWAVEHDR lpWHdr);
typedef LRESULT (CALLBACK* CAPCONTROLCALLBACK)(HWND hWnd, int nState);
HWND VFWAPI capCreateCaptureWindowA(LPCSTR,DWORD,INT,INT,INT,INT,HWND,INT);
HWND VFWAPI capCreateCaptureWindowW(LPCWSTR,DWORD,INT,INT,INT,INT,HWND,INT);
#define capCreateCaptureWindow WINELIB_NAME_AW(capCreateCaptureWindow)