예제 #1
0
 public static extern bool SFileGetFileInfo(
     MpqArchiveSafeHandle hMpqOrFile,
     SFileInfoClass InfoClass,
     IntPtr pvFileInfo,
     uint cbFileInfoSize,
     out uint pcbLengthNeeded
     );
예제 #2
0
 public static extern int SFileEnumLocales(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szFileName,
     IntPtr plcLocales,
     ref uint pdwMaxLocales,
     uint dwSearchScope
     );
예제 #3
0
 public static extern bool SFileAddWave(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPTStr)] string szFileName,
     [MarshalAs(UnmanagedType.LPStr)] string szArchivedName,
     uint dwFlags,
     uint dwQuality
     );
예제 #4
0
 public static extern bool SFileAddFileEx(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPTStr)] string szFileName,
     [MarshalAs(UnmanagedType.LPStr)] string szArchivedName,
     uint dwFlags,
     uint dwCompression,
     uint dwCompressionNext
     );
예제 #5
0
 public static extern bool SFileCreateFile(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szArchiveName,
     ulong fileTime,
     uint dwFileSize,
     uint lcLocale,
     uint dwFlags,
     out IntPtr phFile
     );
예제 #6
0
 public static extern uint SFileVerifyArchive(MpqArchiveSafeHandle hMpq);
예제 #7
0
 public static extern bool SFileHasFile(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szFileName
     );
예제 #8
0
 public static extern bool SFileOpenPatchArchive(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPTStr)] string szPatchMpqName,
     [MarshalAs(UnmanagedType.LPStr)] string szPatchPathPrefix,
     uint dwFlags
     );
예제 #9
0
 public static extern bool SFileSetMaxFileCount(MpqArchiveSafeHandle hMpq, uint dwMaxFileCount);
예제 #10
0
 public static extern int SFileAddListFile(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szListFile
     );
예제 #11
0
 public static extern bool SFileSetAddFileCallback(
     MpqArchiveSafeHandle hMpq,
     SFILE_ADDFILE_CALLBACK AddFileCB,
     IntPtr pvUserData
     );
예제 #12
0
 public static extern bool SFileAddWave(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPTStr)] string szFileName,
     [MarshalAs(UnmanagedType.LPStr)] string szArchivedName,
     uint dwFlags,
     uint dwQuality
     );
예제 #13
0
 public static extern IntPtr SListFileFindFirstFile(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szListFile,
     [MarshalAs(UnmanagedType.LPStr)] string szMask,
     [In, Out] ref _SFILE_FIND_DATA lpFindFileData
     );
예제 #14
0
 public static extern uint SFileVerifyArchive(MpqArchiveSafeHandle hMpq);
예제 #15
0
 public static extern int SFileVerifyRawData(
     MpqArchiveSafeHandle hMpq,
     uint dwWhatToVerify,
     [MarshalAs(UnmanagedType.LPStr)] string szFileName
     );
예제 #16
0
 public static extern uint SFileVerifyFile(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szFileName,
     uint dwFlags
     );
예제 #17
0
 public static extern bool SFileGetFileChecksums(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szFileName,
     out uint pdwCrc32,
     IntPtr pMD5
     );
예제 #18
0
 public static extern bool SFileExtractFile(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szToExtract,
     [MarshalAs(UnmanagedType.LPTStr)] string szExtracted,
     uint dwSearchScope
     );
예제 #19
0
 public static extern bool SFileOpenArchive(
     [MarshalAs(UnmanagedType.LPTStr)] string szMpqName,
     uint dwPriority,
     SFileOpenArchiveFlags dwFlags,
     out MpqArchiveSafeHandle phMpq
     );
예제 #20
0
 public static extern bool SFileCreateArchive(
     [MarshalAs(UnmanagedType.LPTStr)] string szMpqName,
     uint dwCreateFlags,
     uint dwMaxFileCount,
     out MpqArchiveSafeHandle phMpq
     );
예제 #21
0
 public static extern bool SFileCreateFile(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szArchiveName,
     ulong fileTime,
     uint dwFileSize,
     uint lcLocale,
     uint dwFlags,
     out IntPtr phFile
     );
예제 #22
0
 public static extern bool SFileCreateArchive(
     [MarshalAs(UnmanagedType.LPTStr)] string szMpqName,
     uint dwCreateFlags,
     uint dwMaxFileCount,
     out MpqArchiveSafeHandle phMpq
     );
예제 #23
0
 public static extern bool SFileRenameFile(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szOldFileName,
     [MarshalAs(UnmanagedType.LPStr)] string szNewFileName
     );
예제 #24
0
 public static extern bool SFileIsPatchedArchive(MpqArchiveSafeHandle hMpq);
예제 #25
0
 public static extern bool SFileFlushArchive(MpqArchiveSafeHandle hMpq);
예제 #26
0
 public static extern bool SFileGetFileInfo(
     MpqArchiveSafeHandle hMpqOrFile,
     SFileInfoClass InfoClass,
     IntPtr pvFileInfo,
     uint cbFileInfoSize,
     out uint pcbLengthNeeded
     );
예제 #27
0
 public static extern bool SFileCompactArchive(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szListFile,
     bool bReserved
     );
예제 #28
0
 public static extern bool SFileExtractFile(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szToExtract,
     [MarshalAs(UnmanagedType.LPTStr)] string szExtracted,
     uint dwSearchScope
     );
예제 #29
0
 public static extern bool SFileSetAttributes(MpqArchiveSafeHandle hMpq, uint dwFlags);
예제 #30
0
 public static extern uint SFileVerifyFile(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szFileName,
     uint dwFlags
     );
예제 #31
0
 public static extern bool SFileOpenFileEx(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szFileName,
     uint dwSearchScope,
     out MpqFileSafeHandle phFile
     );
예제 #32
0
 public static extern bool SFileOpenFileEx(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szFileName,
     uint dwSearchScope,
     out MpqFileSafeHandle phFile
     );
예제 #33
0
 public static extern bool SFileOpenArchive(
     [MarshalAs(UnmanagedType.LPTStr)] string szMpqName,
     uint dwPriority,
     SFileOpenArchiveFlags dwFlags,
     out MpqArchiveSafeHandle phMpq
     );
예제 #34
0
 public static extern bool SFileRemoveFile(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szFileName,
     uint dwSearchScope
     );
예제 #35
0
 public static extern bool SFileGetFileChecksums(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szFileName,
     out uint pdwCrc32,
     IntPtr pMD5
     );
예제 #36
0
 public static extern bool SFileRenameFile(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szOldFileName,
     [MarshalAs(UnmanagedType.LPStr)] string szNewFileName
     );
예제 #37
0
 public static extern int SFileVerifyRawData(
     MpqArchiveSafeHandle hMpq,
     uint dwWhatToVerify,
     [MarshalAs(UnmanagedType.LPStr)] string szFileName
     );
예제 #38
0
 public static extern bool SFileCreateArchive2(
     [MarshalAs(UnmanagedType.LPTStr)] string szMpqName,
     ref SFILE_CREATE_MPQ pCreateInfo,
     out MpqArchiveSafeHandle phMpq
     );
예제 #39
0
 public static extern IntPtr SListFileFindFirstFile(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szListFile,
     [MarshalAs(UnmanagedType.LPStr)] string szMask,
     [In, Out] ref _SFILE_FIND_DATA lpFindFileData
     );
예제 #40
0
 public static extern bool SFileSetAddFileCallback(
     MpqArchiveSafeHandle hMpq,
     SFILE_ADDFILE_CALLBACK AddFileCB,
     IntPtr pvUserData
     );
예제 #41
0
 public static extern int SFileEnumLocales(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szFileName,
     IntPtr plcLocales,
     ref uint pdwMaxLocales,
     uint dwSearchScope
     );
예제 #42
0
 public static extern bool SFileSetDownloadCallback(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.FunctionPtr)] SFILE_DOWNLOAD_CALLBACK pfnCallback,
     IntPtr pvUserData
     );
예제 #43
0
 public static extern bool SFileAddFileEx(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPTStr)] string szFileName,
     [MarshalAs(UnmanagedType.LPStr)] string szArchivedName,
     uint dwFlags,
     uint dwCompression,
     uint dwCompressionNext
     );
예제 #44
0
 public static extern bool SFileFlushArchive(MpqArchiveSafeHandle hMpq);
예제 #45
0
 public static extern bool SFileRemoveFile(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szFileName,
     uint dwSearchScope
     );
예제 #46
0
 public static extern bool SFileCloseArchive(MpqArchiveSafeHandle hMpq);
예제 #47
0
 public static extern bool SFileCreateArchive2(
     [MarshalAs(UnmanagedType.LPTStr)] string szMpqName,
     ref SFILE_CREATE_MPQ pCreateInfo,
     out MpqArchiveSafeHandle phMpq
     );
예제 #48
0
 public static extern int SFileAddListFile(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szListFile
     );
예제 #49
0
 public static extern bool SFileSetDownloadCallback(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.FunctionPtr)] SFILE_DOWNLOAD_CALLBACK pfnCallback,
     IntPtr pvUserData
     );
예제 #50
0
 public static extern bool SFileSetCompactCallback(
     MpqArchiveSafeHandle hMpq,
     SFILE_COMPACT_CALLBACK compactCB,
     IntPtr pvUserData
     );
예제 #51
0
 public static extern bool SFileCloseArchive(MpqArchiveSafeHandle hMpq);
예제 #52
0
 public static extern bool SFileCompactArchive(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szListFile,
     bool bReserved
     );
예제 #53
0
 public static extern bool SFileSetCompactCallback(
     MpqArchiveSafeHandle hMpq,
     SFILE_COMPACT_CALLBACK compactCB,
     IntPtr pvUserData
     );
예제 #54
0
 public static extern uint SFileGetMaxFileCount(MpqArchiveSafeHandle hMpq);
예제 #55
0
 public static extern uint SFileGetMaxFileCount(MpqArchiveSafeHandle hMpq);
예제 #56
0
 public static extern bool SFileSetMaxFileCount(MpqArchiveSafeHandle hMpq, uint dwMaxFileCount);
예제 #57
0
 public static extern uint SFileGetAttributes(MpqArchiveSafeHandle hMpq);
예제 #58
0
 public static extern bool SFileHasFile(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szFileName
     );
예제 #59
0
        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;
                }
            }
        }
예제 #60
0
 public static extern bool SFileUpdateFileAttributes(
     MpqArchiveSafeHandle hMpq,
     [MarshalAs(UnmanagedType.LPStr)] string szFileName
     );