aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core.Native/Cabinet.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Core.Native/Cabinet.cs')
-rw-r--r--src/WixToolset.Core.Native/Cabinet.cs89
1 files changed, 2 insertions, 87 deletions
diff --git a/src/WixToolset.Core.Native/Cabinet.cs b/src/WixToolset.Core.Native/Cabinet.cs
index 7e04cbc5..9b77bd37 100644
--- a/src/WixToolset.Core.Native/Cabinet.cs
+++ b/src/WixToolset.Core.Native/Cabinet.cs
@@ -8,7 +8,7 @@ namespace WixToolset.Core.Native
8 using WixToolset.Data; 8 using WixToolset.Data;
9 9
10 /// <summary> 10 /// <summary>
11 /// Wrapper class around interop with wixcab.dll to compress files into a cabinet. 11 /// Cabinet create, enumerate and extract mechanism.
12 /// </summary> 12 /// </summary>
13 public sealed class Cabinet 13 public sealed class Cabinet
14 { 14 {
@@ -16,7 +16,7 @@ namespace WixToolset.Core.Native
16 private static readonly char[] TextLineSplitter = new[] { '\t' }; 16 private static readonly char[] TextLineSplitter = new[] { '\t' };
17 17
18 /// <summary> 18 /// <summary>
19 /// 19 /// Creates a cabinet creation, enumeration, extraction mechanism.
20 /// </summary> 20 /// </summary>
21 /// <param name="path">Path of cabinet</param> 21 /// <param name="path">Path of cabinet</param>
22 public Cabinet(string path) 22 public Cabinet(string path)
@@ -116,90 +116,5 @@ namespace WixToolset.Core.Native
116 var wixnative = new WixNativeExe("extractcab", this.Path, outputFolder); 116 var wixnative = new WixNativeExe("extractcab", this.Path, outputFolder);
117 return wixnative.Run().Where(output => !String.IsNullOrWhiteSpace(output)); 117 return wixnative.Run().Where(output => !String.IsNullOrWhiteSpace(output));
118 } 118 }
119
120#if TOOD_ERROR_HANDLING
121 /// <summary>
122 /// Adds a file to the cabinet with an optional MSI file hash.
123 /// </summary>
124 /// <param name="file">The file to add.</param>
125 /// <param name="token">The token for the file.</param>
126 /// <param name="fileHash">The MSI file hash of the file.</param>
127 //private void AddFile(string file, string token, MsiInterop.MSIFILEHASHINFO fileHash)
128 //{
129 // try
130 // {
131 // NativeMethods.CreateCabAddFile(file, token, fileHash, this.handle);
132 // }
133 // catch (COMException ce)
134 // {
135 // if (0x80004005 == unchecked((uint)ce.ErrorCode)) // E_FAIL
136 // {
137 // throw new WixException(WixErrors.CreateCabAddFileFailed());
138 // }
139 // else if (0x80070070 == unchecked((uint)ce.ErrorCode)) // ERROR_DISK_FULL
140 // {
141 // throw new WixException(WixErrors.CreateCabInsufficientDiskSpace());
142 // }
143 // else
144 // {
145 // throw;
146 // }
147 // }
148 // catch (DirectoryNotFoundException)
149 // {
150 // throw new WixFileNotFoundException(file);
151 // }
152 // catch (FileNotFoundException)
153 // {
154 // throw new WixFileNotFoundException(file);
155 // }
156 //}
157
158 /// <summary>
159 /// Complete/commit the cabinet - this must be called before Dispose so that errors will be
160 /// reported on the same thread.
161 /// </summary>
162 /// <param name="newCabNamesCallBackAddress">Address of Binder's callback function for Cabinet Splitting</param>
163 public void Complete(IntPtr newCabNamesCallBackAddress)
164 {
165 if (IntPtr.Zero != this.handle)
166 {
167 try
168 {
169 if (newCabNamesCallBackAddress != IntPtr.Zero && this.maxSize != 0)
170 {
171 NativeMethods.CreateCabFinish(this.handle, newCabNamesCallBackAddress);
172 }
173 else
174 {
175 NativeMethods.CreateCabFinish(this.handle, IntPtr.Zero);
176 }
177
178 GC.SuppressFinalize(this);
179 this.disposed = true;
180 }
181 catch (COMException ce)
182 {
183 //if (0x80004005 == unchecked((uint)ce.ErrorCode)) // E_FAIL
184 //{
185 // // This error seems to happen, among other situations, when cabbing more than 0xFFFF files
186 // throw new WixException(WixErrors.FinishCabFailed());
187 //}
188 //else if (0x80070070 == unchecked((uint)ce.ErrorCode)) // ERROR_DISK_FULL
189 //{
190 // throw new WixException(WixErrors.CreateCabInsufficientDiskSpace());
191 //}
192 //else
193 //{
194 // throw;
195 //}
196 }
197 finally
198 {
199 this.handle = IntPtr.Zero;
200 }
201 }
202 }
203#endif
204 } 119 }
205} 120}