Headers diff for avicap32.dll between 6.1.7600.16385-Windows_7.0 and 6.3.9600.17415-Windows_8.1 versions



 vfw.h (6.1.7600.16385-Windows_7.0)   vfw.h (6.3.9600.17415-Windows_8.1) 
skipping to change at line 43 skipping to change at line 43
* NOMCIWND - dont include AVIWnd class. * NOMCIWND - dont include AVIWnd class.
* NOAVICAP - dont include AVICap class. * NOAVICAP - dont include AVICap class.
* *
* NOMSACM - dont include ACM stuff. * NOMSACM - dont include ACM stuff.
* *
****************************************************************************/ ****************************************************************************/
#ifndef _INC_VFW #ifndef _INC_VFW
#define _INC_VFW #define _INC_VFW
#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { /* Assume C declarations for C++ */ extern "C" { /* Assume C declarations for C++ */
#endif /* __cplusplus */ #endif /* __cplusplus */
/**************************************************************************** /****************************************************************************
* *
* types * types
* *
***************************************************************************/ ***************************************************************************/
skipping to change at line 344 skipping to change at line 349
/************************************************************************ /************************************************************************
************************************************************************/ ************************************************************************/
#define ICCOMPRESS_KEYFRAME 0x00000001L #define ICCOMPRESS_KEYFRAME 0x00000001L
typedef struct { typedef struct {
DWORD dwFlags; // flags DWORD dwFlags; // flags
LPBITMAPINFOHEADER lpbiOutput; // output format LPBITMAPINFOHEADER lpbiOutput; // output format
__field_bcount(lpbiOutput->biSizeImage) LPVOID lpOutput; // output data _Field_size_bytes_(lpbiOutput->biSizeImage) LPVOID lpOutput; // output data
LPBITMAPINFOHEADER lpbiInput; // format of frame to compress LPBITMAPINFOHEADER lpbiInput; // format of frame to compress
__field_bcount(lpbiInput->biSizeImage) LPVOID lpInput; / / frame data to compress _Field_size_bytes_(lpbiInput->biSizeImage) LPVOID lpInput; // frame data to compress
LPDWORD lpckid; // ckid for data in AVI file LPDWORD lpckid; // ckid for data in AVI file
LPDWORD lpdwFlags; // flags in the AVI index. LPDWORD lpdwFlags; // flags in the AVI index.
LONG lFrameNum; // frame number of seq. LONG lFrameNum; // frame number of seq.
DWORD dwFrameSize; // reqested size in bytes. (if non zero) DWORD dwFrameSize; // reqested size in bytes. (if non zero)
DWORD dwQuality; // quality DWORD dwQuality; // quality
// these are new fields // these are new fields
LPBITMAPINFOHEADER lpbiPrev; // format of previous frame LPBITMAPINFOHEADER lpbiPrev; // format of previous frame
__field_bcount(lpbiPrev->biSizeImage) LPVOID lpPrev; // previous frame _Field_size_bytes_(lpbiPrev->biSizeImage) LPVOID lpPrev; // previous frame
} ICCOMPRESS; } ICCOMPRESS;
/************************************************************************ /************************************************************************
************************************************************************/ ************************************************************************/
#define ICCOMPRESSFRAMES_PADDING 0x00000001 #define ICCOMPRESSFRAMES_PADDING 0x00000001
typedef struct { typedef struct {
DWORD dwFlags; // flags DWORD dwFlags; // flags
skipping to change at line 389 skipping to change at line 394
LONG lQuality; // quality LONG lQuality; // quality
LONG lDataRate; // data rate LONG lDataRate; // data rate
LONG lKeyRate; // key frame rate LONG lKeyRate; // key frame rate
DWORD dwRate; // frame rate, as always DWORD dwRate; // frame rate, as always
DWORD dwScale; DWORD dwScale;
DWORD dwOverheadPerFrame; DWORD dwOverheadPerFrame;
DWORD dwReserved2; DWORD dwReserved2;
LONG (CALLBACK *GetData)(__in LPARAM lInput, __in LONG lFrame, __out_bcount( LONG (CALLBACK *GetData)(_In_ LPARAM lInput, _In_ LONG lFrame, _Out_writes_b
len) LPVOID lpBits, __in LONG len); ytes_(len) LPVOID lpBits, _In_ LONG len);
LONG (CALLBACK *PutData)(__in LPARAM lOutput, __in LONG lFrame, __in_bcount( LONG (CALLBACK *PutData)(_In_ LPARAM lOutput, _In_ LONG lFrame, _In_reads_by
len) LPVOID lpBits, __in LONG len); tes_(len) LPVOID lpBits, _In_ LONG len);
} ICCOMPRESSFRAMES; } ICCOMPRESSFRAMES;
typedef struct { typedef struct {
DWORD dwFlags; DWORD dwFlags;
LPARAM lParam; LPARAM lParam;
// messages for Status callback // messages for Status callback
#define ICSTATUS_START 0 #define ICSTATUS_START 0
#define ICSTATUS_STATUS 1 // l == % done #define ICSTATUS_STATUS 1 // l == % done
#define ICSTATUS_END 2 #define ICSTATUS_END 2
#define ICSTATUS_ERROR 3 // l == error string (LPSTR) #define ICSTATUS_ERROR 3 // l == error string (LPSTR)
#define ICSTATUS_YIELD 4 #define ICSTATUS_YIELD 4
// return nonzero means abort operation in progress // return nonzero means abort operation in progress
LONG (CALLBACK *Status) (__in LPARAM lParam, __in UINT message, __in LONG l) ; LONG (CALLBACK *Status) (_In_ LPARAM lParam, _In_ UINT message, _In_ LONG l) ;
} ICSETSTATUSPROC; } ICSETSTATUSPROC;
/************************************************************************ /************************************************************************
************************************************************************/ ************************************************************************/
#define ICDECOMPRESS_HURRYUP 0x80000000L // don't draw just buffer (hurry up!) #define ICDECOMPRESS_HURRYUP 0x80000000L // don't draw just buffer (hurry up!)
#define ICDECOMPRESS_UPDATE 0x40000000L // don't draw just update screen #define ICDECOMPRESS_UPDATE 0x40000000L // don't draw just update screen
#define ICDECOMPRESS_PREROLL 0x20000000L // this frame is before real sta rt #define ICDECOMPRESS_PREROLL 0x20000000L // this frame is before real sta rt
#define ICDECOMPRESS_NULLFRAME 0x10000000L // repeat last frame #define ICDECOMPRESS_NULLFRAME 0x10000000L // repeat last frame
#define ICDECOMPRESS_NOTKEYFRAME 0x08000000L // this frame is not a key frame #define ICDECOMPRESS_NOTKEYFRAME 0x08000000L // this frame is not a key frame
typedef struct { typedef struct {
DWORD dwFlags; // flags (from AVI index...) DWORD dwFlags; // flags (from AVI index...)
LPBITMAPINFOHEADER lpbiInput; // BITMAPINFO of compressed data LPBITMAPINFOHEADER lpbiInput; // BITMAPINFO of compressed data
// biSizeImage has the chunk size // biSizeImage has the chunk size
__field_bcount(lpbiInput->biSizeImage) _Field_size_bytes_(lpbiInput->biSizeImage)
LPVOID lpInput; // compressed data LPVOID lpInput; // compressed data
LPBITMAPINFOHEADER lpbiOutput; // DIB to decompress to LPBITMAPINFOHEADER lpbiOutput; // DIB to decompress to
__field_bcount(lpbiOutput->biSizeImage) _Field_size_bytes_(lpbiOutput->biSizeImage)
LPVOID lpOutput; LPVOID lpOutput;
DWORD ckid; // ckid from AVI file DWORD ckid; // ckid from AVI file
} ICDECOMPRESS; } ICDECOMPRESS;
typedef struct { typedef struct {
// //
// same as ICM_DECOMPRESS // same as ICM_DECOMPRESS
// //
DWORD dwFlags; DWORD dwFlags;
skipping to change at line 541 skipping to change at line 546
/************************************************************************ /************************************************************************
ICM function declarations ICM function declarations
************************************************************************/ ************************************************************************/
BOOL BOOL
VFWAPI VFWAPI
ICInfo( ICInfo(
__in DWORD fccType, _In_ DWORD fccType,
__in DWORD fccHandler, _In_ DWORD fccHandler,
__out ICINFO FAR * lpicinfo _Out_ ICINFO FAR * lpicinfo
); );
BOOL BOOL
VFWAPI VFWAPI
ICInstall( ICInstall(
__in DWORD fccType, _In_ DWORD fccType,
__in DWORD fccHandler, _In_ DWORD fccHandler,
__in LPARAM lParam, _In_ LPARAM lParam,
__in LPSTR szDesc, _In_ LPSTR szDesc,
__in UINT wFlags _In_ UINT wFlags
); );
BOOL BOOL
VFWAPI VFWAPI
ICRemove( ICRemove(
__in DWORD fccType, _In_ DWORD fccType,
__in DWORD fccHandler, _In_ DWORD fccHandler,
__in UINT wFlags _In_ UINT wFlags
); );
__success(return != 0) _Success_(return != 0)
LRESULT LRESULT
VFWAPI VFWAPI
ICGetInfo( ICGetInfo(
__in HIC hic, _In_ HIC hic,
__out_bcount_part(cb,return) ICINFO FAR *picinfo, _Out_writes_bytes_to_(cb,return) ICINFO FAR *picinfo,
__in DWORD cb _In_ DWORD cb
); );
HIC HIC
VFWAPI VFWAPI
ICOpen( ICOpen(
__in DWORD fccType, _In_ DWORD fccType,
__in DWORD fccHandler, _In_ DWORD fccHandler,
__in UINT wMode _In_ UINT wMode
); );
HIC HIC
VFWAPI VFWAPI
ICOpenFunction( ICOpenFunction(
__in DWORD fccType, _In_ DWORD fccType,
__in DWORD fccHandler, _In_ DWORD fccHandler,
__in UINT wMode, _In_ UINT wMode,
__in FARPROC lpfnHandler _In_ FARPROC lpfnHandler
); );
LRESULT LRESULT
VFWAPI VFWAPI
ICClose( ICClose(
__in HIC hic _In_ HIC hic
); );
LRESULT LRESULT
VFWAPI VFWAPI
ICSendMessage( ICSendMessage(
__in HIC hic, _In_ HIC hic,
__in UINT msg, _In_ UINT msg,
__in DWORD_PTR dw1, _In_ DWORD_PTR dw1,
__in DWORD_PTR dw2 _In_ DWORD_PTR dw2
); );
#ifndef _WIN32 #ifndef _WIN32
//this function is unsupported on Win32 as it is non-portable. //this function is unsupported on Win32 as it is non-portable.
LRESULT VFWAPIV ICMessage(HIC hic, UINT msg, UINT cb, ...); LRESULT VFWAPIV ICMessage(HIC hic, UINT msg, UINT cb, ...);
#endif #endif
/* Values for wFlags of ICInstall() */ /* Values for wFlags of ICInstall() */
#define ICINSTALL_UNICODE 0x8000 #define ICINSTALL_UNICODE 0x8000
#define ICINSTALL_FUNCTION 0x0001 // lParam is a DriverProc (function ptr) #define ICINSTALL_FUNCTION 0x0001 // lParam is a DriverProc (function ptr)
skipping to change at line 688 skipping to change at line 693
************************************************************************/ ************************************************************************/
/* /*
* ICCompress() * ICCompress()
* *
* compress a single frame * compress a single frame
* *
*/ */
DWORD DWORD
VFWAPIV VFWAPIV
ICCompress( ICCompress(
__in HIC hic, _In_ HIC hic,
__in DWORD dwFlags, // flags _In_ DWORD dwFlags, // flags
__in LPBITMAPINFOHEADER lpbiOutput, // output format _In_ LPBITMAPINFOHEADER lpbiOutput, // output format
__out_bcount(lpbiOutput->biSizeImage) LPVOID lpData, _Out_writes_bytes_(lpbiOutput->biSizeImage) LPVOID lpData,
// output data // output data
__in LPBITMAPINFOHEADER lpbiInput, // format of frame to compres _In_ LPBITMAPINFOHEADER lpbiInput, // format of frame to compres
s s
__in_bcount(lpbiInput->biSizeImage) LPVOID lpBits, _In_reads_bytes_(lpbiInput->biSizeImage) LPVOID lpBits,
// frame data to compress // frame data to compress
__out_opt LPDWORD lpckid, // ckid for data in AVI file _Out_opt_ LPDWORD lpckid, // ckid for data in AVI file
__out_opt LPDWORD lpdwFlags, // flags in the AVI index. _Out_opt_ LPDWORD lpdwFlags, // flags in the AVI index.
__in LONG lFrameNum, // frame number of seq. _In_ LONG lFrameNum, // frame number of seq.
__in DWORD dwFrameSize, // reqested size in bytes. (i _In_ DWORD dwFrameSize, // reqested size in bytes. (i
f non zero) f non zero)
__in DWORD dwQuality, // quality within one frame _In_ DWORD dwQuality, // quality within one frame
__in_opt LPBITMAPINFOHEADER lpbiPrev, // format of previous frame _In_opt_ LPBITMAPINFOHEADER lpbiPrev, // format of previous frame
__in_bcount_opt(lpbiPrev->biSizeImage) LPVOID lpPrev _In_reads_bytes_opt_(lpbiPrev->biSizeImage) LPVOID lpPrev
// previous frame // previous frame
); );
/* /*
* ICCompressBegin() * ICCompressBegin()
* *
* start compression from a source format (lpbiInput) to a dest * start compression from a source format (lpbiInput) to a dest
* format (lpbiOuput) is supported. * format (lpbiOuput) is supported.
* *
*/ */
#define ICCompressBegin(hic, lpbiInput, lpbiOutput) \ #define ICCompressBegin(hic, lpbiInput, lpbiOutput) \
skipping to change at line 765 skipping to change at line 770
* ICDecompress() * ICDecompress()
* *
* decompress a single frame * decompress a single frame
* *
*/ */
#define ICDECOMPRESS_HURRYUP 0x80000000L // don't draw just buffer (hurry up!) #define ICDECOMPRESS_HURRYUP 0x80000000L // don't draw just buffer (hurry up!)
DWORD DWORD
VFWAPIV VFWAPIV
ICDecompress( ICDecompress(
__in HIC hic, _In_ HIC hic,
__in DWORD dwFlags, // flags (from AVI index...) _In_ DWORD dwFlags, // flags (from AVI index...)
__in LPBITMAPINFOHEADER lpbiFormat, // BITMAPINFO of compressed data _In_ LPBITMAPINFOHEADER lpbiFormat, // BITMAPINFO of compressed data
// biSizeImage has the chunk size // biSizeImage has the chunk size
__in_bcount(lpbiFormat->biSizeImage) LPVOID lpData, // dat _In_reads_bytes_(lpbiFormat->biSizeImage) LPVOID lpData, /
a / data
__in LPBITMAPINFOHEADER lpbi, // DIB to decompress to _In_ LPBITMAPINFOHEADER lpbi, // DIB to decompress to
__out_bcount(lpbi->biSizeImage) LPVOID lpBits _Out_writes_bytes_(lpbi->biSizeImage) LPVOID lpBits
); );
/* /*
* ICDecompressBegin() * ICDecompressBegin()
* *
* start compression from a source format (lpbiInput) to a dest * start compression from a source format (lpbiInput) to a dest
* format (lpbiOutput) is supported. * format (lpbiOutput) is supported.
* *
*/ */
#define ICDecompressBegin(hic, lpbiInput, lpbiOutput) \ #define ICDecompressBegin(hic, lpbiInput, lpbiOutput) \
skipping to change at line 842 skipping to change at line 847
// //
/* /*
* ICDecompressEx() * ICDecompressEx()
* *
* decompress a single frame * decompress a single frame
* *
*/ */
static __inline LRESULT VFWAPI_INLINE static __inline LRESULT VFWAPI_INLINE
ICDecompressEx( ICDecompressEx(
__in HIC hic, _In_ HIC hic,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in LPBITMAPINFOHEADER lpbiSrc, _In_ LPBITMAPINFOHEADER lpbiSrc,
__in_bcount(lpbiSrc->biSizeImage) LPVOID lpSrc, _In_reads_bytes_(lpbiSrc->biSizeImage) LPVOID lpSrc,
__in int xSrc, _In_ int xSrc,
__in int ySrc, _In_ int ySrc,
__in int dxSrc, _In_ int dxSrc,
__in int dySrc, _In_ int dySrc,
__in LPBITMAPINFOHEADER lpbiDst, _In_ LPBITMAPINFOHEADER lpbiDst,
__out_bcount(lpbiDst->biSizeImage) LPVOID lpDst, _Out_writes_bytes_(lpbiDst->biSizeImage) LPVOID lpDst,
__in int xDst, _In_ int xDst,
__in int yDst, _In_ int yDst,
__in int dxDst, _In_ int dxDst,
__in int dyDst) _In_ int dyDst)
{ {
ICDECOMPRESSEX ic; ICDECOMPRESSEX ic;
ic.dwFlags = dwFlags; ic.dwFlags = dwFlags;
ic.lpbiSrc = lpbiSrc; ic.lpbiSrc = lpbiSrc;
ic.lpSrc = lpSrc; ic.lpSrc = lpSrc;
ic.xSrc = xSrc; ic.xSrc = xSrc;
ic.ySrc = ySrc; ic.ySrc = ySrc;
ic.dxSrc = dxSrc; ic.dxSrc = dxSrc;
ic.dySrc = dySrc; ic.dySrc = dySrc;
skipping to change at line 887 skipping to change at line 892
/* /*
* ICDecompressExBegin() * ICDecompressExBegin()
* *
* start compression from a source format (lpbiInput) to a dest * start compression from a source format (lpbiInput) to a dest
* format (lpbiOutput) is supported. * format (lpbiOutput) is supported.
* *
*/ */
static __inline LRESULT VFWAPI_INLINE static __inline LRESULT VFWAPI_INLINE
ICDecompressExBegin( ICDecompressExBegin(
__in HIC hic, _In_ HIC hic,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in LPBITMAPINFOHEADER lpbiSrc, _In_ LPBITMAPINFOHEADER lpbiSrc,
__in_opt LPVOID lpSrc, _In_opt_ LPVOID lpSrc,
__in int xSrc, _In_ int xSrc,
__in int ySrc, _In_ int ySrc,
__in int dxSrc, _In_ int dxSrc,
__in int dySrc, _In_ int dySrc,
__in LPBITMAPINFOHEADER lpbiDst, _In_ LPBITMAPINFOHEADER lpbiDst,
__out_opt LPVOID lpDst, _Out_opt_ LPVOID lpDst,
__in int xDst, _In_ int xDst,
__in int yDst, _In_ int yDst,
__in int dxDst, _In_ int dxDst,
__in int dyDst) _In_ int dyDst)
{ {
ICDECOMPRESSEX ic; ICDECOMPRESSEX ic;
ic.dwFlags = dwFlags; ic.dwFlags = dwFlags;
ic.lpbiSrc = lpbiSrc; ic.lpbiSrc = lpbiSrc;
ic.lpSrc = lpSrc; ic.lpSrc = lpSrc;
ic.xSrc = xSrc; ic.xSrc = xSrc;
ic.ySrc = ySrc; ic.ySrc = ySrc;
ic.dxSrc = dxSrc; ic.dxSrc = dxSrc;
ic.dySrc = dySrc; ic.dySrc = dySrc;
skipping to change at line 929 skipping to change at line 934
// length in lparam2, pointer in lparam1 // length in lparam2, pointer in lparam1
return ICSendMessage(hic, ICM_DECOMPRESSEX_BEGIN, (DWORD_PTR)&ic, sizeof(ic) ); return ICSendMessage(hic, ICM_DECOMPRESSEX_BEGIN, (DWORD_PTR)&ic, sizeof(ic) );
} }
/* /*
* ICDecompressExQuery() * ICDecompressExQuery()
* *
*/ */
static __inline LRESULT VFWAPI_INLINE static __inline LRESULT VFWAPI_INLINE
ICDecompressExQuery( ICDecompressExQuery(
__in HIC hic, _In_ HIC hic,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in LPBITMAPINFOHEADER lpbiSrc, _In_ LPBITMAPINFOHEADER lpbiSrc,
__reserved LPVOID lpSrc, _Reserved_ LPVOID lpSrc,
__in int xSrc, _In_ int xSrc,
__in int ySrc, _In_ int ySrc,
__in int dxSrc, _In_ int dxSrc,
__in int dySrc, _In_ int dySrc,
__in_opt LPBITMAPINFOHEADER lpbiDst, _In_opt_ LPBITMAPINFOHEADER lpbiDst,
__out_opt LPVOID lpDst, _Out_opt_ LPVOID lpDst,
__in int xDst, _In_ int xDst,
__in int yDst, _In_ int yDst,
__in int dxDst, _In_ int dxDst,
__in int dyDst) _In_ int dyDst)
{ {
ICDECOMPRESSEX ic; ICDECOMPRESSEX ic;
ic.dwFlags = dwFlags; ic.dwFlags = dwFlags;
ic.lpbiSrc = lpbiSrc; ic.lpbiSrc = lpbiSrc;
ic.lpSrc = lpSrc; ic.lpSrc = lpSrc;
ic.xSrc = xSrc; ic.xSrc = xSrc;
ic.ySrc = ySrc; ic.ySrc = ySrc;
ic.dxSrc = dxSrc; ic.dxSrc = dxSrc;
ic.dySrc = dySrc; ic.dySrc = dySrc;
skipping to change at line 990 skipping to change at line 995
* *
*/ */
#define ICDRAW_QUERY 0x00000001L // test for support #define ICDRAW_QUERY 0x00000001L // test for support
#define ICDRAW_FULLSCREEN 0x00000002L // draw to full screen #define ICDRAW_FULLSCREEN 0x00000002L // draw to full screen
#define ICDRAW_HDC 0x00000004L // draw to a HDC/HWND #define ICDRAW_HDC 0x00000004L // draw to a HDC/HWND
DWORD DWORD
VFWAPIV VFWAPIV
ICDrawBegin( ICDrawBegin(
__in HIC hic, _In_ HIC hic,
__in DWORD dwFlags, // flags _In_ DWORD dwFlags, // flags
__in_opt HPALETTE hpal, // palette to draw with _In_opt_ HPALETTE hpal, // palette to draw with
__in_opt HWND hwnd, // window to draw to _In_opt_ HWND hwnd, // window to draw to
__in_opt HDC hdc, // HDC to draw to _In_opt_ HDC hdc, // HDC to draw to
__in int xDst, // destination rectangle _In_ int xDst, // destination rectangle
__in int yDst, _In_ int yDst,
__in int dxDst, _In_ int dxDst,
__in int dyDst, _In_ int dyDst,
__in LPBITMAPINFOHEADER lpbi, // format of frame to draw _In_ LPBITMAPINFOHEADER lpbi, // format of frame to draw
__in int xSrc, // source rectangle _In_ int xSrc, // source rectangle
__in int ySrc, _In_ int ySrc,
__in int dxSrc, _In_ int dxSrc,
__in int dySrc, _In_ int dySrc,
__in DWORD dwRate, // frames/second = (dwRate/dwSc _In_ DWORD dwRate, // frames/second = (dwRate/dwSc
ale) ale)
__in DWORD dwScale _In_ DWORD dwScale
); );
/* /*
* ICDraw() * ICDraw()
* *
* decompress data directly to the screen * decompress data directly to the screen
* *
*/ */
#define ICDRAW_HURRYUP 0x80000000L // don't draw just buffer (hurry up!) #define ICDRAW_HURRYUP 0x80000000L // don't draw just buffer (hurry up!)
#define ICDRAW_UPDATE 0x40000000L // don't draw just update screen #define ICDRAW_UPDATE 0x40000000L // don't draw just update screen
DWORD DWORD
VFWAPIV VFWAPIV
ICDraw( ICDraw(
__in HIC hic, _In_ HIC hic,
__in DWORD dwFlags, // flags _In_ DWORD dwFlags, // flags
__in LPVOID lpFormat, // format of frame _In_ LPVOID lpFormat, // format of frame
to decompress to decompress
__in_bcount_opt(cbData) LPVOID lpData, // frame data to d _In_reads_bytes_opt_(cbData) LPVOID lpData, // frame data
ecompress to decompress
__in DWORD cbData, // size of data _In_ DWORD cbData, // size of data
__in LONG lTime // time to draw th _In_ LONG lTime // time to draw th
is frame is frame
); );
// ICMessage is not supported on Win32, so provide a static inline function // ICMessage is not supported on Win32, so provide a static inline function
// to do the same job // to do the same job
static __inline LRESULT VFWAPI_INLINE static __inline LRESULT VFWAPI_INLINE
ICDrawSuggestFormat( ICDrawSuggestFormat(
__in HIC hic, _In_ HIC hic,
__in LPBITMAPINFOHEADER lpbiIn, _In_ LPBITMAPINFOHEADER lpbiIn,
__out LPBITMAPINFOHEADER lpbiOut, _Out_ LPBITMAPINFOHEADER lpbiOut,
__in int dxSrc, _In_ int dxSrc,
__in int dySrc, _In_ int dySrc,
__in int dxDst, _In_ int dxDst,
__in int dyDst, _In_ int dyDst,
__in HIC hicDecomp) _In_ HIC hicDecomp)
{ {
ICDRAWSUGGEST ic; ICDRAWSUGGEST ic;
ic.lpbiIn = lpbiIn; ic.lpbiIn = lpbiIn;
ic.lpbiSuggest = lpbiOut; ic.lpbiSuggest = lpbiOut;
ic.dxSrc = dxSrc; ic.dxSrc = dxSrc;
ic.dySrc = dySrc; ic.dySrc = dySrc;
ic.dxDst = dxDst; ic.dxDst = dxDst;
ic.dyDst = dyDst; ic.dyDst = dyDst;
ic.hicDecompressor = hicDecomp; ic.hicDecompressor = hicDecomp;
skipping to change at line 1118 skipping to change at line 1123
/* /*
* ICSetStatusProc() * ICSetStatusProc()
* *
* Set the status callback function * Set the status callback function
* *
*/ */
// ICMessage is not supported on NT // ICMessage is not supported on NT
static __inline LRESULT VFWAPI_INLINE static __inline LRESULT VFWAPI_INLINE
ICSetStatusProc( ICSetStatusProc(
__in HIC hic, _In_ HIC hic,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in LRESULT lParam, _In_ LRESULT lParam,
__in LONG (CALLBACK *fpfnStatus)(__in LPARAM, __in UINT, __in LONG) _In_ LONG (CALLBACK *fpfnStatus)(_In_ LPARAM, _In_ UINT, _In_ LONG)
) )
{ {
ICSETSTATUSPROC ic; ICSETSTATUSPROC ic;
ic.dwFlags = dwFlags; ic.dwFlags = dwFlags;
ic.lParam = lParam; ic.lParam = lParam;
ic.Status = fpfnStatus; ic.Status = fpfnStatus;
// note that ICM swaps round the length and pointer // note that ICM swaps round the length and pointer
// length in lparam2, pointer in lparam1 // length in lparam2, pointer in lparam1
return ICSendMessage(hic, ICM_SET_STATUS_PROC, (DWORD_PTR)&ic, sizeof(ic)); return ICSendMessage(hic, ICM_SET_STATUS_PROC, (DWORD_PTR)&ic, sizeof(ic));
skipping to change at line 1149 skipping to change at line 1154
#define ICDecompressOpen(fccType, fccHandler, lpbiIn, lpbiOut) \ #define ICDecompressOpen(fccType, fccHandler, lpbiIn, lpbiOut) \
ICLocate(fccType, fccHandler, lpbiIn, lpbiOut, ICMODE_DECOMPRESS) ICLocate(fccType, fccHandler, lpbiIn, lpbiOut, ICMODE_DECOMPRESS)
#define ICDrawOpen(fccType, fccHandler, lpbiIn) \ #define ICDrawOpen(fccType, fccHandler, lpbiIn) \
ICLocate(fccType, fccHandler, lpbiIn, NULL, ICMODE_DRAW) ICLocate(fccType, fccHandler, lpbiIn, NULL, ICMODE_DRAW)
HIC HIC
VFWAPI VFWAPI
ICLocate( ICLocate(
__in DWORD fccType, _In_ DWORD fccType,
__in DWORD fccHandler, _In_ DWORD fccHandler,
__in LPBITMAPINFOHEADER lpbiIn, _In_ LPBITMAPINFOHEADER lpbiIn,
__in_opt LPBITMAPINFOHEADER lpbiOut, _In_opt_ LPBITMAPINFOHEADER lpbiOut,
__in WORD wFlags _In_ WORD wFlags
); );
HIC HIC
VFWAPI VFWAPI
ICGetDisplayFormat( ICGetDisplayFormat(
__in_opt HIC hic, _In_opt_ HIC hic,
__in LPBITMAPINFOHEADER lpbiIn, _In_ LPBITMAPINFOHEADER lpbiIn,
__out LPBITMAPINFOHEADER lpbiOut, _Out_ LPBITMAPINFOHEADER lpbiOut,
__in int BitDepth, _In_ int BitDepth,
__in int dx, _In_ int dx,
__in int dy _In_ int dy
); );
/************************************************************************ /************************************************************************
Higher level functions Higher level functions
************************************************************************/ ************************************************************************/
HANDLE HANDLE
VFWAPI VFWAPI
ICImageCompress( ICImageCompress(
__in HIC hic, // compressor to use _In_ HIC hic, // compressor to use
__in UINT uiFlags, // flags (none yet) _In_ UINT uiFlags, // flags (none yet)
__in LPBITMAPINFO lpbiIn, // format to compress from _In_ LPBITMAPINFO lpbiIn, // format to compress from
__in LPVOID lpBits, // data to compress _In_ LPVOID lpBits, // data to compress
__in_opt LPBITMAPINFO lpbiOut, // compress to this (NULL ==> d _In_opt_ LPBITMAPINFO lpbiOut, // compress to this (NULL ==> d
efault) efault)
__in LONG lQuality, // quality to use _In_ LONG lQuality, // quality to use
__inout_opt LONG FAR * plSize // compress to this size (0=wha _Inout_opt_ LONG FAR * plSize // compress to this size (0=wha
tever) tever)
); );
HANDLE HANDLE
VFWAPI VFWAPI
ICImageDecompress( ICImageDecompress(
__in_opt HIC hic, // compressor to use _In_opt_ HIC hic, // compressor to use
__in UINT uiFlags, // flags (none yet) _In_ UINT uiFlags, // flags (none yet)
__in LPBITMAPINFO lpbiIn, // format to decompress from _In_ LPBITMAPINFO lpbiIn, // format to decompress from
__in LPVOID lpBits, // data to decompress _In_ LPVOID lpBits, // data to decompress
__in_opt LPBITMAPINFO lpbiOut // decompress to this (NULL ==> def _In_opt_ LPBITMAPINFO lpbiOut // decompress to this (NULL ==> def
ault) ault)
); );
// //
// Structure used by ICSeqCompressFrame and ICCompressorChoose routines // Structure used by ICSeqCompressFrame and ICCompressorChoose routines
// Make sure this matches the autodoc in icm.c! // Make sure this matches the autodoc in icm.c!
// //
typedef struct { typedef struct {
LONG cbSize; // set to sizeof(COMPVARS) before LONG cbSize; // set to sizeof(COMPVARS) before
// calling ICCompressorChoose // calling ICCompressorChoose
DWORD dwFlags; // see below... DWORD dwFlags; // see below...
skipping to change at line 1228 skipping to change at line 1233
// FLAGS for dwFlags element of COMPVARS structure: // FLAGS for dwFlags element of COMPVARS structure:
// set this flag if you initialize COMPVARS before calling ICCompressorChoose // set this flag if you initialize COMPVARS before calling ICCompressorChoose
#define ICMF_COMPVARS_VALID 0x00000001 // COMPVARS contains valid data #define ICMF_COMPVARS_VALID 0x00000001 // COMPVARS contains valid data
// //
// allows user to choose compressor, quality etc... // allows user to choose compressor, quality etc...
// //
BOOL BOOL
VFWAPI VFWAPI
ICCompressorChoose( ICCompressorChoose(
__in_opt HWND hwnd, // parent window for dialog _In_opt_ HWND hwnd, // parent window for dialog
__in UINT uiFlags, // flags _In_ UINT uiFlags, // flags
__in_opt LPVOID pvIn, // input format (optional) _In_opt_ LPVOID pvIn, // input format (optional)
__in_opt LPVOID lpData, // input data (optional) _In_opt_ LPVOID lpData, // input data (optional)
__inout PCOMPVARS pc, // data about the compressor/dlg _Inout_ PCOMPVARS pc, // data about the compressor/dlg
__in_opt LPSTR lpszTitle // dialog title (optional) _In_opt_ LPSTR lpszTitle // dialog title (optional)
); );
// defines for uiFlags // defines for uiFlags
#define ICMF_CHOOSE_KEYFRAME 0x0001 // show KeyFrame Every box #define ICMF_CHOOSE_KEYFRAME 0x0001 // show KeyFrame Every box
#define ICMF_CHOOSE_DATARATE 0x0002 // show DataRate box #define ICMF_CHOOSE_DATARATE 0x0002 // show DataRate box
#define ICMF_CHOOSE_PREVIEW 0x0004 // allow expanded preview dialog #define ICMF_CHOOSE_PREVIEW 0x0004 // allow expanded preview dialog
#define ICMF_CHOOSE_ALLCOMPRESSORS 0x0008 // don't only show those that #define ICMF_CHOOSE_ALLCOMPRESSORS 0x0008 // don't only show those that
// can handle the input format // can handle the input format
// or input data // or input data
BOOL BOOL
VFWAPI VFWAPI
ICSeqCompressFrameStart( ICSeqCompressFrameStart(
__in PCOMPVARS pc, _In_ PCOMPVARS pc,
__in LPBITMAPINFO lpbiIn _In_ LPBITMAPINFO lpbiIn
); );
void void
VFWAPI VFWAPI
ICSeqCompressFrameEnd( ICSeqCompressFrameEnd(
__in PCOMPVARS pc _In_ PCOMPVARS pc
); );
LPVOID LPVOID
VFWAPI VFWAPI
ICSeqCompressFrame( ICSeqCompressFrame(
__in PCOMPVARS pc, // set by ICCompressorChoose _In_ PCOMPVARS pc, // set by ICCompressorChoose
__reserved UINT uiFlags, // flags _Reserved_ UINT uiFlags, // flags
__in LPVOID lpBits, // input DIB bits _In_ LPVOID lpBits, // input DIB bits
__out BOOL FAR *pfKey, // did it end up being a key _Out_ BOOL FAR *pfKey, // did it end up being a key
frame? frame?
__inout_opt LONG FAR *plSize // size to compress to/of ret _Inout_opt_ LONG FAR *plSize // size to compress to/of ret
urned image urned image
); );
void void
VFWAPI VFWAPI
ICCompressorFree( ICCompressorFree(
__in PCOMPVARS pc _In_ PCOMPVARS pc
); );
#endif /* NOCOMPMAN */ #endif /* NOCOMPMAN */
/************************************************************************** /**************************************************************************
* *
* DRAWDIB - Routines for drawing to the display. * DRAWDIB - Routines for drawing to the display.
* *
*************************************************************************/ *************************************************************************/
skipping to change at line 1334 skipping to change at line 1339
extern HDRAWDIB VFWAPI DrawDibOpen(void); extern HDRAWDIB VFWAPI DrawDibOpen(void);
/* /*
** DrawDibClose() ** DrawDibClose()
** **
*/ */
extern extern
BOOL BOOL
VFWAPI VFWAPI
DrawDibClose( DrawDibClose(
__in HDRAWDIB hdd _In_ HDRAWDIB hdd
); );
/* /*
** DrawDibGetBuffer() ** DrawDibGetBuffer()
** **
*/ */
extern extern
LPVOID LPVOID
VFWAPI VFWAPI
DrawDibGetBuffer( DrawDibGetBuffer(
__in HDRAWDIB hdd, _In_ HDRAWDIB hdd,
__out LPBITMAPINFOHEADER lpbi, _Out_ LPBITMAPINFOHEADER lpbi,
__in DWORD dwSize, _In_ DWORD dwSize,
__in DWORD dwFlags _In_ DWORD dwFlags
); );
/* // ;Internal /* // ;Internal
** DrawDibError() // ;Internal ** DrawDibError() // ;Internal
*/ // ;Internal */ // ;Internal
extern UINT VFWAPI DrawDibError(HDRAWDIB hdd); // ;Internal extern UINT VFWAPI DrawDibError(HDRAWDIB hdd); // ;Internal
// ;Internal // ;Internal
/* /*
** DrawDibGetPalette() ** DrawDibGetPalette()
** **
** get the palette used for drawing DIBs ** get the palette used for drawing DIBs
** **
*/ */
extern extern
HPALETTE HPALETTE
VFWAPI VFWAPI
DrawDibGetPalette( DrawDibGetPalette(
__in HDRAWDIB hdd _In_ HDRAWDIB hdd
); );
/* /*
** DrawDibSetPalette() ** DrawDibSetPalette()
** **
** get the palette used for drawing DIBs ** get the palette used for drawing DIBs
** **
*/ */
extern extern
BOOL BOOL
VFWAPI VFWAPI
DrawDibSetPalette( DrawDibSetPalette(
__in HDRAWDIB hdd, _In_ HDRAWDIB hdd,
__in_opt HPALETTE hpal _In_opt_ HPALETTE hpal
); );
/* /*
** DrawDibChangePalette() ** DrawDibChangePalette()
*/ */
extern extern
BOOL BOOL
VFWAPI VFWAPI
DrawDibChangePalette( DrawDibChangePalette(
__in HDRAWDIB hdd, _In_ HDRAWDIB hdd,
__in int iStart, _In_ int iStart,
__in int iLen, _In_ int iLen,
__in_ecount(iLen) LPPALETTEENTRY lppe _In_reads_(iLen) LPPALETTEENTRY lppe
); );
/* /*
** DrawDibRealize() ** DrawDibRealize()
** **
** realize the palette in a HDD ** realize the palette in a HDD
** **
*/ */
extern extern
UINT UINT
VFWAPI VFWAPI
DrawDibRealize( DrawDibRealize(
__in HDRAWDIB hdd, _In_ HDRAWDIB hdd,
__in HDC hdc, _In_ HDC hdc,
__in BOOL fBackground _In_ BOOL fBackground
); );
/* /*
** DrawDibStart() ** DrawDibStart()
** **
** start of streaming playback ** start of streaming playback
** **
*/ */
extern extern
BOOL BOOL
VFWAPI VFWAPI
DrawDibStart( DrawDibStart(
__in HDRAWDIB hdd, _In_ HDRAWDIB hdd,
__in DWORD rate _In_ DWORD rate
); );
/* /*
** DrawDibStop() ** DrawDibStop()
** **
** start of streaming playback ** start of streaming playback
** **
*/ */
extern extern
BOOL BOOL
VFWAPI VFWAPI
DrawDibStop( DrawDibStop(
__in HDRAWDIB hdd _In_ HDRAWDIB hdd
); );
/* /*
** DrawDibBegin() ** DrawDibBegin()
** **
** prepare to draw ** prepare to draw
** **
*/ */
extern extern
BOOL BOOL
VFWAPI VFWAPI
DrawDibBegin( DrawDibBegin(
__in HDRAWDIB hdd, _In_ HDRAWDIB hdd,
__in_opt HDC hdc, _In_opt_ HDC hdc,
__in int dxDst, _In_ int dxDst,
__in int dyDst, _In_ int dyDst,
__in LPBITMAPINFOHEADER lpbi, _In_ LPBITMAPINFOHEADER lpbi,
__in int dxSrc, _In_ int dxSrc,
__in int dySrc, _In_ int dySrc,
__in UINT wFlags _In_ UINT wFlags
); );
/* /*
** DrawDibDraw() ** DrawDibDraw()
** **
** actualy draw a DIB to the screen. ** actualy draw a DIB to the screen.
** **
*/ */
extern extern
BOOL BOOL
VFWAPI VFWAPI
DrawDibDraw( DrawDibDraw(
__in HDRAWDIB hdd, _In_ HDRAWDIB hdd,
__in HDC hdc, _In_ HDC hdc,
__in int xDst, _In_ int xDst,
__in int yDst, _In_ int yDst,
__in int dxDst, _In_ int dxDst,
__in int dyDst, _In_ int dyDst,
__in_opt LPBITMAPINFOHEADER lpbi, _In_opt_ LPBITMAPINFOHEADER lpbi,
__in_opt LPVOID lpBits, _In_opt_ LPVOID lpBits,
__in int xSrc, _In_ int xSrc,
__in int ySrc, _In_ int ySrc,
__in int dxSrc, _In_ int dxSrc,
__in int dySrc, _In_ int dySrc,
__in UINT wFlags _In_ UINT wFlags
); );
/* /*
** DrawDibUpdate() ** DrawDibUpdate()
** **
** redraw the last image (may only be valid with DDF_BUFFER) ** redraw the last image (may only be valid with DDF_BUFFER)
*/ */
#define DrawDibUpdate(hdd, hdc, x, y) \ #define DrawDibUpdate(hdd, hdc, x, y) \
DrawDibDraw(hdd, hdc, x, y, 0, 0, NULL, NULL, 0, 0, 0, 0, DDF_UPDATE) DrawDibDraw(hdd, hdc, x, y, 0, 0, NULL, NULL, 0, 0, 0, 0, DDF_UPDATE)
/* /*
** DrawDibEnd() ** DrawDibEnd()
*/ */
extern extern
BOOL BOOL
VFWAPI VFWAPI
DrawDibEnd( DrawDibEnd(
__in HDRAWDIB hdd _In_ HDRAWDIB hdd
); );
/* /*
** DrawDibTime() [for debugging purposes only] ** DrawDibTime() [for debugging purposes only]
*/ */
typedef struct { typedef struct {
LONG timeCount; LONG timeCount;
LONG timeDraw; LONG timeDraw;
LONG timeDecompress; LONG timeDecompress;
LONG timeDither; LONG timeDither;
LONG timeStretch; LONG timeStretch;
LONG timeBlt; LONG timeBlt;
LONG timeSetDIBits; LONG timeSetDIBits;
} DRAWDIBTIME, FAR *LPDRAWDIBTIME; } DRAWDIBTIME, FAR *LPDRAWDIBTIME;
BOOL BOOL
VFWAPI VFWAPI
DrawDibTime( DrawDibTime(
__in HDRAWDIB hdd, _In_ HDRAWDIB hdd,
__out LPDRAWDIBTIME lpddtime _Out_ LPDRAWDIBTIME lpddtime
); );
/* display profiling */ /* display profiling */
#define PD_CAN_DRAW_DIB 0x0001 /* if you can draw at all */ #define PD_CAN_DRAW_DIB 0x0001 /* if you can draw at all */
#define PD_CAN_STRETCHDIB 0x0002 /* basicly RC_STRETCHDIB */ #define PD_CAN_STRETCHDIB 0x0002 /* basicly RC_STRETCHDIB */
#define PD_STRETCHDIB_1_1_OK 0x0004 /* is it fast? */ #define PD_STRETCHDIB_1_1_OK 0x0004 /* is it fast? */
#define PD_STRETCHDIB_1_2_OK 0x0008 /* ... */ #define PD_STRETCHDIB_1_2_OK 0x0008 /* ... */
#define PD_STRETCHDIB_1_N_OK 0x0010 /* ... */ #define PD_STRETCHDIB_1_N_OK 0x0010 /* ... */
LRESULT LRESULT
VFWAPI VFWAPI
DrawDibProfileDisplay( DrawDibProfileDisplay(
__in LPBITMAPINFOHEADER lpbi _In_ LPBITMAPINFOHEADER lpbi
); );
#ifdef DRAWDIB_INCLUDE_STRETCHDIB #ifdef DRAWDIB_INCLUDE_STRETCHDIB
void WINAPI StretchDIB( void WINAPI StretchDIB(
__in LPBITMAPINFOHEADER biDst, _In_ LPBITMAPINFOHEADER biDst,
__out LPVOID lpDst, _Out_ LPVOID lpDst,
__in int DstX, _In_ int DstX,
__in int DstY, _In_ int DstY,
__in int DstXE, _In_ int DstXE,
__in int DstYE, _In_ int DstYE,
__in LPBITMAPINFOHEADER biSrc, _In_ LPBITMAPINFOHEADER biSrc,
__in LPVOID lpSrc, _In_ LPVOID lpSrc,
__in int SrcX, _In_ int SrcX,
__in int SrcY, _In_ int SrcY,
__in int SrcXE, _In_ int SrcXE,
__in int SrcYE); _In_ int SrcYE);
#endif #endif
#endif /* NODRAWDIB */ #endif /* NODRAWDIB */
/**************************************************************************** /****************************************************************************
* *
* AVIFMT - AVI file format definitions * AVIFMT - AVI file format definitions
* *
****************************************************************************/ ****************************************************************************/
skipping to change at line 2040 skipping to change at line 2045
/* - - - - - - - - */ /* - - - - - - - - */
/****** AVI Stream Interface *******************************************/ /****** AVI Stream Interface *******************************************/
#undef INTERFACE #undef INTERFACE
#define INTERFACE IAVIStream #define INTERFACE IAVIStream
DECLARE_INTERFACE_(IAVIStream, IUnknown) DECLARE_INTERFACE_(IAVIStream, IUnknown)
{ {
// *** IUnknown methods *** // *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, __deref_out LPVOID FAR* ppvObj ) PURE; STDMETHOD(QueryInterface) (THIS_ REFIID riid, _Outptr_ LPVOID FAR* ppvObj) P URE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IAVIStream methods *** // *** IAVIStream methods ***
STDMETHOD(Create) (THIS_ LPARAM lParam1, LPARAM lParam2) PURE ; STDMETHOD(Create) (THIS_ LPARAM lParam1, LPARAM lParam2) PURE ;
STDMETHOD(Info) (THIS_ __out_bcount(lSize) AVISTREAMINFOW FAR * psi, STDMETHOD(Info) (THIS_ _Out_writes_bytes_(lSize) AVISTREAMINFOW FAR *
__in LONG lSize) PURE ; psi, _In_ LONG lSize) PURE ;
STDMETHOD_(LONG, FindSample)(THIS_ __in LONG lPos, __in LONG lFlags) PURE ; STDMETHOD_(LONG, FindSample)(THIS_ _In_ LONG lPos, _In_ LONG lFlags) PURE ;
STDMETHOD(ReadFormat) (THIS_ __in LONG lPos, STDMETHOD(ReadFormat) (THIS_ _In_ LONG lPos,
__out_bcount_part_opt(*lpcbFormat, *lpcbFormat) LPVOI _Out_writes_bytes_to_opt_(*lpcbFormat, *lpcbFormat) L
D lpFormat, __inout LONG FAR *lpcbFormat) PURE ; PVOID lpFormat, _Inout_ LONG FAR *lpcbFormat) PURE ;
STDMETHOD(SetFormat) (THIS_ __in LONG lPos, STDMETHOD(SetFormat) (THIS_ _In_ LONG lPos,
__in_bcount(cbFormat) LPVOID lpFormat, __in LONG cbFo _In_reads_bytes_(cbFormat) LPVOID lpFormat, _In_ LONG
rmat) PURE ; cbFormat) PURE ;
STDMETHOD(Read) (THIS_ __in LONG lStart, __in LONG lSamples, STDMETHOD(Read) (THIS_ _In_ LONG lStart, _In_ LONG lSamples,
__out_bcount_opt(cbBuffer) LPVOID lpBuffer, __in LONG _Out_writes_bytes_opt_(cbBuffer) LPVOID lpBuffer, _In
cbBuffer, _ LONG cbBuffer,
__out_opt LONG FAR * plBytes, __out_opt LONG FAR * pl _Out_opt_ LONG FAR * plBytes, _Out_opt_ LONG FAR * pl
Samples) PURE ; Samples) PURE ;
STDMETHOD(Write) (THIS_ __in LONG lStart, __in LONG lSamples, STDMETHOD(Write) (THIS_ _In_ LONG lStart, _In_ LONG lSamples,
__in_bcount(cbBuffer) LPVOID lpBuffer, __in LONG cbBu _In_reads_bytes_(cbBuffer) LPVOID lpBuffer, _In_ LONG
ffer, cbBuffer,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__out_opt LONG FAR *plSampWritten, _Out_opt_ LONG FAR *plSampWritten,
__out_opt LONG FAR *plBytesWritten) PURE ; _Out_opt_ LONG FAR *plBytesWritten) PURE ;
STDMETHOD(Delete) (THIS_ __in LONG lStart, __in LONG lSamples) PURE; STDMETHOD(Delete) (THIS_ _In_ LONG lStart, _In_ LONG lSamples) PURE;
STDMETHOD(ReadData) (THIS_ __in DWORD fcc, __out_bcount_part_opt(*lpcb, * STDMETHOD(ReadData) (THIS_ _In_ DWORD fcc, _Out_writes_bytes_to_opt_(*lpc
lpcb) LPVOID lp, __inout LONG FAR *lpcb) PURE ; b, *lpcb) LPVOID lp, _Inout_ LONG FAR *lpcb) PURE ;
STDMETHOD(WriteData) (THIS_ __in DWORD fcc, __in_bcount(cb) LPVOID lp, __i STDMETHOD(WriteData) (THIS_ _In_ DWORD fcc, _In_reads_bytes_(cb) LPVOID lp
n LONG cb) PURE ; , _In_ LONG cb) PURE ;
#ifdef _WIN32 #ifdef _WIN32
STDMETHOD(SetInfo) (THIS_ __in_bcount(cbInfo) AVISTREAMINFOW FAR * lpInfo, STDMETHOD(SetInfo) (THIS_ _In_reads_bytes_(cbInfo) AVISTREAMINFOW FAR * lpIn
__in LONG cbInfo) PURE; fo,
_In_ LONG cbInfo) PURE;
#else #else
STDMETHOD(Reserved1) (THIS) PURE; STDMETHOD(Reserved1) (THIS) PURE;
STDMETHOD(Reserved2) (THIS) PURE; STDMETHOD(Reserved2) (THIS) PURE;
STDMETHOD(Reserved3) (THIS) PURE; STDMETHOD(Reserved3) (THIS) PURE;
STDMETHOD(Reserved4) (THIS) PURE; STDMETHOD(Reserved4) (THIS) PURE;
STDMETHOD(Reserved5) (THIS) PURE; STDMETHOD(Reserved5) (THIS) PURE;
#endif #endif
}; };
typedef IAVIStream FAR* PAVISTREAM; typedef IAVIStream FAR* PAVISTREAM;
#undef INTERFACE #undef INTERFACE
#define INTERFACE IAVIStreaming #define INTERFACE IAVIStreaming
DECLARE_INTERFACE_(IAVIStreaming, IUnknown) DECLARE_INTERFACE_(IAVIStreaming, IUnknown)
{ {
// *** IUnknown methods *** // *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, __deref_out LPVOID FAR* ppvObj ) PURE; STDMETHOD(QueryInterface) (THIS_ REFIID riid, _Outptr_ LPVOID FAR* ppvObj) P URE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IAVIStreaming methods *** // *** IAVIStreaming methods ***
STDMETHOD(Begin) (THIS_ STDMETHOD(Begin) (THIS_
__in LONG lStart, // start of what we expect _In_ LONG lStart, // start of what we expect
// to play // to play
__in LONG lEnd, // expected end, or -1 _In_ LONG lEnd, // expected end, or -1
__in LONG lRate) PURE; // Should this be a float? _In_ LONG lRate) PURE; // Should this be a float?
STDMETHOD(End) (THIS) PURE; STDMETHOD(End) (THIS) PURE;
}; };
typedef IAVIStreaming FAR* PAVISTREAMING; typedef IAVIStreaming FAR* PAVISTREAMING;
#undef INTERFACE #undef INTERFACE
#define INTERFACE IAVIEditStream #define INTERFACE IAVIEditStream
DECLARE_INTERFACE_(IAVIEditStream, IUnknown) DECLARE_INTERFACE_(IAVIEditStream, IUnknown)
{ {
// *** IUnknown methods *** // *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, __deref_out LPVOID FAR* ppvObj ) PURE; STDMETHOD(QueryInterface) (THIS_ REFIID riid, _Outptr_ LPVOID FAR* ppvObj) P URE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IAVIEditStream methods *** // *** IAVIEditStream methods ***
STDMETHOD(Cut) (THIS_ __inout LONG FAR *plStart, STDMETHOD(Cut) (THIS_ _Inout_ LONG FAR *plStart,
__inout LONG FAR *plLength, _Inout_ LONG FAR *plLength,
__deref_out PAVISTREAM FAR * ppResult) PURE; _Outptr_ PAVISTREAM FAR * ppResult) PURE;
STDMETHOD(Copy) (THIS_ __inout LONG FAR *plStart, STDMETHOD(Copy) (THIS_ _Inout_ LONG FAR *plStart,
__inout LONG FAR *plLength, _Inout_ LONG FAR *plLength,
__deref_out PAVISTREAM FAR * ppResult) PURE; _Outptr_ PAVISTREAM FAR * ppResult) PURE;
STDMETHOD(Paste) (THIS_ __inout LONG FAR *plPos, STDMETHOD(Paste) (THIS_ _Inout_ LONG FAR *plPos,
__inout LONG FAR *plLength, _Inout_ LONG FAR *plLength,
__inout PAVISTREAM pstream, _Inout_ PAVISTREAM pstream,
__in LONG lStart, _In_ LONG lStart,
__in LONG lEnd) PURE; _In_ LONG lEnd) PURE;
STDMETHOD(Clone) (THIS_ __deref_out PAVISTREAM FAR *ppResult) PURE; STDMETHOD(Clone) (THIS_ _Outptr_ PAVISTREAM FAR *ppResult) PURE;
STDMETHOD(SetInfo) (THIS_ __in_bcount(cbInfo) AVISTREAMINFOW FAR * lpInfo, STDMETHOD(SetInfo) (THIS_ _In_reads_bytes_(cbInfo) AVISTREAMINFOW FAR * lpIn
__in LONG cbInfo) PURE; fo,
_In_ LONG cbInfo) PURE;
}; };
typedef IAVIEditStream FAR* PAVIEDITSTREAM; typedef IAVIEditStream FAR* PAVIEDITSTREAM;
/****** AVI File Interface *******************************************/ /****** AVI File Interface *******************************************/
#undef INTERFACE #undef INTERFACE
#define INTERFACE IAVIPersistFile #define INTERFACE IAVIPersistFile
DECLARE_INTERFACE_(IAVIPersistFile, IPersistFile) DECLARE_INTERFACE_(IAVIPersistFile, IPersistFile)
skipping to change at line 2146 skipping to change at line 2151
typedef IAVIPersistFile FAR* PAVIPERSISTFILE; typedef IAVIPersistFile FAR* PAVIPERSISTFILE;
#undef INTERFACE #undef INTERFACE
#define INTERFACE IAVIFile #define INTERFACE IAVIFile
#define PAVIFILE IAVIFile FAR* #define PAVIFILE IAVIFile FAR*
DECLARE_INTERFACE_(IAVIFile, IUnknown) DECLARE_INTERFACE_(IAVIFile, IUnknown)
{ {
// *** IUnknown methods *** // *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, __deref_out LPVOID FAR* ppvObj ) PURE; STDMETHOD(QueryInterface) (THIS_ REFIID riid, _Outptr_ LPVOID FAR* ppvObj) P URE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IAVIFile methods *** // *** IAVIFile methods ***
STDMETHOD(Info) (THIS_ STDMETHOD(Info) (THIS_
__out_bcount(lSize) AVIFILEINFOW FAR * pfi, _Out_writes_bytes_(lSize) AVIFILEINFOW FAR
__in LONG lSize) PURE; * pfi,
_In_ LONG lSize) PURE;
STDMETHOD(GetStream) (THIS_ STDMETHOD(GetStream) (THIS_
__deref_out PAVISTREAM FAR * ppStream, _Outptr_ PAVISTREAM FAR * ppStream,
__in DWORD fccType, _In_ DWORD fccType,
__in LONG lParam) PURE; _In_ LONG lParam) PURE;
STDMETHOD(CreateStream) (THIS_ STDMETHOD(CreateStream) (THIS_
__deref_out PAVISTREAM FAR * ppStream, _Outptr_ PAVISTREAM FAR * ppStream,
__in AVISTREAMINFOW FAR * psi) PURE; _In_ AVISTREAMINFOW FAR * psi) PURE;
STDMETHOD(WriteData) (THIS_ STDMETHOD(WriteData) (THIS_
__in DWORD ckid, _In_ DWORD ckid,
__in_bcount(cbData) LPVOID lpData, _In_reads_bytes_(cbData) LPVOID lpData,
__in LONG cbData) PURE; _In_ LONG cbData) PURE;
STDMETHOD(ReadData) (THIS_ STDMETHOD(ReadData) (THIS_
__in DWORD ckid, _In_ DWORD ckid,
__out_bcount_part(*lpcbData, *lpcbData) LPV _Out_writes_bytes_to_(*lpcbData, *lpcbData)
OID lpData, LPVOID lpData,
__inout LONG FAR *lpcbData) PURE; _Inout_ LONG FAR *lpcbData) PURE;
STDMETHOD(EndRecord) (THIS) PURE; STDMETHOD(EndRecord) (THIS) PURE;
STDMETHOD(DeleteStream) (THIS_ STDMETHOD(DeleteStream) (THIS_
__in DWORD fccType, _In_ DWORD fccType,
__in LONG lParam) PURE; _In_ LONG lParam) PURE;
}; };
#undef PAVIFILE #undef PAVIFILE
typedef IAVIFile FAR* PAVIFILE; typedef IAVIFile FAR* PAVIFILE;
/****** GetFrame Interface *******************************************/ /****** GetFrame Interface *******************************************/
#undef INTERFACE #undef INTERFACE
#define INTERFACE IGetFrame #define INTERFACE IGetFrame
#define PGETFRAME IGetFrame FAR* #define PGETFRAME IGetFrame FAR*
DECLARE_INTERFACE_(IGetFrame, IUnknown) DECLARE_INTERFACE_(IGetFrame, IUnknown)
{ {
// *** IUnknown methods *** // *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, __deref_out LPVOID FAR* ppvObj ) PURE; STDMETHOD(QueryInterface) (THIS_ REFIID riid, _Outptr_ LPVOID FAR* ppvObj) P URE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IGetFrame methods *** // *** IGetFrame methods ***
STDMETHOD_(LPVOID,GetFrame) (THIS_ __in LONG lPos) PURE; STDMETHOD_(LPVOID,GetFrame) (THIS_ _In_ LONG lPos) PURE;
// STDMETHOD_(LPVOID,GetFrameData) (THIS_ __in LONG lPos) PURE; // STDMETHOD_(LPVOID,GetFrameData) (THIS_ _In_ LONG lPos) PURE;
STDMETHOD(Begin) (THIS_ __in LONG lStart, __in LONG lEnd, __in LONG lRate) P URE; STDMETHOD(Begin) (THIS_ _In_ LONG lStart, _In_ LONG lEnd, _In_ LONG lRate) P URE;
STDMETHOD(End) (THIS) PURE; STDMETHOD(End) (THIS) PURE;
STDMETHOD(SetFormat) (THIS_ __in LPBITMAPINFOHEADER lpbi, __in_opt LPVOID lp Bits, __in int x, __in int y, __in int dx, __in int dy) PURE; STDMETHOD(SetFormat) (THIS_ _In_ LPBITMAPINFOHEADER lpbi, _In_opt_ LPVOID lp Bits, _In_ int x, _In_ int y, _In_ int dx, _In_ int dy) PURE;
// STDMETHOD(DrawFrameStart) (THIS) PURE; // STDMETHOD(DrawFrameStart) (THIS) PURE;
// STDMETHOD(DrawFrame) (THIS_ __in LONG lPos, HDC hdc, __in int x, __in int y, __in int dx, __in int dy) PURE; // STDMETHOD(DrawFrame) (THIS_ _In_ LONG lPos, HDC hdc, _In_ int x, _In_ int y, _In_ int dx, _In_ int dy) PURE;
// STDMETHOD(DrawFrameEnd) (THIS) PURE; // STDMETHOD(DrawFrameEnd) (THIS) PURE;
}; };
#undef PGETFRAME #undef PGETFRAME
typedef IGetFrame FAR* PGETFRAME; typedef IGetFrame FAR* PGETFRAME;
/****** GUIDs *******************************************/ /****** GUIDs *******************************************/
#define DEFINE_AVIGUID(name, l, w1, w2) \ #define DEFINE_AVIGUID(name, l, w1, w2) \
DEFINE_GUID(name, l, w1, w2, 0xC0,0,0,0,0,0,0,0x46) DEFINE_GUID(name, l, w1, w2, 0xC0,0,0,0,0,0,0,0x46)
skipping to change at line 2241 skipping to change at line 2246
// functions // functions
// //
STDAPI_(void) AVIFileInit(void); // Call this first! STDAPI_(void) AVIFileInit(void); // Call this first!
STDAPI_(void) AVIFileExit(void); STDAPI_(void) AVIFileExit(void);
STDAPI_(ULONG) AVIFileAddRef (PAVIFILE pfile); STDAPI_(ULONG) AVIFileAddRef (PAVIFILE pfile);
STDAPI_(ULONG) AVIFileRelease (PAVIFILE pfile); STDAPI_(ULONG) AVIFileRelease (PAVIFILE pfile);
#ifdef _WIN32 #ifdef _WIN32
STDAPI AVIFileOpenA (__deref_out PAVIFILE FAR * ppfile, __in LPCSTR szFile STDAPI AVIFileOpenA (_Outptr_ PAVIFILE FAR * ppfile, _In_ LPCSTR szFile,
, UINT uMode, _In_opt_ LPCLSID lpHandler);
UINT uMode, __in_opt LPCLSID lpHandler); STDAPI AVIFileOpenW (_Outptr_ PAVIFILE FAR * ppfile, _In_ LPCWSTR szFile,
STDAPI AVIFileOpenW (__deref_out PAVIFILE FAR * ppfile, __in LPCWSTR szFil UINT uMode, _In_opt_ LPCLSID lpHandler);
e,
UINT uMode, __in_opt LPCLSID lpHandler);
#ifdef UNICODE #ifdef UNICODE
#define AVIFileOpen AVIFileOpenW #define AVIFileOpen AVIFileOpenW
#else #else
#define AVIFileOpen AVIFileOpenA #define AVIFileOpen AVIFileOpenA
#endif #endif
#else // win16 #else // win16
STDAPI AVIFileOpen (PAVIFILE FAR * ppfile, LPCSTR szFile, STDAPI AVIFileOpen (PAVIFILE FAR * ppfile, LPCSTR szFile,
UINT uMode, LPCLSID lpHandler); UINT uMode, LPCLSID lpHandler);
#define AVIFileOpenW AVIFileOpen /* ;Internal */ #define AVIFileOpenW AVIFileOpen /* ;Internal */
#endif #endif
#ifdef _WIN32 #ifdef _WIN32
STDAPI AVIFileInfoW (__in PAVIFILE pfile, __out_bcount(lSize) LPAVIFILEINFOW pfi STDAPI AVIFileInfoW (_In_ PAVIFILE pfile, _Out_writes_bytes_(lSize) LPAVIFILEINF
, __in LONG lSize); OW pfi, _In_ LONG lSize);
STDAPI AVIFileInfoA (__in PAVIFILE pfile, __out_bcount(lSize) LPAVIFILEINFOA pfi STDAPI AVIFileInfoA (_In_ PAVIFILE pfile, _Out_writes_bytes_(lSize) LPAVIFILEINF
, __in LONG lSize); OA pfi, _In_ LONG lSize);
#ifdef UNICODE #ifdef UNICODE
#define AVIFileInfo AVIFileInfoW #define AVIFileInfo AVIFileInfoW
#else #else
#define AVIFileInfo AVIFileInfoA #define AVIFileInfo AVIFileInfoA
#endif #endif
#else //win16 version #else //win16 version
STDAPI AVIFileInfo (PAVIFILE pfile, LPAVIFILEINFO pfi, LONG lSize); STDAPI AVIFileInfo (PAVIFILE pfile, LPAVIFILEINFO pfi, LONG lSize);
#define AVIFileInfoW AVIFileInfo /* ;Internal */ #define AVIFileInfoW AVIFileInfo /* ;Internal */
#endif #endif
STDAPI AVIFileGetStream (__in PAVIFILE pfile, __deref_out PAVISTREAM FAR * p pavi, __in DWORD fccType, __in LONG lParam); STDAPI AVIFileGetStream (_In_ PAVIFILE pfile, _Outptr_ PAVISTREAM FAR * ppav i, _In_ DWORD fccType, _In_ LONG lParam);
#ifdef _WIN32 #ifdef _WIN32
STDAPI AVIFileCreateStreamW (__in PAVIFILE pfile, __deref_out PAVISTREAM FAR *pp STDAPI AVIFileCreateStreamW (_In_ PAVIFILE pfile, _Outptr_ PAVISTREAM FAR *ppavi
avi, __in AVISTREAMINFOW FAR * psi); , _In_ AVISTREAMINFOW FAR * psi);
STDAPI AVIFileCreateStreamA (__in PAVIFILE pfile, __deref_out PAVISTREAM FAR *pp STDAPI AVIFileCreateStreamA (_In_ PAVIFILE pfile, _Outptr_ PAVISTREAM FAR *ppavi
avi, __in AVISTREAMINFOA FAR * psi); , _In_ AVISTREAMINFOA FAR * psi);
#ifdef UNICODE #ifdef UNICODE
#define AVIFileCreateStream AVIFileCreateStreamW #define AVIFileCreateStream AVIFileCreateStreamW
#else #else
#define AVIFileCreateStream AVIFileCreateStreamA #define AVIFileCreateStream AVIFileCreateStreamA
#endif #endif
#else //win16 version #else //win16 version
STDAPI AVIFileCreateStream(PAVIFILE pfile, PAVISTREAM FAR *ppavi, AVISTREAMINFO FAR * psi); STDAPI AVIFileCreateStream(PAVIFILE pfile, PAVISTREAM FAR *ppavi, AVISTREAMINFO FAR * psi);
#define AVIFileCreateStreamW AVIFileCreateStream /* ;Internal */ #define AVIFileCreateStreamW AVIFileCreateStream /* ;Internal */
#endif #endif
STDAPI AVIFileWriteData (__in PAVIFILE pfile, STDAPI AVIFileWriteData (_In_ PAVIFILE pfile,
__in DWORD ckid, _In_ DWORD ckid,
__in_bcount(cbData) LPVOID lpData, _In_reads_bytes_(cbData) LPVOID lpData,
__in LONG cbData); _In_ LONG cbData);
STDAPI AVIFileReadData (__in PAVIFILE pfile, STDAPI AVIFileReadData (_In_ PAVIFILE pfile,
__in DWORD ckid, _In_ DWORD ckid,
__out_bcount_part(*lpcbData, *lpcbData) _Out_writes_bytes_to_(*lpcbData, *lpcbDa
LPVOID lpData, ta) LPVOID lpData,
__inout LONG FAR *lpcbData); _Inout_ LONG FAR *lpcbData);
STDAPI AVIFileEndRecord (__in PAVIFILE pfile); STDAPI AVIFileEndRecord (_In_ PAVIFILE pfile);
STDAPI_(ULONG) AVIStreamAddRef (PAVISTREAM pavi); STDAPI_(ULONG) AVIStreamAddRef (PAVISTREAM pavi);
STDAPI_(ULONG) AVIStreamRelease (PAVISTREAM pavi); STDAPI_(ULONG) AVIStreamRelease (PAVISTREAM pavi);
STDAPI AVIStreamInfoW (__in PAVISTREAM pavi, __out_bcount(lSize) LPAVISTREAMINFO STDAPI AVIStreamInfoW (_In_ PAVISTREAM pavi, _Out_writes_bytes_(lSize) LPAVISTRE
W psi, __in LONG lSize); AMINFOW psi, _In_ LONG lSize);
STDAPI AVIStreamInfoA (__in PAVISTREAM pavi, __out_bcount(lSize) LPAVISTREAMINFO STDAPI AVIStreamInfoA (_In_ PAVISTREAM pavi, _Out_writes_bytes_(lSize) LPAVISTRE
A psi, __in LONG lSize); AMINFOA psi, _In_ LONG lSize);
#ifdef UNICODE #ifdef UNICODE
#define AVIStreamInfo AVIStreamInfoW #define AVIStreamInfo AVIStreamInfoW
#else #else
#define AVIStreamInfo AVIStreamInfoA #define AVIStreamInfo AVIStreamInfoA
#endif #endif
STDAPI_(LONG) AVIStreamFindSample(__in PAVISTREAM pavi, __in LONG lPos, __in LON STDAPI_(LONG) AVIStreamFindSample(_In_ PAVISTREAM pavi, _In_ LONG lPos, _In_ LON
G lFlags); G lFlags);
STDAPI AVIStreamReadFormat (__in PAVISTREAM pavi, __in LONG lPos,__out_bcount_ STDAPI AVIStreamReadFormat (_In_ PAVISTREAM pavi, _In_ LONG lPos,_Out_writes_b
part_opt(*lpcbFormat,*lpcbFormat) LPVOID lpFormat,__inout LONG FAR *lpcbFormat); ytes_to_opt_(*lpcbFormat,*lpcbFormat) LPVOID lpFormat,_Inout_ LONG FAR *lpcbForm
STDAPI AVIStreamSetFormat (__in PAVISTREAM pavi, __in LONG lPos,__in_bcount(c at);
bFormat) LPVOID lpFormat, __in LONG cbFormat); STDAPI AVIStreamSetFormat (_In_ PAVISTREAM pavi, _In_ LONG lPos,_In_reads_byt
STDAPI AVIStreamReadData (__in PAVISTREAM pavi, __in DWORD fcc, __out_bcount es_(cbFormat) LPVOID lpFormat, _In_ LONG cbFormat);
_part_opt(*lpcb, *lpcb) LPVOID lp, __inout LONG FAR *lpcb); STDAPI AVIStreamReadData (_In_ PAVISTREAM pavi, _In_ DWORD fcc, _Out_writes_
STDAPI AVIStreamWriteData (__in PAVISTREAM pavi, __in DWORD fcc, __in_bcount( bytes_to_opt_(*lpcb, *lpcb) LPVOID lp, _Inout_ LONG FAR *lpcb);
cb) LPVOID lp, __in LONG cb); STDAPI AVIStreamWriteData (_In_ PAVISTREAM pavi, _In_ DWORD fcc, _In_reads_by
tes_(cb) LPVOID lp, _In_ LONG cb);
STDAPI AVIStreamRead (__in PAVISTREAM pavi, STDAPI AVIStreamRead (_In_ PAVISTREAM pavi,
__in LONG lStart, _In_ LONG lStart,
__in LONG lSamples, _In_ LONG lSamples,
__out_bcount_opt(cbBuffer) LPVOID lpBuffer, _Out_writes_bytes_opt_(cbBuffer) LPVOID lpBuffer,
__in LONG cbBuffer, _In_ LONG cbBuffer,
__out_opt LONG FAR * plBytes, _Out_opt_ LONG FAR * plBytes,
__out_opt LONG FAR * plSamples); _Out_opt_ LONG FAR * plSamples);
#define AVISTREAMREAD_CONVENIENT (-1L) #define AVISTREAMREAD_CONVENIENT (-1L)
STDAPI AVIStreamWrite (__in PAVISTREAM pavi, STDAPI AVIStreamWrite (_In_ PAVISTREAM pavi,
__in LONG lStart, __in LONG lSamples, _In_ LONG lStart, _In_ LONG lSamples,
__in_bcount(cbBuffer) LPVOID lpBuffer, __in LONG cb _In_reads_bytes_(cbBuffer) LPVOID lpBuffer, _In_ LO
Buffer, __in DWORD dwFlags, NG cbBuffer, _In_ DWORD dwFlags,
__out_opt LONG FAR *plSampWritten, _Out_opt_ LONG FAR *plSampWritten,
__out_opt LONG FAR *plBytesWritten); _Out_opt_ LONG FAR *plBytesWritten);
// Right now, these just use AVIStreamInfo() to get information, then // Right now, these just use AVIStreamInfo() to get information, then
// return some of it. Can they be more efficient? // return some of it. Can they be more efficient?
STDAPI_(LONG) AVIStreamStart (__in PAVISTREAM pavi); STDAPI_(LONG) AVIStreamStart (_In_ PAVISTREAM pavi);
STDAPI_(LONG) AVIStreamLength (__in PAVISTREAM pavi); STDAPI_(LONG) AVIStreamLength (_In_ PAVISTREAM pavi);
STDAPI_(LONG) AVIStreamTimeToSample (__in PAVISTREAM pavi, __in LONG lTime); STDAPI_(LONG) AVIStreamTimeToSample (_In_ PAVISTREAM pavi, _In_ LONG lTime);
STDAPI_(LONG) AVIStreamSampleToTime (__in PAVISTREAM pavi, __in LONG lSample); STDAPI_(LONG) AVIStreamSampleToTime (_In_ PAVISTREAM pavi, _In_ LONG lSample);
STDAPI AVIStreamBeginStreaming(__in PAVISTREAM pavi, __in LONG lStart, __in LONG STDAPI AVIStreamBeginStreaming(_In_ PAVISTREAM pavi, _In_ LONG lStart, _In_ LONG
lEnd, __in LONG lRate); lEnd, _In_ LONG lRate);
STDAPI AVIStreamEndStreaming(__in PAVISTREAM pavi); STDAPI AVIStreamEndStreaming(_In_ PAVISTREAM pavi);
// //
// helper functions for using IGetFrame // helper functions for using IGetFrame
// //
STDAPI_(PGETFRAME) AVIStreamGetFrameOpen(__in PAVISTREAM pavi, STDAPI_(PGETFRAME) AVIStreamGetFrameOpen(_In_ PAVISTREAM pavi,
__in_opt LPBITMAPINFOHEADER lpbiWanted); _In_opt_ LPBITMAPINFOHEADER lpbiWanted);
STDAPI_(LPVOID) AVIStreamGetFrame(__in PGETFRAME pg, __in LONG lPos); STDAPI_(LPVOID) AVIStreamGetFrame(_In_ PGETFRAME pg, _In_ LONG lPos);
STDAPI AVIStreamGetFrameClose(__in PGETFRAME pg); STDAPI AVIStreamGetFrameClose(_In_ PGETFRAME pg);
// !!! We need some way to place an advise on a stream.... // !!! We need some way to place an advise on a stream....
// STDAPI AVIStreamHasChanged (PAVISTREAM pavi); // STDAPI AVIStreamHasChanged (PAVISTREAM pavi);
// Shortcut function // Shortcut function
STDAPI AVIStreamOpenFromFileA(__deref_out PAVISTREAM FAR *ppavi, __in LPCSTR szF STDAPI AVIStreamOpenFromFileA(_Outptr_ PAVISTREAM FAR *ppavi, _In_ LPCSTR szFile
ile, ,
__in DWORD fccType, __in LONG lParam, _In_ DWORD fccType, _In_ LONG lParam,
__in UINT mode, __in_opt CLSID FAR *pclsidHandler); _In_ UINT mode, _In_opt_ CLSID FAR *pclsidHandler);
STDAPI AVIStreamOpenFromFileW(__deref_out PAVISTREAM FAR *ppavi, LPCWSTR szFile, STDAPI AVIStreamOpenFromFileW(_Outptr_ PAVISTREAM FAR *ppavi, LPCWSTR szFile,
__in DWORD fccType, __in LONG lParam, _In_ DWORD fccType, _In_ LONG lParam,
__in UINT mode, __in_opt CLSID FAR *pclsidHandler); _In_ UINT mode, _In_opt_ CLSID FAR *pclsidHandler);
#ifdef UNICODE #ifdef UNICODE
#define AVIStreamOpenFromFile AVIStreamOpenFromFileW #define AVIStreamOpenFromFile AVIStreamOpenFromFileW
#else #else
#define AVIStreamOpenFromFile AVIStreamOpenFromFileA #define AVIStreamOpenFromFile AVIStreamOpenFromFileA
#endif #endif
// Use to create disembodied streams // Use to create disembodied streams
STDAPI AVIStreamCreate(__deref_out PAVISTREAM FAR *ppavi, __in LONG lParam1, __i STDAPI AVIStreamCreate(_Outptr_ PAVISTREAM FAR *ppavi, _In_ LONG lParam1, _In_ L
n LONG lParam2, ONG lParam2,
__in_opt CLSID FAR *pclsidHandler); _In_opt_ CLSID FAR *pclsidHandler);
// PHANDLER AVIAPI AVIGetHandler (PAVISTREAM pavi, PAVISTREAMHANDLER psh); // PHANDLER AVIAPI AVIGetHandler (PAVISTREAM pavi, PAVISTREAMHANDLER psh);
// PAVISTREAM AVIAPI AVIGetStream (PHANDLER p); // PAVISTREAM AVIAPI AVIGetStream (PHANDLER p);
// //
// flags for AVIStreamFindSample // flags for AVIStreamFindSample
// //
#define FIND_DIR 0x0000000FL // direction #define FIND_DIR 0x0000000FL // direction
#define FIND_NEXT 0x00000001L // go forward #define FIND_NEXT 0x00000001L // go forward
#define FIND_PREV 0x00000004L // go backward #define FIND_PREV 0x00000004L // go backward
skipping to change at line 2481 skipping to change at line 2486
* *
* AVISave routines and structures * AVISave routines and structures
* *
***************************************************************************/ ***************************************************************************/
#ifndef comptypeDIB #ifndef comptypeDIB
#define comptypeDIB mmioFOURCC('D', 'I', 'B', ' ') #define comptypeDIB mmioFOURCC('D', 'I', 'B', ' ')
#endif #endif
STDAPI AVIMakeCompressedStream( STDAPI AVIMakeCompressedStream(
__deref_out PAVISTREAM FAR * ppsCompressed, _Outptr_ PAVISTREAM FAR * ppsCompressed,
__in PAVISTREAM ppsSource, _In_ PAVISTREAM ppsSource,
__in AVICOMPRESSOPTIONS FAR * lpOptions, _In_ AVICOMPRESSOPTIONS FAR * lpOptions,
__in_opt CLSID FAR *pclsidHandler); _In_opt_ CLSID FAR *pclsidHandler);
EXTERN_C HRESULT CDECL AVISaveA (LPCSTR szFile, EXTERN_C HRESULT CDECL AVISaveA (LPCSTR szFile,
__in_opt CLSID FAR *pclsidHandler, _In_opt_ CLSID FAR *pclsidHandler,
__in AVISAVECALLBACK lpfnCallback, _In_ AVISAVECALLBACK lpfnCallback,
__in int nStreams, _In_ int nStreams,
__in PAVISTREAM pfile, _In_ PAVISTREAM pfile,
__in LPAVICOMPRESSOPTIONS lpOptions, _In_ LPAVICOMPRESSOPTIONS lpOptions,
...); ...);
STDAPI AVISaveVA(LPCSTR szFile, STDAPI AVISaveVA(LPCSTR szFile,
__in_opt CLSID FAR *pclsidHandler, _In_opt_ CLSID FAR *pclsidHandler,
__in AVISAVECALLBACK lpfnCallback, _In_ AVISAVECALLBACK lpfnCallback,
__in int nStreams, _In_ int nStreams,
__in_ecount(nStreams) PAVISTREAM FAR * ppavi, _In_reads_(nStreams) PAVISTREAM FAR * ppavi,
__in_ecount(nStreams) LPAVICOMPRESSOPTIONS FAR *plpOptions); _In_reads_(nStreams) LPAVICOMPRESSOPTIONS FAR *plpOptions);
EXTERN_C HRESULT CDECL AVISaveW (LPCWSTR szFile, EXTERN_C HRESULT CDECL AVISaveW (LPCWSTR szFile,
__in_opt CLSID FAR *pclsidHandler, _In_opt_ CLSID FAR *pclsidHandler,
__in AVISAVECALLBACK lpfnCallback, _In_ AVISAVECALLBACK lpfnCallback,
__in int nStreams, _In_ int nStreams,
__in PAVISTREAM pfile, _In_ PAVISTREAM pfile,
__in LPAVICOMPRESSOPTIONS lpOptions, _In_ LPAVICOMPRESSOPTIONS lpOptions,
...); ...);
STDAPI AVISaveVW(LPCWSTR szFile, STDAPI AVISaveVW(LPCWSTR szFile,
__in_opt CLSID FAR *pclsidHandler, _In_opt_ CLSID FAR *pclsidHandler,
__in AVISAVECALLBACK lpfnCallback, _In_ AVISAVECALLBACK lpfnCallback,
__in int nStreams, _In_ int nStreams,
__in_ecount(nStreams) PAVISTREAM FAR * ppavi, _In_reads_(nStreams) PAVISTREAM FAR * ppavi,
__in_ecount(nStreams) LPAVICOMPRESSOPTIONS FAR *plpOptions); _In_reads_(nStreams) LPAVICOMPRESSOPTIONS FAR *plpOptions);
#ifdef UNICODE #ifdef UNICODE
#define AVISave AVISaveW #define AVISave AVISaveW
#define AVISaveV AVISaveVW #define AVISaveV AVISaveVW
#else #else
#define AVISave AVISaveA #define AVISave AVISaveA
#define AVISaveV AVISaveVA #define AVISaveV AVISaveVA
#endif #endif
STDAPI_(INT_PTR) AVISaveOptions(__in HWND hwnd, STDAPI_(INT_PTR) AVISaveOptions(_In_ HWND hwnd,
__in UINT uiFlags, _In_ UINT uiFlags,
__in int nStreams, _In_ int nStreams,
__in_ecount(nStreams) PAVISTREAM FAR *ppavi, _In_reads_(nStreams) PAVISTREAM FAR *ppavi,
__inout_ecount(nStreams) LPAVICOMPRESSOPTIONS FAR *p _Inout_updates_(nStreams) LPAVICOMPRESSOPTIONS FAR *
lpOptions); plpOptions);
STDAPI AVISaveOptionsFree(int nStreams, STDAPI AVISaveOptionsFree(int nStreams,
__in_ecount(nStreams) LPAVICOMPRESSOPTIONS FAR *plpO ptions); _In_reads_(nStreams) LPAVICOMPRESSOPTIONS FAR *plpOp tions);
// FLAGS FOR uiFlags: // FLAGS FOR uiFlags:
// //
// Same as the flags for ICCompressorChoose (see compman.h) // Same as the flags for ICCompressorChoose (see compman.h)
// These determine what the compression options dialog for video streams // These determine what the compression options dialog for video streams
// will look like. // will look like.
STDAPI AVIBuildFilterW(__out_ecount(cbFilter) LPWSTR lpszFilter, __in LONG cbFil STDAPI AVIBuildFilterW(_Out_writes_(cbFilter) LPWSTR lpszFilter, _In_ LONG cbFil
ter, __in BOOL fSaving); ter, _In_ BOOL fSaving);
STDAPI AVIBuildFilterA(__out_ecount(cbFilter) LPSTR lpszFilter, __in LONG cbFilt STDAPI AVIBuildFilterA(_Out_writes_(cbFilter) LPSTR lpszFilter, _In_ LONG cbFilt
er, __in BOOL fSaving); er, _In_ BOOL fSaving);
#ifdef UNICODE #ifdef UNICODE
#define AVIBuildFilter AVIBuildFilterW #define AVIBuildFilter AVIBuildFilterW
#else #else
#define AVIBuildFilter AVIBuildFilterA #define AVIBuildFilter AVIBuildFilterA
#endif #endif
STDAPI AVIMakeFileFromStreams(__deref_out PAVIFILE FAR * ppfile, STDAPI AVIMakeFileFromStreams(_Outptr_ PAVIFILE FAR * ppfile,
__in int nStreams, _In_ int nStreams,
__in_ecount(nStreams) PAVISTREAM FAR * papStream _In_reads_(nStreams) PAVISTREAM FAR * papStream
s); s);
STDAPI AVIMakeStreamFromClipboard(UINT cfFormat, __in HANDLE hGlobal, __deref_ou t PAVISTREAM FAR *ppstream); STDAPI AVIMakeStreamFromClipboard(UINT cfFormat, _In_ HANDLE hGlobal, _Outptr_ P AVISTREAM FAR *ppstream);
/**************************************************************************** /****************************************************************************
* *
* Clipboard routines * Clipboard routines
* *
***************************************************************************/ ***************************************************************************/
STDAPI AVIPutFileOnClipboard(__in PAVIFILE pf); STDAPI AVIPutFileOnClipboard(_In_ PAVIFILE pf);
STDAPI AVIGetFromClipboard(__deref_out PAVIFILE FAR * lppf); STDAPI AVIGetFromClipboard(_Outptr_ PAVIFILE FAR * lppf);
STDAPI AVIClearClipboard(void); STDAPI AVIClearClipboard(void);
/**************************************************************************** /****************************************************************************
* *
* Editing routines * Editing routines
* *
***************************************************************************/ ***************************************************************************/
STDAPI CreateEditableStream( STDAPI CreateEditableStream(
__deref_out PAVISTREAM FAR * ppsEditable, _Outptr_ PAVISTREAM FAR * ppsEditable,
__in PAVISTREAM psSource); _In_ PAVISTREAM psSource);
STDAPI EditStreamCut(__in PAVISTREAM pavi, __inout LONG FAR *plStart, __inout LO NG FAR *plLength, __deref_out PAVISTREAM FAR * ppResult); STDAPI EditStreamCut(_In_ PAVISTREAM pavi, _Inout_ LONG FAR *plStart, _Inout_ LO NG FAR *plLength, _Outptr_ PAVISTREAM FAR * ppResult);
STDAPI EditStreamCopy(__in PAVISTREAM pavi, __inout LONG FAR *plStart, __inout L ONG FAR *plLength, __deref_out PAVISTREAM FAR * ppResult); STDAPI EditStreamCopy(_In_ PAVISTREAM pavi, _Inout_ LONG FAR *plStart, _Inout_ L ONG FAR *plLength, _Outptr_ PAVISTREAM FAR * ppResult);
STDAPI EditStreamPaste(__in PAVISTREAM pavi, __inout LONG FAR *plPos, __inout LO NG FAR *plLength, __in PAVISTREAM pstream, __in LONG lStart, __in LONG lEnd); STDAPI EditStreamPaste(_In_ PAVISTREAM pavi, _Inout_ LONG FAR *plPos, _Inout_ LO NG FAR *plLength, _In_ PAVISTREAM pstream, _In_ LONG lStart, _In_ LONG lEnd);
STDAPI EditStreamClone(__in PAVISTREAM pavi, __deref_out PAVISTREAM FAR *ppResul t); STDAPI EditStreamClone(_In_ PAVISTREAM pavi, _Outptr_ PAVISTREAM FAR *ppResult);
STDAPI EditStreamSetNameA(__in PAVISTREAM pavi, __in LPCSTR lpszName); STDAPI EditStreamSetNameA(_In_ PAVISTREAM pavi, _In_ LPCSTR lpszName);
STDAPI EditStreamSetNameW(__in PAVISTREAM pavi, __in LPCWSTR lpszName); STDAPI EditStreamSetNameW(_In_ PAVISTREAM pavi, _In_ LPCWSTR lpszName);
STDAPI EditStreamSetInfoW(__in PAVISTREAM pavi, __in_bcount(cbInfo) LPAVISTREAMI STDAPI EditStreamSetInfoW(_In_ PAVISTREAM pavi, _In_reads_bytes_(cbInfo) LPAVIST
NFOW lpInfo, __in LONG cbInfo); REAMINFOW lpInfo, _In_ LONG cbInfo);
STDAPI EditStreamSetInfoA(__in PAVISTREAM pavi, __in_bcount(cbInfo) LPAVISTREAMI STDAPI EditStreamSetInfoA(_In_ PAVISTREAM pavi, _In_reads_bytes_(cbInfo) LPAVIST
NFOA lpInfo, __in LONG cbInfo); REAMINFOA lpInfo, _In_ LONG cbInfo);
#ifdef UNICODE #ifdef UNICODE
#define EditStreamSetInfo EditStreamSetInfoW #define EditStreamSetInfo EditStreamSetInfoW
#define EditStreamSetName EditStreamSetNameW #define EditStreamSetName EditStreamSetNameW
#else #else
#define EditStreamSetInfo EditStreamSetInfoA #define EditStreamSetInfo EditStreamSetInfoA
#define EditStreamSetName EditStreamSetNameA #define EditStreamSetName EditStreamSetNameA
#endif #endif
/* - - - - - - - - */ /* - - - - - - - - */
skipping to change at line 2714 skipping to change at line 2719
#ifdef __cplusplus #ifdef __cplusplus
// MFC Redefines SendMessage, so make sure we get the global one.... // MFC Redefines SendMessage, so make sure we get the global one....
#define MCIWndSM ::SendMessage /* SendMessage in C++*/ #define MCIWndSM ::SendMessage /* SendMessage in C++*/
#else #else
#define MCIWndSM SendMessage /* SendMessage in C */ #define MCIWndSM SendMessage /* SendMessage in C */
#endif /* __cplusplus */ #endif /* __cplusplus */
#define MCIWND_WINDOW_CLASS TEXT("MCIWndClass") #define MCIWND_WINDOW_CLASS TEXT("MCIWndClass")
HWND HWND
VFWAPIV VFWAPIV
MCIWndCreateA( MCIWndCreateA(
__in_opt HWND hwndParent, _In_opt_ HWND hwndParent,
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in DWORD dwStyle, _In_ DWORD dwStyle,
__in_opt LPCSTR szFile _In_opt_ LPCSTR szFile
); );
HWND HWND
VFWAPIV VFWAPIV
MCIWndCreateW( MCIWndCreateW(
__in_opt HWND hwndParent, _In_opt_ HWND hwndParent,
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in DWORD dwStyle, _In_ DWORD dwStyle,
__in_opt LPCWSTR szFile _In_opt_ LPCWSTR szFile
); );
#ifdef UNICODE #ifdef UNICODE
#define MCIWndCreate MCIWndCreateW #define MCIWndCreate MCIWndCreateW
#else #else
#define MCIWndCreate MCIWndCreateA #define MCIWndCreate MCIWndCreateA
#endif #endif
BOOL VFWAPIV MCIWndRegisterClass(void); BOOL VFWAPIV MCIWndRegisterClass(void);
// Flags for the MCIWndOpen command // Flags for the MCIWndOpen command
skipping to change at line 3555 skipping to change at line 3560
typedef struct tagCapInfoChunk { typedef struct tagCapInfoChunk {
FOURCC fccInfoID; // Chunk ID, "ICOP" for copyright FOURCC fccInfoID; // Chunk ID, "ICOP" for copyright
LPVOID lpData; // pointer to data LPVOID lpData; // pointer to data
LONG cbData; // size of lpData LONG cbData; // size of lpData
} CAPINFOCHUNK, *PCAPINFOCHUNK, FAR *LPCAPINFOCHUNK; } CAPINFOCHUNK, *PCAPINFOCHUNK, FAR *LPCAPINFOCHUNK;
// ------------------------------------------------------------------ // ------------------------------------------------------------------
// Callback Definitions // Callback Definitions
// ------------------------------------------------------------------ // ------------------------------------------------------------------
typedef LRESULT (CALLBACK* CAPYIELDCALLBACK) (__in HWND hWnd); typedef LRESULT (CALLBACK* CAPYIELDCALLBACK) (_In_ HWND hWnd);
typedef LRESULT (CALLBACK* CAPSTATUSCALLBACKW) (__in HWND hWnd, __in int nID, LP typedef LRESULT (CALLBACK* CAPSTATUSCALLBACKW) (_In_ HWND hWnd, _In_ int nID, LP
CWSTR lpsz); CWSTR lpsz);
typedef LRESULT (CALLBACK* CAPERRORCALLBACKW) (__in HWND hWnd, __in int nID, LP typedef LRESULT (CALLBACK* CAPERRORCALLBACKW) (_In_ HWND hWnd, _In_ int nID, LP
CWSTR lpsz); CWSTR lpsz);
typedef LRESULT (CALLBACK* CAPSTATUSCALLBACKA) (__in HWND hWnd, __in int nID, LP typedef LRESULT (CALLBACK* CAPSTATUSCALLBACKA) (_In_ HWND hWnd, _In_ int nID, LP
CSTR lpsz); CSTR lpsz);
typedef LRESULT (CALLBACK* CAPERRORCALLBACKA) (__in HWND hWnd, __in int nID, LP typedef LRESULT (CALLBACK* CAPERRORCALLBACKA) (_In_ HWND hWnd, _In_ int nID, LP
CSTR lpsz); CSTR lpsz);
#ifdef UNICODE #ifdef UNICODE
#define CAPSTATUSCALLBACK CAPSTATUSCALLBACKW #define CAPSTATUSCALLBACK CAPSTATUSCALLBACKW
#define CAPERRORCALLBACK CAPERRORCALLBACKW #define CAPERRORCALLBACK CAPERRORCALLBACKW
#else #else
#define CAPSTATUSCALLBACK CAPSTATUSCALLBACKA #define CAPSTATUSCALLBACK CAPSTATUSCALLBACKA
#define CAPERRORCALLBACK CAPERRORCALLBACKA #define CAPERRORCALLBACK CAPERRORCALLBACKA
#endif #endif
typedef LRESULT (CALLBACK* CAPVIDEOCALLBACK) (__in HWND hWnd, __in LPVIDEOHDR l typedef LRESULT (CALLBACK* CAPVIDEOCALLBACK) (_In_ HWND hWnd, _In_ LPVIDEOHDR l
pVHdr); pVHdr);
typedef LRESULT (CALLBACK* CAPWAVECALLBACK) (__in HWND hWnd, __in LPWAVEHDR lp typedef LRESULT (CALLBACK* CAPWAVECALLBACK) (_In_ HWND hWnd, _In_ LPWAVEHDR lp
WHdr); WHdr);
typedef LRESULT (CALLBACK* CAPCONTROLCALLBACK)(__in HWND hWnd, __in int nState); typedef LRESULT (CALLBACK* CAPCONTROLCALLBACK)(_In_ HWND hWnd, _In_ int nState);
// ------------------------------------------------------------------ // ------------------------------------------------------------------
// CapControlCallback states // CapControlCallback states
// ------------------------------------------------------------------ // ------------------------------------------------------------------
#define CONTROLCALLBACK_PREROLL 1 /* Waiting to start capture */ #define CONTROLCALLBACK_PREROLL 1 /* Waiting to start capture */
#define CONTROLCALLBACK_CAPTURING 2 /* Now capturing */ #define CONTROLCALLBACK_CAPTURING 2 /* Now capturing */
// ------------------------------------------------------------------ // ------------------------------------------------------------------
// The only exported functions from AVICAP.DLL // The only exported functions from AVICAP.DLL
// ------------------------------------------------------------------ // ------------------------------------------------------------------
HWND VFWAPI capCreateCaptureWindowA ( HWND VFWAPI capCreateCaptureWindowA (
LPCSTR lpszWindowName, LPCSTR lpszWindowName,
__in DWORD dwStyle, _In_ DWORD dwStyle,
__in int x, __in int y, __in int nWidth, __in int nHeight, _In_ int x, _In_ int y, _In_ int nWidth, _In_ int nHeight,
__in_opt HWND hwndParent, __in int nID); _In_opt_ HWND hwndParent, _In_ int nID);
BOOL VFWAPI capGetDriverDescriptionA (UINT wDriverIndex, BOOL VFWAPI capGetDriverDescriptionA (UINT wDriverIndex,
__out_ecount(cbName) LPSTR lpszName, __in int cbName, _Out_writes_(cbName) LPSTR lpszName, _In_ int cbName,
__out_ecount(cbVer) LPSTR lpszVer, __in int cbVer); _Out_writes_(cbVer) LPSTR lpszVer, _In_ int cbVer);
HWND VFWAPI capCreateCaptureWindowW ( HWND VFWAPI capCreateCaptureWindowW (
LPCWSTR lpszWindowName, LPCWSTR lpszWindowName,
DWORD dwStyle, DWORD dwStyle,
__in int x, __in int y, __in int nWidth, __in int nHeight, _In_ int x, _In_ int y, _In_ int nWidth, _In_ int nHeight,
__in_opt HWND hwndParent, __in int nID); _In_opt_ HWND hwndParent, _In_ int nID);
BOOL VFWAPI capGetDriverDescriptionW (UINT wDriverIndex, BOOL VFWAPI capGetDriverDescriptionW (UINT wDriverIndex,
__out_ecount(cbName) LPWSTR lpszName, __in int cbName, _Out_writes_(cbName) LPWSTR lpszName, _In_ int cbName,
__out_ecount(cbVer) LPWSTR lpszVer, __in int cbVer); _Out_writes_(cbVer) LPWSTR lpszVer, _In_ int cbVer);
#ifdef UNICODE #ifdef UNICODE
#define capCreateCaptureWindow capCreateCaptureWindowW #define capCreateCaptureWindow capCreateCaptureWindowW
#define capGetDriverDescription capGetDriverDescriptionW #define capGetDriverDescription capGetDriverDescriptionW
#else #else
#define capCreateCaptureWindow capCreateCaptureWindowA #define capCreateCaptureWindow capCreateCaptureWindowA
#define capGetDriverDescription capGetDriverDescriptionA #define capGetDriverDescription capGetDriverDescriptionA
#endif #endif
#endif /* RC_INVOKED */ #endif /* RC_INVOKED */
skipping to change at line 3716 skipping to change at line 3721
/**************************************************************************** /****************************************************************************
* *
* FilePreview dialog. * FilePreview dialog.
* *
***************************************************************************/ ***************************************************************************/
#ifdef OFN_READONLY #ifdef OFN_READONLY
BOOL BOOL
VFWAPI VFWAPI
GetOpenFileNamePreviewA( GetOpenFileNamePreviewA(
__inout LPOPENFILENAMEA lpofn _Inout_ LPOPENFILENAMEA lpofn
); );
BOOL BOOL
VFWAPI VFWAPI
GetSaveFileNamePreviewA( GetSaveFileNamePreviewA(
__inout LPOPENFILENAMEA lpofn _Inout_ LPOPENFILENAMEA lpofn
); );
BOOL BOOL
VFWAPI VFWAPI
GetOpenFileNamePreviewW( GetOpenFileNamePreviewW(
__inout LPOPENFILENAMEW lpofn _Inout_ LPOPENFILENAMEW lpofn
); );
BOOL BOOL
VFWAPI VFWAPI
GetSaveFileNamePreviewW( GetSaveFileNamePreviewW(
__inout LPOPENFILENAMEW lpofn _Inout_ LPOPENFILENAMEW lpofn
); );
#ifdef UNICODE #ifdef UNICODE
#define GetOpenFileNamePreview GetOpenFileNamePreviewW #define GetOpenFileNamePreview GetOpenFileNamePreviewW
#define GetSaveFileNamePreview GetSaveFileNamePreviewW #define GetSaveFileNamePreview GetSaveFileNamePreviewW
#else #else
#define GetOpenFileNamePreview GetOpenFileNamePreviewA #define GetOpenFileNamePreview GetOpenFileNamePreviewA
#define GetSaveFileNamePreview GetSaveFileNamePreviewA #define GetSaveFileNamePreview GetSaveFileNamePreviewA
#endif #endif
#endif // OFN_READONLY #endif // OFN_READONLY
#ifndef RC_INVOKED #ifndef RC_INVOKED
#include "poppack.h" #include "poppack.h"
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
} /* End of extern "C" { */ } /* End of extern "C" { */
#endif /* __cplusplus */ #endif /* __cplusplus */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* _INC_VFW */ #endif /* _INC_VFW */
 End of changes. 115 change blocks. 
473 lines changed or deleted 483 lines changed or added

This html diff was produced by rfcdiff 1.41.