The AVISaveV function builds a file by combining data streams from other files or from memory.

  LPCTSTR szFile,                
  CLSID * pclsidHandler,         
  AVISAVECALLBACK lpfnCallback,  
  int nStreams,                  
  PAVISTREAM * ppavi,            



Null-terminated string containing the name of the file to save.


Pointer to the file handler used to write the file. The file is created by calling the AVIFileOpen function using this handler. If a handler is not specified, a default is selected from the registry based on the file extension.


Pointer to a callback function used to display status information and to let the user cancel the save operation.


Number of streams to save.


Pointer to an array of pointers to the AVISTREAM function structures. The array uses one pointer for each stream.


Pointer to an array of pointers to AVICOMPRESSOPTIONS structures. The array uses one pointer for each stream.

Return Values

Returns AVIERR_OK if successful or an error otherwise.


This function is equivalent to the AVISave function except the streams are passed in an array instead of as a variable number of arguments.

This function creates a file, copies stream data into the file, closes the file, and releases the resources used by the new file. The last two parameters of this function are arrays that identify the streams to save in the file and define the compression options of those streams.

An application must allocate memory for the AVICOMPRESSOPTIONS structures and the array of pointers to these structures.

The argument ppavi contains the address of a pointer to an IAVIStream interface.


  Windows NT/2000/XP: Included in Windows NT 3.1 and later.
  Windows 95/98/Me: Included in Windows 95 and later.
  Header: Declared in Vfw.h.
  Library: Use Vfw32.lib.
  Unicode: Implemented as Unicode and ANSI versions on Windows NT/2000/XP.

See Also

AVIFile Functions and Macros, AVIFile Functions, AVIFileOpen, AVICOMPRESSOPTIONS, AVISave