From 3f583916719eeef598d10a5d4e14ef14f008243b Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 11 May 2021 07:36:37 -0700 Subject: Merge Dtf --- .../Dtf/Documents/Guide/Content/cabwrapper.htm | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/samples/Dtf/Documents/Guide/Content/cabwrapper.htm (limited to 'src/samples/Dtf/Documents/Guide/Content/cabwrapper.htm') 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 @@ + + + + Managed Wrapper Library for Cabinet APIs + + + + +
+
+ + + + + +
Managed Libraries for Windows Installer
+
+
+

Managed Wrapper Library for Cabinet APIs

+
+
+
+

This is a managed library that provides the ability to + create and extract cabinet files. It uses cabinet.dll (present on all versions of Windows) + to do the actual compression/decompression. It provides access to nearly all + cabinet capabilities, including spanning of multiple cab files. It even has support for + preserving directory structures and UTF8 paths.

+

There are two ways to use the library. CabinetInfo + and CabinetFileInfo + (similar to DirectoryInfo and FileInfo respectively) + provide high-level object-oriented methods for doing common file-based cabinet creation and + extraction tasks. On the other hand, the Cabinet + class provides low-level access to all + functionality, and operates completely in terms of .NET Streams. The previous two classes use + the Cabinet class to do all the actual work.

+

There are also two ways to build the library. + Compiling it normally will produce the fully functional + library in the Microsoft.Cab + namespace, while compiling it with the /D:CABMINIMAL + /D:CABEXTRACTONLY flags will create a compact assembly with only the core extraction + functionality, in the Microsoft.Cab.MiniExtract + namespace.

+

The cabinet library interops with native cabinet APIs which use the 'cdecl' + calling-convention. When building against .NET Framework versions before 2.0, + this library requires a special post-build step to process the UnmanagedFunctionPointerAttribute. + If you use this code in another assembly, don't forget to run AugmentIL + on it to fix the delegate calling-conventions, otherwise you will encounter a + NullReferenceException when attempting to call the cabinet APIs. When building against + .NET Framework version 2.0 or later, the UnmanagedFunctionPointerAttribute.cs source file + should be omitted.

+ +


+

See also:

+ +


+
+ + -- cgit v1.2.3-55-g6feb