compddk.h
来自「用于查询PC机上的USB端口是否有设备挂接上」· C头文件 代码 · 共 475 行 · 第 1/2 页
H
475 行
// begin_vfw32
//
// under Win32, the driver always returns UNICODE strings.
//
WCHAR szName[16]; // short name
WCHAR szDescription[128]; // long name
WCHAR szDriver[128]; // driver that contains compressor
// end_vfw32
#else
char szName[16]; // short name
char szDescription[128]; // long name
char szDriver[128]; // driver that contains compressor
#endif
// begin_vfw32
} ICINFO;
/* Flags for the <dwFlags> field of the <ICINFO> structure. */
#define VIDCF_QUALITY 0x0001 // supports quality
#define VIDCF_CRUNCH 0x0002 // supports crunching to a frame size
#define VIDCF_TEMPORAL 0x0004 // supports inter-frame compress
#define VIDCF_COMPRESSFRAMES 0x0008 // wants the compress all frames message
#define VIDCF_DRAW 0x0010 // supports drawing
#define VIDCF_FASTTEMPORALC 0x0020 // does not need prev frame on compress
#define VIDCF_FASTTEMPORALD 0x0080 // does not need prev frame on decompress
//#define VIDCF_QUALITYTIME 0x0040 // supports temporal quality
//#define VIDCF_FASTTEMPORAL (VIDCF_FASTTEMPORALC|VIDCF_FASTTEMPORALD)
/************************************************************************
************************************************************************/
#define ICCOMPRESS_KEYFRAME 0x00000001L
typedef struct {
DWORD dwFlags; // flags
LPBITMAPINFOHEADER lpbiOutput; // output format
LPVOID lpOutput; // output data
LPBITMAPINFOHEADER lpbiInput; // format of frame to compress
LPVOID lpInput; // frame data to compress
LPDWORD lpckid; // ckid for data in AVI file
LPDWORD lpdwFlags; // flags in the AVI index.
LONG lFrameNum; // frame number of seq.
DWORD dwFrameSize; // reqested size in bytes. (if non zero)
DWORD dwQuality; // quality
// these are new fields
LPBITMAPINFOHEADER lpbiPrev; // format of previous frame
LPVOID lpPrev; // previous frame
} ICCOMPRESS;
/************************************************************************
************************************************************************/
#define ICCOMPRESSFRAMES_PADDING 0x00000001
typedef struct {
DWORD dwFlags; // flags
LPBITMAPINFOHEADER lpbiOutput; // output format
LPARAM lOutput; // output identifier
LPBITMAPINFOHEADER lpbiInput; // format of frame to compress
LPARAM lInput; // input identifier
LONG lStartFrame; // start frame
LONG lFrameCount; // # of frames
LONG lQuality; // quality
LONG lDataRate; // data rate
LONG lKeyRate; // key frame rate
DWORD dwRate; // frame rate, as always
DWORD dwScale;
DWORD dwOverheadPerFrame;
DWORD dwReserved2;
LONG (CALLBACK *GetData)(LPARAM lInput, LONG lFrame, LPVOID lpBits, LONG len);
LONG (CALLBACK *PutData)(LPARAM lOutput, LONG lFrame, LPVOID lpBits, LONG len);
} ICCOMPRESSFRAMES;
typedef struct {
DWORD dwFlags;
LPARAM lParam;
// messages for Status callback
#define ICSTATUS_START 0
#define ICSTATUS_STATUS 1 // l == % done
#define ICSTATUS_END 2
#define ICSTATUS_ERROR 3 // l == error string (LPSTR)
#define ICSTATUS_YIELD 4
// return nonzero means abort operation in progress
LONG (CALLBACK *Status) (LPARAM lParam, UINT message, LONG l);
} ICSETSTATUSPROC;
/************************************************************************
************************************************************************/
#define ICDECOMPRESS_HURRYUP 0x80000000L // don't draw just buffer (hurry up!)
#define ICDECOMPRESS_UPDATE 0x40000000L // don't draw just update screen
#define ICDECOMPRESS_PREROLL 0x20000000L // this frame is before real start
#define ICDECOMPRESS_NULLFRAME 0x10000000L // repeat last frame
#define ICDECOMPRESS_NOTKEYFRAME 0x08000000L // this frame is not a key frame
typedef struct {
DWORD dwFlags; // flags (from AVI index...)
LPBITMAPINFOHEADER lpbiInput; // BITMAPINFO of compressed data
// biSizeImage has the chunk size
LPVOID lpInput; // compressed data
LPBITMAPINFOHEADER lpbiOutput; // DIB to decompress to
LPVOID lpOutput;
DWORD ckid; // ckid from AVI file
} ICDECOMPRESS;
typedef struct {
//
// same as ICM_DECOMPRESS
//
DWORD dwFlags;
LPBITMAPINFOHEADER lpbiSrc; // BITMAPINFO of compressed data
LPVOID lpSrc; // compressed data
LPBITMAPINFOHEADER lpbiDst; // DIB to decompress to
LPVOID lpDst; // output data
//
// new for ICM_DECOMPRESSEX
//
int xDst; // destination rectangle
int yDst;
int dxDst;
int dyDst;
int xSrc; // source rectangle
int ySrc;
int dxSrc;
int dySrc;
} ICDECOMPRESSEX;
/************************************************************************
************************************************************************/
#define ICDRAW_QUERY 0x00000001L // test for support
#define ICDRAW_FULLSCREEN 0x00000002L // draw to full screen
#define ICDRAW_HDC 0x00000004L // draw to a HDC/HWND
#define ICDRAW_ANIMATE 0x00000008L // expect palette animation
#define ICDRAW_CONTINUE 0x00000010L // draw is a continuation of previous draw
#define ICDRAW_MEMORYDC 0x00000020L // DC is offscreen, by the way
#define ICDRAW_UPDATING 0x00000040L // We're updating, as opposed to playing
#define ICDRAW_RENDER 0x00000080L // used to render data not draw it
#define ICDRAW_BUFFER 0x00000100L // please buffer this data offscreen, we will need to update it
typedef struct {
DWORD dwFlags; // flags
HPALETTE hpal; // palette to draw with
HWND hwnd; // window to draw to
HDC hdc; // HDC to draw to
int xDst; // destination rectangle
int yDst;
int dxDst;
int dyDst;
LPBITMAPINFOHEADER lpbi; // format of frame to draw
int xSrc; // source rectangle
int ySrc;
int dxSrc;
int dySrc;
DWORD dwRate; // frames/second = (dwRate/dwScale)
DWORD dwScale;
} ICDRAWBEGIN;
/************************************************************************
************************************************************************/
#define ICDRAW_HURRYUP 0x80000000L // don't draw just buffer (hurry up!)
#define ICDRAW_UPDATE 0x40000000L // don't draw just update screen
#define ICDRAW_PREROLL 0x20000000L // this frame is before real start
#define ICDRAW_NULLFRAME 0x10000000L // repeat last frame
#define ICDRAW_NOTKEYFRAME 0x08000000L // this frame is not a key frame
typedef struct {
DWORD dwFlags; // flags
LPVOID lpFormat; // format of frame to decompress
LPVOID lpData; // frame data to decompress
DWORD cbData;
LONG lTime; // time in drawbegin units (see dwRate and dwScale)
} ICDRAW;
typedef struct {
LPBITMAPINFOHEADER lpbiIn; // format to be drawn
LPBITMAPINFOHEADER lpbiSuggest; // location for suggested format (or NULL to get size)
int dxSrc; // source extent or 0
int dySrc;
int dxDst; // dest extent or 0
int dyDst;
HIC hicDecompressor;// decompressor you can talk to
} ICDRAWSUGGEST;
/************************************************************************
************************************************************************/
typedef struct {
DWORD dwFlags; // flags (from AVI index...)
int iStart; // first palette to change
int iLen; // count of entries to change.
LPPALETTEENTRY lppe; // palette
} ICPALETTE;
// end_vfw32
#ifndef RC_INVOKED
#ifndef _WIN32
#pragma pack() /* Revert to default packing */
#endif
#endif /* RC_INVOKED */
#ifdef __cplusplus
} /* End of extern "C" { */
#endif /* __cplusplus */
#endif /* _INC_COMPDDK */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?