private static IntPtr FdiCreate( NativeMethods.FdiMemAllocDelegate fnMemAlloc, NativeMethods.FdiMemFreeDelegate fnMemFree, NativeMethods.FdiFileOpenDelegate fnFileOpen, NativeMethods.FdiFileReadDelegate fnFileRead, NativeMethods.FdiFileWriteDelegate fnFileWrite, NativeMethods.FdiFileCloseDelegate fnFileClose, NativeMethods.FdiFileSeekDelegate fnFileSeek, NativeMethods.CabError erf) { return(NativeMethods.FdiCreate(fnMemAlloc, fnMemFree, fnFileOpen, fnFileRead, fnFileWrite, fnFileClose, fnFileSeek, CpuTypeUnknown, erf)); }
public CabArchive(byte[] data) { _fileReadDelegate = FileRead; _fileOpenDelegate = InputFileOpen; _femAllocDelegate = MemAlloc; _fileSeekDelegate = FileSeek; _memFreeDelegate = MemFree; _fileWriteDelegate = FileWrite; _fileCloseDelegate = InputFileClose; _inputData = data; _decompressFiles = new List<NativeMethods.DecompressFile>(); _presentFiles = new List<string>(); _erf = new NativeMethods.CabError(); _hfdi = IntPtr.Zero; }
public CabExtractor(string cabFilePath) { var cabBytes = File.ReadAllBytes(cabFilePath); _inputData = cabBytes; var cabFileLocation = Path.GetDirectoryName(cabFilePath) ?? ""; _extractionFolderPath = Path.Combine(cabFileLocation, ExtractedFolderName); _erf = new NativeMethods.CabError(); FdiContext = IntPtr.Zero; _fdiAllocMemHandler = MemAlloc; _fdiFreeMemHandler = MemFree; _fdiOpenStreamHandler = InputFileOpen; _fdiReadStreamHandler = FileRead; _fdiWriteStreamHandler = FileWrite; _fdiCloseStreamHandler = InputFileClose; _fdiSeekStreamHandler = FileSeek; FdiContext = FdiCreate(_fdiAllocMemHandler, _fdiFreeMemHandler, _fdiOpenStreamHandler, _fdiReadStreamHandler, _fdiWriteStreamHandler, _fdiCloseStreamHandler, _fdiSeekStreamHandler, _erf); }