|
||||
AVIFileOpenCategory: AVIHits: 4393 Rating: (2.88) votes 493
Rate: 1-star 2-stars 3-stars 4-stars 5-stars
API Explanation
The AVIFileOpen function opens an AVI file and returns the address of a file interface used to access it. The AVIFile library maintains a count of the number of times a file is opened, but not the number of times it was released. Use the AVIFileRelease function to release the file and decrement the count. Parameter Information Declare Function AVIFileOpen Lib "avifil32" Alias "AVIFileOpenA" (ppfile As Long, ByVal szFile As String, ByVal mode As Long, pclsidHandler As Any) As Long · ppfile Address to contain the new file interface pointer. · szFile Null-terminated string containing the name of the file to open. · mode Access mode to use when opening the file. The default access mode is OF_READ. The following access modes can be specified with AVIFileOpen: OF_CREATE Creates a new file. If the file already exists, it is truncated to zero length. OF_SHARE_DENY_NONE Opens the file nonexclusively. Other processes can open the file with read or write access. AVIFileOpen fails if another process has opened the file in compatibility mode. OF_SHARE_DENY_READ Opens the file nonexclusively. Other processes can open the file with write access. AVIFileOpen fails if another process has opened the file in compatibility mode or has read access to it. OF_SHARE_DENY_WRITE Opens the file nonexclusively. Other processes can open the file with read access. AVIFileOpen fails if another process has opened the file in compatibility mode or has write access to it. OF_SHARE_EXCLUSIVE Opens the file and denies other processes any access to it. AVIFileOpen fails if any other process has opened the file. OF_READ Opens the file for reading. OF_READWRITE Opens the file for reading and writing. OF_WRITE Opens the file for writing. · pclsidHandler Address of a class identifier of the standard or custom handler you want to use. If the value is NULL, the system chooses a handler from the registry based on the file extension or the RIFF type specified in the file. Returns zero if successful or an error otherwise. Possible error values include the following: AVIERR_BADFORMAT The file couldn’t be read, indicating a corrupt file or an unrecognized format. AVIERR_MEMORY The file could not be opened because of insufficient memory. AVIERR_FILEREAD A disk error occurred while reading the file. AVIERR_FILEOPEN A disk error occurred while opening the file. REGDB_E_CLASSNOTREG According to the registry, the type of file specified in AVIFileOpen does not have a handler to process it.
Code
Private Const OF_SHARE_DENY_WRITE As Long = &H20
Private Type AVIFILEINFO dwMaxBytesPerSec As Long dwFlags As Long dwCaps As Long dwStreams As Long dwSuggestedBufferSize As Long dwWidth As Long dwHeight As Long dwScale As Long dwRate As Long dwLength As Long dwEditCount As Long szFileType As String * 64 End Type Private Declare Function AVIFileOpen Lib "avifil32" Alias "AVIFileOpenA" (ppfile As Long, ByVal szFile _ As String, ByVal mode As Long, pclsidHandler As Any) As Long Private Declare Function AVIFileRelease Lib "avifil32" (ByVal pfile As Long) As Long Private Declare Function AVIFileInfo Lib "avifil32" Alias "AVIFileInfoA" (ByVal pfile As Long, pfi As _ AVIFILEINFO, ByVal lSize As Long) As Long Private Declare Sub AVIFileInit Lib "avifil32" () Private Declare Sub AVIFileExit Lib "avifil32" () Private Sub Form_Load() Dim hFile As Long, AviInfo As AVIFILEINFO 'initialize the AVIFile library AVIFileInit 'create a handle to the AVI file If AVIFileOpen(hFile, "C:\\SIERRA\\Half-Life\\valve\\media\\sierra.avi", OF_SHARE_DENY_WRITE, _ ByVal 0&) = 0 Then 'retrieve the AVI information If AVIFileInfo(hFile, AviInfo, Len(AviInfo)) = 0 Then MsgBox "AVI dimensions: " + CStr(AviInfo.dwWidth) + "x" + CStr(AviInfo.dwHeight) Else MsgBox "Error while retrieving AVI information... :(" End If 'release the file handle AVIFileRelease hFile Else MsgBox "Error while opening the AVI file... :(" End If 'exit the AVIFile library and decrement the reference count for the library AVIFileExit End Sub |