public bool OpenArchive(ref RAROpenArchiveDataEx archiveData) { try { IntPtr hArchive = RAROpenArchiveEx(ref archiveData); this.SetHandle(hArchive); } catch { this.SetHandle(IntPtr.Zero); } return !this.IsInvalid; }
private static extern IntPtr RAROpenArchiveEx(ref RAROpenArchiveDataEx archiveData);
//書庫ファイルをオープンする public bool OpenArchive(string arcFilePath, OpenMode openMode) { if (string.IsNullOrEmpty(arcFilePath)) return false; RAROpenArchiveDataEx tArchiveData = new RAROpenArchiveDataEx(); tArchiveData.ArcName = tArchiveData.ArcNameW = arcFilePath; tArchiveData.OpenMode = openMode; tArchiveData.SetCommentBuffer(false); //必要なら適宜trueとする tArchiveData.Callback = IntPtr.Zero; //必要なら適宜セットする tArchiveData.UserData = IntPtr.Zero; //必要なら適宜セットする shArchive.CloseArchive(); return shArchive.OpenArchive(ref tArchiveData); }