aboutsummaryrefslogtreecommitdiff
path: root/src/samples/Dtf/Documents/Guide/Content/cabwrapper.htm
diff options
context:
space:
mode:
Diffstat (limited to 'src/samples/Dtf/Documents/Guide/Content/cabwrapper.htm')
-rw-r--r--src/samples/Dtf/Documents/Guide/Content/cabwrapper.htm63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/samples/Dtf/Documents/Guide/Content/cabwrapper.htm b/src/samples/Dtf/Documents/Guide/Content/cabwrapper.htm
new file mode 100644
index 00000000..fd88437c
--- /dev/null
+++ b/src/samples/Dtf/Documents/Guide/Content/cabwrapper.htm
@@ -0,0 +1,63 @@
1<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
2<html>
3 <head>
4 <title>Managed Wrapper Library for Cabinet APIs</title>
5 <meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
6 <link rel="stylesheet" type="text/css" href="MSDN.css">
7 </head>
8 <body id="bodyID" class="dtBODY">
9 <div id="nsbanner">
10 <div id="bannerrow1">
11 <table class="bannerparthead" cellspacing="0" id="Table1">
12 <tr id="hdr">
13 <td class="runninghead">Managed Libraries for Windows Installer</td>
14 <td class="product"></td>
15 </tr>
16 </table>
17 </div>
18 <div id="TitleRow">
19 <h1 class="dtH1">Managed Wrapper Library for Cabinet APIs</h1>
20 </div>
21 </div>
22 <div id="nstext">
23 <p>This is a managed library that provides the ability to
24 create and extract cabinet files. It uses cabinet.dll (present on all versions of Windows)
25 to do the actual compression/decompression. It provides access to nearly all
26 cabinet capabilities, including spanning of multiple cab files. It even has support for
27 preserving directory structures and UTF8 paths.</p>
28 <p>There are two ways to use the library. <a href="ms-its:MMLRef.chm::/Microsoft.Cab.CabinetInfo.html">CabinetInfo</a>
29 and <a href="ms-its:MMLRef.chm::/Microsoft.Cab.CabinetFileInfo.html">CabinetFileInfo</a>
30 (similar to DirectoryInfo and FileInfo respectively)
31 provide high-level object-oriented methods for doing common file-based cabinet creation and
32 extraction tasks. On the other hand, the <a href="ms-its:MMLRef.chm::/Microsoft.Cab.Cabinet.html">Cabinet</a>
33 class provides low-level access to all
34 functionality, and operates completely in terms of .NET Streams. The previous two classes use
35 the Cabinet class to do all the actual work.</p>
36 <p>There are also two ways to build the library.
37 Compiling it normally will produce the fully functional
38 library in the <a href="ms-its:MMLRef.chm::/Microsoft.Cab.html">Microsoft.Cab</a>
39 namespace, while compiling it with the <tt>/D:CABMINIMAL
40 /D:CABEXTRACTONLY</tt> flags will create a compact assembly with only the core extraction
41 functionality, in the <a href="ms-its:MMLRef.chm::/Microsoft.Cab.MiniExtract.html">Microsoft.Cab.MiniExtract</a>
42 namespace.</p>
43 <p>The cabinet library interops with native cabinet APIs which use the 'cdecl'
44 calling-convention. When building against .NET Framework versions before 2.0,
45 this library requires a special post-build step to process the UnmanagedFunctionPointerAttribute.
46 If you use this code in another assembly, don't forget to run <a href="augmentil.htm">AugmentIL</a>
47 on it to fix the delegate calling-conventions, otherwise you will encounter a
48 NullReferenceException when attempting to call the cabinet APIs. When building against
49 .NET Framework version 2.0 or later, the UnmanagedFunctionPointerAttribute.cs source file
50 should be omitted.</p>
51
52 <p><br/></p>
53 <p><b>See also:</b></p>
54 <ul>
55 <li><a href="cabs.htm">Working with Cabinet Files</a></li>
56 <li><a href="ms-its:MMLRef.chm::/Microsoft.Cab.CabinetInfoMethods.html">CabinetInfo Methods</a></li>
57 <li><a href="ms-its:MMLRef.chm::/Microsoft.Cab.CabinetMethods.html">Cabinet Methods</a></li>
58 <li><a href="cabpack.htm">CabPack Sample Tool</a></li>
59 </ul>
60 <p><br/></p>
61 </div>
62 </body>
63</html>