⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cevfw.h

📁 pwlib源码库
💻 H
字号:
//// (c) 2002 Yuri Kiryanov, openh323@kiryanov.com// // Windows CE port of OpenH323 Open Source Project, www.openh323.org// Video For Windows Definitions#ifndef _CEVFW_H#define _CEVFW_H#define VFWAPI  WINAPI#ifdef __cplusplus/* SendMessage in C++*/#define AVICapSM(hwnd,m,w,l) ( (IsWindow(hwnd)) ? ::SendMessage(hwnd,m,w,l) : 0)#else/* SendMessage in C */#define AVICapSM(hwnd,m,w,l) ( (IsWindow(hwnd)) ?   SendMessage(hwnd,m,w,l) : 0)#endif  /* __cplusplus */// video data block headertypedef struct videohdr_tag {    LPBYTE      lpData;                 /* pointer to locked data buffer */    DWORD       dwBufferLength;         /* Length of data buffer */    DWORD       dwBytesUsed;            /* Bytes actually used */    DWORD       dwTimeCaptured;         /* Milliseconds from start of stream */    DWORD       dwUser;                 /* for client's use */    DWORD       dwFlags;                /* assorted flags (see defines) */    DWORD       dwReserved[4];          /* reserved for driver */} VIDEOHDR, NEAR *PVIDEOHDR, FAR * LPVIDEOHDR;/* dwFlags field of VIDEOHDR */#define VHDR_DONE       0x00000001  /* Done bit */#define VHDR_PREPARED   0x00000002  /* Set if this header has been prepared */#define VHDR_INQUEUE    0x00000004  /* Reserved for driver */#define VHDR_KEYFRAME   0x00000008  /* Key Frame */typedef struct tagCapStatus {    UINT        uiImageWidth;               // Width of the image    UINT        uiImageHeight;              // Height of the image    BOOL        fLiveWindow;                // Now Previewing video?    BOOL        fOverlayWindow;             // Now Overlaying video?    BOOL        fScale;                     // Scale image to client?    POINT       ptScroll;                   // Scroll position    BOOL        fUsingDefaultPalette;       // Using default driver palette?    BOOL        fAudioHardware;             // Audio hardware present?    BOOL        fCapFileExists;             // Does capture file exist?    DWORD       dwCurrentVideoFrame;        // # of video frames cap'td    DWORD       dwCurrentVideoFramesDropped;// # of video frames dropped    DWORD       dwCurrentWaveSamples;       // # of wave samples cap'td    DWORD       dwCurrentTimeElapsedMS;     // Elapsed capture duration    HPALETTE    hPalCurrent;                // Current palette in use    BOOL        fCapturingNow;              // Capture in progress?    DWORD       dwReturn;                   // Error value after any operation    UINT        wNumVideoAllocated;         // Actual number of video buffers    UINT        wNumAudioAllocated;         // Actual number of audio buffers} CAPSTATUS, *PCAPSTATUS, FAR *LPCAPSTATUS;typedef struct tagCaptureParms {    DWORD       dwRequestMicroSecPerFrame;  // Requested capture rate    BOOL        fMakeUserHitOKToCapture;    // Show "Hit OK to cap" dlg?    UINT        wPercentDropForError;       // Give error msg if > (10%)    BOOL        fYield;                     // Capture via background task?    DWORD       dwIndexSize;                // Max index size in frames (32K)    UINT        wChunkGranularity;          // Junk chunk granularity (2K)    BOOL        fUsingDOSMemory;            // Use DOS buffers?    UINT        wNumVideoRequested;         // # video buffers, If 0, autocalc    BOOL        fCaptureAudio;              // Capture audio?    UINT        wNumAudioRequested;         // # audio buffers, If 0, autocalc    UINT        vKeyAbort;                  // Virtual key causing abort    BOOL        fAbortLeftMouse;            // Abort on left mouse?    BOOL        fAbortRightMouse;           // Abort on right mouse?    BOOL        fLimitEnabled;              // Use wTimeLimit?    UINT        wTimeLimit;                 // Seconds to capture    BOOL        fMCIControl;                // Use MCI video source?    BOOL        fStepMCIDevice;             // Step MCI device?    DWORD       dwMCIStartTime;             // Time to start in MS    DWORD       dwMCIStopTime;              // Time to stop in MS    BOOL        fStepCaptureAt2x;           // Perform spatial averaging 2x    UINT        wStepCaptureAverageFrames;  // Temporal average n Frames    DWORD       dwAudioBufferSize;          // Size of audio bufs (0 = default)    BOOL        fDisableWriteCache;         // Attempt to disable write cache    UINT        AVStreamMaster;             // Which stream controls length?} CAPTUREPARMS, *PCAPTUREPARMS, FAR *LPCAPTUREPARMS;typedef struct tagCapDriverCaps {    UINT        wDeviceIndex;               // Driver index in system.ini    BOOL        fHasOverlay;                // Can device overlay?    BOOL        fHasDlgVideoSource;         // Has Video source dlg?    BOOL        fHasDlgVideoFormat;         // Has Format dlg?    BOOL        fHasDlgVideoDisplay;        // Has External out dlg?    BOOL        fCaptureInitialized;        // Driver ready to capture?    BOOL        fDriverSuppliesPalettes;    // Can driver make palettes?// following always NULL on Win32.    HANDLE      hVideoIn;                   // Driver In channel    HANDLE      hVideoOut;                  // Driver Out channel    HANDLE      hVideoExtIn;                // Driver Ext In channel    HANDLE      hVideoExtOut;               // Driver Ext Out channel} CAPDRIVERCAPS, *PCAPDRIVERCAPS, FAR *LPCAPDRIVERCAPS;typedef LRESULT (CALLBACK* CAPERRORCALLBACK)  (HWND hWnd, int nID, LPCSTR lpsz);typedef LRESULT (CALLBACK* CAPVIDEOCALLBACK)  (HWND hWnd, LPVIDEOHDR lpVHdr);#define WM_CAP_START                    WM_USER#define WM_CAP_SET_CALLBACK_ERRORA      (WM_CAP_START+  2)#define WM_CAP_SET_CALLBACK_ERROR       WM_CAP_SET_CALLBACK_ERRORA#define WM_CAP_SET_CALLBACK_FRAME       (WM_CAP_START+  5)#define WM_CAP_SET_CALLBACK_VIDEOSTREAM (WM_CAP_START+  6)#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_CAPS          (WM_CAP_START+  14)#define WM_CAP_SET_AUDIOFORMAT          (WM_CAP_START+  35)#define WM_CAP_GET_AUDIOFORMAT          (WM_CAP_START+  36)#define WM_CAP_GET_VIDEOFORMAT          (WM_CAP_START+  44)#define WM_CAP_SET_VIDEOFORMAT          (WM_CAP_START+  45)#define WM_CAP_SET_PREVIEW              (WM_CAP_START+  50)#define WM_CAP_GET_STATUS               (WM_CAP_START+  54)#define WM_CAP_GRAB_FRAME_NOSTOP        (WM_CAP_START+  61)#define WM_CAP_SET_SEQUENCE_SETUP       (WM_CAP_START+  64)#define WM_CAP_GET_SEQUENCE_SETUP       (WM_CAP_START+  65)#define WM_CAP_GET_USER_DATA		(WM_CAP_START+  8)// Functions#define capGetVideoFormat(hwnd, s, wSize)          ((DWORD)AVICapSM(hwnd, WM_CAP_GET_VIDEOFORMAT, (WPARAM)(wSize), (LPARAM)(LPVOID)(s)))#define capGetVideoFormatSize(hwnd)					((DWORD)AVICapSM(hwnd, WM_CAP_GET_VIDEOFORMAT, 0, 0L))#define capSetVideoFormat(hwnd, s, wSize)          ((BOOL)AVICapSM(hwnd, WM_CAP_SET_VIDEOFORMAT, (WPARAM)(wSize), (LPARAM)(LPVOID)(s)))#define capGetStatus(hwnd, s, wSize)               ((BOOL)AVICapSM(hwnd, WM_CAP_GET_STATUS, (WPARAM)(wSize), (LPARAM)(LPVOID)(LPCAPSTATUS)(s)))#define capGrabFrameNoStop(hwnd)                   ((BOOL)AVICapSM(hwnd, WM_CAP_GRAB_FRAME_NOSTOP, (WPARAM)0, (LPARAM)0L))#define capSetCallbackOnError(hwnd, fpProc)        ((BOOL)AVICapSM(hwnd, WM_CAP_SET_CALLBACK_ERROR, 0, (LPARAM)(LPVOID)(fpProc)))#define capSetCallbackOnFrame(hwnd, fpProc)        ((BOOL)AVICapSM(hwnd, WM_CAP_SET_CALLBACK_FRAME, 0, (LPARAM)(LPVOID)(fpProc)))#define capSetCallbackOnVideoStream(hwnd, fpProc)  ((BOOL)AVICapSM(hwnd, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, (LPARAM)(LPVOID)(fpProc)))#define capDriverConnect(hwnd, i)                  ((BOOL)AVICapSM(hwnd, WM_CAP_DRIVER_CONNECT, (WPARAM)(i), 0L))#define capDriverDisconnect(hwnd)                  ((BOOL)AVICapSM(hwnd, WM_CAP_DRIVER_DISCONNECT, (WPARAM)0, 0L))#define capSetUserData(hwnd, lUser)					((BOOL)AVICapSM(hwnd, WM_CAP_SET_USER_DATA, 0, (LPARAM)lUser))#define capGetUserData(hwnd)						(AVICapSM(hwnd, WM_CAP_GET_USER_DATA, 0, 0))#define capCaptureGetSetup(hwnd, s, wSize)         ((BOOL)AVICapSM(hwnd, WM_CAP_GET_SEQUENCE_SETUP, (WPARAM)(wSize), (LPARAM)(LPVOID)(LPCAPTUREPARMS)(s)))#define capCaptureSetSetup(hwnd, s, wSize)         ((BOOL)AVICapSM(hwnd, WM_CAP_SET_SEQUENCE_SETUP, (WPARAM)(wSize), (LPARAM)(LPVOID)(LPCAPTUREPARMS)(s)))#define capDriverGetCaps(hwnd, s, wSize)           ((BOOL)AVICapSM(hwnd, WM_CAP_DRIVER_GET_CAPS, (WPARAM)(wSize), (LPARAM)(LPVOID)(LPCAPDRIVERCAPS)(s)))#define capPreview(hwnd, f)                        ((BOOL)AVICapSM(hwnd, WM_CAP_SET_PREVIEW, (WPARAM)(BOOL)(f), 0L))BOOL VFWAPI capGetDriverDescription(UINT wDriverIndex,	LPSTR lpszName, int cbName,		LPSTR lpszVer, int cbVer);HWND VFWAPI capCreateCaptureWindow(	LPCSTR lpszWindowName,		DWORD dwStyle,			int x, int y, int nWidth, int nHeight,				HWND hwndParent, int nID);// Making types of these functions to define static stubstypedef BOOL (VFWAPI *CAPGETDRIVERDESCRIPTIONPROC)(UINT,LPSTR, int, LPSTR, int);//	FAR * LPCAPGETDRIVERDESCRIPTIONPROC;typedef HWND (VFWAPI *CAPCREATECAPTUREWINDOWPROC)(LPCSTR,DWORD,int,int,int,int,HWND,int);//	FAR * LPCAPCREATECAPTUREWINDOWPROC;#endif // _CEVFW_H

⌨️ 快捷键说明

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