|  vfw.h (5.2.3790.1830-Windows 5.0)  |   |  vfw.h (6.0.6001.18000-Windows 6.0)  | 
 
       |   |  | 
      | skipping to change at line 55 |   | skipping to change at line 55 | 
      | #endif  /* __cplusplus */ |   | #endif  /* __cplusplus */ | 
       |   |  | 
      | /**************************************************************************** |   | /**************************************************************************** | 
      |  * |   |  * | 
      |  *  types |   |  *  types | 
      |  * |   |  * | 
      |  ***************************************************************************/ |   |  ***************************************************************************/ | 
       |   |  | 
      | #define VFWAPI  WINAPI |   | #define VFWAPI  WINAPI | 
      | #define VFWAPIV WINAPIV |   | #define VFWAPIV WINAPIV | 
       | 
       |   | #if (_WIN32_WINNT >= _WIN32_WINNT_WS03) | 
      | #define VFWAPI_INLINE  WINAPI_INLINE |   | #define VFWAPI_INLINE  WINAPI_INLINE | 
       | 
       |   | #else | 
       |   | #define VFWAPI_INLINE  WINAPI | 
       |   | #endif | 
       |   |  | 
      | /**************************************************************************** |   | /**************************************************************************** | 
      |  * |   |  * | 
      |  *  VideoForWindowsVersion() - returns version of VfW |   |  *  VideoForWindowsVersion() - returns version of VfW | 
      |  * |   |  * | 
      |  ***************************************************************************/ |   |  ***************************************************************************/ | 
       |   |  | 
      | DWORD FAR PASCAL VideoForWindowsVersion(void); |   | DWORD FAR PASCAL VideoForWindowsVersion(void); | 
       |   |  | 
      | /**************************************************************************** |   | /**************************************************************************** | 
       |   |  | 
      | skipping to change at line 340 |   | skipping to change at line 344 | 
       |   |  | 
      | /************************************************************************ |   | /************************************************************************ | 
      | ************************************************************************/ |   | ************************************************************************/ | 
       |   |  | 
      | #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 | 
       | 
      |     LPVOID              lpOutput;       // output data |   |     __field_bcount(lpbiOutput->biSizeImage) LPVOID              lpOutput;       
// output data | 
       |   |  | 
      |     LPBITMAPINFOHEADER  lpbiInput;      // format of frame to compress |   |     LPBITMAPINFOHEADER  lpbiInput;      // format of frame to compress | 
       | 
      |     LPVOID              lpInput;        // frame data to compress |   |     __field_bcount(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 | 
       | 
      |     LPVOID              lpPrev;         // previous frame |   |     __field_bcount(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 385 |   | skipping to change at line 389 | 
      |     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)(LPARAM lInput, LONG lFrame, LPVOID lpBits, LONG len |   |     LONG (CALLBACK *GetData)(__in LPARAM lInput, __in LONG lFrame, __out_bcount( | 
      | ); |   | len) LPVOID lpBits, __in LONG len); | 
      |     LONG (CALLBACK *PutData)(LPARAM lOutput, LONG lFrame, LPVOID lpBits, LONG le |   |     LONG (CALLBACK *PutData)(__in LPARAM lOutput, __in LONG lFrame, __in_bcount( | 
      | n); |   | 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) (LPARAM lParam, UINT message, 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) | 
      |     LPVOID              lpInput;    // compressed data |   |     LPVOID              lpInput;    // compressed data | 
       |   |  | 
      |     LPBITMAPINFOHEADER  lpbiOutput; // DIB to decompress to |   |     LPBITMAPINFOHEADER  lpbiOutput; // DIB to decompress to | 
       | 
       |   |     __field_bcount(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 535 |   | skipping to change at line 541 | 
       |   |  | 
      | /************************************************************************ |   | /************************************************************************ | 
       |   |  | 
      |     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) | 
      | LRESULT |   | LRESULT | 
      | VFWAPI |   | VFWAPI | 
      | ICGetInfo( |   | ICGetInfo( | 
       | 
      |     IN HIC hic, |   |     __in HIC hic, | 
      |     OUT ICINFO FAR *picinfo, |   |     __out_bcount_part(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 681 |   | skipping to change at line 688 | 
      | ************************************************************************/ |   | ************************************************************************/ | 
      | /* |   | /* | 
      |  *  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    LPVOID              lpData,         // output data |   |     __out_bcount(lpbiOutput->biSizeImage)      LPVOID              lpData,       | 
      |     IN     LPBITMAPINFOHEADER  lpbiInput,      // format of frame to compress |   |    // output data | 
      |     IN     LPVOID              lpBits,         // frame data to compress |   |     __in       LPBITMAPINFOHEADER  lpbiInput,      // format of frame to compres | 
      |     OUT    LPDWORD             lpckid,         // ckid for data in AVI file |   | s | 
      |     OUT    LPDWORD             lpdwFlags,      // flags in the AVI index. |   |     __in_bcount(lpbiInput->biSizeImage)       LPVOID              lpBits,        | 
      |     IN     LONG                lFrameNum,      // frame number of seq. |   |   // frame data to compress | 
      |     IN     DWORD               dwFrameSize,    // reqested size in bytes. (if no |   |     __out_opt  LPDWORD             lpckid,         // ckid for data in AVI file | 
      | n zero) |   |     __out_opt  LPDWORD             lpdwFlags,      // flags in the AVI index. | 
      |     IN     DWORD               dwQuality,      // quality within one frame |   |     __in       LONG                lFrameNum,      // frame number of seq. | 
      |     IN     LPBITMAPINFOHEADER  lpbiPrev,       // format of previous frame |   |     __in       DWORD               dwFrameSize,    // reqested size in bytes. (i | 
      |     IN     LPVOID              lpPrev          // previous frame |   | f non zero) | 
       |   |     __in       DWORD               dwQuality,      // quality within one frame | 
       |   |     __in_opt   LPBITMAPINFOHEADER  lpbiPrev,       // format of previous frame | 
       |   |     __in_bcount_opt(lpbiPrev->biSizeImage)   LPVOID              lpPrev          | 
       |   |  // 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 758 |   | skipping to change at line 765 | 
      |  *  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  LPVOID              lpData,     // data |   |     __in_bcount(lpbiFormat->biSizeImage)  LPVOID              lpData,     // dat | 
      |     IN  LPBITMAPINFOHEADER  lpbi,       // DIB to decompress to |   | a | 
      |     OUT LPVOID              lpBits |   |     __in  LPBITMAPINFOHEADER  lpbi,       // DIB to decompress to | 
       |   |     __out_bcount(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 835 |   | skipping to change at line 842 | 
      | // |   | // | 
       |   |  | 
      | /* |   | /* | 
      |  *  ICDecompressEx() |   |  *  ICDecompressEx() | 
      |  * |   |  * | 
      |  *  decompress a single frame |   |  *  decompress a single frame | 
      |  * |   |  * | 
      |  */ |   |  */ | 
      | static __inline LRESULT VFWAPI_INLINE |   | static __inline LRESULT VFWAPI_INLINE | 
      | ICDecompressEx( |   | ICDecompressEx( | 
       | 
      |             HIC hic, |   |             __in HIC hic, | 
      |             DWORD dwFlags, |   |             __in DWORD dwFlags, | 
      |             LPBITMAPINFOHEADER lpbiSrc, |   |             __in LPBITMAPINFOHEADER lpbiSrc, | 
      |             LPVOID lpSrc, |   |             __in_bcount(lpbiSrc->biSizeImage) LPVOID lpSrc, | 
      |             int xSrc, |   |             __in int xSrc, | 
      |             int ySrc, |   |             __in int ySrc, | 
      |             int dxSrc, |   |             __in int dxSrc, | 
      |             int dySrc, |   |             __in int dySrc, | 
      |             LPBITMAPINFOHEADER lpbiDst, |   |             __in LPBITMAPINFOHEADER lpbiDst, | 
      |             LPVOID lpDst, |   |             __out_bcount(lpbiDst->biSizeImage) LPVOID lpDst, | 
      |             int xDst, |   |             __in int xDst, | 
      |             int yDst, |   |             __in int yDst, | 
      |             int dxDst, |   |             __in int dxDst, | 
      |             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 880 |   | skipping to change at line 887 | 
       |   |  | 
      | /* |   | /* | 
      |  *  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( | 
       | 
      |             HIC hic, |   |             __in      HIC hic, | 
      |             DWORD dwFlags, |   |             __in      DWORD dwFlags, | 
      |             LPBITMAPINFOHEADER lpbiSrc, |   |             __in      LPBITMAPINFOHEADER lpbiSrc, | 
      |             LPVOID lpSrc, |   |             __in_opt  LPVOID lpSrc, | 
      |             int xSrc, |   |             __in      int xSrc, | 
      |             int ySrc, |   |             __in      int ySrc, | 
      |             int dxSrc, |   |             __in      int dxSrc, | 
      |             int dySrc, |   |             __in      int dySrc, | 
      |             LPBITMAPINFOHEADER lpbiDst, |   |             __in      LPBITMAPINFOHEADER lpbiDst, | 
      |             LPVOID lpDst, |   |             __out_opt LPVOID lpDst, | 
      |             int xDst, |   |             __in      int xDst, | 
      |             int yDst, |   |             __in      int yDst, | 
      |             int dxDst, |   |             __in      int dxDst, | 
      |             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 922 |   | skipping to change at line 929 | 
      |     // 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( | 
       | 
      |             HIC hic, |   |             __in       HIC hic, | 
      |             DWORD dwFlags, |   |             __in       DWORD dwFlags, | 
      |             LPBITMAPINFOHEADER lpbiSrc, |   |             __in       LPBITMAPINFOHEADER lpbiSrc, | 
      |             LPVOID lpSrc, |   |             __reserved LPVOID lpSrc, | 
      |             int xSrc, |   |             __in       int xSrc, | 
      |             int ySrc, |   |             __in       int ySrc, | 
      |             int dxSrc, |   |             __in       int dxSrc, | 
      |             int dySrc, |   |             __in       int dySrc, | 
      |             LPBITMAPINFOHEADER lpbiDst, |   |             __in_opt   LPBITMAPINFOHEADER lpbiDst, | 
      |             LPVOID lpDst, |   |             __out_opt  LPVOID lpDst, | 
      |             int xDst, |   |             __in       int xDst, | 
      |             int yDst, |   |             __in       int yDst, | 
      |             int dxDst, |   |             __in       int dxDst, | 
      |             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 983 |   | skipping to change at line 990 | 
      |  * |   |  * | 
      |  */ |   |  */ | 
       |   |  | 
      | #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 HPALETTE            hpal,           // palette to draw with |   |     __in_opt HPALETTE            hpal,           // palette to draw with | 
      |     IN HWND                hwnd,           // window to draw to |   |     __in_opt HWND                hwnd,           // window to draw to | 
      |     IN 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/dwScale) |   |     __in DWORD                   dwRate,         // frames/second = (dwRate/dwSc | 
      |     IN DWORD               dwScale |   | ale) | 
       |   |     __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 to decompress |   |     __in LPVOID                     lpFormat,                 // format of frame | 
      |     IN LPVOID              lpData,         // frame data to decompress |   |  to decompress | 
      |     IN DWORD               cbData,         // size of data |   |     __in_bcount_opt(cbData) LPVOID  lpData,                   // frame data to d | 
      |     IN LONG                lTime           // time to draw this frame |   | ecompress | 
       |   |     __in DWORD                      cbData,                   // size of data | 
       |   |     __in LONG                       lTime                     // time to draw th | 
       |   | 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( | 
       | 
      |             HIC hic, |   |             __in  HIC hic, | 
      |             LPBITMAPINFOHEADER lpbiIn, |   |             __in  LPBITMAPINFOHEADER lpbiIn, | 
      |             LPBITMAPINFOHEADER lpbiOut, |   |             __out LPBITMAPINFOHEADER lpbiOut, | 
      |             int dxSrc, |   |             __in  int dxSrc, | 
      |             int dySrc, |   |             __in  int dySrc, | 
      |             int dxDst, |   |             __in  int dxDst, | 
      |             int dyDst, |   |             __in  int dyDst, | 
      |             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 1111 |   | skipping to change at line 1118 | 
      | /* |   | /* | 
      |  *  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( | 
       | 
      |             HIC hic, |   |             __in HIC hic, | 
      |             DWORD dwFlags, |   |             __in DWORD dwFlags, | 
      |             LRESULT lParam, |   |             __in LRESULT lParam, | 
      |             LONG (CALLBACK *fpfnStatus)(LPARAM, UINT, 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 1142 |   | skipping to change at line 1149 | 
       |   |  | 
      | #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 LPBITMAPINFOHEADER lpbiOut, |   |     __in_opt LPBITMAPINFOHEADER lpbiOut, | 
      |     IN WORD wFlags |   |     __in     WORD wFlags | 
      |     ); |   |     ); | 
       |   |  | 
      | HIC |   | HIC | 
      | VFWAPI |   | VFWAPI | 
      | ICGetDisplayFormat( |   | ICGetDisplayFormat( | 
       | 
      |     IN 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 LPBITMAPINFO        lpbiOut,    // compress to this (NULL ==> default) |   |     __in_opt     LPBITMAPINFO        lpbiOut,    // compress to this (NULL ==> d | 
      |     IN LONG                lQuality,   // quality to use |   | efault) | 
      |     IN OUT LONG FAR *      plSize      // compress to this size (0=whatever) |   |     __in         LONG                lQuality,   // quality to use | 
       |   |     __inout_opt  LONG FAR *          plSize      // compress to this size (0=wha | 
       |   | tever) | 
      |     ); |   |     ); | 
       |   |  | 
      | HANDLE |   | HANDLE | 
      | VFWAPI |   | VFWAPI | 
      | ICImageDecompress( |   | ICImageDecompress( | 
       | 
      |     IN 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 LPBITMAPINFO        lpbiOut     // decompress to this (NULL ==> default) |   |     __in_opt LPBITMAPINFO        lpbiOut     // decompress to this (NULL ==> def | 
       |   | 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 1221 |   | skipping to change at line 1228 | 
      | // 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     HWND        hwnd,               // parent window for dialog |   |     __in_opt  HWND        hwnd,               // parent window for dialog | 
      |     IN     UINT        uiFlags,            // flags |   |     __in      UINT        uiFlags,            // flags | 
      |     IN     LPVOID      pvIn,               // input format (optional) |   |     __in_opt  LPVOID      pvIn,               // input format (optional) | 
      |     IN     LPVOID      lpData,             // input data (optional) |   |     __in_opt  LPVOID      lpData,             // input data (optional) | 
      |     IN OUT PCOMPVARS   pc,                 // data about the compressor/dlg |   |     __inout   PCOMPVARS   pc,                 // data about the compressor/dlg | 
      |     IN     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 | 
      |     IN  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 frame? |   |     __out       BOOL FAR               *pfKey,     // did it end up being a key  | 
      |     IN OUT LONG FAR             *plSize     // size to compress to/of returned i |   | frame? | 
      | mage |   |     __inout_opt LONG FAR               *plSize     // size to compress to/of ret | 
       |   | urned image | 
      |     ); |   |     ); | 
       |   |  | 
      | void |   | void | 
      | VFWAPI |   | VFWAPI | 
      | ICCompressorFree( |   | ICCompressorFree( | 
      |     IN PCOMPVARS pc |   |     IN PCOMPVARS pc | 
      |     ); |   |     ); | 
       |   |  | 
      | #endif  /* NOCOMPMAN */ |   | #endif  /* NOCOMPMAN */ | 
       |   |  | 
       |   |  | 
      | skipping to change at line 1327 |   | skipping to change at line 1334 | 
      | 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 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 LPPALETTEENTRY lppe |   |     __in_ecount(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 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 LPBITMAPINFOHEADER lpbi, |   |     __in_opt LPBITMAPINFOHEADER lpbi, | 
      |     IN 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( | 
       | 
      |        LPBITMAPINFOHEADER biDst, |   |        __in  LPBITMAPINFOHEADER biDst, | 
      |        LPVOID  lpDst, |   |        __out LPVOID    lpDst, | 
      |        int     DstX, |   |        __in  int       DstX, | 
      |        int     DstY, |   |        __in  int       DstY, | 
      |        int     DstXE, |   |        __in  int       DstXE, | 
      |        int     DstYE, |   |        __in  int       DstYE, | 
      |        LPBITMAPINFOHEADER biSrc, |   |        __in  LPBITMAPINFOHEADER biSrc, | 
      |        LPVOID  lpSrc, |   |        __in  LPVOID    lpSrc, | 
      |        int     SrcX, |   |        __in  int       SrcX, | 
      |        int     SrcY, |   |        __in  int       SrcY, | 
      |        int     SrcXE, |   |        __in  int       SrcXE, | 
      |        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 2033 |   | skipping to change at line 2040 | 
      | /*     -       -       -       -       -       -       -       -       */ |   | /*     -       -       -       -       -       -       -       -       */ | 
       |   |  | 
      | /****** 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, LPVOID FAR* ppvObj) PURE; |   |     STDMETHOD(QueryInterface) (THIS_ REFIID riid, __deref_out LPVOID FAR* ppvObj
) PURE; | 
      |     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_ AVISTREAMINFOW FAR * psi, LONG lSize) PURE ; |   |     STDMETHOD(Info)        (THIS_ __out_bcount(lSize) AVISTREAMINFOW FAR * psi,  | 
      |     STDMETHOD_(LONG, FindSample)(THIS_ LONG lPos, LONG lFlags) PURE ; |   | __in LONG lSize) PURE ; | 
      |     STDMETHOD(ReadFormat)  (THIS_ LONG lPos, |   |     STDMETHOD_(LONG, FindSample)(THIS_ __in LONG lPos, __in LONG lFlags) PURE ; | 
      |                            LPVOID lpFormat, LONG FAR *lpcbFormat) PURE ; |   |     STDMETHOD(ReadFormat)  (THIS_ __in LONG lPos, | 
      |     STDMETHOD(SetFormat)   (THIS_ LONG lPos, |   |                            __out_bcount_part_opt(*lpcbFormat, *lpcbFormat) LPVOI | 
      |                            LPVOID lpFormat, LONG cbFormat) PURE ; |   | D lpFormat, __inout LONG FAR *lpcbFormat) PURE ; | 
      |     STDMETHOD(Read)        (THIS_ LONG lStart, LONG lSamples, |   |     STDMETHOD(SetFormat)   (THIS_ __in LONG lPos, | 
      |                            LPVOID lpBuffer, LONG cbBuffer, |   |                            __in_bcount(cbFormat) LPVOID lpFormat, __in LONG cbFo | 
      |                            LONG FAR * plBytes, LONG FAR * plSamples) PURE ; |   | rmat) PURE ; | 
      |     STDMETHOD(Write)       (THIS_ LONG lStart, LONG lSamples, |   |     STDMETHOD(Read)        (THIS_ __in LONG lStart, __in LONG lSamples, | 
      |                            LPVOID lpBuffer, LONG cbBuffer, |   |                            __out_bcount_opt(cbBuffer) LPVOID lpBuffer, __in LONG | 
      |                            DWORD dwFlags, |   |  cbBuffer, | 
      |                            LONG FAR *plSampWritten, |   |                            __out_opt LONG FAR * plBytes, __out_opt LONG FAR * pl | 
      |                            LONG FAR *plBytesWritten) PURE ; |   | Samples) PURE ; | 
      |     STDMETHOD(Delete)      (THIS_ LONG lStart, LONG lSamples) PURE; |   |     STDMETHOD(Write)       (THIS_ __in LONG lStart, __in LONG lSamples, | 
      |     STDMETHOD(ReadData)    (THIS_ DWORD fcc, LPVOID lp, LONG FAR *lpcb) PURE ; |   |                            __in_bcount(cbBuffer) LPVOID lpBuffer, __in LONG cbBu | 
      |     STDMETHOD(WriteData)   (THIS_ DWORD fcc, LPVOID lp, LONG cb) PURE ; |   | ffer, | 
       |   |                            __in DWORD dwFlags, | 
       |   |                            __out_opt LONG FAR *plSampWritten, | 
       |   |                            __out_opt LONG FAR *plBytesWritten) PURE ; | 
       |   |     STDMETHOD(Delete)      (THIS_ __in LONG lStart, __in LONG lSamples) PURE; | 
       |   |     STDMETHOD(ReadData)    (THIS_ __in DWORD fcc, __out_bcount_part_opt(*lpcb, * | 
       |   | lpcb) LPVOID lp, __inout LONG FAR *lpcb) PURE ; | 
       |   |     STDMETHOD(WriteData)   (THIS_ __in DWORD fcc, __in_bcount(cb) LPVOID lp, __i | 
       |   | n LONG cb) PURE ; | 
      | #ifdef _WIN32 |   | #ifdef _WIN32 | 
       | 
      |     STDMETHOD(SetInfo) (THIS_ AVISTREAMINFOW FAR * lpInfo, |   |     STDMETHOD(SetInfo) (THIS_ __in_bcount(cbInfo) AVISTREAMINFOW FAR * lpInfo, | 
      |                            LONG cbInfo) PURE; |   |                            __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, LPVOID FAR* ppvObj) PURE; |   |     STDMETHOD(QueryInterface) (THIS_ REFIID riid, __deref_out LPVOID FAR* ppvObj
) PURE; | 
      |     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_ | 
       | 
      |                      LONG  lStart,                 // start of what we expect |   |                      __in LONG  lStart,            // start of what we expect | 
      |                                                    // to play |   |                                                    // to play | 
       | 
      |                      LONG  lEnd,                   // expected end, or -1 |   |                      __in LONG  lEnd,              // expected end, or -1 | 
      |                      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, LPVOID FAR* ppvObj) PURE; |   |     STDMETHOD(QueryInterface) (THIS_ REFIID riid, __deref_out LPVOID FAR* ppvObj
) PURE; | 
      |     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_ LONG FAR *plStart, |   |     STDMETHOD(Cut) (THIS_ __inout LONG FAR *plStart, | 
      |                          LONG FAR *plLength, |   |                          __inout LONG FAR *plLength, | 
      |                          PAVISTREAM FAR * ppResult) PURE; |   |                          __deref_out PAVISTREAM FAR * ppResult) PURE; | 
      |     STDMETHOD(Copy) (THIS_ LONG FAR *plStart, |   |     STDMETHOD(Copy) (THIS_ __inout LONG FAR *plStart, | 
      |                           LONG FAR *plLength, |   |                           __inout LONG FAR *plLength, | 
      |                           PAVISTREAM FAR * ppResult) PURE; |   |                           __deref_out PAVISTREAM FAR * ppResult) PURE; | 
      |     STDMETHOD(Paste) (THIS_ LONG FAR *plPos, |   |     STDMETHOD(Paste) (THIS_ __inout LONG FAR *plPos, | 
      |                            LONG FAR *plLength, |   |                            __inout LONG FAR *plLength, | 
      |                            PAVISTREAM pstream, |   |                            __inout PAVISTREAM pstream, | 
      |                            LONG lStart, |   |                            __in LONG lStart, | 
      |                            LONG lEnd) PURE; |   |                            __in LONG lEnd) PURE; | 
      |     STDMETHOD(Clone) (THIS_ PAVISTREAM FAR *ppResult) PURE; |   |     STDMETHOD(Clone) (THIS_ __deref_out PAVISTREAM FAR *ppResult) PURE; | 
      |     STDMETHOD(SetInfo) (THIS_ AVISTREAMINFOW FAR * lpInfo, |   |     STDMETHOD(SetInfo) (THIS_ __in_bcount(cbInfo) AVISTREAMINFOW FAR * lpInfo, | 
      |                            LONG cbInfo) PURE; |   |                            __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 2139 |   | skipping to change at line 2146 | 
       |   |  | 
      | 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, LPVOID FAR* ppvObj) PURE; |   |     STDMETHOD(QueryInterface) (THIS_ REFIID riid, __deref_out LPVOID FAR* ppvObj
) PURE; | 
      |     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_ | 
       | 
      |                                      AVIFILEINFOW FAR * pfi, |   |                                      __out_bcount(lSize) AVIFILEINFOW FAR * pfi, | 
      |                                      LONG lSize) PURE; |   |                                      __in LONG lSize) PURE; | 
      |     STDMETHOD(GetStream)            (THIS_ |   |     STDMETHOD(GetStream)            (THIS_ | 
       | 
      |                                      PAVISTREAM FAR * ppStream, |   |                                      __deref_out PAVISTREAM FAR * ppStream, | 
      |                                     DWORD fccType, |   |                                     __in DWORD fccType, | 
      |                                      LONG lParam) PURE; |   |                                      __in LONG lParam) PURE; | 
      |     STDMETHOD(CreateStream)         (THIS_ |   |     STDMETHOD(CreateStream)         (THIS_ | 
       | 
      |                                      PAVISTREAM FAR * ppStream, |   |                                      __deref_out PAVISTREAM FAR * ppStream, | 
      |                                      AVISTREAMINFOW FAR * psi) PURE; |   |                                      __in AVISTREAMINFOW FAR * psi) PURE; | 
      |     STDMETHOD(WriteData)            (THIS_ |   |     STDMETHOD(WriteData)            (THIS_ | 
       | 
      |                                      DWORD ckid, |   |                                      __in DWORD ckid, | 
      |                                      LPVOID lpData, |   |                                      __in_bcount(cbData) LPVOID lpData, | 
      |                                      LONG cbData) PURE; |   |                                      __in LONG cbData) PURE; | 
      |     STDMETHOD(ReadData)             (THIS_ |   |     STDMETHOD(ReadData)             (THIS_ | 
       | 
      |                                      DWORD ckid, |   |                                      __in DWORD ckid, | 
      |                                      LPVOID lpData, |   |                                      __out_bcount_part(*lpcbData, *lpcbData) LPV | 
      |                                      LONG FAR *lpcbData) PURE; |   | OID lpData, | 
       |   |                                      __inout LONG FAR *lpcbData) PURE; | 
      |     STDMETHOD(EndRecord)            (THIS) PURE; |   |     STDMETHOD(EndRecord)            (THIS) PURE; | 
      |     STDMETHOD(DeleteStream)         (THIS_ |   |     STDMETHOD(DeleteStream)         (THIS_ | 
       | 
      |                                     DWORD fccType, |   |                                     __in DWORD fccType, | 
      |                                      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, LPVOID FAR* ppvObj) PURE; |   |     STDMETHOD(QueryInterface) (THIS_ REFIID riid, __deref_out LPVOID FAR* ppvObj
) PURE; | 
      |     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_ LONG lPos) PURE; |   |     STDMETHOD_(LPVOID,GetFrame) (THIS_ __in LONG lPos) PURE; | 
      | //  STDMETHOD_(LPVOID,GetFrameData) (THIS_ LONG lPos) PURE; |   | //  STDMETHOD_(LPVOID,GetFrameData) (THIS_ __in LONG lPos) PURE; | 
       |   |  | 
       | 
      |     STDMETHOD(Begin) (THIS_ LONG lStart, LONG lEnd, LONG lRate) PURE; |   |     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_ LPBITMAPINFOHEADER lpbi, LPVOID lpBits, int x, i
nt y, int dx, 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_ LONG lPos, HDC hdc, int x, int y, int dx, 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 2234 |   | skipping to change at line 2241 | 
      | // 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       (PAVIFILE FAR * ppfile, LPCSTR szFile, |   | STDAPI AVIFileOpenA       (__deref_out PAVIFILE FAR * ppfile, __in LPCSTR szFile | 
      |                          UINT uMode, LPCLSID lpHandler); |   | , | 
      | STDAPI AVIFileOpenW       (PAVIFILE FAR * ppfile, LPCWSTR szFile, |   |                          UINT uMode, __in_opt LPCLSID lpHandler); | 
      |                          UINT uMode, LPCLSID lpHandler); |   | STDAPI AVIFileOpenW       (__deref_out PAVIFILE FAR * ppfile, __in LPCWSTR szFil | 
       |   | 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 (PAVIFILE pfile, LPAVIFILEINFOW pfi, LONG lSize); |   | STDAPI AVIFileInfoW (__in PAVIFILE pfile, __out_bcount(lSize) LPAVIFILEINFOW pfi | 
      | STDAPI AVIFileInfoA (PAVIFILE pfile, LPAVIFILEINFOA pfi, LONG lSize); |   | , __in LONG lSize); | 
       |   | STDAPI AVIFileInfoA (__in PAVIFILE pfile, __out_bcount(lSize) LPAVIFILEINFOA 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     (PAVIFILE pfile, PAVISTREAM FAR * ppavi, DWORD fccTy
pe, LONG lParam); |   | STDAPI AVIFileGetStream     (__in PAVIFILE pfile, __deref_out PAVISTREAM FAR * p
pavi, __in DWORD fccType, __in LONG lParam); | 
       |   |  | 
      | #ifdef _WIN32 |   | #ifdef _WIN32 | 
       | 
      | STDAPI AVIFileCreateStreamW (PAVIFILE pfile, PAVISTREAM FAR *ppavi, AVISTREAMINF |   | STDAPI AVIFileCreateStreamW (__in PAVIFILE pfile, __deref_out PAVISTREAM FAR *pp | 
      | OW FAR * psi); |   | avi, __in AVISTREAMINFOW FAR * psi); | 
      | STDAPI AVIFileCreateStreamA (PAVIFILE pfile, PAVISTREAM FAR *ppavi, AVISTREAMINF |   | STDAPI AVIFileCreateStreamA (__in PAVIFILE pfile, __deref_out PAVISTREAM FAR *pp | 
      | OA FAR * psi); |   | avi, __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        (PAVIFILE pfile, |   | STDAPI AVIFileWriteData        (__in PAVIFILE pfile, | 
      |                                         DWORD ckid, |   |                                         __in DWORD ckid, | 
      |                                         LPVOID lpData, |   |                                         __in_bcount(cbData) LPVOID lpData, | 
      |                                         LONG cbData); |   |                                         __in LONG cbData); | 
      | STDAPI AVIFileReadData (PAVIFILE pfile, |   | STDAPI AVIFileReadData (__in PAVIFILE pfile, | 
      |                                         DWORD ckid, |   |                                         __in DWORD ckid, | 
      |                                         LPVOID lpData, |   |                                         __out_bcount_part(*lpcbData, *lpcbData)  | 
      |                                         LONG FAR *lpcbData); |   | LPVOID lpData, | 
      | STDAPI AVIFileEndRecord        (PAVIFILE pfile); |   |                                         __inout LONG FAR *lpcbData); | 
       |   | 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 (PAVISTREAM pavi, LPAVISTREAMINFOW psi, LONG lSize); |   | STDAPI AVIStreamInfoW (__in PAVISTREAM pavi, __out_bcount(lSize) LPAVISTREAMINFO | 
      | STDAPI AVIStreamInfoA (PAVISTREAM pavi, LPAVISTREAMINFOA psi, LONG lSize); |   | W psi, __in LONG lSize); | 
       |   | STDAPI AVIStreamInfoA (__in PAVISTREAM pavi, __out_bcount(lSize) LPAVISTREAMINFO | 
       |   | A 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(PAVISTREAM pavi, LONG lPos, LONG lFlags); |   | STDAPI_(LONG) AVIStreamFindSample(__in PAVISTREAM pavi, __in LONG lPos, __in LON | 
      | STDAPI AVIStreamReadFormat   (PAVISTREAM pavi, LONG lPos,LPVOID lpFormat,LONG FA |   | G lFlags); | 
      | R *lpcbFormat); |   | STDAPI AVIStreamReadFormat   (__in PAVISTREAM pavi, __in LONG lPos,__out_bcount_ | 
      | STDAPI AVIStreamSetFormat    (PAVISTREAM pavi, LONG lPos,LPVOID lpFormat,LONG cb |   | part_opt(*lpcbFormat,*lpcbFormat) LPVOID lpFormat,__inout LONG FAR *lpcbFormat); | 
      | Format); |   | STDAPI AVIStreamSetFormat    (__in PAVISTREAM pavi, __in LONG lPos,__in_bcount(c | 
      | STDAPI AVIStreamReadData     (PAVISTREAM pavi, DWORD fcc, LPVOID lp, LONG FAR *l |   | bFormat) LPVOID lpFormat, __in LONG cbFormat); | 
      | pcb); |   | STDAPI AVIStreamReadData     (__in PAVISTREAM pavi, __in DWORD fcc, __out_bcount | 
      | STDAPI AVIStreamWriteData    (PAVISTREAM pavi, DWORD fcc, LPVOID lp, LONG cb); |   | _part_opt(*lpcb, *lpcb) LPVOID lp, __inout LONG FAR *lpcb); | 
       |   | STDAPI AVIStreamWriteData    (__in PAVISTREAM pavi, __in DWORD fcc, __in_bcount( | 
       |   | cb) LPVOID lp, __in LONG cb); | 
       |   |  | 
       | 
      | STDAPI AVIStreamRead         (PAVISTREAM pavi, |   | STDAPI AVIStreamRead         (__in PAVISTREAM pavi, | 
      |                              LONG lStart, |   |                              __in LONG lStart, | 
      |                              LONG lSamples, |   |                              __in LONG lSamples, | 
      |                              LPVOID lpBuffer, |   |                              __out_bcount_opt(cbBuffer) LPVOID lpBuffer, | 
      |                              LONG cbBuffer, |   |                              __in LONG cbBuffer, | 
      |                              LONG FAR * plBytes, |   |                              __out_opt LONG FAR * plBytes, | 
      |                              LONG FAR * plSamples); |   |                              __out_opt LONG FAR * plSamples); | 
      | #define AVISTREAMREAD_CONVENIENT       (-1L) |   | #define AVISTREAMREAD_CONVENIENT       (-1L) | 
       |   |  | 
       | 
      | STDAPI AVIStreamWrite        (PAVISTREAM pavi, |   | STDAPI AVIStreamWrite        (__in PAVISTREAM pavi, | 
      |                              LONG lStart, LONG lSamples, |   |                              __in LONG lStart, __in LONG lSamples, | 
      |                              LPVOID lpBuffer, LONG cbBuffer, DWORD dwFlags, |   |                              __in_bcount(cbBuffer) LPVOID lpBuffer, __in LONG cb | 
      |                              LONG FAR *plSampWritten, |   | Buffer, __in DWORD dwFlags, | 
      |                              LONG FAR *plBytesWritten); |   |                              __out_opt LONG FAR *plSampWritten, | 
       |   |                              __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        (PAVISTREAM pavi); |   | STDAPI_(LONG) AVIStreamStart        (__in PAVISTREAM pavi); | 
      | STDAPI_(LONG) AVIStreamLength       (PAVISTREAM pavi); |   | STDAPI_(LONG) AVIStreamLength       (__in PAVISTREAM pavi); | 
      | STDAPI_(LONG) AVIStreamTimeToSample (PAVISTREAM pavi, LONG lTime); |   | STDAPI_(LONG) AVIStreamTimeToSample (__in PAVISTREAM pavi, __in LONG lTime); | 
      | STDAPI_(LONG) AVIStreamSampleToTime (PAVISTREAM pavi, LONG lSample); |   | STDAPI_(LONG) AVIStreamSampleToTime (__in PAVISTREAM pavi, __in LONG lSample); | 
       |   |  | 
       | 
      | STDAPI AVIStreamBeginStreaming(PAVISTREAM pavi, LONG lStart, LONG lEnd, LONG lRa |   | STDAPI AVIStreamBeginStreaming(__in PAVISTREAM pavi, __in LONG lStart, __in LONG | 
      | te); |   |  lEnd, __in LONG lRate); | 
      | STDAPI AVIStreamEndStreaming(PAVISTREAM pavi); |   | STDAPI AVIStreamEndStreaming(__in PAVISTREAM pavi); | 
       |   |  | 
      | // |   | // | 
      | // helper functions for using IGetFrame |   | // helper functions for using IGetFrame | 
      | // |   | // | 
       | 
      | STDAPI_(PGETFRAME) AVIStreamGetFrameOpen(PAVISTREAM pavi, |   | STDAPI_(PGETFRAME) AVIStreamGetFrameOpen(__in PAVISTREAM pavi, | 
      |                                         LPBITMAPINFOHEADER lpbiWanted); |   |                                         __in_opt LPBITMAPINFOHEADER lpbiWanted); | 
      | STDAPI_(LPVOID) AVIStreamGetFrame(PGETFRAME pg, LONG lPos); |   | STDAPI_(LPVOID) AVIStreamGetFrame(__in PGETFRAME pg, __in LONG lPos); | 
      | STDAPI AVIStreamGetFrameClose(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(PAVISTREAM FAR *ppavi, LPCSTR szFile, |   | STDAPI AVIStreamOpenFromFileA(__deref_out PAVISTREAM FAR *ppavi, __in LPCSTR szF | 
      |                             DWORD fccType, LONG lParam, |   | ile, | 
      |                             UINT mode, CLSID FAR *pclsidHandler); |   |                             __in DWORD fccType, __in LONG lParam, | 
      | STDAPI AVIStreamOpenFromFileW(PAVISTREAM FAR *ppavi, LPCWSTR szFile, |   |                             __in UINT mode, __in_opt CLSID FAR *pclsidHandler); | 
      |                             DWORD fccType, LONG lParam, |   | STDAPI AVIStreamOpenFromFileW(__deref_out PAVISTREAM FAR *ppavi, LPCWSTR szFile, | 
      |                             UINT mode, CLSID FAR *pclsidHandler); |   |                             __in DWORD fccType, __in LONG lParam, | 
       |   |                             __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(PAVISTREAM FAR *ppavi, LONG lParam1, LONG lParam2, |   | STDAPI AVIStreamCreate(__deref_out PAVISTREAM FAR *ppavi, __in LONG lParam1, __i | 
      |                       CLSID FAR *pclsidHandler); |   | n LONG lParam2, | 
       |   |                       __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 2474 |   | skipping to change at line 2481 | 
      |  * |   |  * | 
      |  *  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( | 
       | 
      |                PAVISTREAM FAR *            ppsCompressed, |   |                __deref_out PAVISTREAM FAR *        ppsCompressed, | 
      |                PAVISTREAM                  ppsSource, |   |                __in PAVISTREAM             ppsSource, | 
      |                AVICOMPRESSOPTIONS FAR *    lpOptions, |   |                __in AVICOMPRESSOPTIONS FAR *    lpOptions, | 
      |                CLSID FAR *pclsidHandler); |   |                __in_opt CLSID FAR *pclsidHandler); | 
       |   |  | 
      | EXTERN_C HRESULT CDECL AVISaveA (LPCSTR               szFile, |   | EXTERN_C HRESULT CDECL AVISaveA (LPCSTR               szFile, | 
       | 
      |                CLSID FAR *pclsidHandler, |   |                __in_opt CLSID FAR *pclsidHandler, | 
      |                AVISAVECALLBACK     lpfnCallback, |   |                __in AVISAVECALLBACK     lpfnCallback, | 
      |                int                 nStreams, |   |                __in int                 nStreams, | 
      |                PAVISTREAM          pfile, |   |                __in PAVISTREAM     pfile, | 
      |                LPAVICOMPRESSOPTIONS lpOptions, |   |                __in LPAVICOMPRESSOPTIONS lpOptions, | 
      |                ...); |   |                ...); | 
       |   |  | 
      | STDAPI AVISaveVA(LPCSTR               szFile, |   | STDAPI AVISaveVA(LPCSTR               szFile, | 
       | 
      |                CLSID FAR *pclsidHandler, |   |                __in_opt CLSID FAR *pclsidHandler, | 
      |                AVISAVECALLBACK     lpfnCallback, |   |                __in AVISAVECALLBACK     lpfnCallback, | 
      |                int                 nStreams, |   |                __in int                 nStreams, | 
      |                PAVISTREAM FAR *    ppavi, |   |                __in_ecount(nStreams) PAVISTREAM FAR *    ppavi, | 
      |                LPAVICOMPRESSOPTIONS FAR *plpOptions); |   |                __in_ecount(nStreams) LPAVICOMPRESSOPTIONS FAR *plpOptions); | 
      | EXTERN_C HRESULT CDECL AVISaveW (LPCWSTR               szFile, |   | EXTERN_C HRESULT CDECL AVISaveW (LPCWSTR               szFile, | 
       | 
      |                CLSID FAR *pclsidHandler, |   |                __in_opt CLSID FAR *pclsidHandler, | 
      |                AVISAVECALLBACK     lpfnCallback, |   |                __in AVISAVECALLBACK     lpfnCallback, | 
      |                int                 nStreams, |   |                __in int                 nStreams, | 
      |                PAVISTREAM          pfile, |   |                __in PAVISTREAM     pfile, | 
      |                LPAVICOMPRESSOPTIONS lpOptions, |   |                __in LPAVICOMPRESSOPTIONS lpOptions, | 
      |                ...); |   |                ...); | 
       |   |  | 
      | STDAPI AVISaveVW(LPCWSTR               szFile, |   | STDAPI AVISaveVW(LPCWSTR               szFile, | 
       | 
      |                CLSID FAR *pclsidHandler, |   |                __in_opt CLSID FAR *pclsidHandler, | 
      |                AVISAVECALLBACK     lpfnCallback, |   |                __in AVISAVECALLBACK     lpfnCallback, | 
      |                int                 nStreams, |   |                __in int                 nStreams, | 
      |                PAVISTREAM FAR *    ppavi, |   |                __in_ecount(nStreams) PAVISTREAM FAR *    ppavi, | 
      |                LPAVICOMPRESSOPTIONS FAR *plpOptions); |   |                __in_ecount(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(HWND hwnd, |   | STDAPI_(INT_PTR) AVISaveOptions(__in HWND hwnd, | 
      |                             UINT       uiFlags, |   |                             __in UINT  uiFlags, | 
      |                             int        nStreams, |   |                             __in int   nStreams, | 
      |                             PAVISTREAM FAR *ppavi, |   |                             __in_ecount(nStreams) PAVISTREAM FAR *ppavi, | 
      |                             LPAVICOMPRESSOPTIONS FAR *plpOptions); |   |                             __inout_ecount(nStreams) LPAVICOMPRESSOPTIONS FAR *p | 
       |   | lpOptions); | 
       |   |  | 
      | STDAPI AVISaveOptionsFree(int nStreams, |   | STDAPI AVISaveOptionsFree(int nStreams, | 
       | 
      |                             LPAVICOMPRESSOPTIONS FAR *plpOptions); |   |                             __in_ecount(nStreams) LPAVICOMPRESSOPTIONS FAR *plpO
ptions); | 
       |   |  | 
      | // 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(LPWSTR lpszFilter, LONG cbFilter, BOOL fSaving); |   | STDAPI AVIBuildFilterW(__out_ecount(cbFilter) LPWSTR lpszFilter, __in LONG cbFil | 
      | STDAPI AVIBuildFilterA(LPSTR lpszFilter, LONG cbFilter, BOOL fSaving); |   | ter, __in BOOL fSaving); | 
       |   | STDAPI AVIBuildFilterA(__out_ecount(cbFilter) LPSTR lpszFilter, __in LONG cbFilt | 
       |   | 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(PAVIFILE FAR *   ppfile, |   | STDAPI AVIMakeFileFromStreams(__deref_out PAVIFILE FAR *       ppfile, | 
      |                               int              nStreams, |   |                               __in int         nStreams, | 
      |                               PAVISTREAM FAR * papStreams); |   |                               __in_ecount(nStreams) PAVISTREAM FAR *   papStream | 
       |   | s); | 
       |   |  | 
       | 
      | STDAPI AVIMakeStreamFromClipboard(UINT cfFormat, HANDLE hGlobal, PAVISTREAM FAR 
*ppstream); |   | STDAPI AVIMakeStreamFromClipboard(UINT cfFormat, __in HANDLE hGlobal, __deref_ou
t PAVISTREAM FAR *ppstream); | 
       |   |  | 
      | /**************************************************************************** |   | /**************************************************************************** | 
      |  * |   |  * | 
      |  *  Clipboard routines |   |  *  Clipboard routines | 
      |  * |   |  * | 
      |  ***************************************************************************/ |   |  ***************************************************************************/ | 
       |   |  | 
       | 
      | STDAPI AVIPutFileOnClipboard(PAVIFILE pf); |   | STDAPI AVIPutFileOnClipboard(__in PAVIFILE pf); | 
       |   |  | 
       | 
      | STDAPI AVIGetFromClipboard(PAVIFILE FAR * lppf); |   | STDAPI AVIGetFromClipboard(__deref_out PAVIFILE FAR * lppf); | 
       |   |  | 
      | STDAPI AVIClearClipboard(void); |   | STDAPI AVIClearClipboard(void); | 
       |   |  | 
      | /**************************************************************************** |   | /**************************************************************************** | 
      |  * |   |  * | 
      |  *  Editing routines |   |  *  Editing routines | 
      |  * |   |  * | 
      |  ***************************************************************************/ |   |  ***************************************************************************/ | 
      | STDAPI CreateEditableStream( |   | STDAPI CreateEditableStream( | 
       | 
      |                PAVISTREAM FAR *            ppsEditable, |   |                __deref_out PAVISTREAM FAR *        ppsEditable, | 
      |                PAVISTREAM                  psSource); |   |                __in PAVISTREAM             psSource); | 
       |   |  | 
       | 
      | STDAPI EditStreamCut(PAVISTREAM pavi, LONG FAR *plStart, LONG FAR *plLength, PAV
ISTREAM FAR * ppResult); |   | STDAPI EditStreamCut(__in PAVISTREAM pavi, __inout LONG FAR *plStart, __inout LO
NG FAR *plLength, __deref_out PAVISTREAM FAR * ppResult); | 
       |   |  | 
       | 
      | STDAPI EditStreamCopy(PAVISTREAM pavi, LONG FAR *plStart, LONG FAR *plLength, PA
VISTREAM FAR * ppResult); |   | STDAPI EditStreamCopy(__in PAVISTREAM pavi, __inout LONG FAR *plStart, __inout L
ONG FAR *plLength, __deref_out PAVISTREAM FAR * ppResult); | 
       |   |  | 
       | 
      | STDAPI EditStreamPaste(PAVISTREAM pavi, LONG FAR *plPos, LONG FAR *plLength, PAV
ISTREAM pstream, LONG lStart, 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(PAVISTREAM pavi, PAVISTREAM FAR *ppResult); |   | STDAPI EditStreamClone(__in PAVISTREAM pavi, __deref_out PAVISTREAM FAR *ppResul
t); | 
       |   |  | 
       | 
      | STDAPI EditStreamSetNameA(PAVISTREAM pavi, LPCSTR lpszName); |   | STDAPI EditStreamSetNameA(__in PAVISTREAM pavi, __in LPCSTR lpszName); | 
      | STDAPI EditStreamSetNameW(PAVISTREAM pavi, LPCWSTR lpszName); |   | STDAPI EditStreamSetNameW(__in PAVISTREAM pavi, __in LPCWSTR lpszName); | 
      | STDAPI EditStreamSetInfoW(PAVISTREAM pavi, LPAVISTREAMINFOW lpInfo, LONG cbInfo) |   | STDAPI EditStreamSetInfoW(__in PAVISTREAM pavi, __in_bcount(cbInfo) LPAVISTREAMI | 
      | ; |   | NFOW lpInfo, __in LONG cbInfo); | 
      | STDAPI EditStreamSetInfoA(PAVISTREAM pavi, LPAVISTREAMINFOA lpInfo, LONG cbInfo) |   | STDAPI EditStreamSetInfoA(__in PAVISTREAM pavi, __in_bcount(cbInfo) LPAVISTREAMI | 
      | ; |   | NFOA 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 2707 |   | skipping to change at line 2714 | 
      | #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 HWND hwndParent, |   |     __in_opt HWND hwndParent, | 
      |     IN HINSTANCE hInstance, |   |     __in_opt HINSTANCE hInstance, | 
      |     IN DWORD dwStyle, |   |     __in     DWORD dwStyle, | 
      |     IN LPCSTR szFile |   |     __in_opt LPCSTR szFile | 
      |     ); |   |     ); | 
       |   |  | 
      | HWND |   | HWND | 
      | VFWAPIV |   | VFWAPIV | 
      | MCIWndCreateW( |   | MCIWndCreateW( | 
       | 
      |     IN HWND hwndParent, |   |     __in_opt HWND hwndParent, | 
      |     IN HINSTANCE hInstance, |   |     __in_opt HINSTANCE hInstance, | 
      |     IN DWORD dwStyle, |   |     __in     DWORD dwStyle, | 
      |     IN 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 3548 |   | skipping to change at line 3555 | 
      | 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)  (HWND hWnd); |   | typedef LRESULT (CALLBACK* CAPYIELDCALLBACK)  (__in HWND hWnd); | 
      | typedef LRESULT (CALLBACK* CAPSTATUSCALLBACKW) (HWND hWnd, int nID, LPCWSTR lpsz |   | typedef LRESULT (CALLBACK* CAPSTATUSCALLBACKW) (__in HWND hWnd, __in int nID, LP | 
      | ); |   | CWSTR lpsz); | 
      | typedef LRESULT (CALLBACK* CAPERRORCALLBACKW)  (HWND hWnd, int nID, LPCWSTR lpsz |   | typedef LRESULT (CALLBACK* CAPERRORCALLBACKW)  (__in HWND hWnd, __in int nID, LP | 
      | ); |   | CWSTR lpsz); | 
      | typedef LRESULT (CALLBACK* CAPSTATUSCALLBACKA) (HWND hWnd, int nID, LPCSTR lpsz) |   | typedef LRESULT (CALLBACK* CAPSTATUSCALLBACKA) (__in HWND hWnd, __in int nID, LP | 
      | ; |   | CSTR lpsz); | 
      | typedef LRESULT (CALLBACK* CAPERRORCALLBACKA)  (HWND hWnd, int nID, LPCSTR lpsz) |   | typedef LRESULT (CALLBACK* CAPERRORCALLBACKA)  (__in HWND hWnd, __in int nID, LP | 
      | ; |   | 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)  (HWND hWnd, LPVIDEOHDR lpVHdr); |   | typedef LRESULT (CALLBACK* CAPVIDEOCALLBACK)  (__in HWND hWnd, __in LPVIDEOHDR l | 
      | typedef LRESULT (CALLBACK* CAPWAVECALLBACK)   (HWND hWnd, LPWAVEHDR lpWHdr); |   | pVHdr); | 
      | typedef LRESULT (CALLBACK* CAPCONTROLCALLBACK)(HWND hWnd, int nState); |   | typedef LRESULT (CALLBACK* CAPWAVECALLBACK)   (__in HWND hWnd, __in LPWAVEHDR lp | 
       |   | WHdr); | 
       |   | 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, | 
       | 
      |         DWORD dwStyle, |   |         __in DWORD dwStyle, | 
      |         int x, int y, int nWidth, int nHeight, |   |         __in int x, __in int y, __in int nWidth, __in int nHeight, | 
      |         HWND hwndParent, int nID); |   |         __in_opt HWND hwndParent, __in int nID); | 
       |   |  | 
      | BOOL VFWAPI capGetDriverDescriptionA (UINT wDriverIndex, |   | BOOL VFWAPI capGetDriverDescriptionA (UINT wDriverIndex, | 
       | 
      |         LPSTR lpszName, int cbName, |   |         __out_ecount(cbName) LPSTR lpszName, __in int cbName, | 
      |         LPSTR lpszVer, int cbVer); |   |         __out_ecount(cbVer) LPSTR lpszVer, __in int cbVer); | 
       |   |  | 
      | HWND VFWAPI capCreateCaptureWindowW ( |   | HWND VFWAPI capCreateCaptureWindowW ( | 
      |         LPCWSTR lpszWindowName, |   |         LPCWSTR lpszWindowName, | 
      |         DWORD dwStyle, |   |         DWORD dwStyle, | 
       | 
      |         int x, int y, int nWidth, int nHeight, |   |         __in int x, __in int y, __in int nWidth, __in int nHeight, | 
      |         HWND hwndParent, int nID); |   |         __in_opt HWND hwndParent, __in int nID); | 
       |   |  | 
      | BOOL VFWAPI capGetDriverDescriptionW (UINT wDriverIndex, |   | BOOL VFWAPI capGetDriverDescriptionW (UINT wDriverIndex, | 
       | 
      |         LPWSTR lpszName, int cbName, |   |         __out_ecount(cbName) LPWSTR lpszName, __in int cbName, | 
      |         LPWSTR lpszVer, int cbVer); |   |         __out_ecount(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 3709 |   | skipping to change at line 3716 | 
      | /**************************************************************************** |   | /**************************************************************************** | 
      |  * |   |  * | 
      |  *  FilePreview dialog. |   |  *  FilePreview dialog. | 
      |  * |   |  * | 
      |  ***************************************************************************/ |   |  ***************************************************************************/ | 
      | #ifdef OFN_READONLY |   | #ifdef OFN_READONLY | 
       |   |  | 
      |     BOOL |   |     BOOL | 
      |     VFWAPI |   |     VFWAPI | 
      |     GetOpenFileNamePreviewA( |   |     GetOpenFileNamePreviewA( | 
       | 
      |         IN OUT LPOPENFILENAMEA lpofn |   |         __inout LPOPENFILENAMEA lpofn | 
      |         ); |   |         ); | 
       |   |  | 
      |     BOOL |   |     BOOL | 
      |     VFWAPI |   |     VFWAPI | 
      |     GetSaveFileNamePreviewA( |   |     GetSaveFileNamePreviewA( | 
       | 
      |         IN OUT LPOPENFILENAMEA lpofn |   |         __inout LPOPENFILENAMEA lpofn | 
      |         ); |   |         ); | 
       |   |  | 
      |     BOOL |   |     BOOL | 
      |     VFWAPI |   |     VFWAPI | 
      |     GetOpenFileNamePreviewW( |   |     GetOpenFileNamePreviewW( | 
       | 
      |         IN OUT LPOPENFILENAMEW lpofn |   |         __inout LPOPENFILENAMEW lpofn | 
      |         ); |   |         ); | 
       |   |  | 
      |     BOOL |   |     BOOL | 
      |     VFWAPI |   |     VFWAPI | 
      |     GetSaveFileNamePreviewW( |   |     GetSaveFileNamePreviewW( | 
       | 
      |         IN OUT 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 | 
       |   |  | 
      |   |  | 
     |  End of changes. 114 change blocks.  | 
     | 428 lines changed or deleted |   | 476 lines changed or added | 
      |