public static extern bool SFileGetFileInfo( MpqArchiveSafeHandle hMpqOrFile, SFileInfoClass InfoClass, IntPtr pvFileInfo, uint cbFileInfoSize, out uint pcbLengthNeeded );
public static extern int SFileEnumLocales( MpqArchiveSafeHandle hMpq, [MarshalAs(UnmanagedType.LPStr)] string szFileName, IntPtr plcLocales, ref uint pdwMaxLocales, uint dwSearchScope );
public static extern bool SFileAddWave( MpqArchiveSafeHandle hMpq, [MarshalAs(UnmanagedType.LPTStr)] string szFileName, [MarshalAs(UnmanagedType.LPStr)] string szArchivedName, uint dwFlags, uint dwQuality );
public static extern bool SFileAddFileEx( MpqArchiveSafeHandle hMpq, [MarshalAs(UnmanagedType.LPTStr)] string szFileName, [MarshalAs(UnmanagedType.LPStr)] string szArchivedName, uint dwFlags, uint dwCompression, uint dwCompressionNext );
public static extern bool SFileCreateFile( MpqArchiveSafeHandle hMpq, [MarshalAs(UnmanagedType.LPStr)] string szArchiveName, ulong fileTime, uint dwFileSize, uint lcLocale, uint dwFlags, out IntPtr phFile );
public static extern uint SFileVerifyArchive(MpqArchiveSafeHandle hMpq);
public static extern bool SFileHasFile( MpqArchiveSafeHandle hMpq, [MarshalAs(UnmanagedType.LPStr)] string szFileName );
public static extern bool SFileOpenPatchArchive( MpqArchiveSafeHandle hMpq, [MarshalAs(UnmanagedType.LPTStr)] string szPatchMpqName, [MarshalAs(UnmanagedType.LPStr)] string szPatchPathPrefix, uint dwFlags );
public static extern bool SFileSetMaxFileCount(MpqArchiveSafeHandle hMpq, uint dwMaxFileCount);
public static extern int SFileAddListFile( MpqArchiveSafeHandle hMpq, [MarshalAs(UnmanagedType.LPStr)] string szListFile );
public static extern bool SFileSetAddFileCallback( MpqArchiveSafeHandle hMpq, SFILE_ADDFILE_CALLBACK AddFileCB, IntPtr pvUserData );
public static extern IntPtr SListFileFindFirstFile( MpqArchiveSafeHandle hMpq, [MarshalAs(UnmanagedType.LPStr)] string szListFile, [MarshalAs(UnmanagedType.LPStr)] string szMask, [In, Out] ref _SFILE_FIND_DATA lpFindFileData );
public static extern int SFileVerifyRawData( MpqArchiveSafeHandle hMpq, uint dwWhatToVerify, [MarshalAs(UnmanagedType.LPStr)] string szFileName );
public static extern uint SFileVerifyFile( MpqArchiveSafeHandle hMpq, [MarshalAs(UnmanagedType.LPStr)] string szFileName, uint dwFlags );
public static extern bool SFileGetFileChecksums( MpqArchiveSafeHandle hMpq, [MarshalAs(UnmanagedType.LPStr)] string szFileName, out uint pdwCrc32, IntPtr pMD5 );
public static extern bool SFileExtractFile( MpqArchiveSafeHandle hMpq, [MarshalAs(UnmanagedType.LPStr)] string szToExtract, [MarshalAs(UnmanagedType.LPTStr)] string szExtracted, uint dwSearchScope );
public static extern bool SFileOpenArchive( [MarshalAs(UnmanagedType.LPTStr)] string szMpqName, uint dwPriority, SFileOpenArchiveFlags dwFlags, out MpqArchiveSafeHandle phMpq );
public static extern bool SFileCreateArchive( [MarshalAs(UnmanagedType.LPTStr)] string szMpqName, uint dwCreateFlags, uint dwMaxFileCount, out MpqArchiveSafeHandle phMpq );
public static extern bool SFileRenameFile( MpqArchiveSafeHandle hMpq, [MarshalAs(UnmanagedType.LPStr)] string szOldFileName, [MarshalAs(UnmanagedType.LPStr)] string szNewFileName );
public static extern bool SFileIsPatchedArchive(MpqArchiveSafeHandle hMpq);
public static extern bool SFileFlushArchive(MpqArchiveSafeHandle hMpq);
public static extern bool SFileCompactArchive( MpqArchiveSafeHandle hMpq, [MarshalAs(UnmanagedType.LPStr)] string szListFile, bool bReserved );
public static extern bool SFileSetAttributes(MpqArchiveSafeHandle hMpq, uint dwFlags);
public static extern bool SFileOpenFileEx( MpqArchiveSafeHandle hMpq, [MarshalAs(UnmanagedType.LPStr)] string szFileName, uint dwSearchScope, out MpqFileSafeHandle phFile );
public static extern bool SFileRemoveFile( MpqArchiveSafeHandle hMpq, [MarshalAs(UnmanagedType.LPStr)] string szFileName, uint dwSearchScope );
public static extern bool SFileCreateArchive2( [MarshalAs(UnmanagedType.LPTStr)] string szMpqName, ref SFILE_CREATE_MPQ pCreateInfo, out MpqArchiveSafeHandle phMpq );
public static extern bool SFileSetDownloadCallback( MpqArchiveSafeHandle hMpq, [MarshalAs(UnmanagedType.FunctionPtr)] SFILE_DOWNLOAD_CALLBACK pfnCallback, IntPtr pvUserData );
public static extern bool SFileCloseArchive(MpqArchiveSafeHandle hMpq);
public static extern bool SFileSetCompactCallback( MpqArchiveSafeHandle hMpq, SFILE_COMPACT_CALLBACK compactCB, IntPtr pvUserData );
public static extern uint SFileGetMaxFileCount(MpqArchiveSafeHandle hMpq);
public static extern uint SFileGetAttributes(MpqArchiveSafeHandle hMpq);
protected virtual void Dispose(bool disposing) { if (disposing) { // Release owned files first. if (_openFiles != null) { foreach (var file in _openFiles) { file.Dispose(); } _openFiles.Clear(); _openFiles = null; } // Release if (_handle != null && !_handle.IsInvalid) { _handle.Close(); _handle = null; } } }
public static extern bool SFileUpdateFileAttributes( MpqArchiveSafeHandle hMpq, [MarshalAs(UnmanagedType.LPStr)] string szFileName );