Updating WiX toolset 2.
This commit is contained in:
parent
cb25d8a5ae
commit
157715cb94
199 changed files with 50941 additions and 0 deletions
31
tools/WIX/sdk/BootstrapperCore.config
Normal file
31
tools/WIX/sdk/BootstrapperCore.config
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!--
|
||||
<copyright file="BootstrapperCore.config" company="Outercurve Foundation">
|
||||
Copyright (c) 2004, Outercurve Foundation.
|
||||
This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
The license and further copyright text can be found in the file
|
||||
LICENSE.TXT at the root directory of the distribution.
|
||||
</copyright>
|
||||
-->
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="wix.bootstrapper" type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.BootstrapperSectionGroup, BootstrapperCore">
|
||||
<section name="host" type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.HostSection, BootstrapperCore" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<startup useLegacyV2RuntimeActivationPolicy="true">
|
||||
<supportedRuntime version="v4.0" />
|
||||
<supportedRuntime version="v2.0.50727" />
|
||||
</startup>
|
||||
<wix.bootstrapper>
|
||||
<!-- Example only. Use only if the startup/supportedRuntime above cannot discern supported frameworks. -->
|
||||
<!--
|
||||
<supportedFramework version="v4\Client" />
|
||||
<supportedFramework version="v3.5" />
|
||||
<supportedFramework version="v3.0" />
|
||||
-->
|
||||
|
||||
<!-- Example only. Replace the host/@assemblyName attribute with assembly that implements BootstrapperApplication. -->
|
||||
<host assemblyName="AssemblyWithClassThatInheritsFromBootstrapperApplication" />
|
||||
</wix.bootstrapper>
|
||||
</configuration>
|
BIN
tools/WIX/sdk/BootstrapperCore.dll
Normal file
BIN
tools/WIX/sdk/BootstrapperCore.dll
Normal file
Binary file not shown.
2807
tools/WIX/sdk/BootstrapperCore.xml
Normal file
2807
tools/WIX/sdk/BootstrapperCore.xml
Normal file
File diff suppressed because it is too large
Load diff
BIN
tools/WIX/sdk/DocCompiler.exe
Normal file
BIN
tools/WIX/sdk/DocCompiler.exe
Normal file
Binary file not shown.
BIN
tools/WIX/sdk/MakeSfxCA.exe
Normal file
BIN
tools/WIX/sdk/MakeSfxCA.exe
Normal file
Binary file not shown.
15
tools/WIX/sdk/MakeSfxCA.exe.config
Normal file
15
tools/WIX/sdk/MakeSfxCA.exe.config
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!--
|
||||
<copyright file="app.config" company="Outercurve Foundation">
|
||||
Copyright (c) 2004, Outercurve Foundation.
|
||||
This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
The license and further copyright text can be found in the file
|
||||
LICENSE.TXT at the root directory of the distribution.
|
||||
</copyright>
|
||||
-->
|
||||
<configuration>
|
||||
<startup useLegacyV2RuntimeActivationPolicy="true">
|
||||
<supportedRuntime version="v4.0" />
|
||||
<supportedRuntime version="v2.0.50727" />
|
||||
</startup>
|
||||
</configuration>
|
BIN
tools/WIX/sdk/Microsoft.Deployment.Compression.Cab.dll
Normal file
BIN
tools/WIX/sdk/Microsoft.Deployment.Compression.Cab.dll
Normal file
Binary file not shown.
490
tools/WIX/sdk/Microsoft.Deployment.Compression.Cab.xml
Normal file
490
tools/WIX/sdk/Microsoft.Deployment.Compression.Cab.xml
Normal file
|
@ -0,0 +1,490 @@
|
|||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Microsoft.Deployment.Compression.Cab</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabWorker.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Disposes of resources allocated by the cabinet engine.
|
||||
</summary>
|
||||
<param name="disposing">If true, the method has been called directly or indirectly by a user's code,
|
||||
so managed and unmanaged resources will be disposed. If false, the method has been called by the
|
||||
runtime from inside the finalizer, and only unmanaged resources will be disposed.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabPacker.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Disposes of resources allocated by the cabinet engine.
|
||||
</summary>
|
||||
<param name="disposing">If true, the method has been called directly or indirectly by a user's code,
|
||||
so managed and unmanaged resources will be disposed. If false, the method has been called by the
|
||||
runtime from inside the finalizer, and only unmanaged resources will be disposed.</param>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.CabEngine">
|
||||
<summary>
|
||||
Engine capable of packing and unpacking archives in the cabinet format.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabEngine.#ctor">
|
||||
<summary>
|
||||
Creates a new instance of the cabinet engine.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabEngine.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Disposes of resources allocated by the cabinet engine.
|
||||
</summary>
|
||||
<param name="disposing">If true, the method has been called directly
|
||||
or indirectly by a user's code, so managed and unmanaged resources
|
||||
will be disposed. If false, the method has been called by the runtime
|
||||
from inside the finalizer, and only unmanaged resources will be
|
||||
disposed.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabEngine.Pack(Microsoft.Deployment.Compression.IPackStreamContext,System.Collections.Generic.IEnumerable{System.String},System.Int64)">
|
||||
<summary>
|
||||
Creates a cabinet or chain of cabinets.
|
||||
</summary>
|
||||
<param name="streamContext">A context interface to handle opening
|
||||
and closing of cabinet and file streams.</param>
|
||||
<param name="files">The paths of the files in the archive (not
|
||||
external file paths).</param>
|
||||
<param name="maxArchiveSize">The maximum number of bytes for one
|
||||
cabinet before the contents are chained to the next cabinet, or zero
|
||||
for unlimited cabinet size.</param>
|
||||
<exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The cabinet could not be
|
||||
created.</exception>
|
||||
<remarks>
|
||||
The stream context implementation may provide a mapping from the
|
||||
file paths within the cabinet to the external file paths.
|
||||
<para>Smaller folder sizes can make it more efficient to extract
|
||||
individual files out of large cabinet packages.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabEngine.IsArchive(System.IO.Stream)">
|
||||
<summary>
|
||||
Checks whether a Stream begins with a header that indicates
|
||||
it is a valid cabinet file.
|
||||
</summary>
|
||||
<param name="stream">Stream for reading the cabinet file.</param>
|
||||
<returns>True if the stream is a valid cabinet file
|
||||
(with no offset); false otherwise.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabEngine.GetFileInfo(Microsoft.Deployment.Compression.IUnpackStreamContext,System.Predicate{System.String})">
|
||||
<summary>
|
||||
Gets information about files in a cabinet or cabinet chain.
|
||||
</summary>
|
||||
<param name="streamContext">A context interface to handle opening
|
||||
and closing of cabinet and file streams.</param>
|
||||
<param name="fileFilter">A predicate that can determine
|
||||
which files to process, optional.</param>
|
||||
<returns>Information about files in the cabinet stream.</returns>
|
||||
<exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The cabinet provided
|
||||
by the stream context is not valid.</exception>
|
||||
<remarks>
|
||||
The <paramref name="fileFilter"/> predicate takes an internal file
|
||||
path and returns true to include the file or false to exclude it.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabEngine.Unpack(Microsoft.Deployment.Compression.IUnpackStreamContext,System.Predicate{System.String})">
|
||||
<summary>
|
||||
Extracts files from a cabinet or cabinet chain.
|
||||
</summary>
|
||||
<param name="streamContext">A context interface to handle opening
|
||||
and closing of cabinet and file streams.</param>
|
||||
<param name="fileFilter">An optional predicate that can determine
|
||||
which files to process.</param>
|
||||
<exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The cabinet provided
|
||||
by the stream context is not valid.</exception>
|
||||
<remarks>
|
||||
The <paramref name="fileFilter"/> predicate takes an internal file
|
||||
path and returns true to include the file or false to exclude it.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.CabException">
|
||||
<summary>
|
||||
Exception class for cabinet operations.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabException.#ctor(System.String,System.Exception)">
|
||||
<summary>
|
||||
Creates a new CabException with a specified error message and a reference to the
|
||||
inner exception that is the cause of this exception.
|
||||
</summary>
|
||||
<param name="message">The message that describes the error.</param>
|
||||
<param name="innerException">The exception that is the cause of the current exception. If the
|
||||
innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
|
||||
is raised in a catch block that handles the inner exception.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabException.#ctor(System.String)">
|
||||
<summary>
|
||||
Creates a new CabException with a specified error message.
|
||||
</summary>
|
||||
<param name="message">The message that describes the error.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabException.#ctor">
|
||||
<summary>
|
||||
Creates a new CabException.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
|
||||
<summary>
|
||||
Initializes a new instance of the CabException class with serialized data.
|
||||
</summary>
|
||||
<param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
|
||||
<param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
|
||||
<summary>
|
||||
Sets the SerializationInfo with information about the exception.
|
||||
</summary>
|
||||
<param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
|
||||
<param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Cab.CabException.Error">
|
||||
<summary>
|
||||
Gets the FCI or FDI cabinet engine error number.
|
||||
</summary>
|
||||
<value>A cabinet engine error number, or 0 if the exception was
|
||||
not related to a cabinet engine error number.</value>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Cab.CabException.ErrorCode">
|
||||
<summary>
|
||||
Gets the Win32 error code.
|
||||
</summary>
|
||||
<value>A Win32 error code, or 0 if the exception was
|
||||
not related to a Win32 error.</value>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabUnpacker.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Disposes of resources allocated by the cabinet engine.
|
||||
</summary>
|
||||
<param name="disposing">If true, the method has been called directly or indirectly by a user's code,
|
||||
so managed and unmanaged resources will be disposed. If false, the method has been called by the
|
||||
runtime from inside the finalizer, and only unmanaged resources will be disposed.</param>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.CabFileInfo">
|
||||
<summary>
|
||||
Object representing a compressed file within a cabinet package; provides operations for getting
|
||||
the file properties and extracting the file.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabFileInfo.#ctor(Microsoft.Deployment.Compression.Cab.CabInfo,System.String)">
|
||||
<summary>
|
||||
Creates a new CabinetFileInfo object representing a file within a cabinet in a specified path.
|
||||
</summary>
|
||||
<param name="cabinetInfo">An object representing the cabinet containing the file.</param>
|
||||
<param name="filePath">The path to the file within the cabinet. Usually, this is a simple file
|
||||
name, but if the cabinet contains a directory structure this may include the directory.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabFileInfo.#ctor(System.String,System.Int32,System.Int32,System.IO.FileAttributes,System.DateTime,System.Int64)">
|
||||
<summary>
|
||||
Creates a new CabinetFileInfo object with all parameters specified,
|
||||
used internally when reading the metadata out of a cab.
|
||||
</summary>
|
||||
<param name="filePath">The internal path and name of the file in the cab.</param>
|
||||
<param name="cabFolder">The folder number containing the file.</param>
|
||||
<param name="cabNumber">The cabinet number where the file starts.</param>
|
||||
<param name="attributes">The stored attributes of the file.</param>
|
||||
<param name="lastWriteTime">The stored last write time of the file.</param>
|
||||
<param name="length">The uncompressed size of the file.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabFileInfo.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
|
||||
<summary>
|
||||
Initializes a new instance of the CabinetFileInfo class with serialized data.
|
||||
</summary>
|
||||
<param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
|
||||
<param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabFileInfo.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
|
||||
<summary>
|
||||
Sets the SerializationInfo with information about the archive.
|
||||
</summary>
|
||||
<param name="info">The SerializationInfo that holds the serialized object data.</param>
|
||||
<param name="context">The StreamingContext that contains contextual information
|
||||
about the source or destination.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabFileInfo.Refresh(Microsoft.Deployment.Compression.ArchiveFileInfo)">
|
||||
<summary>
|
||||
Refreshes the information in this object with new data retrieved
|
||||
from an archive.
|
||||
</summary>
|
||||
<param name="newFileInfo">Fresh instance for the same file just
|
||||
read from the archive.</param>
|
||||
<remarks>
|
||||
This implementation refreshes the <see cref="P:Microsoft.Deployment.Compression.Cab.CabFileInfo.CabinetFolderNumber"/>.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Cab.CabFileInfo.Cabinet">
|
||||
<summary>
|
||||
Gets or sets the cabinet that contains this file.
|
||||
</summary>
|
||||
<value>
|
||||
The CabinetInfo instance that retrieved this file information -- this
|
||||
may be null if the CabinetFileInfo object was returned directly from a
|
||||
stream.
|
||||
</value>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Cab.CabFileInfo.CabinetName">
|
||||
<summary>
|
||||
Gets the full path of the cabinet that contains this file.
|
||||
</summary>
|
||||
<value>The full path of the cabinet that contains this file.</value>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Cab.CabFileInfo.CabinetFolderNumber">
|
||||
<summary>
|
||||
Gets the number of the folder containing this file.
|
||||
</summary>
|
||||
<value>The number of the cabinet folder containing this file.</value>
|
||||
<remarks>A single folder or the first folder of a cabinet
|
||||
(or chain of cabinets) is numbered 0.</remarks>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.CabInfo">
|
||||
<summary>
|
||||
Object representing a cabinet file on disk; provides access to
|
||||
file-based operations on the cabinet file.
|
||||
</summary>
|
||||
<remarks>
|
||||
Generally, the methods on this class are much easier to use than the
|
||||
stream-based interfaces provided by the <see cref="T:Microsoft.Deployment.Compression.Cab.CabEngine"/> class.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabInfo.#ctor(System.String)">
|
||||
<summary>
|
||||
Creates a new CabinetInfo object representing a cabinet file in a specified path.
|
||||
</summary>
|
||||
<param name="path">The path to the cabinet file. When creating a cabinet file, this file does not
|
||||
necessarily exist yet.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabInfo.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
|
||||
<summary>
|
||||
Initializes a new instance of the CabinetInfo class with serialized data.
|
||||
</summary>
|
||||
<param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
|
||||
<param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabInfo.CreateCompressionEngine">
|
||||
<summary>
|
||||
Creates a compression engine that does the low-level work for
|
||||
this object.
|
||||
</summary>
|
||||
<returns>A new <see cref="T:Microsoft.Deployment.Compression.Cab.CabEngine"/> instance.</returns>
|
||||
<remarks>
|
||||
Each instance will be <see cref="M:Microsoft.Deployment.Compression.CompressionEngine.Dispose"/>d
|
||||
immediately after use.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabInfo.GetFiles">
|
||||
<summary>
|
||||
Gets information about the files contained in the archive.
|
||||
</summary>
|
||||
<returns>A list of <see cref="T:Microsoft.Deployment.Compression.Cab.CabFileInfo"/> objects, each
|
||||
containing information about a file in the archive.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.CabInfo.GetFiles(System.String)">
|
||||
<summary>
|
||||
Gets information about the certain files contained in the archive file.
|
||||
</summary>
|
||||
<param name="searchPattern">The search string, such as
|
||||
"*.txt".</param>
|
||||
<returns>A list of <see cref="T:Microsoft.Deployment.Compression.Cab.CabFileInfo"/> objects, each containing
|
||||
information about a file in the archive.</returns>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.HandleManager`1">
|
||||
<summary>
|
||||
Generic class for managing allocations of integer handles
|
||||
for objects of a certain type.
|
||||
</summary>
|
||||
<typeparam name="T">The type of objects the handles refer to.</typeparam>
|
||||
</member>
|
||||
<member name="F:Microsoft.Deployment.Compression.Cab.HandleManager`1.handles">
|
||||
<summary>
|
||||
Auto-resizing list of objects for which handles have been allocated.
|
||||
Each handle is just an index into this list. When a handle is freed,
|
||||
the list item at that index is set to null.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.HandleManager`1.#ctor">
|
||||
<summary>
|
||||
Creates a new HandleManager instance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.HandleManager`1.AllocHandle(`0)">
|
||||
<summary>
|
||||
Allocates a new handle for an object.
|
||||
</summary>
|
||||
<param name="obj">Object that the handle will refer to.</param>
|
||||
<returns>New handle that can be later used to retrieve the object.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.HandleManager`1.FreeHandle(System.Int32)">
|
||||
<summary>
|
||||
Frees a handle that was previously allocated. Afterward the handle
|
||||
will be invalid and the object it referred to can no longer retrieved.
|
||||
</summary>
|
||||
<param name="handle">Handle to be freed.</param>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Cab.HandleManager`1.Item(System.Int32)">
|
||||
<summary>
|
||||
Gets the object of a handle, or null if the handle is invalid.
|
||||
</summary>
|
||||
<param name="handle">The integer handle previously allocated
|
||||
for the desired object.</param>
|
||||
<returns>The object for which the handle was allocated.</returns>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods">
|
||||
<summary>
|
||||
Native DllImport methods and related structures and constants used for
|
||||
cabinet creation and extraction via cabinet.dll.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI">
|
||||
<summary>
|
||||
A direct import of constants, enums, structures, delegates, and functions from fci.h.
|
||||
Refer to comments in fci.h for documentation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI.ERROR">
|
||||
<summary>
|
||||
Error codes that can be returned by FCI.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI.TCOMP">
|
||||
<summary>
|
||||
FCI compression algorithm types and parameters.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI.STATUS">
|
||||
<summary>
|
||||
Reason for FCI status callback.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI.CCAB">
|
||||
<summary>
|
||||
Cabinet information structure used for FCI initialization and GetNextCabinet callback.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI.Handle">
|
||||
<summary>
|
||||
Ensures that the FCI handle is safely released.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI.Handle.#ctor">
|
||||
<summary>
|
||||
Creates a new unintialized handle. The handle will be initialized
|
||||
when it is marshalled back from native code.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI.Handle.ReleaseHandle">
|
||||
<summary>
|
||||
Releases the handle by calling FDIDestroy().
|
||||
</summary>
|
||||
<returns>True if the release succeeded.</returns>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI.Handle.IsInvalid">
|
||||
<summary>
|
||||
Checks if the handle is invalid. An FCI handle is invalid when it is zero.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI">
|
||||
<summary>
|
||||
A direct import of constants, enums, structures, delegates, and functions from fdi.h.
|
||||
Refer to comments in fdi.h for documentation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI.ERROR">
|
||||
<summary>
|
||||
Error codes that can be returned by FDI.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI.NOTIFICATIONTYPE">
|
||||
<summary>
|
||||
Type of notification message for the FDI Notify callback.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI.CABINFO">
|
||||
<summary>
|
||||
Cabinet information structure filled in by FDI IsCabinet.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI.NOTIFICATION">
|
||||
<summary>
|
||||
Cabinet notification details passed to the FDI Notify callback.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI.Handle">
|
||||
<summary>
|
||||
Ensures that the FDI handle is safely released.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI.Handle.#ctor">
|
||||
<summary>
|
||||
Creates a new unintialized handle. The handle will be initialized
|
||||
when it is marshalled back from native code.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI.Handle.ReleaseHandle">
|
||||
<summary>
|
||||
Releases the handle by calling FDIDestroy().
|
||||
</summary>
|
||||
<returns>True if the release succeeded.</returns>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI.Handle.IsInvalid">
|
||||
<summary>
|
||||
Checks if the handle is invalid. An FDI handle is invalid when it is zero.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.ERF">
|
||||
<summary>
|
||||
Error info structure for FCI and FDI.
|
||||
</summary>
|
||||
<remarks>Before being passed to FCI or FDI, this structure is
|
||||
pinned in memory via a GCHandle. The pinning is necessary
|
||||
to be able to read the results, since the ERF structure doesn't
|
||||
get marshalled back out after an error.</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Cab.NativeMethods.ERF.Clear">
|
||||
<summary>
|
||||
Clears the error information.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Cab.NativeMethods.ERF.Oper">
|
||||
<summary>
|
||||
Gets or sets the cabinet error code.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Cab.NativeMethods.ERF.Type">
|
||||
<summary>
|
||||
Gets or sets the Win32 error code.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Cab.NativeMethods.ERF.Error">
|
||||
<summary>
|
||||
GCHandle doesn't like the bool type, so use an int underneath.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Tools.WindowsInstallerXml.WixDistribution">
|
||||
<summary>
|
||||
Distribution specific strings.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.NewsUrl">
|
||||
<summary>
|
||||
News URL for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.ShortProduct">
|
||||
<summary>
|
||||
Short product name for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.SupportUrl">
|
||||
<summary>
|
||||
Support URL for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.TelemetryUrlFormat">
|
||||
<summary>
|
||||
Telemetry URL format for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
BIN
tools/WIX/sdk/Microsoft.Deployment.Compression.Zip.dll
Normal file
BIN
tools/WIX/sdk/Microsoft.Deployment.Compression.Zip.dll
Normal file
Binary file not shown.
547
tools/WIX/sdk/Microsoft.Deployment.Compression.Zip.xml
Normal file
547
tools/WIX/sdk/Microsoft.Deployment.Compression.Zip.xml
Normal file
|
@ -0,0 +1,547 @@
|
|||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Microsoft.Deployment.Compression.Zip</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:Microsoft.Deployment.Compression.Zip.ConcatStream">
|
||||
<summary>
|
||||
Used to trick a DeflateStream into reading from or writing to
|
||||
a series of (chunked) streams instead of a single steream.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Zip.CrcStream">
|
||||
<summary>
|
||||
Wraps a source stream and calcaluates a CRC over all bytes that are read or written.
|
||||
</summary>
|
||||
<remarks>
|
||||
The CRC algorithm matches that used in the standard ZIP file format.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.#ctor(System.IO.Stream)">
|
||||
<summary>
|
||||
Creates a new CrcStream instance from a source stream.
|
||||
</summary>
|
||||
<param name="source">Underlying stream where bytes will be read from or written to.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.Seek(System.Int64,System.IO.SeekOrigin)">
|
||||
<summary>
|
||||
Sets the position within the source stream.
|
||||
</summary>
|
||||
<param name="offset">A byte offset relative to the origin parameter.</param>
|
||||
<param name="origin">A value of type SeekOrigin indicating
|
||||
the reference point used to obtain the new position.</param>
|
||||
<returns>The new position within the source stream.</returns>
|
||||
<remarks>
|
||||
Note the CRC is only calculated over bytes that are actually read or
|
||||
written, so any bytes skipped by seeking will not contribute to the CRC.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.SetLength(System.Int64)">
|
||||
<summary>
|
||||
Sets the length of the source stream.
|
||||
</summary>
|
||||
<param name="value">The desired length of the
|
||||
stream in bytes.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.Read(System.Byte[],System.Int32,System.Int32)">
|
||||
<summary>
|
||||
Reads a sequence of bytes from the source stream and advances
|
||||
the position within the stream by the number of bytes read.
|
||||
</summary>
|
||||
<param name="buffer">An array of bytes. When this method returns, the buffer
|
||||
contains the specified byte array with the values between offset and
|
||||
(offset + count - 1) replaced by the bytes read from the current source.</param>
|
||||
<param name="offset">The zero-based byte offset in buffer at which to begin
|
||||
storing the data read from the current stream.</param>
|
||||
<param name="count">The maximum number of bytes to be read from the current stream.</param>
|
||||
<returns>The total number of bytes read into the buffer. This can be less
|
||||
than the number of bytes requested if that many bytes are not currently available,
|
||||
or zero (0) if the end of the stream has been reached.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.Write(System.Byte[],System.Int32,System.Int32)">
|
||||
<summary>
|
||||
Writes a sequence of bytes to the source stream and advances the
|
||||
current position within this stream by the number of bytes written.
|
||||
</summary>
|
||||
<param name="buffer">An array of bytes. This method copies count
|
||||
bytes from buffer to the current stream.</param>
|
||||
<param name="offset">The zero-based byte offset in buffer at which
|
||||
to begin copying bytes to the current stream.</param>
|
||||
<param name="count">The number of bytes to be written to the
|
||||
current stream.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.Flush">
|
||||
<summary>
|
||||
Flushes the source stream.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.Close">
|
||||
<summary>
|
||||
Closes the underlying stream.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.UpdateCrc(System.Byte[],System.Int32,System.Int32)">
|
||||
<summary>
|
||||
Updates the CRC with a range of bytes that were read or written.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.MakeCrcTable">
|
||||
<summary>
|
||||
Computes a table that speeds up calculation of the CRC.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.Reflect(System.UInt32,System.Int32)">
|
||||
<summary>
|
||||
Reflects the ordering of certain number of bits. For exmample when reflecting
|
||||
one byte, bit one is swapped with bit eight, bit two with bit seven, etc.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Zip.CrcStream.Crc">
|
||||
<summary>
|
||||
Gets the current CRC over all bytes that have been read or written
|
||||
since this instance was created.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Zip.CrcStream.Source">
|
||||
<summary>
|
||||
Gets the underlying stream that this stream reads from or writes to.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Zip.CrcStream.CanRead">
|
||||
<summary>
|
||||
Gets a value indicating whether the source stream supports reading.
|
||||
</summary>
|
||||
<value>true if the stream supports reading; otherwise, false.</value>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Zip.CrcStream.CanWrite">
|
||||
<summary>
|
||||
Gets a value indicating whether the source stream supports writing.
|
||||
</summary>
|
||||
<value>true if the stream supports writing; otherwise, false.</value>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Zip.CrcStream.CanSeek">
|
||||
<summary>
|
||||
Gets a value indicating whether the source stream supports seeking.
|
||||
</summary>
|
||||
<value>true if the stream supports seeking; otherwise, false.</value>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Zip.CrcStream.Length">
|
||||
<summary>
|
||||
Gets the length of the source stream.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Zip.CrcStream.Position">
|
||||
<summary>
|
||||
Gets or sets the position of the source stream.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod">
|
||||
<summary>
|
||||
Identifies the compression method or "algorithm"
|
||||
used for a single file within a zip archive.
|
||||
</summary>
|
||||
<remarks>
|
||||
Proprietary zip implementations may define additional compression
|
||||
methods outside of those included here.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Store">
|
||||
<summary>
|
||||
The file is stored (no compression)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Shrink">
|
||||
<summary>
|
||||
The file is Shrunk
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Reduce1">
|
||||
<summary>
|
||||
The file is Reduced with compression factor 1
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Reduce2">
|
||||
<summary>
|
||||
The file is Reduced with compression factor 2
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Reduce3">
|
||||
<summary>
|
||||
The file is Reduced with compression factor 3
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Reduce4">
|
||||
<summary>
|
||||
The file is Reduced with compression factor 4
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Implode">
|
||||
<summary>
|
||||
The file is Imploded
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Deflate">
|
||||
<summary>
|
||||
The file is Deflated;
|
||||
the most common and widely-compatible form of zip compression.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Deflate64">
|
||||
<summary>
|
||||
The file is Deflated using the enhanced Deflate64 method.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.BZip2">
|
||||
<summary>
|
||||
The file is compressed using the BZIP2 algorithm.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Lzma">
|
||||
<summary>
|
||||
The file is compressed using the LZMA algorithm.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Ppmd">
|
||||
<summary>
|
||||
The file is compressed using the PPMd algorithm.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Zip.ZipException">
|
||||
<summary>
|
||||
Exception class for zip operations.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipException.#ctor(System.String,System.Exception)">
|
||||
<summary>
|
||||
Creates a new ZipException with a specified error message and a reference to the
|
||||
inner exception that is the cause of this exception.
|
||||
</summary>
|
||||
<param name="message">The message that describes the error.</param>
|
||||
<param name="innerException">The exception that is the cause of the current exception. If the
|
||||
innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
|
||||
is raised in a catch block that handles the inner exception.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipException.#ctor(System.String)">
|
||||
<summary>
|
||||
Creates a new ZipException with a specified error message.
|
||||
</summary>
|
||||
<param name="message">The message that describes the error.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipException.#ctor">
|
||||
<summary>
|
||||
Creates a new ZipException.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
|
||||
<summary>
|
||||
Initializes a new instance of the ZipException class with serialized data.
|
||||
</summary>
|
||||
<param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
|
||||
<param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
|
||||
<summary>
|
||||
Sets the SerializationInfo with information about the exception.
|
||||
</summary>
|
||||
<param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
|
||||
<param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Zip.ZipEngine">
|
||||
<summary>
|
||||
Engine capable of packing and unpacking archives in the zip format.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.RegisterCompressionStreamCreator(Microsoft.Deployment.Compression.Zip.ZipCompressionMethod,System.IO.Compression.CompressionMode,System.Converter{System.IO.Stream,System.IO.Stream})">
|
||||
<summary>
|
||||
Registers a delegate that can create a warpper stream for
|
||||
compressing or uncompressing the data of a source stream.
|
||||
</summary>
|
||||
<param name="compressionMethod">Compression method being registered.</param>
|
||||
<param name="compressionMode">Indicates registration for ether
|
||||
compress or decompress mode.</param>
|
||||
<param name="creator">Delegate being registered.</param>
|
||||
<remarks>
|
||||
For compression, the delegate accepts a stream that writes to the archive
|
||||
and returns a wrapper stream that compresses bytes as they are written.
|
||||
For decompression, the delegate accepts a stream that reads from the archive
|
||||
and returns a wrapper stream that decompresses bytes as they are read.
|
||||
This wrapper stream model follows the design used by
|
||||
System.IO.Compression.DeflateStream, and indeed that class is used
|
||||
to implement the Deflate compression method by default.
|
||||
<para>To unregister a delegate, call this method again and pass
|
||||
null for the delegate parameter.</para>
|
||||
</remarks>
|
||||
<example>
|
||||
When the ZipEngine class is initialized, the Deflate compression method
|
||||
is automatically registered like this:
|
||||
<code>
|
||||
ZipEngine.RegisterCompressionStreamCreator(
|
||||
ZipCompressionMethod.Deflate,
|
||||
CompressionMode.Compress,
|
||||
delegate(Stream stream) {
|
||||
return new DeflateStream(stream, CompressionMode.Compress, true);
|
||||
});
|
||||
ZipEngine.RegisterCompressionStreamCreator(
|
||||
ZipCompressionMethod.Deflate,
|
||||
CompressionMode.Decompress,
|
||||
delegate(Stream stream) {
|
||||
return new DeflateStream(stream, CompressionMode.Decompress, true);
|
||||
});
|
||||
</code></example>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.#ctor">
|
||||
<summary>
|
||||
Creates a new instance of the zip engine.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.IsArchive(System.IO.Stream)">
|
||||
<summary>
|
||||
Checks whether a Stream begins with a header that indicates
|
||||
it is a valid archive file.
|
||||
</summary>
|
||||
<param name="stream">Stream for reading the archive file.</param>
|
||||
<returns>True if the stream is a valid zip archive
|
||||
(with no offset); false otherwise.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.FindArchiveOffset(System.IO.Stream)">
|
||||
<summary>
|
||||
Gets the offset of an archive that is positioned 0 or more bytes
|
||||
from the start of the Stream.
|
||||
</summary>
|
||||
<param name="stream">A stream for reading the archive.</param>
|
||||
<returns>The offset in bytes of the archive,
|
||||
or -1 if no archive is found in the Stream.</returns>
|
||||
<remarks>The archive must begin on a 4-byte boundary.</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.GetFileInfo(Microsoft.Deployment.Compression.IUnpackStreamContext,System.Predicate{System.String})">
|
||||
<summary>
|
||||
Gets information about files in a zip archive or archive chain.
|
||||
</summary>
|
||||
<param name="streamContext">A context interface to handle opening
|
||||
and closing of archive and file streams.</param>
|
||||
<param name="fileFilter">A predicate that can determine
|
||||
which files to process, optional.</param>
|
||||
<returns>Information about files in the archive stream.</returns>
|
||||
<exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The archive provided
|
||||
by the stream context is not valid.</exception>
|
||||
<remarks>
|
||||
The <paramref name="fileFilter"/> predicate takes an internal file
|
||||
path and returns true to include the file or false to exclude it.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.GetCentralDirectory(Microsoft.Deployment.Compression.IUnpackStreamContext)">
|
||||
<summary>
|
||||
Reads all the file headers from the central directory in the main archive.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.GetEOCD(Microsoft.Deployment.Compression.IUnpackStreamContext,System.IO.Stream)">
|
||||
<summary>
|
||||
Locates and reads the end of central directory record near the
|
||||
end of the archive.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.Pack(Microsoft.Deployment.Compression.IPackStreamContext,System.Collections.Generic.IEnumerable{System.String},System.Int64)">
|
||||
<summary>
|
||||
Creates a zip archive or chain of zip archives.
|
||||
</summary>
|
||||
<param name="streamContext">A context interface to handle opening
|
||||
and closing of archive and file streams.</param>
|
||||
<param name="files">An array of file lists. Each list is
|
||||
compressed into one stream in the archive.</param>
|
||||
<param name="maxArchiveSize">The maximum number of bytes for one archive
|
||||
before the contents are chained to the next archive, or zero for unlimited
|
||||
archive size.</param>
|
||||
<exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The archive could not be
|
||||
created.</exception>
|
||||
<remarks>
|
||||
The stream context implementation may provide a mapping from the file
|
||||
paths within the archive to the external file paths.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.CheckArchiveWriteStream(Microsoft.Deployment.Compression.IPackStreamContext,System.Int64,System.Int64,System.IO.Stream@)">
|
||||
<summary>
|
||||
Moves to the next archive in the sequence if necessary.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.PackOneFile(Microsoft.Deployment.Compression.IPackStreamContext,System.String,System.Int64,System.Boolean,System.IO.Stream@)">
|
||||
<summary>
|
||||
Adds one file to a zip archive in the process of being created.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.PackFileBytes(Microsoft.Deployment.Compression.IPackStreamContext,System.IO.Stream,System.Int64,System.Converter{System.IO.Stream,System.IO.Stream},System.IO.Stream@,System.UInt32@)">
|
||||
<summary>
|
||||
Writes compressed bytes of one file to the archive,
|
||||
keeping track of the CRC and number of bytes written.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.Unpack(Microsoft.Deployment.Compression.IUnpackStreamContext,System.Predicate{System.String})">
|
||||
<summary>
|
||||
Extracts files from a zip archive or archive chain.
|
||||
</summary>
|
||||
<param name="streamContext">A context interface to handle opening
|
||||
and closing of archive and file streams.</param>
|
||||
<param name="fileFilter">An optional predicate that can determine
|
||||
which files to process.</param>
|
||||
<exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The archive provided
|
||||
by the stream context is not valid.</exception>
|
||||
<remarks>
|
||||
The <paramref name="fileFilter"/> predicate takes an internal file
|
||||
path and returns true to include the file or false to exclude it.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.UnpackOneFile(Microsoft.Deployment.Compression.IUnpackStreamContext,Microsoft.Deployment.Compression.Zip.ZipFileHeader,System.IO.Stream@)">
|
||||
<summary>
|
||||
Unpacks a single file from an archive or archive chain.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.AreFilePathsEqual(System.String,System.String)">
|
||||
<summary>
|
||||
Compares two internal file paths while ignoring case and slash differences.
|
||||
</summary>
|
||||
<param name="path1">The first path to compare.</param>
|
||||
<param name="path2">The second path to compare.</param>
|
||||
<returns>True if the paths are equivalent.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.UnpackFileBytes(Microsoft.Deployment.Compression.IUnpackStreamContext,System.String,System.Int64,System.Int64,System.UInt32,System.IO.Stream,System.Converter{System.IO.Stream,System.IO.Stream},System.IO.Stream@)">
|
||||
<summary>
|
||||
Decompresses bytes for one file from an archive or archive chain,
|
||||
checking the crc at the end.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Zip.ZipEngine.ArchiveComment">
|
||||
<summary>
|
||||
Gets the comment from the last-examined archive,
|
||||
or sets the comment to be added to any created archives.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Zip.ZipFileInfo">
|
||||
<summary>
|
||||
Object representing a compressed file within a zip package; provides operations for getting
|
||||
the file properties and extracting the file.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipFileInfo.#ctor(Microsoft.Deployment.Compression.Zip.ZipInfo,System.String)">
|
||||
<summary>
|
||||
Creates a new ZipFileInfo object representing a file within a zip in a specified path.
|
||||
</summary>
|
||||
<param name="zipInfo">An object representing the zip archive containing the file.</param>
|
||||
<param name="filePath">The path to the file within the zip archive. Usually, this is a simple file
|
||||
name, but if the zip archive contains a directory structure this may include the directory.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipFileInfo.#ctor(System.String,System.Int32,System.IO.FileAttributes,System.DateTime,System.Int64,System.Int64,Microsoft.Deployment.Compression.Zip.ZipCompressionMethod)">
|
||||
<summary>
|
||||
Creates a new ZipFileInfo object with all parameters specified,
|
||||
used internally when reading the metadata out of a zip archive.
|
||||
</summary>
|
||||
<param name="filePath">The internal path and name of the file in the zip archive.</param>
|
||||
<param name="zipNumber">The zip archive number where the file starts.</param>
|
||||
<param name="attributes">The stored attributes of the file.</param>
|
||||
<param name="lastWriteTime">The stored last write time of the file.</param>
|
||||
<param name="length">The uncompressed size of the file.</param>
|
||||
<param name="compressedLength">The compressed size of the file.</param>
|
||||
<param name="compressionMethod">Compression algorithm used for this file.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipFileInfo.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
|
||||
<summary>
|
||||
Initializes a new instance of the ZipFileInfo class with serialized data.
|
||||
</summary>
|
||||
<param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
|
||||
<param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipFileInfo.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
|
||||
<summary>
|
||||
Sets the SerializationInfo with information about the archive.
|
||||
</summary>
|
||||
<param name="info">The SerializationInfo that holds the serialized object data.</param>
|
||||
<param name="context">The StreamingContext that contains contextual information
|
||||
about the source or destination.</param>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Zip.ZipFileInfo.CompressedLength">
|
||||
<summary>
|
||||
Gets the compressed size of the file in bytes.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Compression.Zip.ZipFileInfo.CompressionMethod">
|
||||
<summary>
|
||||
Gets the method used to compress this file.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Compression.Zip.ZipInfo">
|
||||
<summary>
|
||||
Object representing a zip file on disk; provides access to
|
||||
file-based operations on the zip file.
|
||||
</summary>
|
||||
<remarks>
|
||||
Generally, the methods on this class are much easier to use than the
|
||||
stream-based interfaces provided by the <see cref="T:Microsoft.Deployment.Compression.Zip.ZipEngine"/> class.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipInfo.#ctor(System.String)">
|
||||
<summary>
|
||||
Creates a new CabinetInfo object representing a zip file in a specified path.
|
||||
</summary>
|
||||
<param name="path">The path to the zip file. When creating a zip file, this file does not
|
||||
necessarily exist yet.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipInfo.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
|
||||
<summary>
|
||||
Initializes a new instance of the CabinetInfo class with serialized data.
|
||||
</summary>
|
||||
<param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
|
||||
<param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipInfo.CreateCompressionEngine">
|
||||
<summary>
|
||||
Creates a compression engine that does the low-level work for
|
||||
this object.
|
||||
</summary>
|
||||
<returns>A new <see cref="T:Microsoft.Deployment.Compression.Zip.ZipEngine"/> instance.</returns>
|
||||
<remarks>
|
||||
Each instance will be <see cref="M:Microsoft.Deployment.Compression.CompressionEngine.Dispose"/>d
|
||||
immediately after use.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipInfo.GetFiles">
|
||||
<summary>
|
||||
Gets information about the files contained in the archive.
|
||||
</summary>
|
||||
<returns>A list of <see cref="T:Microsoft.Deployment.Compression.Zip.ZipFileInfo"/> objects, each
|
||||
containing information about a file in the archive.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Compression.Zip.ZipInfo.GetFiles(System.String)">
|
||||
<summary>
|
||||
Gets information about the certain files contained in the archive file.
|
||||
</summary>
|
||||
<param name="searchPattern">The search string, such as
|
||||
"*.txt".</param>
|
||||
<returns>A list of <see cref="T:Microsoft.Deployment.Compression.Zip.ZipFileInfo"/> objects, each containing
|
||||
information about a file in the archive.</returns>
|
||||
</member>
|
||||
<member name="T:Microsoft.Tools.WindowsInstallerXml.WixDistribution">
|
||||
<summary>
|
||||
Distribution specific strings.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.NewsUrl">
|
||||
<summary>
|
||||
News URL for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.ShortProduct">
|
||||
<summary>
|
||||
Short product name for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.SupportUrl">
|
||||
<summary>
|
||||
Support URL for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.TelemetryUrlFormat">
|
||||
<summary>
|
||||
Telemetry URL format for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
BIN
tools/WIX/sdk/Microsoft.Deployment.Compression.dll
Normal file
BIN
tools/WIX/sdk/Microsoft.Deployment.Compression.dll
Normal file
Binary file not shown.
1960
tools/WIX/sdk/Microsoft.Deployment.Compression.xml
Normal file
1960
tools/WIX/sdk/Microsoft.Deployment.Compression.xml
Normal file
File diff suppressed because it is too large
Load diff
BIN
tools/WIX/sdk/Microsoft.Deployment.Resources.dll
Normal file
BIN
tools/WIX/sdk/Microsoft.Deployment.Resources.dll
Normal file
Binary file not shown.
536
tools/WIX/sdk/Microsoft.Deployment.Resources.xml
Normal file
536
tools/WIX/sdk/Microsoft.Deployment.Resources.xml
Normal file
|
@ -0,0 +1,536 @@
|
|||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Microsoft.Deployment.Resources</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:Microsoft.Deployment.Resources.BitmapResource">
|
||||
<summary>
|
||||
A subclass of Resource which provides specific methods for manipulating the resource data.
|
||||
</summary>
|
||||
<remarks>
|
||||
The resource is of type <see cref="P:Microsoft.Deployment.Resources.ResourceType.Bitmap"/> (RT_GROUPICON).
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Resources.Resource">
|
||||
<summary>
|
||||
Represents a Win32 resource which can be loaded from and saved to a PE file.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.Resource.#ctor(Microsoft.Deployment.Resources.ResourceType,System.String,System.Int32)">
|
||||
<summary>
|
||||
Creates a new Resource object without any data. The data can be later loaded from a file.
|
||||
</summary>
|
||||
<param name="type">Type of the resource; may be one of the ResourceType constants or a user-defined type.</param>
|
||||
<param name="name">Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".</param>
|
||||
<param name="locale">Locale of the resource</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.Resource.#ctor(Microsoft.Deployment.Resources.ResourceType,System.String,System.Int32,System.Byte[])">
|
||||
<summary>
|
||||
Creates a new Resource object with data. The data can be later saved to a file.
|
||||
</summary>
|
||||
<param name="type">Type of the resource; may be one of the ResourceType constants or a user-defined type.</param>
|
||||
<param name="name">Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".</param>
|
||||
<param name="locale">Locale of the resource</param>
|
||||
<param name="data">Raw resource data</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.Resource.Load(System.String)">
|
||||
<summary>
|
||||
Loads the resource data from a file. The file is searched for a resource with matching type, name, and locale.
|
||||
</summary>
|
||||
<param name="file">Win32 PE file containing the resource</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.Resource.Save(System.String)">
|
||||
<summary>
|
||||
Saves the resource to a file. Any existing resource data with matching type, name, and locale is overwritten.
|
||||
</summary>
|
||||
<param name="file">Win32 PE file to contain the resource</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.Resource.Equals(System.Object)">
|
||||
<summary>
|
||||
Tests if type, name, and locale of this Resource object match another Resource object.
|
||||
</summary>
|
||||
<param name="obj">Resource object to be compared</param>
|
||||
<returns>True if the objects represent the same resource; false otherwise.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.Resource.GetHashCode">
|
||||
<summary>
|
||||
Gets a hash code for this Resource object.
|
||||
</summary>
|
||||
<returns>Hash code generated from the resource type, name, and locale.</returns>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.Resource.ResourceType">
|
||||
<summary>
|
||||
Gets or sets the type of the resource. This may be one of the ResourceType constants
|
||||
or a user-defined type name.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.Resource.Name">
|
||||
<summary>
|
||||
Gets or sets the name of the resource. For a numeric resource identifier, the decimal number is prefixed with a "#".
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.Resource.Locale">
|
||||
<summary>
|
||||
Gets or sets the locale of the resource.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.Resource.Data">
|
||||
<summary>
|
||||
Gets or sets the raw data of the resource.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.BitmapResource.#ctor(System.String,System.Int32)">
|
||||
<summary>
|
||||
Creates a new BitmapResource object without any data. The data can be later loaded from a file.
|
||||
</summary>
|
||||
<param name="name">Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".</param>
|
||||
<param name="locale">Locale of the resource</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.BitmapResource.#ctor(System.String,System.Int32,System.Byte[])">
|
||||
<summary>
|
||||
Creates a new BitmapResource object with data. The data can be later saved to a file.
|
||||
</summary>
|
||||
<param name="name">Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".</param>
|
||||
<param name="locale">Locale of the resource</param>
|
||||
<param name="data">Raw resource data</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.BitmapResource.ReadFromFile(System.String)">
|
||||
<summary>
|
||||
Reads the bitmap from a .bmp file.
|
||||
</summary>
|
||||
<param name="path">Path to a bitmap file (.bmp).</param>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Resources.GroupIconResource">
|
||||
<summary>
|
||||
A subclass of Resource which provides specific methods for manipulating the resource data.
|
||||
</summary>
|
||||
<remarks>
|
||||
The resource is of type <see cref="P:Microsoft.Deployment.Resources.ResourceType.GroupIcon"/> (RT_GROUPICON).
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.GroupIconResource.#ctor(System.String,System.Int32)">
|
||||
<summary>
|
||||
Creates a new GroupIconResource object without any data. The data can be later loaded from a file.
|
||||
</summary>
|
||||
<param name="name">Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".</param>
|
||||
<param name="locale">Locale of the resource</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.GroupIconResource.#ctor(System.String,System.Int32,System.Byte[])">
|
||||
<summary>
|
||||
Creates a new GroupIconResource object with data. The data can be later saved to a file.
|
||||
</summary>
|
||||
<param name="name">Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".</param>
|
||||
<param name="locale">Locale of the resource</param>
|
||||
<param name="data">Raw resource data</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.GroupIconResource.ReadFromFile(System.String)">
|
||||
<summary>
|
||||
Reads the icon group from a .ico file.
|
||||
</summary>
|
||||
<param name="path">Path to an icon file (.ico).</param>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.GroupIconResource.Data">
|
||||
<summary>
|
||||
Gets or sets the raw data of the resource. The data is in the format of the RT_GROUPICON resource structure.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.GroupIconResource.Icons">
|
||||
<summary>
|
||||
Enumerates the the icons in the icon group.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Resources.ResourceCollection">
|
||||
<summary>
|
||||
Allows reading and editing of resource data in a Win32 PE file.
|
||||
</summary>
|
||||
<remarks>
|
||||
To use this class:<list type="number">
|
||||
<item>Create a new ResourceCollection</item>
|
||||
<item>Locate resources for the collection by calling one of the <see cref="M:Microsoft.Deployment.Resources.ResourceCollection.Find(System.String)"/> methods</item>
|
||||
<item>Load data of one or more <see cref="T:Microsoft.Deployment.Resources.Resource"/>s from a file by calling the <see cref="M:Microsoft.Deployment.Resources.ResourceCollection.Load(System.String)"/> method of the
|
||||
Resource class, or load them all at once (more efficient) with the <see cref="M:Microsoft.Deployment.Resources.ResourceCollection.Load(System.String)"/> method of the ResourceCollection.</item>
|
||||
<item>Read and/or edit data of the individual Resource objects using the methods on that class.</item>
|
||||
<item>Save data of one or more <see cref="T:Microsoft.Deployment.Resources.Resource"/>s to a file by calling the <see cref="M:Microsoft.Deployment.Resources.ResourceCollection.Save(System.String)"/> method of the
|
||||
Resource class, or save them all at once (more efficient) with the <see cref="M:Microsoft.Deployment.Resources.ResourceCollection.Save(System.String)"/> method of the ResourceCollection.</item>
|
||||
</list>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceCollection.#ctor">
|
||||
<summary>
|
||||
Creates a new, empty ResourceCollection.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceCollection.Find(System.String)">
|
||||
<summary>
|
||||
Locates all resources in a file, including all resource types and languages. For each located resource,
|
||||
a <see cref="T:Microsoft.Deployment.Resources.Resource"/> instance (or subclass) is added to the collection.
|
||||
</summary>
|
||||
<param name="resFile">The file to be searched for resources.</param>
|
||||
<exception cref="T:System.IO.IOException">resources could not be read from the file</exception>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceCollection.Find(System.String,Microsoft.Deployment.Resources.ResourceType)">
|
||||
<summary>
|
||||
Locates all resources in a file of a given type, including all languages. For each located resource,
|
||||
a <see cref="T:Microsoft.Deployment.Resources.Resource"/> instance (or subclass) is added to the collection.
|
||||
</summary>
|
||||
<param name="resFile">The file to be searched for resources.</param>
|
||||
<param name="type">The type of resource to search for; may be one of the ResourceType constants or a user-defined type.</param>
|
||||
<exception cref="T:System.IO.IOException">resources could not be read from the file</exception>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceCollection.Find(System.String,Microsoft.Deployment.Resources.ResourceType,System.String)">
|
||||
<summary>
|
||||
Locates all resources in a file of a given type and language. For each located resource,
|
||||
a <see cref="T:Microsoft.Deployment.Resources.Resource"/> instance (or subclass) is added to the collection.
|
||||
</summary>
|
||||
<param name="resFile">The file to be searched for resources.</param>
|
||||
<param name="type">The type of resource to search for; may be one of the ResourceType constants or a user-defined type.</param>
|
||||
<param name="name">The name of the resource to search for.</param>
|
||||
<exception cref="T:System.IO.IOException">resources could not be read from the file</exception>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceCollection.Load(System.String)">
|
||||
<summary>
|
||||
For all resources in the collection, loads their data from a resource file.
|
||||
</summary>
|
||||
<param name="file">The file from which resources are loaded.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceCollection.Save(System.String)">
|
||||
<summary>
|
||||
For all resources in the collection, saves their data to a resource file.
|
||||
</summary>
|
||||
<param name="file">The file to which resources are saved.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceCollection.Add(Microsoft.Deployment.Resources.Resource)">
|
||||
<summary>
|
||||
Adds a new item to the collection.
|
||||
</summary>
|
||||
<param name="item">The Resource to add.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceCollection.Remove(Microsoft.Deployment.Resources.Resource)">
|
||||
<summary>
|
||||
Removes an item to the collection.
|
||||
</summary>
|
||||
<param name="item">The Resource to remove.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceCollection.IndexOf(Microsoft.Deployment.Resources.Resource)">
|
||||
<summary>
|
||||
Gets the index of an item in the collection.
|
||||
</summary>
|
||||
<param name="item">The Resource to search for.</param>
|
||||
<returns>The index of the item, or -1 if not found.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceCollection.Insert(System.Int32,Microsoft.Deployment.Resources.Resource)">
|
||||
<summary>
|
||||
Inserts a item into the collection.
|
||||
</summary>
|
||||
<param name="index">The insertion index.</param>
|
||||
<param name="item">The Resource to insert.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceCollection.Contains(Microsoft.Deployment.Resources.Resource)">
|
||||
<summary>
|
||||
Tests if the collection contains an item.
|
||||
</summary>
|
||||
<param name="item">The Resource to search for.</param>
|
||||
<returns>true if the item is found; false otherwise</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceCollection.CopyTo(Microsoft.Deployment.Resources.Resource[],System.Int32)">
|
||||
<summary>
|
||||
Copies the collection into an array.
|
||||
</summary>
|
||||
<param name="array">The array to copy into.</param>
|
||||
<param name="arrayIndex">The starting index in the destination array.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceCollection.Clear">
|
||||
<summary>
|
||||
Removes all resources from the collection.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceCollection.GetEnumerator">
|
||||
<summary>
|
||||
Gets an enumerator over all resources in the collection.
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.ResourceCollection.Item(System.Int32)">
|
||||
<summary>
|
||||
Gets or sets the element at the specified index.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.ResourceCollection.Count">
|
||||
<summary>
|
||||
Gets the number of resources in the collection.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Resources.ResourceType">
|
||||
<summary>
|
||||
Represents either a standard integer resource type or a custom resource type name.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceType.#ctor(System.String)">
|
||||
<summary>
|
||||
Creates a new resource type from a string resource name.
|
||||
</summary>
|
||||
<param name="resourceType">String resource name,
|
||||
or an integer resource type prefixed by a #.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceType.#ctor(System.Int32)">
|
||||
<summary>
|
||||
Creates a new integer resource type.
|
||||
</summary>
|
||||
<param name="resourceType">Integer value of a well-known resource type.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceType.ToString">
|
||||
<summary>
|
||||
Gets a string representation of the resource type.
|
||||
</summary>
|
||||
<returns>The custom resource name, or the name of a well-known resource type.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceType.Equals(System.Object)">
|
||||
<summary>
|
||||
Tests whether one resource type equals another object.
|
||||
</summary>
|
||||
<param name="obj">Other object.</param>
|
||||
<returns>True if equal, else false.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceType.Equals(Microsoft.Deployment.Resources.ResourceType)">
|
||||
<summary>
|
||||
Tests whether one resource type equals another.
|
||||
</summary>
|
||||
<param name="otherType">Other resource type.</param>
|
||||
<returns>True if equal, else false.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceType.GetHashCode">
|
||||
<summary>
|
||||
Gets a hash code suitable for using the resource type as a dictionary key.
|
||||
</summary>
|
||||
<returns>Hash code based on the resource type string.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceType.op_Implicit(System.String)~Microsoft.Deployment.Resources.ResourceType">
|
||||
<summary>
|
||||
Implicitly converts a string to a ResourceType.
|
||||
</summary>
|
||||
<param name="resourceType">String resource type to convert.</param>
|
||||
<returns>ResourceType object.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.ResourceType.op_Explicit(Microsoft.Deployment.Resources.ResourceType)~System.String">
|
||||
<summary>
|
||||
Explicitly converts a ResourceType to a string.
|
||||
</summary>
|
||||
<param name="resourceType">ResourceType object to convert.</param>
|
||||
<returns>The resource type string.</returns>
|
||||
<remarks>
|
||||
Unlike <see cref="M:Microsoft.Deployment.Resources.ResourceType.ToString"/>, this conversion does not return
|
||||
the common name of well-known integer resource types. Therefore,
|
||||
the returned string is suitable for passing directly to Win32
|
||||
resource APIs that accept resource type strings.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.ResourceType.IsInteger">
|
||||
<summary>
|
||||
Gets a flag indicating whether the resource type is an integer type.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.ResourceType.IntegerValue">
|
||||
<summary>
|
||||
Gets the integer value of the resource type, or -1 if the resource type is not an integer.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Resources.VersionBuildTypes">
|
||||
<summary>
|
||||
Identifies build types of a versioned file.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Resources.VersionFileType">
|
||||
<summary>
|
||||
Identifies the type of a versioned file.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Resources.VersionFileSubtype">
|
||||
<summary>
|
||||
Identifies the sub-type of a versioned file.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Resources.VersionResource">
|
||||
<summary>
|
||||
A subclass of Resource which provides specific methods for manipulating the resource data.
|
||||
</summary>
|
||||
<remarks>
|
||||
The resource is of type <see cref="P:Microsoft.Deployment.Resources.ResourceType.Version"/> (RT_VERSION).
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.VersionResource.#ctor(System.String,System.Int32)">
|
||||
<summary>
|
||||
Creates a new VersionResource object without any data. The data can be later loaded from a file.
|
||||
</summary>
|
||||
<param name="name">Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".</param>
|
||||
<param name="locale">Locale of the resource</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.VersionResource.#ctor(System.String,System.Int32,System.Byte[])">
|
||||
<summary>
|
||||
Creates a new VersionResource object with data. The data can be later saved to a file.
|
||||
</summary>
|
||||
<param name="name">Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".</param>
|
||||
<param name="locale">Locale of the resource</param>
|
||||
<param name="data">Raw resource data</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.VersionResource.Add(System.Int32)">
|
||||
<summary>
|
||||
Adds a new version string table for a locale.
|
||||
</summary>
|
||||
<param name="locale">Locale of the table</param>
|
||||
<returns>The new string table, or the existing table if the locale already existed.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.VersionResource.Remove(System.Int32)">
|
||||
<summary>
|
||||
Removes a version string table for a locale.
|
||||
</summary>
|
||||
<param name="locale">Locale of the table</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.VersionResource.Contains(System.Int32)">
|
||||
<summary>
|
||||
Checks if a version string table exists for a given locale.
|
||||
</summary>
|
||||
<param name="locale">Locale to search for</param>
|
||||
<returns>True if a string table was found for the locale; false otherwise.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.VersionResource.Clear">
|
||||
<summary>
|
||||
Removes all string tables from the version resource.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.VersionResource.CopyTo(Microsoft.Deployment.Resources.VersionStringTable[],System.Int32)">
|
||||
<summary>
|
||||
Copies the version string tables to an array, starting at a particular array index.
|
||||
</summary>
|
||||
<param name="array">The one-dimensional Array that is the destination of the elements copied
|
||||
from the collection. The Array must have zero-based indexing.</param>
|
||||
<param name="arrayIndex">The zero-based index in array at which copying begins.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.VersionResource.GetEnumerator">
|
||||
<summary>
|
||||
Gets an enumerator that can iterate over the version string tables in the collection.
|
||||
</summary>
|
||||
<returns>An enumerator that returns <see cref="T:Microsoft.Deployment.Resources.VersionStringTable"/> objects.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.VersionResource.System#Collections#IEnumerable#GetEnumerator">
|
||||
<summary>
|
||||
Gets an enumerator that can iterate over the version string tables in the collection.
|
||||
</summary>
|
||||
<returns>An enumerator that returns <see cref="T:Microsoft.Deployment.Resources.VersionStringTable"/> objects.</returns>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.VersionResource.Data">
|
||||
<summary>
|
||||
Gets or sets the raw data of the resource. The data is in the format of the VS_VERSIONINFO structure.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.VersionResource.FileVersion">
|
||||
<summary>
|
||||
Gets or sets the binary locale-independent file version of the version resource.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.VersionResource.ProductVersion">
|
||||
<summary>
|
||||
Gets or sets the binary locale-independent product version of the version resource.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.VersionResource.BuildTypes">
|
||||
<summary>
|
||||
Gets or sets a bitmask that specifies the build types of the file.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.VersionResource.FileType">
|
||||
<summary>
|
||||
Gets or sets the general type of the file.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.VersionResource.FileSubtype">
|
||||
<summary>
|
||||
Gets or sets the specific type of the file.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.VersionResource.Timestamp">
|
||||
<summary>
|
||||
Gets or sets the binary creation date and time.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.VersionResource.Item(System.Int32)">
|
||||
<summary>
|
||||
Gets the string table for a specific locale, or null if there is no table for that locale.
|
||||
</summary>
|
||||
<seealso cref="M:Microsoft.Deployment.Resources.VersionResource.Add(System.Int32)"/>
|
||||
<seealso cref="M:Microsoft.Deployment.Resources.VersionResource.Remove(System.Int32)"/>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.VersionResource.Count">
|
||||
<summary>
|
||||
Gets the number string tables in the version resource.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.Resources.VersionStringTable">
|
||||
<summary>
|
||||
Represents a string table of a file version resource.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.VersionStringTable.Clear">
|
||||
<summary>
|
||||
Removes all strings from the string table.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.Resources.VersionStringTable.GetEnumerator">
|
||||
<summary>
|
||||
Gets an enumeration over all strings in the table.
|
||||
</summary>
|
||||
<returns>Enumeration of string name and value pairs</returns>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.VersionStringTable.Locale">
|
||||
<summary>
|
||||
Gets the locale (LCID) of the string table.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.VersionStringTable.Item(System.String)">
|
||||
<summary>
|
||||
Gets or sets a string value.
|
||||
</summary>
|
||||
<param name="key">Name of the string.</param>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.VersionStringTable.Keys">
|
||||
<summary>
|
||||
Gets a collection of all the names of the strings in the table.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.VersionStringTable.Values">
|
||||
<summary>
|
||||
Gets a collection of all the values in the table.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.Resources.VersionStringTable.Count">
|
||||
<summary>
|
||||
Gets the number of strings in the table.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Tools.WindowsInstallerXml.WixDistribution">
|
||||
<summary>
|
||||
Distribution specific strings.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.NewsUrl">
|
||||
<summary>
|
||||
News URL for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.ShortProduct">
|
||||
<summary>
|
||||
Short product name for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.SupportUrl">
|
||||
<summary>
|
||||
Support URL for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.TelemetryUrlFormat">
|
||||
<summary>
|
||||
Telemetry URL format for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
BIN
tools/WIX/sdk/Microsoft.Deployment.WindowsInstaller.Linq.dll
Normal file
BIN
tools/WIX/sdk/Microsoft.Deployment.WindowsInstaller.Linq.dll
Normal file
Binary file not shown.
459
tools/WIX/sdk/Microsoft.Deployment.WindowsInstaller.Linq.xml
Normal file
459
tools/WIX/sdk/Microsoft.Deployment.WindowsInstaller.Linq.xml
Normal file
|
@ -0,0 +1,459 @@
|
|||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Microsoft.Deployment.WindowsInstaller.Linq</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:Microsoft.Deployment.WindowsInstaller.Linq.DatabaseTableAttribute">
|
||||
<summary>
|
||||
Apply to a subclass of QRecord to indicate the name of
|
||||
the table the record type is to be used with.
|
||||
</summary>
|
||||
<remarks>
|
||||
If this attribute is not used on a record type, the default
|
||||
table name will be derived from the record type name. (An
|
||||
optional underscore suffix is stripped.)
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.DatabaseTableAttribute.#ctor(System.String)">
|
||||
<summary>
|
||||
Creates a new DatabaseTableAttribute for the specified table.
|
||||
</summary>
|
||||
<param name="table">name of the table associated with the record type</param>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.DatabaseTableAttribute.Table">
|
||||
<summary>
|
||||
Gets or sets the table associated with the record type.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.WindowsInstaller.Linq.DatabaseColumnAttribute">
|
||||
<summary>
|
||||
Apply to a property on a subclass of QRecord to indicate
|
||||
the name of the column the property is to be associated with.
|
||||
</summary>
|
||||
<remarks>
|
||||
If this attribute is not used on a property, the default
|
||||
column name will be the same as the property name.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.DatabaseColumnAttribute.#ctor(System.String)">
|
||||
<summary>
|
||||
Creates a new DatabaseColumnAttribute which maps a
|
||||
record property to a column.
|
||||
</summary>
|
||||
<param name="column">name of the column associated with the property</param>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.DatabaseColumnAttribute.Column">
|
||||
<summary>
|
||||
Gets or sets the column associated with the record property.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.WindowsInstaller.Linq.QRecord">
|
||||
<summary>
|
||||
Generic record entity for queryable databases,
|
||||
and base for strongly-typed entity subclasses.
|
||||
</summary>
|
||||
<remarks>
|
||||
Several predefined specialized subclasses are provided for common
|
||||
standard tables. Subclasses for additional standard tables
|
||||
or custom tables are not necessary, but they are easy to create
|
||||
and make the coding experience much nicer.
|
||||
<para>When creating subclasses, the following attributes may be
|
||||
useful: <see cref="T:Microsoft.Deployment.WindowsInstaller.Linq.DatabaseTableAttribute"/>,
|
||||
<see cref="T:Microsoft.Deployment.WindowsInstaller.Linq.DatabaseColumnAttribute"/></para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.#ctor">
|
||||
<summary>
|
||||
Do not call. Use QTable.NewRecord() instead.
|
||||
</summary>
|
||||
<remarks>
|
||||
Subclasses must also provide a public parameterless constructor.
|
||||
<para>QRecord constructors are only public due to implementation
|
||||
reasons (to satisfy the new() constraint on the QTable generic
|
||||
class). They are not intended to be called by user code other than
|
||||
a subclass constructor. If the constructor is invoked directly,
|
||||
the record instance will not be properly initialized (associated
|
||||
with a database table) and calls to methods on the instance
|
||||
will throw a NullReferenceException.</para>
|
||||
</remarks>
|
||||
<seealso cref="M:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.NewRecord"/>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.I(System.Int32)">
|
||||
<summary>
|
||||
Used by subclasses to get a field as an integer.
|
||||
</summary>
|
||||
<param name="index">zero-based column index of the field</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.NI(System.Int32)">
|
||||
<summary>
|
||||
Used by subclasses to get a field as a nullable integer.
|
||||
</summary>
|
||||
<param name="index">zero-based column index of the field</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.ToString">
|
||||
<summary>
|
||||
Dumps all record fields to a string.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Update(System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String})">
|
||||
<summary>
|
||||
Update multiple fields in the record (and the database).
|
||||
</summary>
|
||||
<param name="fields">column names of fields to update</param>
|
||||
<param name="values">new values for each field being updated</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Update(System.Collections.Generic.IList{System.Int32},System.Collections.Generic.IList{System.String})">
|
||||
<summary>
|
||||
Update multiple fields in the record (and the database).
|
||||
</summary>
|
||||
<param name="indexes">column indexes of fields to update</param>
|
||||
<param name="values">new values for each field being updated</param>
|
||||
<remarks>
|
||||
The record (primary keys) must already exist in the table.
|
||||
<para>Updating primary key fields is not yet implemented; use Delete()
|
||||
and Insert() instead.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Insert">
|
||||
<summary>
|
||||
Inserts the record in the database.
|
||||
</summary>
|
||||
<remarks>
|
||||
The record (primary keys) may not already exist in the table.
|
||||
<para>Use <see cref="M:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.NewRecord"/> to get a new
|
||||
record. Prmary keys and all required fields
|
||||
must be filled in before insertion.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Insert(System.Boolean)">
|
||||
<summary>
|
||||
Inserts the record into the table.
|
||||
</summary>
|
||||
<param name="temporary">true if the record is temporarily
|
||||
inserted, to be visible only as long as the database is open</param>
|
||||
<remarks>
|
||||
The record (primary keys) may not already exist in the table.
|
||||
<para>Use <see cref="M:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.NewRecord"/> to get a new
|
||||
record. Prmary keys and all required fields
|
||||
must be filled in before insertion.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Delete">
|
||||
<summary>
|
||||
Deletes the record from the table if it exists.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Refresh">
|
||||
<summary>
|
||||
Not yet implemented.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Assign">
|
||||
<summary>
|
||||
Not yet implemented.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Merge">
|
||||
<summary>
|
||||
Not yet implemented.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Validate">
|
||||
<summary>
|
||||
Not yet implemented.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.ValidateNew">
|
||||
<summary>
|
||||
Not yet implemented.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.ValidateFields">
|
||||
<summary>
|
||||
Not yet implemented.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.ValidateDelete">
|
||||
<summary>
|
||||
Not yet implemented.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.FieldCount">
|
||||
<summary>
|
||||
Gets the number of fields in the record.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Item(System.String)">
|
||||
<summary>
|
||||
Gets or sets a record field.
|
||||
</summary>
|
||||
<param name="field">column name of the field</param>
|
||||
<remarks>
|
||||
Setting a field value will automatically update the database.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Item(System.Int32)">
|
||||
<summary>
|
||||
Gets or sets a record field.
|
||||
</summary>
|
||||
<param name="index">zero-based column index of the field</param>
|
||||
<remarks>
|
||||
Setting a field value will automatically update the database.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.WindowsInstaller.Linq.Queryable">
|
||||
<summary>
|
||||
Allows any Database instance to be converted into a queryable database.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.Queryable.AsQueryable(Microsoft.Deployment.WindowsInstaller.Database)">
|
||||
<summary>
|
||||
Converts any Database instance into a queryable database.
|
||||
</summary>
|
||||
<param name="db"></param>
|
||||
<returns>Queryable database instance that operates on the same
|
||||
MSI handle.</returns>
|
||||
<remarks>
|
||||
This extension method is meant for convenient on-the-fly conversion.
|
||||
If the existing database instance already happens to be a QDatabase,
|
||||
then it is returned unchanged. Otherwise since the new database
|
||||
carries the same MSI handle, only one of the instances needs to be
|
||||
closed, not both.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase">
|
||||
<summary>
|
||||
Queryable MSI database - extends the base Database class with
|
||||
LINQ query functionality along with predefined entity types
|
||||
for common tables.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.#ctor(System.String)">
|
||||
<summary>
|
||||
Opens an existing database in read-only mode.
|
||||
</summary>
|
||||
<param name="filePath">Path to the database file.</param>
|
||||
<exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the database could not be created/opened</exception>
|
||||
<remarks>
|
||||
Because this constructor initiates database access, it cannot be used with a
|
||||
running installation.
|
||||
<para>The Database object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
|
||||
The finalizer will close the handle if it is still open, however due to the nondeterministic
|
||||
nature of finalization it is best that the handle be closed manually as soon as it is no
|
||||
longer needed, as leaving lots of unused handles open can degrade performance.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.#ctor(System.String,System.String)">
|
||||
<summary>
|
||||
Opens an existing database with another database as output.
|
||||
</summary>
|
||||
<param name="filePath">Path to the database to be read.</param>
|
||||
<param name="outputPath">Open mode for the database</param>
|
||||
<returns>Database object representing the created or opened database</returns>
|
||||
<exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the database could not be created/opened</exception>
|
||||
<remarks>
|
||||
When a database is opened as the output of another database, the summary information stream
|
||||
of the output database is actually a read-only mirror of the original database and thus cannot
|
||||
be changed. Additionally, it is not persisted with the database. To create or modify the
|
||||
summary information for the output database it must be closed and re-opened.
|
||||
<para>The returned Database object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
|
||||
The finalizer will close the handle if it is still open, however due to the nondeterministic
|
||||
nature of finalization it is best that the handle be closed manually as soon as it is no
|
||||
longer needed, as leaving lots of unused handles open can degrade performance.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.#ctor(System.String,Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode)">
|
||||
<summary>
|
||||
Opens an existing database or creates a new one.
|
||||
</summary>
|
||||
<param name="filePath">Path to the database file. If an empty string
|
||||
is supplied, a temporary database is created that is not persisted.</param>
|
||||
<param name="mode">Open mode for the database</param>
|
||||
<exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the database could not be created/opened</exception>
|
||||
<remarks>
|
||||
To make and save changes to a database first open the database in transaction,
|
||||
create or, or direct mode. After making the changes, always call the Commit method
|
||||
before closing the database handle. The Commit method flushes all buffers.
|
||||
<para>Always call the Commit method on a database that has been opened in direct
|
||||
mode before closing the database. Failure to do this may corrupt the database.</para>
|
||||
<para>Because this constructor initiates database access, it cannot be used with a
|
||||
running installation.</para>
|
||||
<para>The Database object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
|
||||
The finalizer will close the handle if it is still open, however due to the nondeterministic
|
||||
nature of finalization it is best that the handle be closed manually as soon as it is no
|
||||
longer needed, as leaving lots of unused handles open can degrade performance.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.#ctor(System.IntPtr,System.Boolean,System.String,Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode)">
|
||||
<summary>
|
||||
Creates a new database from an MSI handle.
|
||||
</summary>
|
||||
<param name="handle">Native MSI database handle.</param>
|
||||
<param name="ownsHandle">True if the handle should be closed
|
||||
when the database object is disposed</param>
|
||||
<param name="filePath">Path of the database file, if known</param>
|
||||
<param name="openMode">Mode the handle was originally opened in</param>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Log">
|
||||
<summary>
|
||||
Gets or sets a log where all MSI SQL queries are written.
|
||||
</summary>
|
||||
<remarks>
|
||||
The log can be useful for debugging, or simply to watch the LINQ magic in action.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Item(System.String)">
|
||||
<summary>
|
||||
Gets a queryable table from the datbaase.
|
||||
</summary>
|
||||
<param name="table">name of the table</param>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Components">
|
||||
<summary>Queryable standard table with predefined specialized record type.</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.CreateFolders">
|
||||
<summary>Queryable standard table with predefined specialized record type.</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.CustomActions">
|
||||
<summary>Queryable standard table with predefined specialized record type.</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Directories">
|
||||
<summary>Queryable standard table with predefined specialized record type.</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.DuplicateFiles">
|
||||
<summary>Queryable standard table with predefined specialized record type.</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Features">
|
||||
<summary>Queryable standard table with predefined specialized record type.</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.FeatureComponents">
|
||||
<summary>Queryable standard table with predefined specialized record type.</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Files">
|
||||
<summary>Queryable standard table with predefined specialized record type.</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.FileHashes">
|
||||
<summary>Queryable standard table with predefined specialized record type.</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.InstallExecuteSequences">
|
||||
<summary>Queryable standard table with predefined specialized record type.</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.InstallUISequences">
|
||||
<summary>Queryable standard table with predefined specialized record type.</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.LaunchConditions">
|
||||
<summary>Queryable standard table with predefined specialized record type.</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Medias">
|
||||
<summary>Queryable standard table with predefined specialized record type.</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Properties">
|
||||
<summary>Queryable standard table with predefined specialized record type.</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Registries">
|
||||
<summary>Queryable standard table with predefined specialized record type.</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.RemoveFiles">
|
||||
<summary>Queryable standard table with predefined specialized record type.</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1">
|
||||
<summary>
|
||||
Represents one table in a LINQ-queryable Database.
|
||||
</summary>
|
||||
<typeparam name="TRecord">type that represents one record in the table</typeparam>
|
||||
<remarks>
|
||||
This class is the primary gateway to all LINQ to MSI query functionality.
|
||||
<para>The TRecord generic parameter may be the general <see cref="T:Microsoft.Deployment.WindowsInstaller.Linq.QRecord"/>
|
||||
class, or a specialized subclass of QRecord.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.InferTableName">
|
||||
<summary>
|
||||
Infers the name of the table this instance will be
|
||||
associated with.
|
||||
</summary>
|
||||
<returns>table name</returns>
|
||||
<remarks>
|
||||
The table name is retrieved from a DatabaseTableAttribute
|
||||
on the record type if it exists; otherwise the name is
|
||||
derived from the name of the record type itself.
|
||||
(An optional underscore suffix on the record type name is dropped.)
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.#ctor(Microsoft.Deployment.WindowsInstaller.Linq.QDatabase)">
|
||||
<summary>
|
||||
Creates a new QTable, inferring the table name
|
||||
from the name of the record type parameter.
|
||||
</summary>
|
||||
<param name="db">database that contains the table</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.#ctor(Microsoft.Deployment.WindowsInstaller.Linq.QDatabase,System.String)">
|
||||
<summary>
|
||||
Creates a new QTable with an explicit table name.
|
||||
</summary>
|
||||
<param name="db">database that contains the table</param>
|
||||
<param name="table">name of the table</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.GetEnumerator">
|
||||
<summary>
|
||||
Enumerates over all records in the table.
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.NewRecord">
|
||||
<summary>
|
||||
Creates a new record that can be inserted into this table.
|
||||
</summary>
|
||||
<returns>a record with all fields initialized to null</returns>
|
||||
<remarks>
|
||||
Primary keys and required fields must be filled in with
|
||||
non-null values before the record can be inserted.
|
||||
<para>The record is tied to this table in this database;
|
||||
it cannot be inserted into another table or database.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.TableInfo">
|
||||
<summary>
|
||||
Gets schema information about the table.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.Database">
|
||||
<summary>
|
||||
Gets the database this table is associated with.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.WindowsInstaller.Linq.Query`1">
|
||||
<summary>
|
||||
Implements the LINQ to MSI query functionality.
|
||||
</summary>
|
||||
<typeparam name="T">the result type of the current query --
|
||||
either some kind of QRecord, or some projection of record data</typeparam>
|
||||
</member>
|
||||
<member name="T:Microsoft.Tools.WindowsInstallerXml.WixDistribution">
|
||||
<summary>
|
||||
Distribution specific strings.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.NewsUrl">
|
||||
<summary>
|
||||
News URL for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.ShortProduct">
|
||||
<summary>
|
||||
Short product name for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.SupportUrl">
|
||||
<summary>
|
||||
Support URL for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.TelemetryUrlFormat">
|
||||
<summary>
|
||||
Telemetry URL format for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
BIN
tools/WIX/sdk/Microsoft.Deployment.WindowsInstaller.Package.dll
Normal file
BIN
tools/WIX/sdk/Microsoft.Deployment.WindowsInstaller.Package.dll
Normal file
Binary file not shown.
704
tools/WIX/sdk/Microsoft.Deployment.WindowsInstaller.Package.xml
Normal file
704
tools/WIX/sdk/Microsoft.Deployment.WindowsInstaller.Package.xml
Normal file
|
@ -0,0 +1,704 @@
|
|||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Microsoft.Deployment.WindowsInstaller.Package</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:Microsoft.Deployment.WindowsInstaller.Package.InstallPackageMessageHandler">
|
||||
<summary>
|
||||
Handles status messages generated when operations are performed on an
|
||||
<see cref="T:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage"/> or <see cref="T:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage"/>.
|
||||
</summary>
|
||||
<example>
|
||||
<c>installPackage.Message += new InstallPackageMessageHandler(Console.WriteLine);</c>
|
||||
</example>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage">
|
||||
<summary>
|
||||
Provides access to powerful build, maintenance, and analysis operations on an
|
||||
installation package (.MSI or .MSM).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.#ctor(System.String,Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode)">
|
||||
<summary>
|
||||
Creates a new InstallPackage object. The file source directory and working
|
||||
directory are the same as the location as the package file.
|
||||
</summary>
|
||||
<param name="packagePath">Path to the install package to be created or opened</param>
|
||||
<param name="openMode">Open mode for the database</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.#ctor(System.String,Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode,System.String,System.String)">
|
||||
<summary>
|
||||
Creates a new InstallPackage object, specifying an alternate file source
|
||||
directory and/or working directory.
|
||||
</summary>
|
||||
<param name="packagePath">Path to the install package to be created or opened</param>
|
||||
<param name="openMode">Open mode for the database</param>
|
||||
<param name="sourceDir">Location to obtain source files and cabinets when extracting
|
||||
or updating files in the working directory. This is often the location of an original
|
||||
copy of the package that is not meant to be modified. If this parameter is null, it
|
||||
defaults to the directory of <paramref name="packagePath"/>.</param>
|
||||
<param name="workingDir">Location where files will be extracted to/updated from. Also
|
||||
the location where a temporary folder is created during some operations. If this
|
||||
parameter is null, it defaults to the directory of <paramref name="packagePath"/>.</param>
|
||||
<remarks>If the source location is different than the working directory, then
|
||||
no files will be modified at the source location.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.LogMessage(System.String,System.Object[])">
|
||||
<summary>
|
||||
Sends a message to the <see cref="E:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Message"/> event-handler.
|
||||
</summary>
|
||||
<param name="format">Message string, containing 0 or more format items</param>
|
||||
<param name="args">Items to be formatted</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.FindFiles(System.String)">
|
||||
<summary>
|
||||
Gets the list of file keys that have the specified long file name.
|
||||
</summary>
|
||||
<param name="longFileName">File name to search for (case-insensitive)</param>
|
||||
<returns>Array of file keys, or a 0-length array if none are found</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.FindFiles(System.Text.RegularExpressions.Regex)">
|
||||
<summary>
|
||||
Gets the list of file keys whose long file names match a specified
|
||||
regular-expression search pattern.
|
||||
</summary>
|
||||
<param name="pattern">Regular expression search pattern</param>
|
||||
<returns>Array of file keys, or a 0-length array if none are found</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.ExtractFiles">
|
||||
<summary>
|
||||
Extracts all files to the <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.WorkingDirectory"/>. The files are extracted
|
||||
to the relative directory matching their <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.SourcePath"/>.
|
||||
</summary>
|
||||
<remarks>If any files have the uncompressed attribute, they will be copied
|
||||
from the <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.SourceDirectory"/>.</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.ExtractFiles(System.Collections.Generic.ICollection{System.String})">
|
||||
<summary>
|
||||
Extracts a specified list of files to the <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.WorkingDirectory"/>. The files
|
||||
are extracted to the relative directory matching their <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.SourcePath"/>.
|
||||
</summary>
|
||||
<param name="fileKeys">List of file key strings to extract</param>
|
||||
<remarks>If any files have the uncompressed attribute, they will be copied
|
||||
from the <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.SourceDirectory"/>.</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.UpdateFiles">
|
||||
<summary>
|
||||
Updates the install package with new files from the <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.WorkingDirectory"/>. The
|
||||
files must be in the relative directory matching their <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.SourcePath"/>.
|
||||
This method re-compresses and packages the files if necessary, and also updates the
|
||||
following data: File.FileSize, File.Version, File.Language, MsiFileHash.HashPart*
|
||||
</summary>
|
||||
<remarks>
|
||||
The cabinet compression level used during re-cabbing can be configured with the
|
||||
<see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.CompressionLevel"/> property.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.UpdateFiles(System.Collections.Generic.ICollection{System.String})">
|
||||
<summary>
|
||||
Updates the install package with new files from the <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.WorkingDirectory"/>. The
|
||||
files must be in the relative directory matching their <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.SourcePath"/>.
|
||||
This method re-compresses and packages the files if necessary, and also updates the
|
||||
following data: File.FileSize, File.Version, File.Language, MsiFileHash.HashPart?.
|
||||
</summary>
|
||||
<param name="fileKeys">List of file key strings to update</param>
|
||||
<remarks>
|
||||
This method does not change the media structure of the package, so it may require extracting
|
||||
and re-compressing a large cabinet just to update one file.
|
||||
<p>The cabinet compression level used during re-cabbing can be configured with the
|
||||
<see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.CompressionLevel"/> property.</p>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Consolidate(System.String)">
|
||||
<summary>
|
||||
Consolidates a package by combining and re-compressing all files into a single
|
||||
internal or external cabinet.
|
||||
</summary>
|
||||
<param name="mediaCabinet"></param>
|
||||
<remarks>If an installation package was built from many merge modules, this
|
||||
method can somewhat decrease package size, complexity, and installation time.
|
||||
<p>This method will also convert a package with all or mostly uncompressed
|
||||
files into a package where all files are compressed.</p>
|
||||
<p>If the package contains any not-yet-applied binary file patches (for
|
||||
example, a package generated by a call to <see cref="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.ApplyPatch(Microsoft.Deployment.WindowsInstaller.Package.PatchPackage,System.String)"/>) then
|
||||
this method will apply the patches before compressing the updated files.</p>
|
||||
<p>This method edits the database summary information and the File, Media
|
||||
and Patch tables as necessary to maintain a valid installation package.</p>
|
||||
<p>The cabinet compression level used during re-cabbing can be configured with the
|
||||
<see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.CompressionLevel"/> property.</p>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.UpdateDirectories">
|
||||
<summary>
|
||||
Rebuilds the cached directory structure information accessed by the
|
||||
<see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Directories"/> and <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Files"/> properties. This
|
||||
should be done after modifying the File, Component, or Directory
|
||||
tables, or else the cached information may no longer be accurate.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.ApplyPatch(Microsoft.Deployment.WindowsInstaller.Package.PatchPackage,System.String)">
|
||||
<summary>
|
||||
Applies a patch package to the database, resulting in an installation package that
|
||||
has the patch built-in.
|
||||
</summary>
|
||||
<param name="patchPackage">The patch package to be applied</param>
|
||||
<param name="transform">Optional name of the specific transform to apply.
|
||||
This parameter is usually left null, which causes the patch to be searched for
|
||||
a transform that is valid to apply to this database.</param>
|
||||
<remarks>
|
||||
If the patch contains any binary file patches, they will not immediately be applied
|
||||
to the target files, though they will at installation time.
|
||||
<p>After calling this method you can use <see cref="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Consolidate(System.String)"/> to apply
|
||||
the file patches immediately and also discard any outdated files from the package.</p>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="E:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Message">
|
||||
<summary>
|
||||
Handle this event to receive status messages when operations are performed
|
||||
on the install package.
|
||||
</summary>
|
||||
<example>
|
||||
<c>installPackage.Message += new InstallPackageMessageHandler(Console.WriteLine);</c>
|
||||
</example>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.SourceDirectory">
|
||||
<summary>
|
||||
Gets or sets the location to obtain source files and cabinets when
|
||||
extracting or updating files in the working directory. This is often
|
||||
the location of an original copy of the package that is not meant
|
||||
to be modified.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.WorkingDirectory">
|
||||
<summary>
|
||||
Gets or sets the location where files will be extracted to/updated from. Also
|
||||
the location where a temporary folder is created during some operations.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Directories">
|
||||
<summary>
|
||||
Gets a mapping from Directory keys to source/target paths.
|
||||
</summary>
|
||||
<remarks>
|
||||
If the Directory table is modified, this mapping
|
||||
will be outdated until you call <see cref="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.UpdateDirectories"/>.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Files">
|
||||
<summary>
|
||||
Gets a mapping from File keys to source/target paths.
|
||||
</summary>
|
||||
<remarks>
|
||||
If the File, Component, or Directory tables are modified, this mapping
|
||||
may be outdated until you call <see cref="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.UpdateDirectories"/>.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.CompressionLevel">
|
||||
<summary>
|
||||
Gets or sets the compression level used by <see cref="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.UpdateFiles"/>
|
||||
and <see cref="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Consolidate(System.String)"/>.
|
||||
</summary>
|
||||
<remarks>
|
||||
If the Directory table is modified, this mapping will be outdated
|
||||
until you close and reopen the install package.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Property">
|
||||
<summary>
|
||||
Accessor for getting and setting properties of the InstallPackage database.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.WindowsInstaller.Package.InstallPackageProperties">
|
||||
<summary>
|
||||
Accessor for getting and setting properties of the <see cref="T:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage"/> database.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackageProperties.Item(System.String)">
|
||||
<summary>
|
||||
Gets or sets a property in the database. When getting a property
|
||||
that does not exist in the database, an empty string is returned.
|
||||
To remove a property from the database, set it to an empty string.
|
||||
</summary>
|
||||
<remarks>
|
||||
This has the same results as direct SQL queries on the Property table; it's only
|
||||
meant to be a more convenient way of access.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.WindowsInstaller.Package.InstallPath">
|
||||
<summary>
|
||||
Represents the installation path of a file or directory from an installer product database.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.#ctor(System.String)">
|
||||
<summary>
|
||||
Creates a new InstallPath, specifying a filename.
|
||||
</summary>
|
||||
<param name="name">The name of the file or directory. Not a full path.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.#ctor(System.String,System.Boolean)">
|
||||
<summary>
|
||||
Creates a new InstallPath, parsing out either the short or long filename.
|
||||
</summary>
|
||||
<param name="name">The name of the file or directory, in short|long syntax for a filename
|
||||
or targetshort|targetlong:sourceshort|sourcelong syntax for a directory.</param>
|
||||
<param name="useShortNames">true to parse the short part of the combined filename; false to parse the long part</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.ToString">
|
||||
<summary>
|
||||
Gets the full source path.
|
||||
</summary>
|
||||
<returns><see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.SourcePath"/></returns>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.ParentPath">
|
||||
<summary>
|
||||
Gets the path of the parent directory.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.ChildPaths">
|
||||
<summary>
|
||||
Gets the set of child paths if this InstallPath object represents a a directory.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.SourceName">
|
||||
<summary>
|
||||
Gets or sets the source name of the InstallPath.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.TargetName">
|
||||
<summary>
|
||||
Gets or sets the target name of the install path.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.SourcePath">
|
||||
<summary>
|
||||
Gets the full source path.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.TargetPath">
|
||||
<summary>
|
||||
Gets the full target path.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection">
|
||||
<summary>
|
||||
Represents a collection of InstallPaths that are the child paths of the same parent directory.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.Add(Microsoft.Deployment.WindowsInstaller.Package.InstallPath)">
|
||||
<summary>
|
||||
Adds a new child path to the collection.
|
||||
</summary>
|
||||
<param name="item">The InstallPath to add.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.Remove(Microsoft.Deployment.WindowsInstaller.Package.InstallPath)">
|
||||
<summary>
|
||||
Removes a child path to the collection.
|
||||
</summary>
|
||||
<param name="item">The InstallPath to remove.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.IndexOf(Microsoft.Deployment.WindowsInstaller.Package.InstallPath)">
|
||||
<summary>
|
||||
Gets the index of a child path in the collection.
|
||||
</summary>
|
||||
<param name="item">The InstallPath to search for.</param>
|
||||
<returns>The index of the item, or -1 if not found.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.Insert(System.Int32,Microsoft.Deployment.WindowsInstaller.Package.InstallPath)">
|
||||
<summary>
|
||||
Inserts a child path into the collection.
|
||||
</summary>
|
||||
<param name="index">The insertion index.</param>
|
||||
<param name="item">The InstallPath to insert.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.Contains(Microsoft.Deployment.WindowsInstaller.Package.InstallPath)">
|
||||
<summary>
|
||||
Tests if the collection contains a child path.
|
||||
</summary>
|
||||
<param name="item">The InstallPath to search for.</param>
|
||||
<returns>true if the item is found; false otherwise</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.CopyTo(Microsoft.Deployment.WindowsInstaller.Package.InstallPath[],System.Int32)">
|
||||
<summary>
|
||||
Copies the collection into an array.
|
||||
</summary>
|
||||
<param name="array">The array to copy into.</param>
|
||||
<param name="index">The starting index in the destination array.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.RemoveAt(System.Int32)">
|
||||
<summary>
|
||||
Removes an item from the collection.
|
||||
</summary>
|
||||
<param name="index">The index of the item to remove.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.Clear">
|
||||
<summary>
|
||||
Removes all items from the collection.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.GetEnumerator">
|
||||
<summary>
|
||||
Gets an enumerator over all items in the collection.
|
||||
</summary>
|
||||
<returns>An enumerator for the collection.</returns>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.Item(System.Int32)">
|
||||
<summary>
|
||||
Gets or sets the element at the specified index.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.Count">
|
||||
<summary>
|
||||
Gets the number of items in the collection.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap">
|
||||
<summary>
|
||||
Represents a mapping of install paths for all directories, components, or files in
|
||||
an installation database.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.BuildFilePathMap(Microsoft.Deployment.WindowsInstaller.Database,Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap,System.Boolean)">
|
||||
<summary>
|
||||
Builds a mapping from File keys to installation paths.
|
||||
</summary>
|
||||
<param name="db">Installation database.</param>
|
||||
<param name="componentPathMap">Component mapping returned by <see cref="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.BuildComponentPathMap(Microsoft.Deployment.WindowsInstaller.Database,Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap)"/>.</param>
|
||||
<param name="useShortNames">true to use short file names; false to use long names</param>
|
||||
<returns>An InstallPathMap with the described mapping.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.BuildComponentPathMap(Microsoft.Deployment.WindowsInstaller.Database,Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap)">
|
||||
<summary>
|
||||
Builds a mapping from Component keys to installation paths.
|
||||
</summary>
|
||||
<param name="db">Installation database.</param>
|
||||
<param name="directoryPathMap">Directory mapping returned by
|
||||
<see cref="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.BuildDirectoryPathMap(Microsoft.Deployment.WindowsInstaller.Database,System.Boolean)"/>.</param>
|
||||
<returns>An InstallPathMap with the described mapping.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.BuildDirectoryPathMap(Microsoft.Deployment.WindowsInstaller.Database,System.Boolean)">
|
||||
<summary>
|
||||
Builds a mapping from Directory keys to installation paths.
|
||||
</summary>
|
||||
<param name="db">Installation database.</param>
|
||||
<param name="useShortNames">true to use short directory names; false to use long names</param>
|
||||
<returns>An InstallPathMap with the described mapping.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.BuildDirectoryPathMap(Microsoft.Deployment.WindowsInstaller.Database,System.Boolean,System.String,System.String)">
|
||||
<summary>
|
||||
Builds a mapping of Directory keys to directory paths, specifying root directories
|
||||
for the source and target paths.
|
||||
</summary>
|
||||
<param name="db">Database containing the Directory table.</param>
|
||||
<param name="useShortNames">true to use short directory names; false to use long names</param>
|
||||
<param name="sourceRootDir">The root directory path of all source paths, or null to leave them relative.</param>
|
||||
<param name="targetRootDir">The root directory path of all source paths, or null to leave them relative.</param>
|
||||
<returns>An InstallPathMap with the described mapping.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.#ctor">
|
||||
<summary>
|
||||
Creates a new empty InstallPathMap.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.Add(System.String,Microsoft.Deployment.WindowsInstaller.Package.InstallPath)">
|
||||
<summary>
|
||||
Sets an install path for a direcotry, component, or file key.
|
||||
</summary>
|
||||
<param name="key">Depending on the type of InstallPathMap, this is the primary key from the
|
||||
either the Directory, Component, or File table.</param>
|
||||
<param name="installPath">The install path of the key item.</param>
|
||||
<remarks>
|
||||
Changing an install path does not modify the Database used to generate this InstallPathMap.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.Remove(System.String)">
|
||||
<summary>
|
||||
Removes an install path from the map.
|
||||
</summary>
|
||||
<param name="key">Depending on the type of InstallPathMap, this is the primary key from the
|
||||
either the Directory, Component, or File table.</param>
|
||||
<returns>true if the item was removed, false if it did not exist</returns>
|
||||
<remarks>
|
||||
Changing an install path does not modify the Database used to generate this InstallPathMap.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.ContainsKey(System.String)">
|
||||
<summary>
|
||||
Tests whether a direcotry, component, or file key exists in the map.
|
||||
</summary>
|
||||
<param name="key">Depending on the type of InstallPathMap, this is the primary key from the
|
||||
either the Directory, Component, or File table.</param>
|
||||
<returns>true if the key is found; false otherwise</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.TryGetValue(System.String,Microsoft.Deployment.WindowsInstaller.Package.InstallPath@)">
|
||||
<summary>
|
||||
Attempts to get a value from the dictionary.
|
||||
</summary>
|
||||
<param name="key">The key to lookup.</param>
|
||||
<param name="value">Receives the value, or null if they key was not found.</param>
|
||||
<returns>True if the value was found, else false.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.Clear">
|
||||
<summary>
|
||||
Removes all entries from the dictionary.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.GetEnumerator">
|
||||
<summary>
|
||||
Gets an enumerator over all entries in the dictionary.
|
||||
</summary>
|
||||
<returns>An enumerator for the dictionary.</returns>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.SourcePaths">
|
||||
<summary>
|
||||
Gets a mapping from keys to source paths.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.TargetPaths">
|
||||
<summary>
|
||||
Gets a mapping from keys to target paths.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.Item(System.String)">
|
||||
<summary>
|
||||
Gets or sets an install path for a direcotry, component, or file key.
|
||||
</summary>
|
||||
<param name="key">Depending on the type of InstallPathMap, this is the primary key from the
|
||||
either the Directory, Component, or File table.</param>
|
||||
<remarks>
|
||||
Changing an install path does not modify the Database used to generate this InstallPathMap.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.Keys">
|
||||
<summary>
|
||||
Gets the collection of keys in the InstallPathMap. Depending on the type of InstallPathMap,
|
||||
they are all directory, component, or file key strings.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.Values">
|
||||
<summary>
|
||||
Gets the collection of InstallPath values in the InstallPathMap.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.Count">
|
||||
<summary>
|
||||
Gets the number of entries in the dictionary.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage">
|
||||
<summary>
|
||||
Provides access to convenient properties and operations on a patch package (.MSP).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.#ctor(System.String)">
|
||||
<summary>
|
||||
Creates a new patch package object; opening the patch database in read-only mode.
|
||||
</summary>
|
||||
<param name="packagePath">Path to the patch package (.MSP)</param>
|
||||
<remarks>The PatchPackage object only opens the patch database in read-only mode, because
|
||||
transforms (sub-storages) cannot be read if the database is open in read-write mode.</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.LogMessage(System.String,System.Object[])">
|
||||
<summary>
|
||||
Sends a message to the <see cref="E:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.Message"/> event-handler.
|
||||
</summary>
|
||||
<param name="format">Message string, containing 0 or more format items</param>
|
||||
<param name="args">Items to be formatted</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.GetReplacedPatchCodes">
|
||||
<summary>
|
||||
Gets the list of patch codes that are replaced by this patch package.
|
||||
</summary>
|
||||
<returns>Array of replaced patch codes (GUIDs)</returns>
|
||||
<remarks>
|
||||
The list of replaced patch codes is stored in the RevisionNumber field of the patch summary information.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.GetTargetProductCodes">
|
||||
<summary>
|
||||
Gets the list of product codes of products targeted by this patch package.
|
||||
</summary>
|
||||
<returns>Array of product codes (GUIDs)</returns>
|
||||
<remarks>
|
||||
The list of target product codes is stored in the Template field of the patch summary information.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.GetTransforms">
|
||||
<summary>
|
||||
Gets the names of the transforms included in the patch package.
|
||||
</summary>
|
||||
<returns>Array of transform names</returns>
|
||||
<remarks>
|
||||
The returned list does not include the "patch special transforms" that are prefixed with "#"
|
||||
<p>The list of transform names is stored in the LastSavedBy field of the patch summary information.</p>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.GetTransforms(System.Boolean)">
|
||||
<summary>
|
||||
Gets the names of the transforms included in the patch package.
|
||||
</summary>
|
||||
<param name="includeSpecialTransforms">Specifies whether to include the
|
||||
"patch special transforms" that are prefixed with "#"</param>
|
||||
<returns>Array of transform names</returns>
|
||||
<remarks>
|
||||
The list of transform names is stored in the LastSavedBy field of the patch summary information.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.GetTransformsInfo">
|
||||
<summary>
|
||||
Gets information about the transforms included in the patch package.
|
||||
</summary>
|
||||
<returns>Array containing information about each transform</returns>
|
||||
<remarks>
|
||||
The returned info does not include the "patch special transforms" that are prefixed with "#"
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.GetTransformsInfo(System.Boolean)">
|
||||
<summary>
|
||||
Gets information about the transforms included in the patch package.
|
||||
</summary>
|
||||
<param name="includeSpecialTransforms">Specifies whether to include the
|
||||
"patch special transforms" that are prefixed with "#"</param>
|
||||
<returns>Array containing information about each transform</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.GetTransformInfo(System.String)">
|
||||
<summary>
|
||||
Gets information about a transforms included in the patch package.
|
||||
</summary>
|
||||
<param name="transform">Name of the transform to extract; this may optionally be a
|
||||
special transform prefixed by "#"</param>
|
||||
<returns>Information about the transform</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.GetValidTransforms(Microsoft.Deployment.WindowsInstaller.Package.InstallPackage)">
|
||||
<summary>
|
||||
Analyzes the transforms included in the patch package to find the ones that
|
||||
are applicable to an install package.
|
||||
</summary>
|
||||
<param name="installPackage">The install package to validate the transforms against</param>
|
||||
<returns>Array of valid transform names</returns>
|
||||
<remarks>
|
||||
The returned list does not include the "patch special transforms" that
|
||||
are prefixed with "#" If a transform is valid, then its corresponding
|
||||
special transform is assumed to be valid as well.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.ExtractTransform(System.String,System.String)">
|
||||
<summary>
|
||||
Extracts a transform (.MST) from a patch package.
|
||||
</summary>
|
||||
<param name="transform">Name of the transform to extract; this may optionally be a
|
||||
special transform prefixed by "#"</param>
|
||||
<param name="extractFile">Location where the transform will be extracted</param>
|
||||
</member>
|
||||
<member name="E:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.Message">
|
||||
<summary>
|
||||
Handle this event to receive status messages when operations are performed on the patch package.
|
||||
</summary>
|
||||
<example>
|
||||
<c>patchPackage.Message += new InstallPackageMessageHandler(Console.WriteLine);</c>
|
||||
</example>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.PatchCode">
|
||||
<summary>
|
||||
Gets the patch code (GUID) of the patch package.
|
||||
</summary>
|
||||
<remarks>
|
||||
The patch code is stored in the RevisionNumber field of the patch summary information.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo">
|
||||
<summary>
|
||||
Contains properties of a transform package (.MST).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.#ctor(System.String)">
|
||||
<summary>
|
||||
Reads transform information from a transform package.
|
||||
</summary>
|
||||
<param name="mstFile">Path to a transform package (.MST file).</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.#ctor(System.String,Microsoft.Deployment.WindowsInstaller.SummaryInfo)">
|
||||
<summary>
|
||||
Reads transform information from the summary information of a transform package.
|
||||
</summary>
|
||||
<param name="name">Filename of the transform (optional).</param>
|
||||
<param name="transformSummaryInfo">Handle to the summary information of a transform package (.MST file).</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.ToString">
|
||||
<summary>
|
||||
Returns the name of the transform.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.Name">
|
||||
<summary>
|
||||
Gets the filename of the transform.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.TargetProductCode">
|
||||
<summary>
|
||||
Gets the target product code of the transform.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.TargetProductVersion">
|
||||
<summary>
|
||||
Gets the target product version of the transform.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.UpgradeProductCode">
|
||||
<summary>
|
||||
Gets the upgrade product code of the transform.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.UpgradeProductVersion">
|
||||
<summary>
|
||||
Gets the upgrade product version of the transform.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.UpgradeCode">
|
||||
<summary>
|
||||
Gets the upgrade code of the transform.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.TargetPlatform">
|
||||
<summary>
|
||||
Gets the target platform of the transform.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.TargetLanguage">
|
||||
<summary>
|
||||
Gets the target language of the transform, or 0 if the transform is language-neutral.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.Validations">
|
||||
<summary>
|
||||
Gets the validation flags specified when the transform was generated.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Microsoft.Tools.WindowsInstallerXml.WixDistribution">
|
||||
<summary>
|
||||
Distribution specific strings.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.NewsUrl">
|
||||
<summary>
|
||||
News URL for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.ShortProduct">
|
||||
<summary>
|
||||
Short product name for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.SupportUrl">
|
||||
<summary>
|
||||
Support URL for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Microsoft.Tools.WindowsInstallerXml.WixDistribution.TelemetryUrlFormat">
|
||||
<summary>
|
||||
Telemetry URL format for the distribution.
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
BIN
tools/WIX/sdk/Microsoft.Deployment.WindowsInstaller.dll
Normal file
BIN
tools/WIX/sdk/Microsoft.Deployment.WindowsInstaller.dll
Normal file
Binary file not shown.
7409
tools/WIX/sdk/Microsoft.Deployment.WindowsInstaller.xml
Normal file
7409
tools/WIX/sdk/Microsoft.Deployment.WindowsInstaller.xml
Normal file
File diff suppressed because it is too large
Load diff
BIN
tools/WIX/sdk/MsgGen.exe
Normal file
BIN
tools/WIX/sdk/MsgGen.exe
Normal file
Binary file not shown.
BIN
tools/WIX/sdk/XsdGen.exe
Normal file
BIN
tools/WIX/sdk/XsdGen.exe
Normal file
Binary file not shown.
BIN
tools/WIX/sdk/XsdStitch.exe
Normal file
BIN
tools/WIX/sdk/XsdStitch.exe
Normal file
Binary file not shown.
700
tools/WIX/sdk/inc/BalBaseBootstrapperApplication.h
Normal file
700
tools/WIX/sdk/inc/BalBaseBootstrapperApplication.h
Normal file
|
@ -0,0 +1,700 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="BalBaseBootstrapperApplication.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#include <windows.h>
|
||||
#include <msiquery.h>
|
||||
|
||||
#include "IBootstrapperEngine.h"
|
||||
#include "IBootstrapperApplication.h"
|
||||
|
||||
#include "balutil.h"
|
||||
#include "balretry.h"
|
||||
|
||||
class CBalBaseBootstrapperApplication : public IBootstrapperApplication
|
||||
{
|
||||
public: // IUnknown
|
||||
virtual STDMETHODIMP QueryInterface(
|
||||
__in REFIID riid,
|
||||
__out LPVOID *ppvObject
|
||||
)
|
||||
{
|
||||
if (!ppvObject)
|
||||
{
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
|
||||
*ppvObject = NULL;
|
||||
|
||||
if (::IsEqualIID(__uuidof(IBootstrapperApplication), riid))
|
||||
{
|
||||
*ppvObject = static_cast<IBootstrapperApplication*>(this);
|
||||
}
|
||||
else if (::IsEqualIID(IID_IUnknown, riid))
|
||||
{
|
||||
*ppvObject = static_cast<IUnknown*>(this);
|
||||
}
|
||||
else // no interface for requested iid
|
||||
{
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
|
||||
AddRef();
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(ULONG) AddRef()
|
||||
{
|
||||
return ::InterlockedIncrement(&this->m_cReferences);
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(ULONG) Release()
|
||||
{
|
||||
long l = ::InterlockedDecrement(&this->m_cReferences);
|
||||
if (0 < l)
|
||||
{
|
||||
return l;
|
||||
}
|
||||
|
||||
delete this;
|
||||
return 0;
|
||||
}
|
||||
|
||||
public: // IBootstrapperApplication
|
||||
virtual STDMETHODIMP OnStartup()
|
||||
{
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnShutdown()
|
||||
{
|
||||
return IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnSystemShutdown(
|
||||
__in DWORD dwEndSession,
|
||||
__in int /*nRecommendation*/
|
||||
)
|
||||
{
|
||||
// Allow requests to shut down when critical or not applying.
|
||||
if (ENDSESSION_CRITICAL & dwEndSession || !m_fApplying)
|
||||
{
|
||||
return IDOK;
|
||||
}
|
||||
|
||||
return IDCANCEL;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnDetectBegin(
|
||||
__in BOOL /*fInstalled*/,
|
||||
__in DWORD /*cPackages*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnDetectForwardCompatibleBundle(
|
||||
__in_z LPCWSTR /*wzBundleId*/,
|
||||
__in BOOTSTRAPPER_RELATION_TYPE /*relationType*/,
|
||||
__in_z LPCWSTR /*wzBundleTag*/,
|
||||
__in BOOL /*fPerMachine*/,
|
||||
__in DWORD64 /*dw64Version*/,
|
||||
__in int nRecommendation
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : nRecommendation;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnDetectUpdateBegin(
|
||||
__in_z LPCWSTR /*wzUpdateLocation*/,
|
||||
__in int nRecommendation
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : nRecommendation;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnDetectUpdate(
|
||||
__in_z LPCWSTR /*wzUpdateLocation*/,
|
||||
__in DWORD64 /*dw64Size*/,
|
||||
__in DWORD64 /*dw64Version*/,
|
||||
__in_z LPCWSTR /*wzTitle*/,
|
||||
__in_z LPCWSTR /*wzSummary*/,
|
||||
__in_z LPCWSTR /*wzContentType*/,
|
||||
__in_z LPCWSTR /*wzContent*/,
|
||||
__in int nRecommendation
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : nRecommendation;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(void) OnDetectUpdateComplete(
|
||||
__in HRESULT /*hrStatus*/,
|
||||
__in_z_opt LPCWSTR /*wzUpdateLocation*/
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnDetectCompatiblePackage(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__in_z LPCWSTR /*wzCompatiblePackageId*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnDetectPriorBundle(
|
||||
__in_z LPCWSTR /*wzBundleId*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnDetectPackageBegin(
|
||||
__in_z LPCWSTR /*wzPackageId*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnDetectRelatedBundle(
|
||||
__in_z LPCWSTR /*wzBundleId*/,
|
||||
__in BOOTSTRAPPER_RELATION_TYPE /*relationType*/,
|
||||
__in_z LPCWSTR /*wzBundleTag*/,
|
||||
__in BOOL /*fPerMachine*/,
|
||||
__in DWORD64 /*dw64Version*/,
|
||||
__in BOOTSTRAPPER_RELATED_OPERATION /*operation*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnDetectRelatedMsiPackage(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__in_z LPCWSTR /*wzProductCode*/,
|
||||
__in BOOL /*fPerMachine*/,
|
||||
__in DWORD64 /*dw64Version*/,
|
||||
__in BOOTSTRAPPER_RELATED_OPERATION /*operation*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnDetectTargetMsiPackage(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__in_z LPCWSTR /*wzProductCode*/,
|
||||
__in BOOTSTRAPPER_PACKAGE_STATE /*patchState*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnDetectMsiFeature(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__in_z LPCWSTR /*wzFeatureId*/,
|
||||
__in BOOTSTRAPPER_FEATURE_STATE /*state*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(void) OnDetectPackageComplete(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__in HRESULT /*hrStatus*/,
|
||||
__in BOOTSTRAPPER_PACKAGE_STATE /*state*/
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(void) OnDetectComplete(
|
||||
__in HRESULT /*hrStatus*/
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnPlanBegin(
|
||||
__in DWORD /*cPackages*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnPlanRelatedBundle(
|
||||
__in_z LPCWSTR /*wzBundleId*/,
|
||||
__inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestedState*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnPlanPackageBegin(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnPlanCompatiblePackage(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestedState*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnPlanTargetMsiPackage(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__in_z LPCWSTR /*wzProductCode*/,
|
||||
__inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestedState*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnPlanMsiFeature(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__in_z LPCWSTR /*wzFeatureId*/,
|
||||
__inout BOOTSTRAPPER_FEATURE_STATE* /*pRequestedState*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(void) OnPlanPackageComplete(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__in HRESULT /*hrStatus*/,
|
||||
__in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
|
||||
__in BOOTSTRAPPER_REQUEST_STATE /*requested*/,
|
||||
__in BOOTSTRAPPER_ACTION_STATE /*execute*/,
|
||||
__in BOOTSTRAPPER_ACTION_STATE /*rollback*/
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(void) OnPlanComplete(
|
||||
__in HRESULT /*hrStatus*/
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnApplyBegin()
|
||||
{
|
||||
m_fApplying = TRUE;
|
||||
|
||||
m_dwProgressPercentage = 0;
|
||||
m_dwOverallProgressPercentage = 0;
|
||||
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
// DEPRECATED: this will be merged with OnApplyBegin in wix4.
|
||||
virtual STDMETHODIMP_(void) OnApplyPhaseCount(
|
||||
__in DWORD /*dwPhaseCount*/
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnElevate()
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnRegisterBegin()
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(void) OnRegisterComplete(
|
||||
__in HRESULT /*hrStatus*/
|
||||
)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(void) OnUnregisterBegin()
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(void) OnUnregisterComplete(
|
||||
__in HRESULT /*hrStatus*/
|
||||
)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnApplyComplete(
|
||||
__in HRESULT /*hrStatus*/,
|
||||
__in BOOTSTRAPPER_APPLY_RESTART restart
|
||||
)
|
||||
{
|
||||
m_fApplying = FALSE;
|
||||
return BOOTSTRAPPER_APPLY_RESTART_REQUIRED == restart ? IDRESTART : CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnCacheBegin()
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnCachePackageBegin(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__in DWORD /*cCachePayloads*/,
|
||||
__in DWORD64 /*dw64PackageCacheSize*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnCacheAcquireBegin(
|
||||
__in_z LPCWSTR wzPackageOrContainerId,
|
||||
__in_z_opt LPCWSTR wzPayloadId,
|
||||
__in BOOTSTRAPPER_CACHE_OPERATION /*operation*/,
|
||||
__in_z LPCWSTR /*wzSource*/
|
||||
)
|
||||
{
|
||||
BalRetryStartPackage(BALRETRY_TYPE_CACHE, wzPackageOrContainerId, wzPayloadId);
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnCacheAcquireProgress(
|
||||
__in_z LPCWSTR /*wzPackageOrContainerId*/,
|
||||
__in_z_opt LPCWSTR /*wzPayloadId*/,
|
||||
__in DWORD64 /*dw64Progress*/,
|
||||
__in DWORD64 /*dw64Total*/,
|
||||
__in DWORD /*dwOverallPercentage*/
|
||||
)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
int nResult = IDNOACTION;
|
||||
|
||||
// Send progress even though we don't update the numbers to at least give the caller an opportunity
|
||||
// to cancel.
|
||||
if (BOOTSTRAPPER_DISPLAY_EMBEDDED == m_display)
|
||||
{
|
||||
hr = m_pEngine->SendEmbeddedProgress(m_dwProgressPercentage, m_dwOverallProgressPercentage, &nResult);
|
||||
BalExitOnFailure(hr, "Failed to send embedded cache progress.");
|
||||
}
|
||||
|
||||
LExit:
|
||||
return FAILED(hr) ? IDERROR : CheckCanceled() ? IDCANCEL : nResult;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnCacheAcquireComplete(
|
||||
__in_z LPCWSTR wzPackageOrContainerId,
|
||||
__in_z_opt LPCWSTR wzPayloadId,
|
||||
__in HRESULT hrStatus,
|
||||
__in int nRecommendation
|
||||
)
|
||||
{
|
||||
int nResult = CheckCanceled() ? IDCANCEL : BalRetryEndPackage(BALRETRY_TYPE_CACHE, wzPackageOrContainerId, wzPayloadId, hrStatus);
|
||||
return IDNOACTION == nResult ? nRecommendation : nResult;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnCacheVerifyBegin(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__in_z LPCWSTR /*wzPayloadId*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnCacheVerifyComplete(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__in_z LPCWSTR /*wzPayloadId*/,
|
||||
__in HRESULT /*hrStatus*/,
|
||||
__in int nRecommendation
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : nRecommendation;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnCachePackageComplete(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__in HRESULT /*hrStatus*/,
|
||||
__in int nRecommendation
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : nRecommendation;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(void) OnCacheComplete(
|
||||
__in HRESULT /*hrStatus*/
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnExecuteBegin(
|
||||
__in DWORD /*cExecutingPackages*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnExecutePackageBegin(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in BOOL fExecute
|
||||
)
|
||||
{
|
||||
// Only track retry on execution (not rollback).
|
||||
if (fExecute)
|
||||
{
|
||||
BalRetryStartPackage(BALRETRY_TYPE_EXECUTE, wzPackageId, NULL);
|
||||
}
|
||||
|
||||
m_fRollingBack = !fExecute;
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnExecutePatchTarget(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__in_z LPCWSTR /*wzTargetProductCode*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnError(
|
||||
__in BOOTSTRAPPER_ERROR_TYPE errorType,
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in DWORD dwCode,
|
||||
__in_z LPCWSTR /*wzError*/,
|
||||
__in DWORD /*dwUIHint*/,
|
||||
__in DWORD /*cData*/,
|
||||
__in_ecount_z_opt(cData) LPCWSTR* /*rgwzData*/,
|
||||
__in int nRecommendation
|
||||
)
|
||||
{
|
||||
BalRetryErrorOccurred(wzPackageId, dwCode);
|
||||
|
||||
if (BOOTSTRAPPER_DISPLAY_FULL == m_display)
|
||||
{
|
||||
if (BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_SERVER == errorType ||BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_PROXY == errorType)
|
||||
{
|
||||
nRecommendation = IDTRYAGAIN;
|
||||
}
|
||||
}
|
||||
|
||||
return CheckCanceled() ? IDCANCEL : nRecommendation;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnProgress(
|
||||
__in DWORD dwProgressPercentage,
|
||||
__in DWORD dwOverallProgressPercentage
|
||||
)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
int nResult = IDNOACTION;
|
||||
|
||||
m_dwProgressPercentage = dwProgressPercentage;
|
||||
m_dwOverallProgressPercentage = dwOverallProgressPercentage;
|
||||
|
||||
if (BOOTSTRAPPER_DISPLAY_EMBEDDED == m_display)
|
||||
{
|
||||
hr = m_pEngine->SendEmbeddedProgress(m_dwProgressPercentage, m_dwOverallProgressPercentage, &nResult);
|
||||
BalExitOnFailure(hr, "Failed to send embedded overall progress.");
|
||||
}
|
||||
|
||||
LExit:
|
||||
return FAILED(hr) ? IDERROR : CheckCanceled() ? IDCANCEL : nResult;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnDownloadPayloadBegin(
|
||||
__in_z LPCWSTR /*wzPayloadId*/,
|
||||
__in_z LPCWSTR /*wzPayloadFileName*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnDownloadPayloadComplete(
|
||||
__in_z LPCWSTR /*wzPayloadId*/,
|
||||
__in_z LPCWSTR /*wzPayloadFileName*/,
|
||||
__in HRESULT /*hrStatus*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnExecuteProgress(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__in DWORD /*dwProgressPercentage*/,
|
||||
__in DWORD /*dwOverallProgressPercentage*/
|
||||
)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
int nResult = IDNOACTION;
|
||||
|
||||
// Send progress even though we don't update the numbers to at least give the caller an opportunity
|
||||
// to cancel.
|
||||
if (BOOTSTRAPPER_DISPLAY_EMBEDDED == m_display)
|
||||
{
|
||||
hr = m_pEngine->SendEmbeddedProgress(m_dwProgressPercentage, m_dwOverallProgressPercentage, &nResult);
|
||||
BalExitOnFailure(hr, "Failed to send embedded execute progress.");
|
||||
}
|
||||
|
||||
LExit:
|
||||
return FAILED(hr) ? IDERROR : CheckCanceled() ? IDCANCEL : nResult;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnExecuteMsiMessage(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__in INSTALLMESSAGE /*mt*/,
|
||||
__in UINT /*uiFlags*/,
|
||||
__in_z LPCWSTR /*wzMessage*/,
|
||||
__in DWORD /*cData*/,
|
||||
__in_ecount_z_opt(cData) LPCWSTR* /*rgwzData*/,
|
||||
__in int nRecommendation
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : nRecommendation;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnExecuteFilesInUse(
|
||||
__in_z LPCWSTR /*wzPackageId*/,
|
||||
__in DWORD /*cFiles*/,
|
||||
__in_ecount_z(cFiles) LPCWSTR* /*rgwzFiles*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnExecutePackageComplete(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in HRESULT hrExitCode,
|
||||
__in BOOTSTRAPPER_APPLY_RESTART /*restart*/,
|
||||
__in int nRecommendation
|
||||
)
|
||||
{
|
||||
int nResult = CheckCanceled() ? IDCANCEL : CheckCanceled() ? IDCANCEL : BalRetryEndPackage(BALRETRY_TYPE_EXECUTE, wzPackageId, NULL, hrExitCode);
|
||||
return IDNOACTION == nResult ? nRecommendation : nResult;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(void) OnExecuteComplete(
|
||||
__in HRESULT /*hrStatus*/
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnResolveSource(
|
||||
__in_z LPCWSTR /*wzPackageOrContainerId*/,
|
||||
__in_z_opt LPCWSTR /*wzPayloadId*/,
|
||||
__in_z LPCWSTR /*wzLocalSource*/,
|
||||
__in_z_opt LPCWSTR /*wzDownloadSource*/
|
||||
)
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(int) OnLaunchApprovedExeBegin()
|
||||
{
|
||||
return CheckCanceled() ? IDCANCEL : IDNOACTION;
|
||||
}
|
||||
|
||||
virtual STDMETHODIMP_(void) OnLaunchApprovedExeComplete(
|
||||
__in HRESULT /*hrStatus*/,
|
||||
__in DWORD /*dwProcessId*/
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
protected:
|
||||
//
|
||||
// PromptCancel - prompts the user to close (if not forced).
|
||||
//
|
||||
virtual BOOL PromptCancel(
|
||||
__in HWND hWnd,
|
||||
__in BOOL fForceCancel,
|
||||
__in_z LPCWSTR wzMessage,
|
||||
__in_z LPCWSTR wzCaption
|
||||
)
|
||||
{
|
||||
::EnterCriticalSection(&m_csCanceled);
|
||||
|
||||
// Only prompt the user to close if we have not canceled already.
|
||||
if (!m_fCanceled)
|
||||
{
|
||||
if (fForceCancel)
|
||||
{
|
||||
m_fCanceled = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_fCanceled = (IDYES == ::MessageBoxW(hWnd, wzMessage, wzCaption, MB_YESNO | MB_ICONEXCLAMATION));
|
||||
}
|
||||
}
|
||||
|
||||
::LeaveCriticalSection(&m_csCanceled);
|
||||
|
||||
return m_fCanceled;
|
||||
}
|
||||
|
||||
//
|
||||
// CheckCanceled - waits if the cancel dialog is up and checks to see if the user canceled the operation.
|
||||
//
|
||||
BOOL CheckCanceled()
|
||||
{
|
||||
::EnterCriticalSection(&m_csCanceled);
|
||||
::LeaveCriticalSection(&m_csCanceled);
|
||||
return m_fRollingBack ? FALSE : m_fCanceled;
|
||||
}
|
||||
|
||||
BOOL IsRollingBack()
|
||||
{
|
||||
return m_fRollingBack;
|
||||
}
|
||||
|
||||
BOOL IsCanceled()
|
||||
{
|
||||
return m_fCanceled;
|
||||
}
|
||||
|
||||
CBalBaseBootstrapperApplication(
|
||||
__in IBootstrapperEngine* pEngine,
|
||||
__in const BOOTSTRAPPER_COMMAND* pCommand,
|
||||
__in DWORD dwRetryCount = 0,
|
||||
__in DWORD dwRetryTimeout = 1000
|
||||
)
|
||||
{
|
||||
m_cReferences = 1;
|
||||
m_display = pCommand->display;
|
||||
m_restart = pCommand->restart;
|
||||
|
||||
pEngine->AddRef();
|
||||
m_pEngine = pEngine;
|
||||
|
||||
::InitializeCriticalSection(&m_csCanceled);
|
||||
m_fCanceled = FALSE;
|
||||
m_fApplying = FALSE;
|
||||
m_fRollingBack = FALSE;
|
||||
|
||||
BalRetryInitialize(dwRetryCount, dwRetryTimeout);
|
||||
}
|
||||
|
||||
virtual ~CBalBaseBootstrapperApplication()
|
||||
{
|
||||
BalRetryUninitialize();
|
||||
::DeleteCriticalSection(&m_csCanceled);
|
||||
|
||||
ReleaseNullObject(m_pEngine);
|
||||
}
|
||||
|
||||
private:
|
||||
long m_cReferences;
|
||||
BOOTSTRAPPER_DISPLAY m_display;
|
||||
BOOTSTRAPPER_RESTART m_restart;
|
||||
IBootstrapperEngine* m_pEngine;
|
||||
|
||||
CRITICAL_SECTION m_csCanceled;
|
||||
BOOL m_fCanceled;
|
||||
BOOL m_fApplying;
|
||||
BOOL m_fRollingBack;
|
||||
|
||||
DWORD m_dwProgressPercentage;
|
||||
DWORD m_dwOverallProgressPercentage;
|
||||
};
|
767
tools/WIX/sdk/inc/IBootstrapperApplication.h
Normal file
767
tools/WIX/sdk/inc/IBootstrapperApplication.h
Normal file
|
@ -0,0 +1,767 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="IBootstrapperApplication.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// IBootstrapperApplication implemented by a bootstrapper application and used by bootstrapper engine.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
enum BOOTSTRAPPER_DISPLAY
|
||||
{
|
||||
BOOTSTRAPPER_DISPLAY_UNKNOWN,
|
||||
BOOTSTRAPPER_DISPLAY_EMBEDDED,
|
||||
BOOTSTRAPPER_DISPLAY_NONE,
|
||||
BOOTSTRAPPER_DISPLAY_PASSIVE,
|
||||
BOOTSTRAPPER_DISPLAY_FULL,
|
||||
};
|
||||
|
||||
|
||||
enum BOOTSTRAPPER_RESTART
|
||||
{
|
||||
BOOTSTRAPPER_RESTART_UNKNOWN,
|
||||
BOOTSTRAPPER_RESTART_NEVER,
|
||||
BOOTSTRAPPER_RESTART_PROMPT,
|
||||
BOOTSTRAPPER_RESTART_AUTOMATIC,
|
||||
BOOTSTRAPPER_RESTART_ALWAYS,
|
||||
};
|
||||
|
||||
|
||||
enum BOOTSTRAPPER_RESUME_TYPE
|
||||
{
|
||||
BOOTSTRAPPER_RESUME_TYPE_NONE,
|
||||
BOOTSTRAPPER_RESUME_TYPE_INVALID, // resume information is present but invalid
|
||||
BOOTSTRAPPER_RESUME_TYPE_INTERRUPTED, // relaunched after an unexpected interruption
|
||||
BOOTSTRAPPER_RESUME_TYPE_REBOOT_PENDING, // reboot has not taken place yet
|
||||
BOOTSTRAPPER_RESUME_TYPE_REBOOT, // relaunched after reboot
|
||||
BOOTSTRAPPER_RESUME_TYPE_SUSPEND, // relaunched after suspend
|
||||
BOOTSTRAPPER_RESUME_TYPE_ARP, // launched from ARP
|
||||
};
|
||||
|
||||
|
||||
enum BOOTSTRAPPER_ERROR_TYPE
|
||||
{
|
||||
BOOTSTRAPPER_ERROR_TYPE_ELEVATE, // error occurred trying to elevate.
|
||||
BOOTSTRAPPER_ERROR_TYPE_WINDOWS_INSTALLER, // error came from windows installer.
|
||||
BOOTSTRAPPER_ERROR_TYPE_EXE_PACKAGE, // error came from an exe package.
|
||||
BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_SERVER, // error occurred trying to authenticate with HTTP server.
|
||||
BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_PROXY, // error occurred trying to authenticate with HTTP proxy.
|
||||
BOOTSTRAPPER_ERROR_TYPE_APPLY, // error occurred during apply.
|
||||
};
|
||||
|
||||
|
||||
enum BOOTSTRAPPER_RELATED_OPERATION
|
||||
{
|
||||
BOOTSTRAPPER_RELATED_OPERATION_NONE,
|
||||
BOOTSTRAPPER_RELATED_OPERATION_DOWNGRADE,
|
||||
BOOTSTRAPPER_RELATED_OPERATION_MINOR_UPDATE,
|
||||
BOOTSTRAPPER_RELATED_OPERATION_MAJOR_UPGRADE,
|
||||
BOOTSTRAPPER_RELATED_OPERATION_REMOVE,
|
||||
BOOTSTRAPPER_RELATED_OPERATION_INSTALL,
|
||||
BOOTSTRAPPER_RELATED_OPERATION_REPAIR,
|
||||
};
|
||||
|
||||
|
||||
enum BOOTSTRAPPER_CACHE_OPERATION
|
||||
{
|
||||
BOOTSTRAPPER_CACHE_OPERATION_COPY,
|
||||
BOOTSTRAPPER_CACHE_OPERATION_DOWNLOAD,
|
||||
BOOTSTRAPPER_CACHE_OPERATION_EXTRACT,
|
||||
};
|
||||
|
||||
|
||||
enum BOOTSTRAPPER_APPLY_RESTART
|
||||
{
|
||||
BOOTSTRAPPER_APPLY_RESTART_NONE,
|
||||
BOOTSTRAPPER_APPLY_RESTART_REQUIRED,
|
||||
BOOTSTRAPPER_APPLY_RESTART_INITIATED,
|
||||
};
|
||||
|
||||
|
||||
enum BOOTSTRAPPER_RELATION_TYPE
|
||||
{
|
||||
BOOTSTRAPPER_RELATION_NONE,
|
||||
BOOTSTRAPPER_RELATION_DETECT,
|
||||
BOOTSTRAPPER_RELATION_UPGRADE,
|
||||
BOOTSTRAPPER_RELATION_ADDON,
|
||||
BOOTSTRAPPER_RELATION_PATCH,
|
||||
BOOTSTRAPPER_RELATION_DEPENDENT,
|
||||
BOOTSTRAPPER_RELATION_UPDATE,
|
||||
};
|
||||
|
||||
|
||||
struct BOOTSTRAPPER_COMMAND
|
||||
{
|
||||
BOOTSTRAPPER_ACTION action;
|
||||
BOOTSTRAPPER_DISPLAY display;
|
||||
BOOTSTRAPPER_RESTART restart;
|
||||
|
||||
LPWSTR wzCommandLine;
|
||||
int nCmdShow;
|
||||
|
||||
BOOTSTRAPPER_RESUME_TYPE resumeType;
|
||||
HWND hwndSplashScreen;
|
||||
|
||||
// If this was run from a related bundle, specifies the relation type
|
||||
BOOTSTRAPPER_RELATION_TYPE relationType;
|
||||
BOOL fPassthrough;
|
||||
|
||||
LPWSTR wzLayoutDirectory;
|
||||
};
|
||||
|
||||
|
||||
DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-AB06-099D717C67FE")
|
||||
{
|
||||
// OnStartup - called when the engine is ready for the bootstrapper application to start.
|
||||
//
|
||||
STDMETHOD(OnStartup)() = 0;
|
||||
|
||||
// OnShutdown - called after the bootstrapper application quits the engine.
|
||||
//
|
||||
// Return:
|
||||
// IDRESTART instructs the engine to restart. The engine will not launch again after the machine
|
||||
// is rebooted. Ignored if reboot was already initiated by OnExecutePackageComplete().
|
||||
//
|
||||
// IDRELOAD_BOOTSTRAPPER instructs the engine to unload the bootstrapper application and restart
|
||||
// the engine which will load the bootstrapper application again. Typically
|
||||
// used to switch from a native bootstrapper application to a managed one.
|
||||
//
|
||||
// All other return codes are ignored.
|
||||
STDMETHOD_(int, OnShutdown)() = 0;
|
||||
|
||||
// OnSystemShutdown - called when the operating system is instructed to shutdown the machine.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to block the shutdown of the machine.
|
||||
//
|
||||
// All other return codes allow the shutdown to commence.
|
||||
STDMETHOD_(int, OnSystemShutdown)(
|
||||
__in DWORD dwEndSession,
|
||||
__in int nRecommendation
|
||||
) = 0;
|
||||
|
||||
// OnDetectBegin - called when the engine begins detection.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop detection.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnDetectBegin)(
|
||||
__in BOOL fInstalled,
|
||||
__in DWORD cPackages
|
||||
) = 0;
|
||||
|
||||
// OnDetectForwardCompatibleBundle - called when the engine detects a forward compatible bundle.
|
||||
//
|
||||
// Return:
|
||||
// IDOK instructs the engine to use the forward compatible bundle.
|
||||
//
|
||||
// IDCANCEL instructs the engine to stop detection.
|
||||
//
|
||||
// IDNOACTION instructs the engine to not use the forward compatible bundle.
|
||||
STDMETHOD_(int, OnDetectForwardCompatibleBundle)(
|
||||
__in_z LPCWSTR wzBundleId,
|
||||
__in BOOTSTRAPPER_RELATION_TYPE relationType,
|
||||
__in_z LPCWSTR wzBundleTag,
|
||||
__in BOOL fPerMachine,
|
||||
__in DWORD64 dw64Version,
|
||||
__in int nRecommendation
|
||||
) = 0;
|
||||
|
||||
// OnDetectUpdateBegin - called when the engine begins detection for bundle update.
|
||||
//
|
||||
// Return:
|
||||
// IDOK instructs the engine to attempt update detection.
|
||||
//
|
||||
// IDCANCEL instructs the engine to stop detection.
|
||||
//
|
||||
// IDNOACTION instructs the engine to skip update detection.
|
||||
STDMETHOD_(int, OnDetectUpdateBegin)(
|
||||
__in_z LPCWSTR wzUpdateLocation,
|
||||
__in int nRecommendation
|
||||
) = 0;
|
||||
|
||||
// OnDetectUpdate - called when the engine has an update candidate for bundle update.
|
||||
//
|
||||
// Return:
|
||||
// IDOK instructs the engine to stop further update detection.
|
||||
//
|
||||
// IDCANCEL instructs the engine to stop detection.
|
||||
//
|
||||
// IDNOACTION instructs the engine to process further update candidates.
|
||||
STDMETHOD_(int, OnDetectUpdate)(
|
||||
__in_z_opt LPCWSTR wzUpdateLocation,
|
||||
__in DWORD64 dw64Size,
|
||||
__in DWORD64 dw64Version,
|
||||
__in_z_opt LPCWSTR wzTitle,
|
||||
__in_z_opt LPCWSTR wzSummary,
|
||||
__in_z_opt LPCWSTR wzContentType,
|
||||
__in_z_opt LPCWSTR wzContent,
|
||||
__in int nRecommendation
|
||||
) = 0;
|
||||
|
||||
// OnDetectUpdateComplete - called when the engine completes detection for bundle update.
|
||||
//
|
||||
// Remarks:
|
||||
// wzUpdateLocation is null if no update was available.
|
||||
STDMETHOD_(void, OnDetectUpdateComplete)(
|
||||
__in HRESULT hrStatus,
|
||||
__in_z_opt LPCWSTR wzUpdateLocation
|
||||
) = 0;
|
||||
|
||||
// OnDetectRelatedBundle - called when the engine detects a related bundle.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop detection.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnDetectRelatedBundle)(
|
||||
__in_z LPCWSTR wzBundleId,
|
||||
__in BOOTSTRAPPER_RELATION_TYPE relationType,
|
||||
__in_z LPCWSTR wzBundleTag,
|
||||
__in BOOL fPerMachine,
|
||||
__in DWORD64 dw64Version,
|
||||
__in BOOTSTRAPPER_RELATED_OPERATION operation
|
||||
) = 0;
|
||||
|
||||
// OnDetectPackageBegin - called when the engine begins detecting a package.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop detection.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnDetectPackageBegin)(
|
||||
__in_z LPCWSTR wzPackageId
|
||||
) = 0;
|
||||
|
||||
// OnDetectCompatiblePackage - called when the engine detects that a package is not installed but a newer package using the same provider key is.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop detection.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnDetectCompatiblePackage)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in_z LPCWSTR wzCompatiblePackageId
|
||||
) = 0;
|
||||
|
||||
// OnDetectRelatedMsiPackage - called when the engine begins detects a related package.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop detection.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnDetectRelatedMsiPackage)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in_z LPCWSTR wzProductCode,
|
||||
__in BOOL fPerMachine,
|
||||
__in DWORD64 dw64Version,
|
||||
__in BOOTSTRAPPER_RELATED_OPERATION operation
|
||||
) = 0;
|
||||
|
||||
// OnDetectTargetMsiPackage - called when the engine detects a target MSI package for
|
||||
// an MSP package.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop detection.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnDetectTargetMsiPackage)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in_z LPCWSTR wzProductCode,
|
||||
__in BOOTSTRAPPER_PACKAGE_STATE patchState
|
||||
) = 0;
|
||||
|
||||
// OnDetectMsiFeature - called when the engine detects a feature in an MSI package.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop detection.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnDetectMsiFeature)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in_z LPCWSTR wzFeatureId,
|
||||
__in BOOTSTRAPPER_FEATURE_STATE state
|
||||
) = 0;
|
||||
|
||||
// OnDetectPackageComplete - called after the engine detects a package.
|
||||
//
|
||||
STDMETHOD_(void, OnDetectPackageComplete)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in HRESULT hrStatus,
|
||||
__in BOOTSTRAPPER_PACKAGE_STATE state
|
||||
) = 0;
|
||||
|
||||
// OnDetectPackageComplete - called after the engine completes detection.
|
||||
//
|
||||
STDMETHOD_(void, OnDetectComplete)(
|
||||
__in HRESULT hrStatus
|
||||
) = 0;
|
||||
|
||||
// OnPlanBegin - called when the engine begins planning.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop planning.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnPlanBegin)(
|
||||
__in DWORD cPackages
|
||||
) = 0;
|
||||
|
||||
// OnPlanRelatedBundle - called when the engine begins planning a related bundle.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop planning.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnPlanRelatedBundle)(
|
||||
__in_z LPCWSTR wzBundleId,
|
||||
__inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState
|
||||
) = 0;
|
||||
|
||||
// OnPlanPackageBegin - called when the engine begins planning a package.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop planning.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnPlanPackageBegin)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState
|
||||
) = 0;
|
||||
|
||||
// OnPlanCompatiblePackage - called when the engine plans a newer, compatible package using the same provider key.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop planning.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnPlanCompatiblePackage)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState
|
||||
) = 0;
|
||||
|
||||
// OnPlanTargetMsiPackage - called when the engine plans an MSP package
|
||||
// to apply to an MSI package.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop planning.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnPlanTargetMsiPackage)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in_z LPCWSTR wzProductCode,
|
||||
__inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState
|
||||
) = 0;
|
||||
|
||||
// OnPlanMsiFeature - called when the engine plans a feature in an
|
||||
// MSI package.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop planning.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnPlanMsiFeature)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in_z LPCWSTR wzFeatureId,
|
||||
__inout BOOTSTRAPPER_FEATURE_STATE* pRequestedState
|
||||
) = 0;
|
||||
|
||||
// OnPlanPackageComplete - called after the engine plans a package.
|
||||
//
|
||||
STDMETHOD_(void, OnPlanPackageComplete)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in HRESULT hrStatus,
|
||||
__in BOOTSTRAPPER_PACKAGE_STATE state,
|
||||
__in BOOTSTRAPPER_REQUEST_STATE requested,
|
||||
__in BOOTSTRAPPER_ACTION_STATE execute,
|
||||
__in BOOTSTRAPPER_ACTION_STATE rollback
|
||||
) = 0;
|
||||
|
||||
// OnPlanComplete - called when the engine completes planning.
|
||||
//
|
||||
STDMETHOD_(void, OnPlanComplete)(
|
||||
__in HRESULT hrStatus
|
||||
) = 0;
|
||||
|
||||
// OnApplyBegin - called when the engine begins applying the plan.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop applying.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnApplyBegin)() = 0;
|
||||
|
||||
// DEPRECATED: In wix4, this will be merged with OnApplyBegin.
|
||||
// OnApplyPhaseCount - called right after OnApplyBegin.
|
||||
//
|
||||
STDMETHOD_(void, OnApplyPhaseCount)(
|
||||
__in DWORD dwPhaseCount
|
||||
) = 0;
|
||||
|
||||
// OnElevate - called before the engine displays an elevation prompt.
|
||||
// Will only happen once per execution of the engine.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to abort elevation and stop applying.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnElevate)() = 0;
|
||||
|
||||
// OnProgress - called when the engine makes progress.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop applying.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnProgress)(
|
||||
__in DWORD dwProgressPercentage,
|
||||
__in DWORD dwOverallPercentage
|
||||
) = 0;
|
||||
|
||||
// OnError - called when the engine encounters an error.
|
||||
//
|
||||
// Return:
|
||||
// uiFlags is a combination of valid ID* return values appropriate for
|
||||
// the error.
|
||||
//
|
||||
// IDNOACTION instructs the engine to pass the error through to default
|
||||
// handling which usually results in the apply failing.
|
||||
STDMETHOD_(int, OnError)(
|
||||
__in BOOTSTRAPPER_ERROR_TYPE errorType,
|
||||
__in_z_opt LPCWSTR wzPackageId,
|
||||
__in DWORD dwCode,
|
||||
__in_z_opt LPCWSTR wzError,
|
||||
__in DWORD uiFlags,
|
||||
__in DWORD cData,
|
||||
__in_ecount_z_opt(cData) LPCWSTR* rgwzData,
|
||||
__in int nRecommendation
|
||||
) = 0;
|
||||
|
||||
// OnRegisterBegin - called when the engine registers the bundle.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop applying.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnRegisterBegin)() = 0;
|
||||
|
||||
// OnRegisterComplete - called when the engine registration is
|
||||
// complete.
|
||||
//
|
||||
STDMETHOD_(void, OnRegisterComplete)(
|
||||
__in HRESULT hrStatus
|
||||
) = 0;
|
||||
|
||||
// OnCacheBegin - called when the engine begins caching.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop caching.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnCacheBegin)() = 0;
|
||||
|
||||
// OnCachePackageBegin - called when the engine begins caching
|
||||
// a package.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop caching.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnCachePackageBegin)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in DWORD cCachePayloads,
|
||||
__in DWORD64 dw64PackageCacheSize
|
||||
) = 0;
|
||||
|
||||
// OnCacheAcquireBegin - called when the engine begins copying or
|
||||
// downloading a payload to the working folder.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop caching.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnCacheAcquireBegin)(
|
||||
__in_z_opt LPCWSTR wzPackageOrContainerId,
|
||||
__in_z_opt LPCWSTR wzPayloadId,
|
||||
__in BOOTSTRAPPER_CACHE_OPERATION operation,
|
||||
__in_z LPCWSTR wzSource
|
||||
) = 0;
|
||||
|
||||
// OnCacheAcquireProgress - called when the engine makes progresss copying
|
||||
// or downloading a payload to the working folder.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop caching.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnCacheAcquireProgress)(
|
||||
__in_z_opt LPCWSTR wzPackageOrContainerId,
|
||||
__in_z_opt LPCWSTR wzPayloadId,
|
||||
__in DWORD64 dw64Progress,
|
||||
__in DWORD64 dw64Total,
|
||||
__in DWORD dwOverallPercentage
|
||||
) = 0;
|
||||
|
||||
// OnResolveSource - called when a payload or container cannot be found locally.
|
||||
//
|
||||
// Parameters:
|
||||
// wzPayloadId will be NULL when resolving a container.
|
||||
// wzDownloadSource will be NULL if the container or payload does not provide a DownloadURL.
|
||||
//
|
||||
// Return:
|
||||
// IDRETRY instructs the engine to try the local source again.
|
||||
//
|
||||
// IDDOWNLOAD instructs the engine to try the download source.
|
||||
//
|
||||
// All other return codes result in an error.
|
||||
//
|
||||
// Notes:
|
||||
// It is expected the BA may call IBurnCore::SetLocalSource() or IBurnCore::SetDownloadSource()
|
||||
// to update the source location before returning IDRETRY or IDDOWNLOAD.
|
||||
STDMETHOD_(int, OnResolveSource)(
|
||||
__in_z LPCWSTR wzPackageOrContainerId,
|
||||
__in_z_opt LPCWSTR wzPayloadId,
|
||||
__in_z LPCWSTR wzLocalSource,
|
||||
__in_z_opt LPCWSTR wzDownloadSource
|
||||
) = 0;
|
||||
|
||||
// OnCacheAcquireComplete - called after the engine copied or downloaded
|
||||
// a payload to the working folder.
|
||||
//
|
||||
// Return:
|
||||
// IDRETRY instructs the engine to try the copy or download of the payload again.
|
||||
//
|
||||
// All other return codes are ignored.
|
||||
STDMETHOD_(int, OnCacheAcquireComplete)(
|
||||
__in_z_opt LPCWSTR wzPackageOrContainerId,
|
||||
__in_z_opt LPCWSTR wzPayloadId,
|
||||
__in HRESULT hrStatus,
|
||||
__in int nRecommendation
|
||||
) = 0;
|
||||
|
||||
// OnCacheVerifyBegin - called when the engine begins to verify then copy
|
||||
// a payload or container to the package cache folder.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop caching.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnCacheVerifyBegin)(
|
||||
__in_z_opt LPCWSTR wzPackageOrContainerId,
|
||||
__in_z_opt LPCWSTR wzPayloadId
|
||||
) = 0;
|
||||
|
||||
// OnCacheVerifyComplete - called after the engine verifies and copies
|
||||
// a payload or container to the package cache folder.
|
||||
//
|
||||
// Return:
|
||||
// IDRETRY instructs the engine to try the verification of the payload again.
|
||||
// Ignored if hrStatus is success.
|
||||
//
|
||||
// IDTRYAGAIN instructs the engine to acquire the payload again. Ignored if
|
||||
// hrStatus is success.
|
||||
//
|
||||
// All other return codes are ignored.
|
||||
STDMETHOD_(int, OnCacheVerifyComplete)(
|
||||
__in_z_opt LPCWSTR wzPackageOrContainerId,
|
||||
__in_z_opt LPCWSTR wzPayloadId,
|
||||
__in HRESULT hrStatus,
|
||||
__in int nRecommendation
|
||||
) = 0;
|
||||
|
||||
// OnCachePackageComplete - called after the engine attempts to copy or download all
|
||||
// payloads of a package into the package cache folder.
|
||||
//
|
||||
// Return:
|
||||
// IDIGNORE instructs the engine to ignore non-vital package failures and continue with the
|
||||
// caching. Ignored if hrStatus is a success or the package is vital.
|
||||
//
|
||||
// IDRETRY instructs the engine to try the acquisition and verification of the package
|
||||
// again. Ignored if hrStatus is a success.
|
||||
//
|
||||
// All other return codes are ignored.
|
||||
STDMETHOD_(int, OnCachePackageComplete)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in HRESULT hrStatus,
|
||||
__in int nRecommendation
|
||||
) = 0;
|
||||
|
||||
// OnCacheComplete - called when the engine caching is complete.
|
||||
//
|
||||
STDMETHOD_(void, OnCacheComplete)(
|
||||
__in HRESULT hrStatus
|
||||
) = 0;
|
||||
|
||||
// OnExecuteBegin - called when the engine begins executing the plan.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop applying.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnExecuteBegin)(
|
||||
__in DWORD cExecutingPackages
|
||||
) = 0;
|
||||
|
||||
// OnExecuteBegin - called when the engine begins executing a package.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop applying.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnExecutePackageBegin)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in BOOL fExecute
|
||||
) = 0;
|
||||
|
||||
// OnExecutePatchTarget - called when the engine executes one or more patches targeting
|
||||
// a product.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop applying.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnExecutePatchTarget)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in_z LPCWSTR wzTargetProductCode
|
||||
) = 0;
|
||||
|
||||
// OnExecuteProgress - called when the engine makes progress executing a package.
|
||||
//
|
||||
// Return:
|
||||
// IDCANCEL instructs the engine to stop applying.
|
||||
//
|
||||
// IDNOACTION instructs the engine to continue.
|
||||
STDMETHOD_(int, OnExecuteProgress)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in DWORD dwProgressPercentage,
|
||||
__in DWORD dwOverallPercentage
|
||||
) = 0;
|
||||
|
||||
// OnExecuteMsiMessage - called when the engine receives an MSI package message.
|
||||
//
|
||||
// Return:
|
||||
// uiFlags is a combination of valid ID* return values appropriate for
|
||||
// the message.
|
||||
//
|
||||
// IDNOACTION instructs the engine to pass the message through to default
|
||||
// handling which usually results in the execution continuing.
|
||||
STDMETHOD_(int, OnExecuteMsiMessage)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in INSTALLMESSAGE mt,
|
||||
__in UINT uiFlags,
|
||||
__in_z LPCWSTR wzMessage,
|
||||
__in DWORD cData,
|
||||
__in_ecount_z_opt(cData) LPCWSTR* rgwzData,
|
||||
__in int nRecommendation
|
||||
) = 0;
|
||||
|
||||
// OnExecuteFilesInUse - called when the engine encounters files in use while
|
||||
// executing a package.
|
||||
//
|
||||
// Return:
|
||||
// IDOK instructs the engine to let the Restart Manager attempt to close the
|
||||
// applications to avoid a restart.
|
||||
//
|
||||
// IDCANCEL instructs the engine to abort the execution and start rollback.
|
||||
//
|
||||
// IDIGNORE instructs the engine to ignore the running applications. A restart will be
|
||||
// required.
|
||||
//
|
||||
// IDRETRY instructs the engine to check if the applications are still running again.
|
||||
//
|
||||
// IDNOACTION is equivalent to ignoring the running applications. A restart will be
|
||||
// required.
|
||||
STDMETHOD_(int, OnExecuteFilesInUse)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in DWORD cFiles,
|
||||
__in_ecount_z(cFiles) LPCWSTR* rgwzFiles
|
||||
) = 0;
|
||||
|
||||
// OnExecutePackageComplete - called when a package execution is complete.
|
||||
//
|
||||
// Parameters:
|
||||
// restart will indicate whether this package requires a reboot or initiated the reboot already.
|
||||
//
|
||||
// Return:
|
||||
// IDIGNORE instructs the engine to ignore non-vital package failures and continue with the
|
||||
// install. Ignored if hrStatus is a success or the package is vital.
|
||||
//
|
||||
// IDRETRY instructs the engine to try the execution of the package again. Ignored if hrStatus
|
||||
// is a success.
|
||||
//
|
||||
// IDRESTART instructs the engine to stop processing the chain and restart. The engine will
|
||||
// launch again after the machine is restarted.
|
||||
//
|
||||
// IDSUSPEND instructs the engine to stop processing the chain and suspend the current state.
|
||||
//
|
||||
// All other return codes are ignored.
|
||||
STDMETHOD_(int, OnExecutePackageComplete)(
|
||||
__in_z LPCWSTR wzPackageId,
|
||||
__in HRESULT hrStatus,
|
||||
__in BOOTSTRAPPER_APPLY_RESTART restart,
|
||||
__in int nRecommendation
|
||||
) = 0;
|
||||
|
||||
// OnExecuteComplete - called when the engine execution is complete.
|
||||
//
|
||||
STDMETHOD_(void, OnExecuteComplete)(
|
||||
__in HRESULT hrStatus
|
||||
) = 0;
|
||||
|
||||
// OnUnregisterBegin - called when the engine unregisters the bundle.
|
||||
//
|
||||
STDMETHOD_(void, OnUnregisterBegin)() = 0;
|
||||
|
||||
// OnUnregisterComplete - called when the engine unregistration is complete.
|
||||
//
|
||||
STDMETHOD_(void, OnUnregisterComplete)(
|
||||
__in HRESULT hrStatus
|
||||
) = 0;
|
||||
|
||||
// OnApplyComplete - called after the plan has been applied.
|
||||
//
|
||||
// Parameters:
|
||||
// restart will indicate whether any package required a reboot or initiated the reboot already.
|
||||
//
|
||||
// Return:
|
||||
// IDRESTART instructs the engine to restart. The engine will not launch again after the machine
|
||||
// is rebooted. Ignored if reboot was already initiated by OnExecutePackageComplete().
|
||||
//
|
||||
// All other return codes are ignored.
|
||||
STDMETHOD_(int, OnApplyComplete)(
|
||||
__in HRESULT hrStatus,
|
||||
__in BOOTSTRAPPER_APPLY_RESTART restart
|
||||
) = 0;
|
||||
|
||||
// OnLaunchApprovedExeBegin - called before trying to launch the preapproved executable.
|
||||
//
|
||||
STDMETHOD_(int, OnLaunchApprovedExeBegin)() = 0;
|
||||
|
||||
|
||||
// OnLaunchApprovedExeComplete - called after trying to launch the preapproved executable.
|
||||
//
|
||||
// Parameters:
|
||||
// dwProcessId is only valid if the operation succeeded.
|
||||
//
|
||||
STDMETHOD_(void, OnLaunchApprovedExeComplete)(
|
||||
__in HRESULT hrStatus,
|
||||
__in DWORD dwProcessId
|
||||
) = 0;
|
||||
};
|
||||
|
||||
|
||||
extern "C" typedef HRESULT (WINAPI *PFN_BOOTSTRAPPER_APPLICATION_CREATE)(
|
||||
__in IBootstrapperEngine* pEngine,
|
||||
__in const BOOTSTRAPPER_COMMAND* pCommand,
|
||||
__out IBootstrapperApplication** ppApplication
|
||||
);
|
||||
|
||||
extern "C" typedef void (WINAPI *PFN_BOOTSTRAPPER_APPLICATION_DESTROY)();
|
36
tools/WIX/sdk/inc/IBootstrapperBAFunction.h
Normal file
36
tools/WIX/sdk/inc/IBootstrapperBAFunction.h
Normal file
|
@ -0,0 +1,36 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="IBootstrapperBAFunction.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#include "IBootstrapperEngine.h"
|
||||
|
||||
interface IBootstrapperBAFunction
|
||||
{
|
||||
STDMETHOD(OnDetect)() = 0;
|
||||
STDMETHOD(OnDetectComplete)() = 0;
|
||||
STDMETHOD(OnPlan)() = 0;
|
||||
STDMETHOD(OnPlanComplete)() = 0;
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef HRESULT (WINAPI *PFN_BOOTSTRAPPER_BA_FUNCTION_CREATE)(
|
||||
__in IBootstrapperEngine* pEngine,
|
||||
__in HMODULE hModule,
|
||||
__out IBootstrapperBAFunction** ppBAFunction
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
229
tools/WIX/sdk/inc/IBootstrapperEngine.h
Normal file
229
tools/WIX/sdk/inc/IBootstrapperEngine.h
Normal file
|
@ -0,0 +1,229 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="IBootstrapperEngine.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// IBoostrapperEngine implemented by engine and used by bootstrapper application.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#define IDERROR -1
|
||||
#define IDNOACTION 0
|
||||
|
||||
#define IDDOWNLOAD 101 // Only valid as a return code from OnResolveSource() to instruct the engine to use the download source.
|
||||
#define IDRESTART 102
|
||||
#define IDSUSPEND 103
|
||||
#define IDRELOAD_BOOTSTRAPPER 104
|
||||
|
||||
enum BOOTSTRAPPER_ACTION
|
||||
{
|
||||
BOOTSTRAPPER_ACTION_UNKNOWN,
|
||||
BOOTSTRAPPER_ACTION_HELP,
|
||||
BOOTSTRAPPER_ACTION_LAYOUT,
|
||||
BOOTSTRAPPER_ACTION_UNINSTALL,
|
||||
BOOTSTRAPPER_ACTION_INSTALL,
|
||||
BOOTSTRAPPER_ACTION_MODIFY,
|
||||
BOOTSTRAPPER_ACTION_REPAIR,
|
||||
BOOTSTRAPPER_ACTION_UPDATE_REPLACE,
|
||||
BOOTSTRAPPER_ACTION_UPDATE_REPLACE_EMBEDDED,
|
||||
};
|
||||
|
||||
enum BOOTSTRAPPER_ACTION_STATE
|
||||
{
|
||||
BOOTSTRAPPER_ACTION_STATE_NONE,
|
||||
BOOTSTRAPPER_ACTION_STATE_UNINSTALL,
|
||||
BOOTSTRAPPER_ACTION_STATE_INSTALL,
|
||||
BOOTSTRAPPER_ACTION_STATE_ADMIN_INSTALL,
|
||||
BOOTSTRAPPER_ACTION_STATE_MODIFY,
|
||||
BOOTSTRAPPER_ACTION_STATE_REPAIR,
|
||||
BOOTSTRAPPER_ACTION_STATE_MINOR_UPGRADE,
|
||||
BOOTSTRAPPER_ACTION_STATE_MAJOR_UPGRADE,
|
||||
BOOTSTRAPPER_ACTION_STATE_PATCH,
|
||||
};
|
||||
|
||||
enum BOOTSTRAPPER_PACKAGE_STATE
|
||||
{
|
||||
BOOTSTRAPPER_PACKAGE_STATE_UNKNOWN,
|
||||
BOOTSTRAPPER_PACKAGE_STATE_OBSOLETE,
|
||||
BOOTSTRAPPER_PACKAGE_STATE_ABSENT,
|
||||
BOOTSTRAPPER_PACKAGE_STATE_CACHED,
|
||||
BOOTSTRAPPER_PACKAGE_STATE_PRESENT,
|
||||
BOOTSTRAPPER_PACKAGE_STATE_SUPERSEDED,
|
||||
};
|
||||
|
||||
enum BOOTSTRAPPER_REQUEST_STATE
|
||||
{
|
||||
BOOTSTRAPPER_REQUEST_STATE_NONE,
|
||||
BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT,
|
||||
BOOTSTRAPPER_REQUEST_STATE_ABSENT,
|
||||
BOOTSTRAPPER_REQUEST_STATE_CACHE,
|
||||
BOOTSTRAPPER_REQUEST_STATE_PRESENT,
|
||||
BOOTSTRAPPER_REQUEST_STATE_REPAIR,
|
||||
};
|
||||
|
||||
enum BOOTSTRAPPER_FEATURE_STATE
|
||||
{
|
||||
BOOTSTRAPPER_FEATURE_STATE_UNKNOWN,
|
||||
BOOTSTRAPPER_FEATURE_STATE_ABSENT,
|
||||
BOOTSTRAPPER_FEATURE_STATE_ADVERTISED,
|
||||
BOOTSTRAPPER_FEATURE_STATE_LOCAL,
|
||||
BOOTSTRAPPER_FEATURE_STATE_SOURCE,
|
||||
};
|
||||
|
||||
enum BOOTSTRAPPER_FEATURE_ACTION
|
||||
{
|
||||
BOOTSTRAPPER_FEATURE_ACTION_NONE,
|
||||
BOOTSTRAPPER_FEATURE_ACTION_ADDLOCAL,
|
||||
BOOTSTRAPPER_FEATURE_ACTION_ADDSOURCE,
|
||||
BOOTSTRAPPER_FEATURE_ACTION_ADDDEFAULT,
|
||||
BOOTSTRAPPER_FEATURE_ACTION_REINSTALL,
|
||||
BOOTSTRAPPER_FEATURE_ACTION_ADVERTISE,
|
||||
BOOTSTRAPPER_FEATURE_ACTION_REMOVE,
|
||||
};
|
||||
|
||||
enum BOOTSTRAPPER_LOG_LEVEL
|
||||
{
|
||||
BOOTSTRAPPER_LOG_LEVEL_NONE, // turns off report (only valid for XXXSetLevel())
|
||||
BOOTSTRAPPER_LOG_LEVEL_STANDARD, // written if reporting is on
|
||||
BOOTSTRAPPER_LOG_LEVEL_VERBOSE, // written only if verbose reporting is on
|
||||
BOOTSTRAPPER_LOG_LEVEL_DEBUG, // reporting useful when debugging code
|
||||
BOOTSTRAPPER_LOG_LEVEL_ERROR, // always gets reported, but can never be specified
|
||||
};
|
||||
|
||||
enum BOOTSTRAPPER_UPDATE_HASH_TYPE
|
||||
{
|
||||
BOOTSTRAPPER_UPDATE_HASH_TYPE_NONE,
|
||||
BOOTSTRAPPER_UPDATE_HASH_TYPE_SHA1,
|
||||
};
|
||||
|
||||
|
||||
DECLARE_INTERFACE_IID_(IBootstrapperEngine, IUnknown, "6480D616-27A0-44D7-905B-81512C29C2FB")
|
||||
{
|
||||
STDMETHOD(GetPackageCount)(
|
||||
__out DWORD* pcPackages
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(GetVariableNumeric)(
|
||||
__in_z LPCWSTR wzVariable,
|
||||
__out LONGLONG* pllValue
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(GetVariableString)(
|
||||
__in_z LPCWSTR wzVariable,
|
||||
__out_ecount_opt(*pcchValue) LPWSTR wzValue,
|
||||
__inout DWORD* pcchValue
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(GetVariableVersion)(
|
||||
__in_z LPCWSTR wzVariable,
|
||||
__out DWORD64* pqwValue
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(FormatString)(
|
||||
__in_z LPCWSTR wzIn,
|
||||
__out_ecount_opt(*pcchOut) LPWSTR wzOut,
|
||||
__inout DWORD* pcchOut
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(EscapeString)(
|
||||
__in_z LPCWSTR wzIn,
|
||||
__out_ecount_opt(*pcchOut) LPWSTR wzOut,
|
||||
__inout DWORD* pcchOut
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(EvaluateCondition)(
|
||||
__in_z LPCWSTR wzCondition,
|
||||
__out BOOL* pf
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(Log)(
|
||||
__in BOOTSTRAPPER_LOG_LEVEL level,
|
||||
__in_z LPCWSTR wzMessage
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(SendEmbeddedError)(
|
||||
__in DWORD dwErrorCode,
|
||||
__in_z_opt LPCWSTR wzMessage,
|
||||
__in DWORD dwUIHint,
|
||||
__out int* pnResult
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(SendEmbeddedProgress)(
|
||||
__in DWORD dwProgressPercentage,
|
||||
__in DWORD dwOverallProgressPercentage,
|
||||
__out int* pnResult
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(SetUpdate)(
|
||||
__in_z_opt LPCWSTR wzLocalSource,
|
||||
__in_z_opt LPCWSTR wzDownloadSource,
|
||||
__in DWORD64 qwSize,
|
||||
__in BOOTSTRAPPER_UPDATE_HASH_TYPE hashType,
|
||||
__in_bcount_opt(cbHash) BYTE* rgbHash,
|
||||
__in DWORD cbHash
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(SetLocalSource)(
|
||||
__in_z LPCWSTR wzPackageOrContainerId,
|
||||
__in_z_opt LPCWSTR wzPayloadId,
|
||||
__in_z LPCWSTR wzPath
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(SetDownloadSource)(
|
||||
__in_z LPCWSTR wzPackageOrContainerId,
|
||||
__in_z_opt LPCWSTR wzPayloadId,
|
||||
__in_z LPCWSTR wzUrl,
|
||||
__in_z_opt LPWSTR wzUser,
|
||||
__in_z_opt LPWSTR wzPassword
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(SetVariableNumeric)(
|
||||
__in_z LPCWSTR wzVariable,
|
||||
__in LONGLONG llValue
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(SetVariableString)(
|
||||
__in_z LPCWSTR wzVariable,
|
||||
__in_z_opt LPCWSTR wzValue
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(SetVariableVersion)(
|
||||
__in_z LPCWSTR wzVariable,
|
||||
__in DWORD64 qwValue
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(CloseSplashScreen)() = 0;
|
||||
|
||||
STDMETHOD(Detect)(
|
||||
__in_opt HWND hwndParent = NULL
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(Plan)(
|
||||
__in BOOTSTRAPPER_ACTION action
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(Elevate)(
|
||||
__in_opt HWND hwndParent
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(Apply)(
|
||||
__in_opt HWND hwndParent
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(Quit)(
|
||||
__in DWORD dwExitCode
|
||||
) = 0;
|
||||
|
||||
STDMETHOD(LaunchApprovedExe)(
|
||||
__in_opt HWND hwndParent,
|
||||
__in_z LPCWSTR wzApprovedExeForElevationId,
|
||||
__in_z_opt LPCWSTR wzArguments,
|
||||
__in DWORD dwWaitForInputIdleTimeout
|
||||
) = 0;
|
||||
};
|
151
tools/WIX/sdk/inc/aclutil.h
Normal file
151
tools/WIX/sdk/inc/aclutil.h
Normal file
|
@ -0,0 +1,151 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="aclutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Access Control List helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#include <aclapi.h>
|
||||
#include <sddl.h>
|
||||
|
||||
#define ReleaseSid(x) if (x) { AclFreeSid(x); }
|
||||
#define ReleaseNullSid(x) if (x) { AclFreeSid(x); x = NULL; }
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// structs
|
||||
struct ACL_ACCESS
|
||||
{
|
||||
BOOL fDenyAccess;
|
||||
DWORD dwAccessMask;
|
||||
|
||||
// TODO: consider using a union
|
||||
LPCWSTR pwzAccountName; // NOTE: the last three items in this structure are ignored if this is not NULL
|
||||
|
||||
SID_IDENTIFIER_AUTHORITY sia; // used if pwzAccountName is NULL
|
||||
BYTE nSubAuthorityCount;
|
||||
DWORD nSubAuthority[8];
|
||||
};
|
||||
|
||||
struct ACL_ACE
|
||||
{
|
||||
DWORD dwFlags;
|
||||
DWORD dwMask;
|
||||
PSID psid;
|
||||
};
|
||||
|
||||
|
||||
// functions
|
||||
HRESULT DAPI AclCheckAccess(
|
||||
__in HANDLE hToken,
|
||||
__in ACL_ACCESS* paa
|
||||
);
|
||||
HRESULT DAPI AclCheckAdministratorAccess(
|
||||
__in HANDLE hToken
|
||||
);
|
||||
HRESULT DAPI AclCheckLocalSystemAccess(
|
||||
__in HANDLE hToken
|
||||
);
|
||||
|
||||
HRESULT DAPI AclGetWellKnownSid(
|
||||
__in WELL_KNOWN_SID_TYPE wkst,
|
||||
__deref_out PSID* ppsid
|
||||
);
|
||||
HRESULT DAPI AclGetAccountSid(
|
||||
__in_opt LPCWSTR wzSystem,
|
||||
__in_z LPCWSTR wzAccount,
|
||||
__deref_out PSID* ppsid
|
||||
);
|
||||
HRESULT DAPI AclGetAccountSidString(
|
||||
__in_z LPCWSTR wzSystem,
|
||||
__in_z LPCWSTR wzAccount,
|
||||
__deref_out_z LPWSTR* ppwzSid
|
||||
);
|
||||
|
||||
HRESULT DAPI AclCreateDacl(
|
||||
__in_ecount(cDeny) ACL_ACE rgaaDeny[],
|
||||
__in DWORD cDeny,
|
||||
__in_ecount(cAllow) ACL_ACE rgaaAllow[],
|
||||
__in DWORD cAllow,
|
||||
__deref_out ACL** ppAcl
|
||||
);
|
||||
HRESULT DAPI AclAddToDacl(
|
||||
__in ACL* pAcl,
|
||||
__in_ecount_opt(cDeny) const ACL_ACE rgaaDeny[],
|
||||
__in DWORD cDeny,
|
||||
__in_ecount_opt(cAllow) const ACL_ACE rgaaAllow[],
|
||||
__in DWORD cAllow,
|
||||
__deref_out ACL** ppAclNew
|
||||
);
|
||||
HRESULT DAPI AclMergeDacls(
|
||||
__in const ACL* pAcl1,
|
||||
__in const ACL* pAcl2,
|
||||
__deref_out ACL** ppAclNew
|
||||
);
|
||||
HRESULT DAPI AclCreateDaclOld(
|
||||
__in_ecount(cAclAccesses) ACL_ACCESS* paa,
|
||||
__in DWORD cAclAccesses,
|
||||
__deref_out ACL** ppAcl
|
||||
);
|
||||
HRESULT DAPI AclCreateSecurityDescriptor(
|
||||
__in_ecount(cAclAccesses) ACL_ACCESS* paa,
|
||||
__in DWORD cAclAccesses,
|
||||
__deref_out SECURITY_DESCRIPTOR** ppsd
|
||||
);
|
||||
HRESULT DAPI AclCreateSecurityDescriptorFromDacl(
|
||||
__in ACL* pACL,
|
||||
__deref_out SECURITY_DESCRIPTOR** ppsd
|
||||
);
|
||||
HRESULT __cdecl AclCreateSecurityDescriptorFromString(
|
||||
__deref_out SECURITY_DESCRIPTOR** ppsd,
|
||||
__in_z __format_string LPCWSTR wzSddlFormat,
|
||||
...
|
||||
);
|
||||
HRESULT DAPI AclDuplicateSecurityDescriptor(
|
||||
__in SECURITY_DESCRIPTOR* psd,
|
||||
__deref_out SECURITY_DESCRIPTOR** ppsd
|
||||
);
|
||||
HRESULT DAPI AclGetSecurityDescriptor(
|
||||
__in_z LPCWSTR wzObject,
|
||||
__in SE_OBJECT_TYPE sot,
|
||||
__in SECURITY_INFORMATION securityInformation,
|
||||
__deref_out SECURITY_DESCRIPTOR** ppsd
|
||||
);
|
||||
HRESULT DAPI AclSetSecurityWithRetry(
|
||||
__in_z LPCWSTR wzObject,
|
||||
__in SE_OBJECT_TYPE sot,
|
||||
__in SECURITY_INFORMATION securityInformation,
|
||||
__in_opt PSID psidOwner,
|
||||
__in_opt PSID psidGroup,
|
||||
__in_opt PACL pDacl,
|
||||
__in_opt PACL pSacl,
|
||||
__in DWORD cRetry,
|
||||
__in DWORD dwWaitMilliseconds
|
||||
);
|
||||
|
||||
HRESULT DAPI AclFreeSid(
|
||||
__in PSID psid
|
||||
);
|
||||
HRESULT DAPI AclFreeDacl(
|
||||
__in ACL* pACL
|
||||
);
|
||||
HRESULT DAPI AclFreeSecurityDescriptor(
|
||||
__in SECURITY_DESCRIPTOR* psd
|
||||
);
|
||||
|
||||
HRESULT DAPI AclAddAdminToSecurityDescriptor(
|
||||
__in SECURITY_DESCRIPTOR* pSecurity,
|
||||
__deref_out SECURITY_DESCRIPTOR** ppSecurityNew
|
||||
);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
96
tools/WIX/sdk/inc/apuputil.h
Normal file
96
tools/WIX/sdk/inc/apuputil.h
Normal file
|
@ -0,0 +1,96 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="apuputil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for Application Update helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ReleaseApupChain(p) if (p) { ApupFreeChain(p); p = NULL; }
|
||||
#define ReleaseNullApupChain(p) if (p) { ApupFreeChain(p); p = NULL; }
|
||||
|
||||
|
||||
const LPCWSTR APPLICATION_SYNDICATION_NAMESPACE = L"http://appsyndication.org/2006/appsyn";
|
||||
|
||||
typedef enum APUP_HASH_ALGORITHM
|
||||
{
|
||||
APUP_HASH_ALGORITHM_UNKNOWN,
|
||||
APUP_HASH_ALGORITHM_MD5,
|
||||
APUP_HASH_ALGORITHM_SHA1,
|
||||
APUP_HASH_ALGORITHM_SHA256,
|
||||
} APUP_HASH_ALGORITHM;
|
||||
|
||||
|
||||
struct APPLICATION_UPDATE_ENCLOSURE
|
||||
{
|
||||
LPWSTR wzUrl;
|
||||
LPWSTR wzLocalName;
|
||||
DWORD64 dw64Size;
|
||||
|
||||
BYTE* rgbDigest;
|
||||
DWORD cbDigest;
|
||||
APUP_HASH_ALGORITHM digestAlgorithm;
|
||||
|
||||
BOOL fInstaller;
|
||||
};
|
||||
|
||||
|
||||
struct APPLICATION_UPDATE_ENTRY
|
||||
{
|
||||
LPWSTR wzApplicationId;
|
||||
LPWSTR wzApplicationType;
|
||||
LPWSTR wzTitle;
|
||||
LPWSTR wzSummary;
|
||||
LPWSTR wzContentType;
|
||||
LPWSTR wzContent;
|
||||
|
||||
LPWSTR wzUpgradeId;
|
||||
BOOL fUpgradeExclusive;
|
||||
DWORD64 dw64Version;
|
||||
DWORD64 dw64UpgradeVersion;
|
||||
|
||||
DWORD64 dw64TotalSize;
|
||||
|
||||
DWORD cEnclosures;
|
||||
APPLICATION_UPDATE_ENCLOSURE* rgEnclosures;
|
||||
};
|
||||
|
||||
|
||||
struct APPLICATION_UPDATE_CHAIN
|
||||
{
|
||||
LPWSTR wzDefaultApplicationId;
|
||||
LPWSTR wzDefaultApplicationType;
|
||||
|
||||
DWORD cEntries;
|
||||
APPLICATION_UPDATE_ENTRY* rgEntries;
|
||||
};
|
||||
|
||||
|
||||
HRESULT DAPI ApupAllocChainFromAtom(
|
||||
__in ATOM_FEED* pFeed,
|
||||
__out APPLICATION_UPDATE_CHAIN** ppChain
|
||||
);
|
||||
|
||||
HRESULT DAPI ApupFilterChain(
|
||||
__in APPLICATION_UPDATE_CHAIN* pChain,
|
||||
__in DWORD64 dw64Version,
|
||||
__out APPLICATION_UPDATE_CHAIN** ppFilteredChain
|
||||
);
|
||||
|
||||
void DAPI ApupFreeChain(
|
||||
__in APPLICATION_UPDATE_CHAIN* pChain
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
158
tools/WIX/sdk/inc/atomutil.h
Normal file
158
tools/WIX/sdk/inc/atomutil.h
Normal file
|
@ -0,0 +1,158 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="atomutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// ATOM helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ReleaseAtomFeed(p) if (p) { AtomFreeFeed(p); }
|
||||
#define ReleaseNullAtomFeed(p) if (p) { AtomFreeFeed(p); p = NULL; }
|
||||
|
||||
|
||||
struct ATOM_UNKNOWN_ATTRIBUTE
|
||||
{
|
||||
LPWSTR wzNamespace;
|
||||
LPWSTR wzAttribute;
|
||||
LPWSTR wzValue;
|
||||
|
||||
ATOM_UNKNOWN_ATTRIBUTE* pNext;
|
||||
};
|
||||
|
||||
struct ATOM_UNKNOWN_ELEMENT
|
||||
{
|
||||
LPWSTR wzNamespace;
|
||||
LPWSTR wzElement;
|
||||
LPWSTR wzValue;
|
||||
|
||||
ATOM_UNKNOWN_ATTRIBUTE* pAttributes;
|
||||
ATOM_UNKNOWN_ELEMENT* pNext;
|
||||
};
|
||||
|
||||
struct ATOM_LINK
|
||||
{
|
||||
LPWSTR wzRel;
|
||||
LPWSTR wzTitle;
|
||||
LPWSTR wzType;
|
||||
LPWSTR wzUrl;
|
||||
LPWSTR wzValue;
|
||||
DWORD64 dw64Length;
|
||||
|
||||
ATOM_UNKNOWN_ATTRIBUTE* pUnknownAttributes;
|
||||
ATOM_UNKNOWN_ELEMENT* pUnknownElements;
|
||||
};
|
||||
|
||||
struct ATOM_CONTENT
|
||||
{
|
||||
LPWSTR wzType;
|
||||
LPWSTR wzUrl;
|
||||
LPWSTR wzValue;
|
||||
|
||||
ATOM_UNKNOWN_ELEMENT* pUnknownElements;
|
||||
};
|
||||
|
||||
struct ATOM_AUTHOR
|
||||
{
|
||||
LPWSTR wzName;
|
||||
LPWSTR wzEmail;
|
||||
LPWSTR wzUrl;
|
||||
};
|
||||
|
||||
struct ATOM_CATEGORY
|
||||
{
|
||||
LPWSTR wzLabel;
|
||||
LPWSTR wzScheme;
|
||||
LPWSTR wzTerm;
|
||||
|
||||
ATOM_UNKNOWN_ELEMENT* pUnknownElements;
|
||||
};
|
||||
|
||||
struct ATOM_ENTRY
|
||||
{
|
||||
LPWSTR wzId;
|
||||
LPWSTR wzSummary;
|
||||
LPWSTR wzTitle;
|
||||
FILETIME ftPublished;
|
||||
FILETIME ftUpdated;
|
||||
|
||||
ATOM_CONTENT* pContent;
|
||||
|
||||
DWORD cAuthors;
|
||||
ATOM_AUTHOR* rgAuthors;
|
||||
|
||||
DWORD cCategories;
|
||||
ATOM_CATEGORY* rgCategories;
|
||||
|
||||
DWORD cLinks;
|
||||
ATOM_LINK* rgLinks;
|
||||
|
||||
IXMLDOMNode* pixn;
|
||||
ATOM_UNKNOWN_ELEMENT* pUnknownElements;
|
||||
};
|
||||
|
||||
struct ATOM_FEED
|
||||
{
|
||||
LPWSTR wzGenerator;
|
||||
LPWSTR wzIcon;
|
||||
LPWSTR wzId;
|
||||
LPWSTR wzLogo;
|
||||
LPWSTR wzSubtitle;
|
||||
LPWSTR wzTitle;
|
||||
FILETIME ftUpdated;
|
||||
|
||||
DWORD cAuthors;
|
||||
ATOM_AUTHOR* rgAuthors;
|
||||
|
||||
DWORD cCategories;
|
||||
ATOM_CATEGORY* rgCategories;
|
||||
|
||||
DWORD cEntries;
|
||||
ATOM_ENTRY* rgEntries;
|
||||
|
||||
DWORD cLinks;
|
||||
ATOM_LINK* rgLinks;
|
||||
|
||||
IXMLDOMNode* pixn;
|
||||
ATOM_UNKNOWN_ELEMENT* pUnknownElements;
|
||||
};
|
||||
|
||||
HRESULT DAPI AtomInitialize(
|
||||
);
|
||||
|
||||
void DAPI AtomUninitialize(
|
||||
);
|
||||
|
||||
HRESULT DAPI AtomParseFromString(
|
||||
__in_z LPCWSTR wzAtomString,
|
||||
__out ATOM_FEED **ppFeed
|
||||
);
|
||||
|
||||
HRESULT DAPI AtomParseFromFile(
|
||||
__in_z LPCWSTR wzAtomFile,
|
||||
__out ATOM_FEED **ppFeed
|
||||
);
|
||||
|
||||
HRESULT DAPI AtomParseFromDocument(
|
||||
__in IXMLDOMDocument* pixdDocument,
|
||||
__out ATOM_FEED **ppFeed
|
||||
);
|
||||
|
||||
void DAPI AtomFreeFeed(
|
||||
__in_xcount(pFeed->cItems) ATOM_FEED *pFEED
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
69
tools/WIX/sdk/inc/balcondition.h
Normal file
69
tools/WIX/sdk/inc/balcondition.h
Normal file
|
@ -0,0 +1,69 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="balcondition.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Bootstrapper Application Layer condition utility.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct _BAL_CONDITION
|
||||
{
|
||||
LPWSTR sczCondition;
|
||||
LPWSTR sczMessage;
|
||||
} BAL_CONDITION;
|
||||
|
||||
|
||||
typedef struct _BAL_CONDITIONS
|
||||
{
|
||||
BAL_CONDITION* rgConditions;
|
||||
DWORD cConditions;
|
||||
} BAL_CONDITIONS;
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
BalConditionsParseFromXml - loads the conditions from the UX manifest.
|
||||
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) BalConditionsParseFromXml(
|
||||
__in BAL_CONDITIONS* pConditions,
|
||||
__in IXMLDOMDocument* pixdManifest,
|
||||
__in_opt WIX_LOCALIZATION* pWixLoc
|
||||
);
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
BalConditionEvaluate - evaluates condition against the provided IBurnCore.
|
||||
|
||||
NOTE: psczMessage is optional.
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) BalConditionEvaluate(
|
||||
__in BAL_CONDITION* pCondition,
|
||||
__in IBootstrapperEngine* pEngine,
|
||||
__out BOOL* pfResult,
|
||||
__out_z_opt LPWSTR* psczMessage
|
||||
);
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
BalConditionsUninitialize - uninitializes any conditions previously loaded.
|
||||
|
||||
********************************************************************/
|
||||
DAPI_(void) BalConditionsUninitialize(
|
||||
__in BAL_CONDITIONS* pConditions
|
||||
);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
118
tools/WIX/sdk/inc/balinfo.h
Normal file
118
tools/WIX/sdk/inc/balinfo.h
Normal file
|
@ -0,0 +1,118 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="balinfo.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Bootstrapper Application Layer package utility.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum BAL_INFO_PACKAGE_TYPE
|
||||
{
|
||||
BAL_INFO_PACKAGE_TYPE_UNKNOWN,
|
||||
BAL_INFO_PACKAGE_TYPE_EXE,
|
||||
BAL_INFO_PACKAGE_TYPE_MSI,
|
||||
BAL_INFO_PACKAGE_TYPE_MSP,
|
||||
BAL_INFO_PACKAGE_TYPE_MSU,
|
||||
BAL_INFO_PACKAGE_TYPE_BUNDLE_UPGRADE,
|
||||
BAL_INFO_PACKAGE_TYPE_BUNDLE_ADDON,
|
||||
BAL_INFO_PACKAGE_TYPE_BUNDLE_PATCH,
|
||||
} BAL_INFO_PACKAGE_TYPE;
|
||||
|
||||
typedef enum BAL_INFO_CACHE_TYPE
|
||||
{
|
||||
BAL_INFO_CACHE_TYPE_NO,
|
||||
BAL_INFO_CACHE_TYPE_YES,
|
||||
BAL_INFO_CACHE_TYPE_ALWAYS,
|
||||
} BAL_INFO_CACHE_TYPE;
|
||||
|
||||
|
||||
typedef struct _BAL_INFO_PACKAGE
|
||||
{
|
||||
LPWSTR sczId;
|
||||
LPWSTR sczDisplayName;
|
||||
LPWSTR sczDescription;
|
||||
BAL_INFO_PACKAGE_TYPE type;
|
||||
BOOL fPermanent;
|
||||
BOOL fVital;
|
||||
BOOL fDisplayInternalUI;
|
||||
LPWSTR sczProductCode;
|
||||
LPWSTR sczUpgradeCode;
|
||||
LPWSTR sczVersion;
|
||||
LPWSTR sczInstallCondition;
|
||||
BAL_INFO_CACHE_TYPE cacheType;
|
||||
} BAL_INFO_PACKAGE;
|
||||
|
||||
|
||||
typedef struct _BAL_INFO_PACKAGES
|
||||
{
|
||||
BAL_INFO_PACKAGE* rgPackages;
|
||||
DWORD cPackages;
|
||||
} BAL_INFO_PACKAGES;
|
||||
|
||||
|
||||
typedef struct _BAL_INFO_BUNDLE
|
||||
{
|
||||
BOOL fPerMachine;
|
||||
LPWSTR sczName;
|
||||
LPWSTR sczLogVariable;
|
||||
BAL_INFO_PACKAGES packages;
|
||||
} BAL_INFO_BUNDLE;
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
BalInfoParseFromXml - loads the bundle and package info from the UX
|
||||
manifest.
|
||||
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) BalInfoParseFromXml(
|
||||
__in BAL_INFO_BUNDLE* pBundle,
|
||||
__in IXMLDOMDocument* pixdManifest
|
||||
);
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
BalInfoAddRelatedBundleAsPackage - adds a related bundle as a package.
|
||||
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) BalInfoAddRelatedBundleAsPackage(
|
||||
__in BAL_INFO_PACKAGES* pPackages,
|
||||
__in LPCWSTR wzId,
|
||||
__in BOOTSTRAPPER_RELATION_TYPE relationType,
|
||||
__in BOOL fPerMachine
|
||||
);
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
BalInfoFindPackageById - finds a package by its id.
|
||||
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) BalInfoFindPackageById(
|
||||
__in BAL_INFO_PACKAGES* pPackages,
|
||||
__in LPCWSTR wzId,
|
||||
__out BAL_INFO_PACKAGE** ppPackage
|
||||
);
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
BalInfoUninitialize - uninitializes any info previously loaded.
|
||||
|
||||
********************************************************************/
|
||||
DAPI_(void) BalInfoUninitialize(
|
||||
__in BAL_INFO_BUNDLE* pBundle
|
||||
);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
75
tools/WIX/sdk/inc/balretry.h
Normal file
75
tools/WIX/sdk/inc/balretry.h
Normal file
|
@ -0,0 +1,75 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="balretry.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Bootstrapper Application Layer retry utility.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum BALRETRY_TYPE
|
||||
{
|
||||
BALRETRY_TYPE_CACHE,
|
||||
BALRETRY_TYPE_EXECUTE,
|
||||
} BALRETRY_TYPE;
|
||||
|
||||
/*******************************************************************
|
||||
BalRetryInitialize - initialize the retry count and timeout between
|
||||
retries (in milliseconds).
|
||||
********************************************************************/
|
||||
DAPI_(void) BalRetryInitialize(
|
||||
__in DWORD dwMaxRetries,
|
||||
__in DWORD dwTimeout
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
BalRetryUninitialize - call to cleanup any memory allocated during
|
||||
use of the retry utility.
|
||||
********************************************************************/
|
||||
DAPI_(void) BalRetryUninitialize();
|
||||
|
||||
/*******************************************************************
|
||||
BalRetryStartPackage - call when a package begins to be modified. If
|
||||
the package is being retried, the function will
|
||||
wait the specified timeout.
|
||||
********************************************************************/
|
||||
DAPI_(void) BalRetryStartPackage(
|
||||
__in BALRETRY_TYPE type,
|
||||
__in_z_opt LPCWSTR wzPackageId,
|
||||
__in_z_opt LPCWSTR wzPayloadId
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
BalRetryErrorOccured - call when an error occurs for the retry utility
|
||||
to consider.
|
||||
********************************************************************/
|
||||
DAPI_(void) BalRetryErrorOccurred(
|
||||
__in_z_opt LPCWSTR wzPackageId,
|
||||
__in DWORD dwError
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
BalRetryEndPackage - returns IDRETRY is a retry is recommended or
|
||||
IDNOACTION if a retry is not recommended.
|
||||
********************************************************************/
|
||||
DAPI_(int) BalRetryEndPackage(
|
||||
__in BALRETRY_TYPE type,
|
||||
__in_z_opt LPCWSTR wzPackageId,
|
||||
__in_z_opt LPCWSTR wzPayloadId,
|
||||
__in HRESULT hrError
|
||||
);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
126
tools/WIX/sdk/inc/balutil.h
Normal file
126
tools/WIX/sdk/inc/balutil.h
Normal file
|
@ -0,0 +1,126 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="balutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Burn utility library.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#include "dutil.h"
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define BalExitOnFailure(x, f) if (FAILED(x)) { BalLogError(x, f); ExitTrace(x, f); goto LExit; }
|
||||
#define BalExitOnFailure1(x, f, s) if (FAILED(x)) { BalLogError(x, f, s); ExitTrace1(x, f, s); goto LExit; }
|
||||
#define BalExitOnFailure2(x, f, s, t) if (FAILED(x)) { BalLogError(x, f, s, t); ExitTrace2(x, f, s, t); goto LExit; }
|
||||
#define BalExitOnFailure3(x, f, s, t, u) if (FAILED(x)) { BalLogError(x, f, s, t, u); ExitTrace3(x, f, s, t, u); goto LExit; }
|
||||
|
||||
#define BalExitOnRootFailure(x, f) if (FAILED(x)) { BalLogError(x, f); Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, f); goto LExit; }
|
||||
#define BalExitOnRootFailure1(x, f, s) if (FAILED(x)) { BalLogError(x, f, s); Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; }
|
||||
#define BalExitOnRootFailure2(x, f, s, t) if (FAILED(x)) { BalLogError(x, f, s, t); Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace2(x, f, s, t); goto LExit; }
|
||||
#define BalExitOnRootFailure3(x, f, s, t, u) if (FAILED(x)) { BalLogError(x, f, s, t, u); Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace3(x, f, s, t, u); goto LExit; }
|
||||
|
||||
#define BalExitOnNullWithLastError(p, x, f) if (NULL == p) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (!FAILED(x)) { x = E_FAIL; } BalLogError(x, f); ExitTrace(x, f); goto LExit; }
|
||||
#define BalExitOnNullWithLastError1(p, x, f, s) if (NULL == p) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (!FAILED(x)) { x = E_FAIL; } BalLogError(x, f, s); ExitTrace1(x, f, s); goto LExit; }
|
||||
|
||||
#define FACILITY_WIX 500
|
||||
|
||||
static const HRESULT E_WIXSTDBA_CONDITION_FAILED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIX, 1);
|
||||
|
||||
static const HRESULT E_MBAHOST_NET452_ON_WIN7RTM = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIX, 1000);
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
BalInitialize - remembers the engine interface to enable logging and
|
||||
other functions.
|
||||
|
||||
********************************************************************/
|
||||
DAPI_(void) BalInitialize(
|
||||
__in IBootstrapperEngine* pEngine
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
BalUninitialize - cleans up utility layer internals.
|
||||
|
||||
********************************************************************/
|
||||
DAPI_(void) BalUninitialize();
|
||||
|
||||
/*******************************************************************
|
||||
BalManifestLoad - loads the Application manifest into an XML document.
|
||||
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) BalManifestLoad(
|
||||
__in HMODULE hUXModule,
|
||||
__out IXMLDOMDocument** ppixdManifest
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
BalFormatString - formats a string using variables in the engine.
|
||||
|
||||
Note: Use StrFree() to release psczOut.
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) BalFormatString(
|
||||
__in_z LPCWSTR wzFormat,
|
||||
__inout LPWSTR* psczOut
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
BalGetNumericVariable - gets a number from a variable in the engine.
|
||||
|
||||
Note: Returns E_NOTFOUND if variable does not exist.
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) BalGetNumericVariable(
|
||||
__in_z LPCWSTR wzVariable,
|
||||
__out LONGLONG* pllValue
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
BalStringVariableExists - checks if a string variable exists in the engine.
|
||||
|
||||
********************************************************************/
|
||||
DAPI_(BOOL) BalStringVariableExists(
|
||||
__in_z LPCWSTR wzVariable
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
BalGetStringVariable - gets a string from a variable in the engine.
|
||||
|
||||
Note: Use StrFree() to release psczValue.
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) BalGetStringVariable(
|
||||
__in_z LPCWSTR wzVariable,
|
||||
__inout LPWSTR* psczValue
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
BalLog - logs a message with the engine.
|
||||
|
||||
********************************************************************/
|
||||
DAPIV_(HRESULT) BalLog(
|
||||
__in BOOTSTRAPPER_LOG_LEVEL level,
|
||||
__in_z __format_string LPCSTR szFormat,
|
||||
...
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
BalLogError - logs an error message with the engine.
|
||||
|
||||
********************************************************************/
|
||||
DAPIV_(HRESULT) BalLogError(
|
||||
__in HRESULT hr,
|
||||
__in_z __format_string LPCSTR szFormat,
|
||||
...
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
92
tools/WIX/sdk/inc/buffutil.h
Normal file
92
tools/WIX/sdk/inc/buffutil.h
Normal file
|
@ -0,0 +1,92 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="buffutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Binary serialization helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
// macro definitions
|
||||
|
||||
#define ReleaseBuffer ReleaseMem
|
||||
#define ReleaseNullBuffer ReleaseNullMem
|
||||
#define BuffFree MemFree
|
||||
|
||||
|
||||
// function declarations
|
||||
|
||||
HRESULT BuffReadNumber(
|
||||
__in_bcount(cbBuffer) const BYTE* pbBuffer,
|
||||
__in SIZE_T cbBuffer,
|
||||
__inout SIZE_T* piBuffer,
|
||||
__out DWORD* pdw
|
||||
);
|
||||
HRESULT BuffReadNumber64(
|
||||
__in_bcount(cbBuffer) const BYTE* pbBuffer,
|
||||
__in SIZE_T cbBuffer,
|
||||
__inout SIZE_T* piBuffer,
|
||||
__out DWORD64* pdw64
|
||||
);
|
||||
HRESULT BuffReadString(
|
||||
__in_bcount(cbBuffer) const BYTE* pbBuffer,
|
||||
__in SIZE_T cbBuffer,
|
||||
__inout SIZE_T* piBuffer,
|
||||
__deref_out_z LPWSTR* pscz
|
||||
);
|
||||
HRESULT BuffReadStringAnsi(
|
||||
__in_bcount(cbBuffer) const BYTE* pbBuffer,
|
||||
__in SIZE_T cbBuffer,
|
||||
__inout SIZE_T* piBuffer,
|
||||
__deref_out_z LPSTR* pscz
|
||||
);
|
||||
HRESULT BuffReadStream(
|
||||
__in_bcount(cbBuffer) const BYTE* pbBuffer,
|
||||
__in SIZE_T cbBuffer,
|
||||
__inout SIZE_T* piBuffer,
|
||||
__deref_out_bcount(*pcbStream) BYTE** ppbStream,
|
||||
__out SIZE_T* pcbStream
|
||||
);
|
||||
|
||||
HRESULT BuffWriteNumber(
|
||||
__deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
|
||||
__inout SIZE_T* piBuffer,
|
||||
__in DWORD dw
|
||||
);
|
||||
HRESULT BuffWriteNumber64(
|
||||
__deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
|
||||
__inout SIZE_T* piBuffer,
|
||||
__in DWORD64 dw64
|
||||
);
|
||||
HRESULT BuffWriteString(
|
||||
__deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
|
||||
__inout SIZE_T* piBuffer,
|
||||
__in_z_opt LPCWSTR scz
|
||||
);
|
||||
HRESULT BuffWriteStringAnsi(
|
||||
__deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
|
||||
__inout SIZE_T* piBuffer,
|
||||
__in_z_opt LPCSTR scz
|
||||
);
|
||||
HRESULT BuffWriteStream(
|
||||
__deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
|
||||
__inout SIZE_T* piBuffer,
|
||||
__in_bcount(cbStream) const BYTE* pbStream,
|
||||
__in SIZE_T cbStream
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
41
tools/WIX/sdk/inc/butil.h
Normal file
41
tools/WIX/sdk/inc/butil.h
Normal file
|
@ -0,0 +1,41 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="butil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for bundle helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
enum BUNDLE_INSTALL_CONTEXT
|
||||
{
|
||||
BUNDLE_INSTALL_CONTEXT_MACHINE,
|
||||
BUNDLE_INSTALL_CONTEXT_USER,
|
||||
};
|
||||
|
||||
HRESULT DAPI BundleGetBundleInfo(
|
||||
__in LPCWSTR szBundleId, // Bundle code
|
||||
__in LPCWSTR szAttribute, // attribute name
|
||||
__out_ecount_opt(*pcchValueBuf) LPWSTR lpValueBuf, // returned value, NULL if not desired
|
||||
__inout_opt LPDWORD pcchValueBuf // in/out buffer character count
|
||||
);
|
||||
|
||||
HRESULT DAPI BundleEnumRelatedBundle(
|
||||
__in LPCWSTR lpUpgradeCode,
|
||||
__in BUNDLE_INSTALL_CONTEXT context,
|
||||
__inout PDWORD pdwStartIndex,
|
||||
__out_ecount(MAX_GUID_CHARS+1) LPWSTR lpBundleIdBuf
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
72
tools/WIX/sdk/inc/cabcutil.h
Normal file
72
tools/WIX/sdk/inc/cabcutil.h
Normal file
|
@ -0,0 +1,72 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="cabcutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for cabinet creation helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#include <fci.h>
|
||||
#include <fcntl.h>
|
||||
#include <msi.h>
|
||||
|
||||
// Callback from PFNFCIGETNEXTCABINET CabCGetNextCabinet method
|
||||
// First argument is the name of splitting cabinet without extension e.g. "cab1"
|
||||
// Second argument is name of the new cabinet that would be formed by splitting e.g. "cab1b.cab"
|
||||
// Third argument is the file token of the first file present in the splitting cabinet
|
||||
typedef void (__stdcall * FileSplitCabNamesCallback)(LPWSTR, LPWSTR, LPWSTR);
|
||||
|
||||
#define CAB_MAX_SIZE 0x7FFFFFFF // (see KB: Q174866)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern const int CABC_HANDLE_BYTES;
|
||||
|
||||
// time vs. space trade-off
|
||||
typedef enum COMPRESSION_TYPE
|
||||
{
|
||||
COMPRESSION_TYPE_NONE, // fastest
|
||||
COMPRESSION_TYPE_LOW,
|
||||
COMPRESSION_TYPE_MEDIUM,
|
||||
COMPRESSION_TYPE_HIGH, // smallest
|
||||
COMPRESSION_TYPE_MSZIP
|
||||
} COMPRESSION_TYPE;
|
||||
|
||||
// functions
|
||||
HRESULT DAPI CabCBegin(
|
||||
__in_z LPCWSTR wzCab,
|
||||
__in_z LPCWSTR wzCabDir,
|
||||
__in DWORD dwMaxFiles,
|
||||
__in DWORD dwMaxSize,
|
||||
__in DWORD dwMaxThresh,
|
||||
__in COMPRESSION_TYPE ct,
|
||||
__out_bcount(CABC_HANDLE_BYTES) HANDLE *phContext
|
||||
);
|
||||
HRESULT DAPI CabCNextCab(
|
||||
__in_bcount(CABC_HANDLE_BYTES) HANDLE hContext
|
||||
);
|
||||
HRESULT DAPI CabCAddFile(
|
||||
__in_z LPCWSTR wzFile,
|
||||
__in_z_opt LPCWSTR wzToken,
|
||||
__in_opt PMSIFILEHASHINFO pmfHash,
|
||||
__in_bcount(CABC_HANDLE_BYTES) HANDLE hContext
|
||||
);
|
||||
HRESULT DAPI CabCFinish(
|
||||
__in_bcount(CABC_HANDLE_BYTES) HANDLE hContext,
|
||||
__in_opt FileSplitCabNamesCallback fileSplitCabNamesCallback
|
||||
);
|
||||
void DAPI CabCCancel(
|
||||
__in_bcount(CABC_HANDLE_BYTES) HANDLE hContext
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
66
tools/WIX/sdk/inc/cabutil.h
Normal file
66
tools/WIX/sdk/inc/cabutil.h
Normal file
|
@ -0,0 +1,66 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="cabutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for cabinet decompression helper functions
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#include <fdi.h>
|
||||
#include <sys\stat.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// structs
|
||||
|
||||
|
||||
// callback function prototypes
|
||||
typedef HRESULT (*CAB_CALLBACK_OPEN_FILE)(LPCWSTR wzFile, INT_PTR* ppFile);
|
||||
typedef HRESULT (*CAB_CALLBACK_READ_FILE)(INT_PTR pFile, LPVOID pvData, DWORD cbData, DWORD* pcbRead);
|
||||
typedef HRESULT (*CAB_CALLBACK_WRITE_FILE)(INT_PTR pFile, LPVOID pvData, DWORD cbData, DWORD* pcbRead);
|
||||
typedef LONG (*CAB_CALLBACK_SEEK_FILE)(INT_PTR pFile, DWORD dwMove, DWORD dwMoveMethod);
|
||||
typedef HRESULT (*CAB_CALLBACK_CLOSE_FILE)(INT_PTR pFile);
|
||||
|
||||
typedef HRESULT (*CAB_CALLBACK_BEGIN_FILE)(LPCWSTR wzFileId, FILETIME* pftFileTime, DWORD cbFileSize, LPVOID pvContext, INT_PTR* ppFile);
|
||||
typedef HRESULT (*CAB_CALLBACK_END_FILE)(LPCWSTR wzFileId, LPVOID pvContext, INT_PTR pFile);
|
||||
typedef HRESULT (*CAB_CALLBACK_PROGRESS)(BOOL fBeginFile, LPCWSTR wzFileId, LPVOID pvContext);
|
||||
|
||||
// function type with calling convention of __stdcall that .NET 1.1 understands only
|
||||
// .NET 2.0 will not need this
|
||||
typedef INT_PTR (FAR __stdcall *STDCALL_PFNFDINOTIFY)(FDINOTIFICATIONTYPE fdint, PFDINOTIFICATION pfdin);
|
||||
|
||||
|
||||
// functions
|
||||
HRESULT DAPI CabInitialize(
|
||||
__in BOOL fDelayLoad
|
||||
);
|
||||
void DAPI CabUninitialize(
|
||||
);
|
||||
|
||||
HRESULT DAPI CabExtract(
|
||||
__in_z LPCWSTR wzCabinet,
|
||||
__in_z LPCWSTR wzExtractFile,
|
||||
__in_z LPCWSTR wzExtractDir,
|
||||
__in_opt CAB_CALLBACK_PROGRESS pfnProgress,
|
||||
__in_opt LPVOID pvContext,
|
||||
__in DWORD64 dw64EmbeddedOffset
|
||||
);
|
||||
|
||||
HRESULT DAPI CabEnumerate(
|
||||
__in_z LPCWSTR wzCabinet,
|
||||
__in_z LPCWSTR wzEnumerateFile,
|
||||
__in STDCALL_PFNFDINOTIFY pfnNotify,
|
||||
__in DWORD64 dw64EmbeddedOffset
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
76
tools/WIX/sdk/inc/certutil.h
Normal file
76
tools/WIX/sdk/inc/certutil.h
Normal file
|
@ -0,0 +1,76 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="certutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Certificate helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#define ReleaseCertStore(p) if (p) { ::CertCloseStore(p, 0); p = NULL; }
|
||||
#define ReleaseCertContext(p) if (p) { ::CertFreeCertificateContext(p); p = NULL; }
|
||||
#define ReleaseCertChain(p) if (p) { ::CertFreeCertificateChain(p); p = NULL; }
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
HRESULT DAPI CertReadProperty(
|
||||
__in PCCERT_CONTEXT pCertContext,
|
||||
__in DWORD dwProperty,
|
||||
__out_bcount(*pcbValue) LPVOID pvValue,
|
||||
__out_opt DWORD* pcbValue
|
||||
);
|
||||
|
||||
HRESULT DAPI CertGetAuthenticodeSigningTimestamp(
|
||||
__in CMSG_SIGNER_INFO* pSignerInfo,
|
||||
__out FILETIME* pft
|
||||
);
|
||||
|
||||
HRESULT DAPI GetCryptProvFromCert(
|
||||
__in_opt HWND hwnd,
|
||||
__in PCCERT_CONTEXT pCert,
|
||||
__out HCRYPTPROV *phCryptProv,
|
||||
__out DWORD *pdwKeySpec,
|
||||
__in BOOL *pfDidCryptAcquire,
|
||||
__deref_opt_out LPWSTR *ppwszTmpContainer,
|
||||
__deref_opt_out LPWSTR *ppwszProviderName,
|
||||
__out DWORD *pdwProviderType
|
||||
);
|
||||
|
||||
HRESULT DAPI FreeCryptProvFromCert(
|
||||
__in BOOL fAcquired,
|
||||
__in HCRYPTPROV hProv,
|
||||
__in_opt LPWSTR pwszCapiProvider,
|
||||
__in DWORD dwProviderType,
|
||||
__in_opt LPWSTR pwszTmpContainer
|
||||
);
|
||||
|
||||
HRESULT DAPI GetProvSecurityDesc(
|
||||
__in HCRYPTPROV hProv,
|
||||
__deref_out SECURITY_DESCRIPTOR** pSecurity
|
||||
);
|
||||
|
||||
HRESULT DAPI SetProvSecurityDesc(
|
||||
__in HCRYPTPROV hProv,
|
||||
__in SECURITY_DESCRIPTOR* pSecurity
|
||||
);
|
||||
|
||||
BOOL DAPI CertHasPrivateKey(
|
||||
__in PCCERT_CONTEXT pCertContext,
|
||||
__out_opt DWORD* pdwKeySpec
|
||||
);
|
||||
|
||||
HRESULT DAPI CertInstallSingleCertificate(
|
||||
__in HCERTSTORE hStore,
|
||||
__in PCCERT_CONTEXT pCertContext,
|
||||
__in LPCWSTR wzName
|
||||
);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
110
tools/WIX/sdk/inc/conutil.h
Normal file
110
tools/WIX/sdk/inc/conutil.h
Normal file
|
@ -0,0 +1,110 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="conutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Console helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ConsoleExitOnFailure(x, c, f) if (FAILED(x)) { ConsoleWriteError(x, c, f); ExitTrace(x, f); goto LExit; }
|
||||
#define ConsoleExitOnFailure1(x, c, f, s) if (FAILED(x)) { ConsoleWriteError(x, c, f, s, NULL); ExitTrace1(x, f, s); goto LExit; }
|
||||
#define ConsoleExitOnFailure2(x, c, f, s, t) if (FAILED(x)) { ConsoleWriteError(x, c, f, s, t); ExitTrace2(x, f, s, t); goto LExit; }
|
||||
#define ConsoleExitOnFailure3(x, c, f, s, t, u) if (FAILED(x)) { ConsoleWriteError(x, c, f, s, t, u); ExitTrace3(x, f, s, t, u); goto LExit; }
|
||||
|
||||
#define ConsoleExitOnLastError(x, c, f) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { ConsoleWriteError(x, c, f); ExitTrace(x, f); goto LExit; } }
|
||||
#define ConsoleExitOnLastError1(x, c, f, s) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { ConsoleWriteError(x, c, f, s, NULL); ExitTrace1(x, f, s); goto LExit; } }
|
||||
#define ConsoleExitOnLastError2(x, c, f, s, t) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { ConsoleWriteError(x, c, f, s, t); ExitTrace2(x, f, s, t); goto LExit; } }
|
||||
#define ConsoleExitOnLastError3(x, c, f, s, t, u) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { ConsoleWriteError(x, c, f, s, t, u); ExitTrace3(x, f, s, t, u); goto LExit; } }
|
||||
|
||||
#define ConsoleExitOnNull(p, x, e, c, f) if (NULL == p) { x = e; ConsoleWriteError(x, c, f); ExitTrace(x, f); goto LExit; }
|
||||
#define ConsoleExitOnNull1(p, x, e, c, f, s) if (NULL == p) { x = e; ConsoleWriteError(x, c, f, s, NULL); ExitTrace1(x, f, s); goto LExit; }
|
||||
#define ConsoleExitOnNull2(p, x, e, c, f, s, t) if (NULL == p) { x = e; ConsoleWriteError(x, c, f, s, t); ExitTrace2(x, f, s, t); goto LExit; }
|
||||
#define ConsoleExitOnNull3(p, x, e, c, f, s, t, u) if (NULL == p) { x = e; ConsoleWriteError(x, c, f, s, t, u); ExitTrace2(x, f, s, t, u); goto LExit; }
|
||||
|
||||
|
||||
// the following macros need to go away
|
||||
#define ConsoleTrace(l, f) { ConsoleWriteLine(CONSOLE_COLOR_NORMAL, f); Trace(l, f); }
|
||||
#define ConsoleTrace1(l, f, s) { ConsoleWriteLine(CONSOLE_COLOR_NORMAL, f, s); Trace1(l, f, s); }
|
||||
#define ConsoleTrace2(l, f, s, t) { ConsoleWriteLine(CONSOLE_COLOR_NORMAL, f, s, t); Trace2(l, f, s, t); }
|
||||
#define ConsoleTrace3(l, f, s, t, u) { ConsoleWriteLine(CONSOLE_COLOR_NORMAL, f, s, t, u); Trace3(l, f, s, t, u); }
|
||||
|
||||
#define ConsoleWarning(f) { ConsoleWriteLine(CONSOLE_COLOR_YELLOW, f); Trace(REPORT_STANDARD, f); }
|
||||
#define ConsoleWarning1(f, s) { ConsoleWriteLine(CONSOLE_COLOR_YELLOW, f, s); Trace1(REPORT_STANDARD, f, s); }
|
||||
#define ConsoleWarning2(f, s, t) { ConsoleWriteLine(CONSOLE_COLOR_YELLOW, f, s, t); Trace2(REPORT_STANDARD, f, s, t); }
|
||||
#define ConsoleWarning3(f, s, t, u) { ConsoleWriteLine(CONSOLE_COLOR_YELLOW, f, s, t, u); Trace3(REPORT_STANDARD, f, s, t, u); }
|
||||
|
||||
#define ConsoleError(x, f) { ConsoleWriteError(x, CONSOLE_COLOR_RED, f); TraceError(x, f); }
|
||||
#define ConsoleError1(x, f, s) { ConsoleWriteError(x, CONSOLE_COLOR_RED, f, s); TraceError1(x, f, s); }
|
||||
#define ConsoleError2(x, f, s, t) { ConsoleWriteError(x, CONSOLE_COLOR_RED, f, s, t); TraceError2(x, f, s, t); }
|
||||
#define ConsoleError3(x, f, s, t, u) { ConsoleWriteError(x, CONSOLE_COLOR_RED, f, s, t, u); TraceError3(x, f, s, t, u); }
|
||||
|
||||
|
||||
// enums
|
||||
typedef enum CONSOLE_COLOR { CONSOLE_COLOR_NORMAL, CONSOLE_COLOR_RED, CONSOLE_COLOR_YELLOW, CONSOLE_COLOR_GREEN } CONSOLE_COLOR;
|
||||
|
||||
// structs
|
||||
|
||||
// functions
|
||||
HRESULT DAPI ConsoleInitialize();
|
||||
void DAPI ConsoleUninitialize();
|
||||
|
||||
void DAPI ConsoleGreen();
|
||||
void DAPI ConsoleRed();
|
||||
void DAPI ConsoleYellow();
|
||||
void DAPI ConsoleNormal();
|
||||
|
||||
HRESULT DAPI ConsoleWrite(
|
||||
CONSOLE_COLOR cc,
|
||||
__in_z __format_string LPCSTR szFormat,
|
||||
...
|
||||
);
|
||||
HRESULT DAPI ConsoleWriteLine(
|
||||
CONSOLE_COLOR cc,
|
||||
__in_z __format_string LPCSTR szFormat,
|
||||
...
|
||||
);
|
||||
HRESULT DAPI ConsoleWriteError(
|
||||
HRESULT hrError,
|
||||
CONSOLE_COLOR cc,
|
||||
__in_z __format_string LPCSTR szFormat,
|
||||
...
|
||||
);
|
||||
|
||||
HRESULT DAPI ConsoleReadW(
|
||||
__deref_out_z LPWSTR* ppwzBuffer
|
||||
);
|
||||
|
||||
HRESULT DAPI ConsoleReadStringA(
|
||||
__deref_out_ecount_part(cchCharBuffer,*pcchNumCharReturn) LPSTR* szCharBuffer,
|
||||
CONST DWORD cchCharBuffer,
|
||||
__out DWORD* pcchNumCharReturn
|
||||
);
|
||||
HRESULT DAPI ConsoleReadStringW(
|
||||
__deref_out_ecount_part(cchCharBuffer,*pcchNumCharReturn) LPWSTR* szCharBuffer,
|
||||
CONST DWORD cchCharBuffer,
|
||||
__out DWORD* pcchNumCharReturn
|
||||
);
|
||||
|
||||
HRESULT DAPI ConsoleReadNonBlockingW(
|
||||
__deref_out_ecount_opt(*pcchSize) LPWSTR* ppwzBuffer,
|
||||
__out DWORD* pcchSize,
|
||||
BOOL fReadLine
|
||||
);
|
||||
|
||||
HRESULT DAPI ConsoleSetReadHidden(void);
|
||||
HRESULT DAPI ConsoleSetReadNormal(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
113
tools/WIX/sdk/inc/cryputil.h
Normal file
113
tools/WIX/sdk/inc/cryputil.h
Normal file
|
@ -0,0 +1,113 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="cryputil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Cryptography helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#define ReleaseCryptMsg(p) if (p) { ::CryptMsgClose(p); p = NULL; }
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
// Use CRYPTPROTECTMEMORY_BLOCK_SIZE, because it's larger and thus more restrictive than RTL_ENCRYPT_MEMORY_SIZE.
|
||||
#define CRYP_ENCRYPT_MEMORY_SIZE CRYPTPROTECTMEMORY_BLOCK_SIZE
|
||||
#define SHA1_HASH_LEN 20
|
||||
|
||||
typedef NTSTATUS (APIENTRY *PFN_RTLENCRYPTMEMORY)(
|
||||
__inout PVOID Memory,
|
||||
__in ULONG MemoryLength,
|
||||
__in ULONG OptionFlags
|
||||
);
|
||||
|
||||
typedef NTSTATUS (APIENTRY *PFN_RTLDECRYPTMEMORY)(
|
||||
__inout PVOID Memory,
|
||||
__in ULONG MemoryLength,
|
||||
__in ULONG OptionFlags
|
||||
);
|
||||
|
||||
typedef BOOL (APIENTRY *PFN_CRYPTPROTECTMEMORY)(
|
||||
__inout LPVOID pData,
|
||||
__in DWORD cbData,
|
||||
__in DWORD dwFlags
|
||||
);
|
||||
|
||||
typedef BOOL (APIENTRY *PFN_CRYPTUNPROTECTMEMORY)(
|
||||
__inout LPVOID pData,
|
||||
__in DWORD cbData,
|
||||
__in DWORD dwFlags
|
||||
);
|
||||
|
||||
// function declarations
|
||||
|
||||
HRESULT DAPI CrypInitialize();
|
||||
void DAPI CrypUninitialize();
|
||||
|
||||
HRESULT DAPI CrypDecodeObject(
|
||||
__in_z LPCSTR szStructType,
|
||||
__in_ecount(cbData) const BYTE* pbData,
|
||||
__in DWORD cbData,
|
||||
__in DWORD dwFlags,
|
||||
__out LPVOID* ppvObject,
|
||||
__out_opt DWORD* pcbObject
|
||||
);
|
||||
|
||||
HRESULT DAPI CrypMsgGetParam(
|
||||
__in HCRYPTMSG hCryptMsg,
|
||||
__in DWORD dwType,
|
||||
__in DWORD dwIndex,
|
||||
__out LPVOID* ppvData,
|
||||
__out_opt DWORD* pcbData
|
||||
);
|
||||
|
||||
HRESULT DAPI CrypHashFile(
|
||||
__in_z LPCWSTR wzFilePath,
|
||||
__in DWORD dwProvType,
|
||||
__in ALG_ID algid,
|
||||
__out_bcount(cbHash) BYTE* pbHash,
|
||||
__in DWORD cbHash,
|
||||
__out_opt DWORD64* pqwBytesHashed
|
||||
);
|
||||
|
||||
HRESULT DAPI CrypHashFileHandle(
|
||||
__in HANDLE hFile,
|
||||
__in DWORD dwProvType,
|
||||
__in ALG_ID algid,
|
||||
__out_bcount(cbHash) BYTE* pbHash,
|
||||
__in DWORD cbHash,
|
||||
__out_opt DWORD64* pqwBytesHashed
|
||||
);
|
||||
|
||||
HRESULT DAPI CrypHashBuffer(
|
||||
__in_bcount(cbBuffer) const BYTE* pbBuffer,
|
||||
__in SIZE_T cbBuffer,
|
||||
__in DWORD dwProvType,
|
||||
__in ALG_ID algid,
|
||||
__out_bcount(cbHash) BYTE* pbHash,
|
||||
__in DWORD cbHash
|
||||
);
|
||||
|
||||
HRESULT DAPI CrypEncryptMemory(
|
||||
__inout LPVOID pData,
|
||||
__in DWORD cbData,
|
||||
__in DWORD dwFlags
|
||||
);
|
||||
|
||||
HRESULT DAPI CrypDecryptMemory(
|
||||
__inout LPVOID pData,
|
||||
__in DWORD cbData,
|
||||
__in DWORD dwFlags
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
153
tools/WIX/sdk/inc/custommsierrors.h
Normal file
153
tools/WIX/sdk/inc/custommsierrors.h
Normal file
|
@ -0,0 +1,153 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="custommsierrors.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Indexes for custom errors in the MSI
|
||||
//
|
||||
// Note: Custom Errors must be in the range 25000-30000, all other error
|
||||
// codes are reserved for the Windows Installer as standard error ranges
|
||||
// NEVER reuse an error number or you're likely to break the builds.
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
// Instructions:
|
||||
// 1. add the index to this file
|
||||
// 2. define the error table row
|
||||
// 3. #include CustomMsiErrors to refer to the index
|
||||
// 4. Import Misc\CustomErrors { MYDEFINE=1 }; with your errorgroup under MYDEFINE
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// GLOBAL 25501-25600
|
||||
#define GLOBAL_ERROR_BASE 25501
|
||||
|
||||
#define msierrSecureObjectsFailedCreateSD 25520
|
||||
#define msierrSecureObjectsFailedSet 25521
|
||||
#define msierrSecureObjectsUnknownType 25522
|
||||
|
||||
#define msierrXmlFileFailedRead 25530
|
||||
#define msierrXmlFileFailedOpen 25531
|
||||
#define msierrXmlFileFailedSelect 25532
|
||||
#define msierrXmlFileFailedSave 25533
|
||||
|
||||
#define msierrXmlConfigFailedRead 25540
|
||||
#define msierrXmlConfigFailedOpen 25541
|
||||
#define msierrXmlConfigFailedSelect 25542
|
||||
#define msierrXmlConfigFailedSave 25543
|
||||
|
||||
#define msierrFirewallCannotConnect 25580
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Server CustomAction Errors
|
||||
// SERVER range: 26001-26100
|
||||
#define SERVER_ERROR_BASE 26000
|
||||
|
||||
#define msierrIISCannotConnect 26001
|
||||
#define msierrIISFailedReadWebSite 26002
|
||||
#define msierrIISFailedReadWebDirs 26003
|
||||
#define msierrIISFailedReadVDirs 26004
|
||||
#define msierrIISFailedReadFilters 26005
|
||||
#define msierrIISFailedReadAppPool 26006
|
||||
#define msierrIISFailedReadMimeMap 26007
|
||||
#define msierrIISFailedReadProp 26008
|
||||
#define msierrIISFailedReadWebSvcExt 26009
|
||||
#define msierrIISFailedReadWebError 26010
|
||||
#define msierrIISFailedReadHttpHeader 26011
|
||||
|
||||
#define msierrIISFailedSchedTransaction 26031
|
||||
#define msierrIISFailedSchedInstallWebs 26032
|
||||
#define msierrIISFailedSchedInstallWebDirs 26033
|
||||
#define msierrIISFailedSchedInstallVDirs 26034
|
||||
#define msierrIISFailedSchedInstallFilters 26035
|
||||
#define msierrIISFailedSchedInstallAppPool 26036
|
||||
#define msierrIISFailedSchedInstallProp 26037
|
||||
#define msierrIISFailedSchedInstallWebSvcExt 26038
|
||||
|
||||
#define msierrIISFailedSchedUninstallWebs 26051
|
||||
#define msierrIISFailedSchedUninstallWebDirs 26052
|
||||
#define msierrIISFailedSchedUninstallVDirs 26053
|
||||
#define msierrIISFailedSchedUninstallFilters 26054
|
||||
#define msierrIISFailedSchedUninstallAppPool 26055
|
||||
#define msierrIISFailedSchedUninstallProp 26056
|
||||
#define msierrIISFailedSchedUninstallWebSvcExt 26057
|
||||
|
||||
#define msierrIISFailedStartTransaction 26101
|
||||
#define msierrIISFailedOpenKey 26102
|
||||
#define msierrIISFailedCreateKey 26103
|
||||
#define msierrIISFailedWriteData 26104
|
||||
#define msierrIISFailedCreateApp 26105
|
||||
#define msierrIISFailedDeleteKey 26106
|
||||
#define msierrIISFailedDeleteApp 26107
|
||||
#define msierrIISFailedDeleteValue 26108
|
||||
#define msierrIISFailedCommitInUse 26109
|
||||
|
||||
#define msierrSQLFailedCreateDatabase 26201
|
||||
#define msierrSQLFailedDropDatabase 26202
|
||||
#define msierrSQLFailedConnectDatabase 26203
|
||||
#define msierrSQLFailedExecString 26204
|
||||
#define msierrSQLDatabaseAlreadyExists 26205
|
||||
|
||||
#define msierrPERFMONFailedRegisterDLL 26251
|
||||
#define msierrPERFMONFailedUnregisterDLL 26252
|
||||
#define msierrInstallPerfCounterData 26253
|
||||
#define msierrUninstallPerfCounterData 26254
|
||||
|
||||
#define msierrSMBFailedCreate 26301
|
||||
#define msierrSMBFailedDrop 26302
|
||||
|
||||
#define msierrCERTFailedOpen 26351
|
||||
#define msierrCERTFailedAdd 26352
|
||||
|
||||
#define msierrUSRFailedUserCreate 26401
|
||||
#define msierrUSRFailedUserCreatePswd 26402
|
||||
#define msierrUSRFailedUserGroupAdd 26403
|
||||
#define msierrUSRFailedUserCreateExists 26404
|
||||
#define msierrUSRFailedGrantLogonAsService 26405
|
||||
|
||||
#define msierrDependencyMissingDependencies 26451
|
||||
#define msierrDependencyHasDependents 26452
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Managed code CustomAction Errors
|
||||
// MANAGED range: 27000-27100
|
||||
#define MANAGED_ERROR_BASE 27000
|
||||
|
||||
#define msierrDotNetRuntimeRequired 27000
|
||||
//---------------------------------------------------------------------------
|
||||
// Public CustomAction Errors
|
||||
// PUBLIC range: 28001-28100
|
||||
#define PUBLIC_ERROR_BASE 28000
|
||||
|
||||
#define msierrComPlusCannotConnect 28001
|
||||
#define msierrComPlusPartitionReadFailed 28002
|
||||
#define msierrComPlusPartitionRoleReadFailed 28003
|
||||
#define msierrComPlusUserInPartitionRoleReadFailed 28004
|
||||
#define msierrComPlusPartitionUserReadFailed 28005
|
||||
#define msierrComPlusApplicationReadFailed 28006
|
||||
#define msierrComPlusApplicationRoleReadFailed 28007
|
||||
#define msierrComPlusUserInApplicationRoleReadFailed 28008
|
||||
#define msierrComPlusAssembliesReadFailed 28009
|
||||
#define msierrComPlusSubscriptionReadFailed 28010
|
||||
#define msierrComPlusPartitionDependency 28011
|
||||
#define msierrComPlusPartitionNotFound 28012
|
||||
#define msierrComPlusPartitionIdConflict 28013
|
||||
#define msierrComPlusPartitionNameConflict 28014
|
||||
#define msierrComPlusApplicationDependency 28015
|
||||
#define msierrComPlusApplicationNotFound 28016
|
||||
#define msierrComPlusApplicationIdConflict 28017
|
||||
#define msierrComPlusApplicationNameConflict 28018
|
||||
#define msierrComPlusApplicationRoleDependency 28019
|
||||
#define msierrComPlusApplicationRoleNotFound 28020
|
||||
#define msierrComPlusApplicationRoleConflict 28021
|
||||
#define msierrComPlusAssemblyDependency 28022
|
||||
#define msierrComPlusSubscriptionIdConflict 28023
|
||||
#define msierrComPlusSubscriptionNameConflict 28024
|
||||
#define msierrComPlusFailedLookupNames 28025
|
||||
|
||||
#define msierrMsmqCannotConnect 28101
|
157
tools/WIX/sdk/inc/deputil.h
Normal file
157
tools/WIX/sdk/inc/deputil.h
Normal file
|
@ -0,0 +1,157 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="deputil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Common function declarations for the dependency/ref-counting feature.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ReleaseDependencyArray(rg, c) if (rg) { DepDependencyArrayFree(rg, c); }
|
||||
#define ReleaseNullDependencyArray(rg, c) if (rg) { DepDependencyArrayFree(rg, c); rg = NULL; }
|
||||
|
||||
typedef struct _DEPENDENCY
|
||||
{
|
||||
LPWSTR sczKey;
|
||||
LPWSTR sczName;
|
||||
} DEPENDENCY;
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
DepGetProviderInformation - gets the various pieces of data registered
|
||||
with a dependency.
|
||||
|
||||
Note: Returns E_NOTFOUND if the dependency was not found.
|
||||
***************************************************************************/
|
||||
DAPI_(HRESULT) DepGetProviderInformation(
|
||||
__in HKEY hkHive,
|
||||
__in_z LPCWSTR wzProviderKey,
|
||||
__deref_out_z_opt LPWSTR* psczId,
|
||||
__deref_out_z_opt LPWSTR* psczName,
|
||||
__out_opt DWORD64* pqwVersion
|
||||
);
|
||||
|
||||
/***************************************************************************
|
||||
DepCheckDependency - Checks that the dependency is registered and within
|
||||
the proper version range.
|
||||
|
||||
Note: Returns E_NOTFOUND if the dependency was not found.
|
||||
***************************************************************************/
|
||||
DAPI_(HRESULT) DepCheckDependency(
|
||||
__in HKEY hkHive,
|
||||
__in_z LPCWSTR wzProviderKey,
|
||||
__in_z_opt LPCWSTR wzMinVersion,
|
||||
__in_z_opt LPCWSTR wzMaxVersion,
|
||||
__in int iAttributes,
|
||||
__in STRINGDICT_HANDLE sdDependencies,
|
||||
__deref_inout_ecount_opt(*pcDependencies) DEPENDENCY** prgDependencies,
|
||||
__inout LPUINT pcDependencies
|
||||
);
|
||||
|
||||
/***************************************************************************
|
||||
DepCheckDependents - Checks if any dependents are still installed for the
|
||||
given provider key.
|
||||
|
||||
***************************************************************************/
|
||||
DAPI_(HRESULT) DepCheckDependents(
|
||||
__in HKEY hkHive,
|
||||
__in_z LPCWSTR wzProviderKey,
|
||||
__in int iAttributes,
|
||||
__in C_STRINGDICT_HANDLE sdIgnoredDependents,
|
||||
__deref_inout_ecount_opt(*pcDependents) DEPENDENCY** prgDependents,
|
||||
__inout LPUINT pcDependents
|
||||
);
|
||||
|
||||
/***************************************************************************
|
||||
DepRegisterDependency - Registers the dependency provider.
|
||||
|
||||
***************************************************************************/
|
||||
DAPI_(HRESULT) DepRegisterDependency(
|
||||
__in HKEY hkHive,
|
||||
__in_z LPCWSTR wzProviderKey,
|
||||
__in_z LPCWSTR wzVersion,
|
||||
__in_z LPCWSTR wzDisplayName,
|
||||
__in_z_opt LPCWSTR wzId,
|
||||
__in int iAttributes
|
||||
);
|
||||
|
||||
/***************************************************************************
|
||||
DepDependentExists - Determines if a dependent is registered.
|
||||
|
||||
Note: Returns S_OK if dependent is registered.
|
||||
Returns E_FILENOTFOUND if dependent is not registered
|
||||
***************************************************************************/
|
||||
DAPI_(HRESULT) DepDependentExists(
|
||||
__in HKEY hkHive,
|
||||
__in_z LPCWSTR wzDependencyProviderKey,
|
||||
__in_z LPCWSTR wzProviderKey
|
||||
);
|
||||
|
||||
/***************************************************************************
|
||||
DepRegisterDependent - Registers a dependent under the dependency provider.
|
||||
|
||||
***************************************************************************/
|
||||
DAPI_(HRESULT) DepRegisterDependent(
|
||||
__in HKEY hkHive,
|
||||
__in_z LPCWSTR wzDependencyProviderKey,
|
||||
__in_z LPCWSTR wzProviderKey,
|
||||
__in_z_opt LPCWSTR wzMinVersion,
|
||||
__in_z_opt LPCWSTR wzMaxVersion,
|
||||
__in int iAttributes
|
||||
);
|
||||
|
||||
/***************************************************************************
|
||||
DepUnregisterDependency - Removes the dependency provider.
|
||||
|
||||
Note: Caller should call CheckDependents prior to remove a dependency.
|
||||
Returns E_FILENOTFOUND if the dependency is not registered.
|
||||
***************************************************************************/
|
||||
DAPI_(HRESULT) DepUnregisterDependency(
|
||||
__in HKEY hkHive,
|
||||
__in_z LPCWSTR wzProviderKey
|
||||
);
|
||||
|
||||
/***************************************************************************
|
||||
DepUnregisterDependent - Removes a dependent under the dependency provider.
|
||||
|
||||
Note: Returns E_FILENOTFOUND if neither the dependency or dependent are
|
||||
registered.
|
||||
***************************************************************************/
|
||||
DAPI_(HRESULT) DepUnregisterDependent(
|
||||
__in HKEY hkHive,
|
||||
__in_z LPCWSTR wzDependencyProviderKey,
|
||||
__in_z LPCWSTR wzProviderKey
|
||||
);
|
||||
|
||||
/***************************************************************************
|
||||
DependencyArrayAlloc - Allocates or expands an array of DEPENDENCY structs.
|
||||
|
||||
***************************************************************************/
|
||||
DAPI_(HRESULT) DepDependencyArrayAlloc(
|
||||
__deref_inout_ecount_opt(*pcDependencies) DEPENDENCY** prgDependencies,
|
||||
__inout LPUINT pcDependencies,
|
||||
__in_z LPCWSTR wzKey,
|
||||
__in_z_opt LPCWSTR wzName
|
||||
);
|
||||
|
||||
/***************************************************************************
|
||||
DepDependencyArrayFree - Frees an array of DEPENDENCY structs.
|
||||
|
||||
***************************************************************************/
|
||||
DAPI_(void) DepDependencyArrayFree(
|
||||
__in_ecount(cDependencies) DEPENDENCY* rgDependencies,
|
||||
__in UINT cDependencies
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
79
tools/WIX/sdk/inc/dictutil.h
Normal file
79
tools/WIX/sdk/inc/dictutil.h
Normal file
|
@ -0,0 +1,79 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="dictutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for string dict helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ReleaseDict(sdh) if (sdh) { DictDestroy(sdh); }
|
||||
#define ReleaseNullDict(sdh) if (sdh) { DictDestroy(sdh); sdh = NULL; }
|
||||
|
||||
typedef void* STRINGDICT_HANDLE;
|
||||
typedef const void* C_STRINGDICT_HANDLE;
|
||||
|
||||
extern const int STRINGDICT_HANDLE_BYTES;
|
||||
|
||||
typedef enum DICT_FLAG
|
||||
{
|
||||
DICT_FLAG_NONE = 0,
|
||||
DICT_FLAG_CASEINSENSITIVE = 1
|
||||
} DICT_FLAG;
|
||||
|
||||
HRESULT DAPI DictCreateWithEmbeddedKey(
|
||||
__out_bcount(STRINGDICT_HANDLE_BYTES) STRINGDICT_HANDLE* psdHandle,
|
||||
__in DWORD dwNumExpectedItems,
|
||||
__in_opt void **ppvArray,
|
||||
__in size_t cByteOffset,
|
||||
__in DICT_FLAG dfFlags
|
||||
);
|
||||
HRESULT DAPI DictCreateStringList(
|
||||
__out_bcount(STRINGDICT_HANDLE_BYTES) STRINGDICT_HANDLE* psdHandle,
|
||||
__in DWORD dwNumExpectedItems,
|
||||
__in DICT_FLAG dfFlags
|
||||
);
|
||||
HRESULT DAPI DictCreateStringListFromArray(
|
||||
__out_bcount(STRINGDICT_HANDLE_BYTES) STRINGDICT_HANDLE* psdHandle,
|
||||
__in_ecount(cStringArray) const LPCWSTR* rgwzStringArray,
|
||||
__in const DWORD cStringArray,
|
||||
__in DICT_FLAG dfFlags
|
||||
);
|
||||
HRESULT DAPI DictCompareStringListToArray(
|
||||
__in_bcount(STRINGDICT_HANDLE_BYTES) STRINGDICT_HANDLE sdStringList,
|
||||
__in_ecount(cStringArray) const LPCWSTR* rgwzStringArray,
|
||||
__in const DWORD cStringArray
|
||||
);
|
||||
HRESULT DAPI DictAddKey(
|
||||
__in_bcount(STRINGDICT_HANDLE_BYTES) STRINGDICT_HANDLE sdHandle,
|
||||
__in_z LPCWSTR szString
|
||||
);
|
||||
HRESULT DAPI DictAddValue(
|
||||
__in_bcount(STRINGDICT_HANDLE_BYTES) STRINGDICT_HANDLE sdHandle,
|
||||
__in void *pvValue
|
||||
);
|
||||
HRESULT DAPI DictKeyExists(
|
||||
__in_bcount(STRINGDICT_HANDLE_BYTES) C_STRINGDICT_HANDLE sdHandle,
|
||||
__in_z LPCWSTR szString
|
||||
);
|
||||
HRESULT DAPI DictGetValue(
|
||||
__in_bcount(STRINGDICT_HANDLE_BYTES) C_STRINGDICT_HANDLE sdHandle,
|
||||
__in_z LPCWSTR szString,
|
||||
__out void **ppvValue
|
||||
);
|
||||
void DAPI DictDestroy(
|
||||
__in_bcount(STRINGDICT_HANDLE_BYTES) STRINGDICT_HANDLE sdHandle
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
65
tools/WIX/sdk/inc/dirutil.h
Normal file
65
tools/WIX/sdk/inc/dirutil.h
Normal file
|
@ -0,0 +1,65 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="dirutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Directory helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
typedef enum DIR_DELETE
|
||||
{
|
||||
DIR_DELETE_FILES = 1,
|
||||
DIR_DELETE_RECURSE = 2,
|
||||
DIR_DELETE_SCHEDULE = 4,
|
||||
} DIR_DELETE;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
BOOL DAPI DirExists(
|
||||
__in_z LPCWSTR wzPath,
|
||||
__out_opt DWORD *pdwAttributes
|
||||
);
|
||||
|
||||
HRESULT DAPI DirCreateTempPath(
|
||||
__in_z LPCWSTR wzPrefix,
|
||||
__out_ecount_z(cchPath) LPWSTR wzPath,
|
||||
__in DWORD cchPath
|
||||
);
|
||||
|
||||
HRESULT DAPI DirEnsureExists(
|
||||
__in_z LPCWSTR wzPath,
|
||||
__in_opt LPSECURITY_ATTRIBUTES psa
|
||||
);
|
||||
|
||||
HRESULT DAPI DirEnsureDelete(
|
||||
__in_z LPCWSTR wzPath,
|
||||
__in BOOL fDeleteFiles,
|
||||
__in BOOL fRecurse
|
||||
);
|
||||
|
||||
HRESULT DAPI DirEnsureDeleteEx(
|
||||
__in_z LPCWSTR wzPath,
|
||||
__in DWORD dwFlags
|
||||
);
|
||||
|
||||
HRESULT DAPI DirGetCurrent(
|
||||
__deref_out_z LPWSTR* psczCurrentDirectory
|
||||
);
|
||||
|
||||
HRESULT DAPI DirSetCurrent(
|
||||
__in_z LPCWSTR wzDirectory
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
71
tools/WIX/sdk/inc/dlutil.h
Normal file
71
tools/WIX/sdk/inc/dlutil.h
Normal file
|
@ -0,0 +1,71 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="downloadengine.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Setup chainer/bootstrapper download engine for WiX toolset.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef HRESULT (WINAPI *LPAUTHENTICATION_ROUTINE)(
|
||||
__in LPVOID pVoid,
|
||||
__in HINTERNET hUrl,
|
||||
__in long lHttpCode,
|
||||
__out BOOL* pfRetrySend,
|
||||
__out BOOL* pfRetry
|
||||
);
|
||||
|
||||
typedef int (WINAPI *LPCANCEL_ROUTINE)(
|
||||
__in HRESULT hrError,
|
||||
__in_z_opt LPCWSTR wzError,
|
||||
__in BOOL fAllowRetry,
|
||||
__in_opt LPVOID pvContext
|
||||
);
|
||||
|
||||
// structs
|
||||
typedef struct _DOWNLOAD_SOURCE
|
||||
{
|
||||
LPWSTR sczUrl;
|
||||
LPWSTR sczUser;
|
||||
LPWSTR sczPassword;
|
||||
} DOWNLOAD_SOURCE;
|
||||
|
||||
typedef struct _DOWNLOAD_CACHE_CALLBACK
|
||||
{
|
||||
LPPROGRESS_ROUTINE pfnProgress;
|
||||
LPCANCEL_ROUTINE pfnCancel;
|
||||
LPVOID pv;
|
||||
} DOWNLOAD_CACHE_CALLBACK;
|
||||
|
||||
typedef struct _DOWNLOAD_AUTHENTICATION_CALLBACK
|
||||
{
|
||||
LPAUTHENTICATION_ROUTINE pfnAuthenticate;
|
||||
LPVOID pv;
|
||||
} DOWNLOAD_AUTHENTICATION_CALLBACK;
|
||||
|
||||
|
||||
// functions
|
||||
|
||||
HRESULT DAPI DownloadUrl(
|
||||
__in DOWNLOAD_SOURCE* pDownloadSource,
|
||||
__in DWORD64 dw64AuthoredDownloadSize,
|
||||
__in LPCWSTR wzDestinationPath,
|
||||
__in_opt DOWNLOAD_CACHE_CALLBACK* pCache,
|
||||
__in_opt DOWNLOAD_AUTHENTICATION_CALLBACK* pAuthenticate
|
||||
);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
235
tools/WIX/sdk/inc/dutil.h
Normal file
235
tools/WIX/sdk/inc/dutil.h
Normal file
|
@ -0,0 +1,235 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="dutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for utility layer that provides standard support for asserts, exit macros
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#define DAPI __stdcall
|
||||
#define DAPIV __cdecl // used only for functions taking variable length arguments
|
||||
|
||||
#define DAPI_(type) EXTERN_C type DAPI
|
||||
#define DAPIV_(type) EXTERN_C type DAPIV
|
||||
|
||||
|
||||
// enums
|
||||
typedef enum REPORT_LEVEL
|
||||
{
|
||||
REPORT_NONE, // turns off report (only valid for XXXSetLevel())
|
||||
REPORT_WARNING, // written if want only warnings or reporting is on in general
|
||||
REPORT_STANDARD, // written if reporting is on
|
||||
REPORT_VERBOSE, // written only if verbose reporting is on
|
||||
REPORT_DEBUG, // reporting useful when debugging code
|
||||
REPORT_ERROR, // always gets reported, but can never be specified
|
||||
} REPORT_LEVEL;
|
||||
|
||||
// asserts and traces
|
||||
typedef BOOL (DAPI *DUTIL_ASSERTDISPLAYFUNCTION)(__in_z LPCSTR sz);
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void DAPI Dutil_SetAssertModule(__in HMODULE hAssertModule);
|
||||
void DAPI Dutil_SetAssertDisplayFunction(__in DUTIL_ASSERTDISPLAYFUNCTION pfn);
|
||||
void DAPI Dutil_Assert(__in_z LPCSTR szFile, __in int iLine);
|
||||
void DAPI Dutil_AssertSz(__in_z LPCSTR szFile, __in int iLine, __in_z LPCSTR szMsg);
|
||||
|
||||
void DAPI Dutil_TraceSetLevel(__in REPORT_LEVEL ll, __in BOOL fTraceFilenames);
|
||||
REPORT_LEVEL DAPI Dutil_TraceGetLevel();
|
||||
void __cdecl Dutil_Trace(__in_z LPCSTR szFile, __in int iLine, __in REPORT_LEVEL rl, __in_z __format_string LPCSTR szMessage, ...);
|
||||
void __cdecl Dutil_TraceError(__in_z LPCSTR szFile, __in int iLine, __in REPORT_LEVEL rl, __in HRESULT hr, __in_z __format_string LPCSTR szMessage, ...);
|
||||
void DAPI Dutil_RootFailure(__in_z LPCSTR szFile, __in int iLine, __in HRESULT hrError);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
|
||||
#define AssertSetModule(m) (void)Dutil_SetAssertModule(m)
|
||||
#define AssertSetDisplayFunction(pfn) (void)Dutil_SetAssertDisplayFunction(pfn)
|
||||
#define Assert(f) ((f) ? (void)0 : (void)Dutil_Assert(__FILE__, __LINE__))
|
||||
#define AssertSz(f, sz) ((f) ? (void)0 : (void)Dutil_AssertSz(__FILE__, __LINE__, sz))
|
||||
|
||||
#define TraceSetLevel(l, f) (void)Dutil_TraceSetLevel(l, f)
|
||||
#define TraceGetLevel() (REPORT_LEVEL)Dutil_TraceGetLevel()
|
||||
#define Trace(l, f) (void)Dutil_Trace(__FILE__, __LINE__, l, f, NULL)
|
||||
#define Trace1(l, f, s) (void)Dutil_Trace(__FILE__, __LINE__, l, f, s)
|
||||
#define Trace2(l, f, s, t) (void)Dutil_Trace(__FILE__, __LINE__, l, f, s, t)
|
||||
#define Trace3(l, f, s, t, u) (void)Dutil_Trace(__FILE__, __LINE__, l, f, s, t, u)
|
||||
|
||||
#define TraceError(x, f) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_ERROR, x, f, NULL)
|
||||
#define TraceError1(x, f, s) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_ERROR, x, f, s)
|
||||
#define TraceError2(x, f, s, t) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_ERROR, x, f, s, t)
|
||||
#define TraceError3(x, f, s, t, u) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_ERROR, x, f, s, t, u)
|
||||
|
||||
#define TraceErrorDebug(x, f) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_DEBUG, x, f, NULL)
|
||||
#define TraceErrorDebug1(x, f, s) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_DEBUG, x, f, s)
|
||||
#define TraceErrorDebug2(x, f, s, t) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_DEBUG, x, f, s, t)
|
||||
#define TraceErrorDebug3(x, f, s, t, u) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_DEBUG, x, f, s, t, u)
|
||||
|
||||
#else // !DEBUG
|
||||
|
||||
#define AssertSetModule(m)
|
||||
#define AssertSetDisplayFunction(pfn)
|
||||
#define Assert(f)
|
||||
#define AssertSz(f, sz)
|
||||
|
||||
#define TraceSetLevel(l, f)
|
||||
#define Trace(l, f)
|
||||
#define Trace1(l, f, s)
|
||||
#define Trace2(l, f, s, t)
|
||||
#define Trace3(l, f, s, t, u)
|
||||
|
||||
#define TraceError(x, f)
|
||||
#define TraceError1(x, f, s)
|
||||
#define TraceError2(x, f, s, t)
|
||||
#define TraceError3(x, f, s, t, u)
|
||||
|
||||
#define TraceErrorDebug(x, f)
|
||||
#define TraceErrorDebug1(x, f, s)
|
||||
#define TraceErrorDebug2(x, f, s, t)
|
||||
#define TraceErrorDebug3(x, f, s, t, u)
|
||||
|
||||
#endif // DEBUG
|
||||
|
||||
|
||||
// ExitTrace can be overriden
|
||||
#ifndef ExitTrace
|
||||
#define ExitTrace TraceError
|
||||
#endif
|
||||
#ifndef ExitTrace1
|
||||
#define ExitTrace1 TraceError1
|
||||
#endif
|
||||
#ifndef ExitTrace2
|
||||
#define ExitTrace2 TraceError2
|
||||
#endif
|
||||
#ifndef ExitTrace3
|
||||
#define ExitTrace3 TraceError3
|
||||
#endif
|
||||
|
||||
// Exit macros
|
||||
#define ExitFunction() { goto LExit; }
|
||||
#define ExitFunction1(x) { x; goto LExit; }
|
||||
|
||||
#define ExitFunctionWithLastError(x) { x = HRESULT_FROM_WIN32(::GetLastError()); goto LExit; }
|
||||
|
||||
#define ExitOnLastError(x, s) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s); goto LExit; } }
|
||||
#define ExitOnLastError1(x, f, s) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; } }
|
||||
#define ExitOnLastError2(x, f, s, t) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace2(x, f, s, t); goto LExit; } }
|
||||
|
||||
#define ExitOnLastErrorDebugTrace(x, s) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); TraceErrorDebug(x, s); goto LExit; } }
|
||||
#define ExitOnLastErrorDebugTrace1(x, f, s) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); TraceErrorDebug1(x, f, s); goto LExit; } }
|
||||
#define ExitOnLastErrorDebugTrace2(x, f, s, t) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); TraceErrorDebug2(x, f, s, t); goto LExit; } }
|
||||
|
||||
#define ExitWithLastError(x, s) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s); goto LExit; }
|
||||
#define ExitWithLastError1(x, f, s) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; }
|
||||
#define ExitWithLastError2(x, f, s, t) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace2(x, f, s, t); goto LExit; }
|
||||
#define ExitWithLastError3(x, f, s, t, u) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace3(x, f, s, t, u); goto LExit; }
|
||||
|
||||
#define ExitOnFailure(x, s) if (FAILED(x)) { ExitTrace(x, s); goto LExit; }
|
||||
#define ExitOnFailure1(x, f, s) if (FAILED(x)) { ExitTrace1(x, f, s); goto LExit; }
|
||||
#define ExitOnFailure2(x, f, s, t) if (FAILED(x)) { ExitTrace2(x, f, s, t); goto LExit; }
|
||||
#define ExitOnFailure3(x, f, s, t, u) if (FAILED(x)) { ExitTrace3(x, f, s, t, u); goto LExit; }
|
||||
|
||||
#define ExitOnRootFailure(x, s) if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s); goto LExit; }
|
||||
#define ExitOnRootFailure1(x, f, s) if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; }
|
||||
#define ExitOnRootFailure2(x, f, s, t) if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace2(x, f, s, t); goto LExit; }
|
||||
#define ExitOnRootFailure3(x, f, s, t, u) if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace3(x, f, s, t, u); goto LExit; }
|
||||
|
||||
#define ExitOnFailureDebugTrace(x, s) if (FAILED(x)) { TraceErrorDebug(x, s); goto LExit; }
|
||||
#define ExitOnFailureDebugTrace1(x, f, s) if (FAILED(x)) { TraceErrorDebug1(x, f, s); goto LExit; }
|
||||
#define ExitOnFailureDebugTrace2(x, f, s, t) if (FAILED(x)) { TraceErrorDebug2(x, f, s, t); goto LExit; }
|
||||
#define ExitOnFailureDebugTrace3(x, f, s, t, u) if (FAILED(x)) { TraceErrorDebug3(x, f, s, t, u); goto LExit; }
|
||||
|
||||
#define ExitOnNull(p, x, e, s) if (NULL == p) { x = e; Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s); goto LExit; }
|
||||
#define ExitOnNull1(p, x, e, f, s) if (NULL == p) { x = e; Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; }
|
||||
#define ExitOnNull2(p, x, e, f, s, t) if (NULL == p) { x = e; Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace2(x, f, s, t); goto LExit; }
|
||||
|
||||
#define ExitOnNullWithLastError(p, x, s) if (NULL == p) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s); goto LExit; }
|
||||
#define ExitOnNullWithLastError1(p, x, f, s) if (NULL == p) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; }
|
||||
|
||||
#define ExitOnNullDebugTrace(p, x, e, s) if (NULL == p) { x = e; Dutil_RootFailure(__FILE__, __LINE__, x); TraceErrorDebug(x, s); goto LExit; }
|
||||
#define ExitOnNullDebugTrace1(p, x, e, f, s) if (NULL == p) { x = e; Dutil_RootFailure(__FILE__, __LINE__, x); TraceErrorDebug1(x, f, s); goto LExit; }
|
||||
|
||||
#define ExitOnInvalidHandleWithLastError(p, x, s) if (INVALID_HANDLE_VALUE == p) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s); goto LExit; }
|
||||
#define ExitOnInvalidHandleWithLastError1(p, x, f, s) if (INVALID_HANDLE_VALUE == p) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; }
|
||||
|
||||
#define ExitOnWin32Error(e, x, s) if (ERROR_SUCCESS != e) { x = HRESULT_FROM_WIN32(e); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s); goto LExit; }
|
||||
#define ExitOnWin32Error1(e, x, f, s) if (ERROR_SUCCESS != e) { x = HRESULT_FROM_WIN32(e); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; }
|
||||
#define ExitOnWin32Error2(e, x, f, s, t) if (ERROR_SUCCESS != e) { x = HRESULT_FROM_WIN32(e); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace2(x, f, s, t); goto LExit; }
|
||||
|
||||
// release macros
|
||||
#define ReleaseObject(x) if (x) { x->Release(); }
|
||||
#define ReleaseObjectArray(prg, cel) if (prg) { for (DWORD Dutil_ReleaseObjectArrayIndex = 0; Dutil_ReleaseObjectArrayIndex < cel; ++Dutil_ReleaseObjectArrayIndex) { ReleaseObject(prg[Dutil_ReleaseObjectArrayIndex]); } ReleaseMem(prg); }
|
||||
#define ReleaseVariant(x) { ::VariantClear(&x); }
|
||||
#define ReleaseNullObject(x) if (x) { (x)->Release(); x = NULL; }
|
||||
#define ReleaseCertificate(x) if (x) { ::CertFreeCertificateContext(x); x=NULL; }
|
||||
#define ReleaseHandle(x) if (x) { ::CloseHandle(x); x = NULL; }
|
||||
|
||||
|
||||
// useful defines and macros
|
||||
#define Unused(x) ((void)x)
|
||||
|
||||
#ifndef countof
|
||||
#if 1
|
||||
#define countof(ary) (sizeof(ary) / sizeof(ary[0]))
|
||||
#else
|
||||
#ifndef __cplusplus
|
||||
#define countof(ary) (sizeof(ary) / sizeof(ary[0]))
|
||||
#else
|
||||
template<typename T> static char countofVerify(void const *, T) throw() { return 0; }
|
||||
template<typename T> static void countofVerify(T *const, T *const *) throw() {};
|
||||
#define countof(arr) (sizeof(countofVerify(arr,&(arr))) * sizeof(arr)/sizeof(*(arr)))
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define roundup(x, n) roundup_typed(x, n, DWORD)
|
||||
#define roundup_typed(x, n, t) (((t)(x) + ((t)(n) - 1)) & ~((t)(n) - 1))
|
||||
|
||||
#define HRESULT_FROM_RPC(x) ((HRESULT) ((x) | FACILITY_RPC))
|
||||
|
||||
#ifndef MAXSIZE_T
|
||||
#define MAXSIZE_T ((SIZE_T)~((SIZE_T)0))
|
||||
#endif
|
||||
|
||||
typedef const BYTE* LPCBYTE;
|
||||
|
||||
#define E_FILENOTFOUND HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
|
||||
#define E_PATHNOTFOUND HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND)
|
||||
#define E_INVALIDDATA HRESULT_FROM_WIN32(ERROR_INVALID_DATA)
|
||||
#define E_INVALIDSTATE HRESULT_FROM_WIN32(ERROR_INVALID_STATE)
|
||||
#define E_INSUFFICIENT_BUFFER HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
|
||||
#define E_MOREDATA HRESULT_FROM_WIN32(ERROR_MORE_DATA)
|
||||
#define E_NOMOREITEMS HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS)
|
||||
#define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND)
|
||||
#define E_MODNOTFOUND HRESULT_FROM_WIN32(ERROR_MOD_NOT_FOUND)
|
||||
#define E_BADCONFIGURATION HRESULT_FROM_WIN32(ERROR_BAD_CONFIGURATION)
|
||||
|
||||
#define AddRefAndRelease(x) { x->AddRef(); x->Release(); }
|
||||
|
||||
#define MAKEDWORD(lo, hi) ((DWORD)MAKELONG(lo, hi))
|
||||
#define MAKEQWORDVERSION(mj, mi, b, r) (((DWORD64)MAKELONG(r, b)) | (((DWORD64)MAKELONG(mi, mj)) << 32))
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// other functions
|
||||
HRESULT DAPI LoadSystemLibrary(__in_z LPCWSTR wzModuleName, __out HMODULE *phModule);
|
||||
HRESULT DAPI LoadSystemLibraryWithPath(__in_z LPCWSTR wzModuleName, __out HMODULE *phModule, __deref_out_z_opt LPWSTR* psczPath);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
233
tools/WIX/sdk/inc/eseutil.h
Normal file
233
tools/WIX/sdk/inc/eseutil.h
Normal file
|
@ -0,0 +1,233 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="eseutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for Extensible Storage Engine (Jetblue) helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ReleaseEseQuery(pqh) if (pqh) { EseFinishQuery(pqh); }
|
||||
#define ReleaseNullEseQuery(pqh) if (pqh) { EseFinishQuery(pqh); pqh = NULL; }
|
||||
|
||||
struct ESE_COLUMN_SCHEMA
|
||||
{
|
||||
JET_COLUMNID jcColumn;
|
||||
LPCWSTR pszName;
|
||||
JET_COLTYP jcColumnType;
|
||||
BOOL fKey; // If this column is part of the key of the table
|
||||
BOOL fFixed;
|
||||
BOOL fNullable;
|
||||
BOOL fAutoIncrement;
|
||||
};
|
||||
|
||||
struct ESE_TABLE_SCHEMA
|
||||
{
|
||||
JET_TABLEID jtTable;
|
||||
LPCWSTR pszName;
|
||||
DWORD dwColumns;
|
||||
ESE_COLUMN_SCHEMA *pcsColumns;
|
||||
};
|
||||
|
||||
struct ESE_DATABASE_SCHEMA
|
||||
{
|
||||
DWORD dwTables;
|
||||
ESE_TABLE_SCHEMA *ptsTables;
|
||||
};
|
||||
|
||||
typedef enum ESE_QUERY_TYPE
|
||||
{
|
||||
ESE_QUERY_EXACT,
|
||||
ESE_QUERY_FROM_TOP,
|
||||
ESE_QUERY_FROM_BOTTOM
|
||||
} ESE_QUERY_TYPE;
|
||||
|
||||
typedef void* ESE_QUERY_HANDLE;
|
||||
|
||||
HRESULT DAPI EseBeginSession(
|
||||
__out JET_INSTANCE *pjiInstance,
|
||||
__out JET_SESID *pjsSession,
|
||||
__in_z LPCWSTR pszInstance,
|
||||
__in_z LPCWSTR pszPath
|
||||
);
|
||||
HRESULT DAPI EseEndSession(
|
||||
__in JET_INSTANCE jiInstance,
|
||||
__in JET_SESID jsSession
|
||||
);
|
||||
HRESULT DAPI EseEnsureDatabase(
|
||||
__in JET_SESID jsSession,
|
||||
__in_z LPCWSTR pszFile,
|
||||
__in ESE_DATABASE_SCHEMA *pdsSchema,
|
||||
__out JET_DBID* pjdbDb,
|
||||
__in BOOL fExclusive,
|
||||
__in BOOL fReadonly
|
||||
);
|
||||
HRESULT DAPI EseCloseDatabase(
|
||||
__in JET_SESID jsSession,
|
||||
__in JET_DBID jdbDb
|
||||
);
|
||||
HRESULT DAPI EseCreateTable(
|
||||
__in JET_SESID jsSession,
|
||||
__in JET_DBID jdbDb,
|
||||
__in_z LPCWSTR pszTable,
|
||||
__out JET_TABLEID *pjtTable
|
||||
);
|
||||
HRESULT DAPI EseOpenTable(
|
||||
__in JET_SESID jsSession,
|
||||
__in JET_DBID jdbDb,
|
||||
__in_z LPCWSTR pszTable,
|
||||
__out JET_TABLEID *pjtTable
|
||||
);
|
||||
HRESULT DAPI EseCloseTable(
|
||||
__in JET_SESID jsSession,
|
||||
__in JET_TABLEID jtTable
|
||||
);
|
||||
HRESULT DAPI EseEnsureColumn(
|
||||
__in JET_SESID jsSession,
|
||||
__in JET_TABLEID jtTable,
|
||||
__in_z LPCWSTR pszColumnName,
|
||||
__in JET_COLTYP jcColumnType,
|
||||
__in ULONG ulColumnSize,
|
||||
__in BOOL fFixed,
|
||||
__in BOOL fNullable,
|
||||
__out_opt JET_COLUMNID *pjcColumn
|
||||
);
|
||||
HRESULT DAPI EseGetColumn(
|
||||
__in JET_SESID jsSession,
|
||||
__in JET_TABLEID jtTable,
|
||||
__in_z LPCWSTR pszColumnName,
|
||||
__out JET_COLUMNID *pjcColumn
|
||||
);
|
||||
HRESULT DAPI EseMoveCursor(
|
||||
__in JET_SESID jsSession,
|
||||
__in JET_TABLEID jtTable,
|
||||
__in LONG lRow
|
||||
);
|
||||
HRESULT DAPI EseDeleteRow(
|
||||
__in JET_SESID jsSession,
|
||||
__in JET_TABLEID jtTable
|
||||
);
|
||||
HRESULT DAPI EseBeginTransaction(
|
||||
__in JET_SESID jsSession
|
||||
);
|
||||
HRESULT DAPI EseRollbackTransaction(
|
||||
__in JET_SESID jsSession,
|
||||
__in BOOL fAll
|
||||
);
|
||||
HRESULT DAPI EseCommitTransaction(
|
||||
__in JET_SESID jsSession
|
||||
);
|
||||
HRESULT DAPI EsePrepareUpdate(
|
||||
__in JET_SESID jsSession,
|
||||
__in JET_TABLEID jtTable,
|
||||
__in ULONG ulPrep
|
||||
);
|
||||
HRESULT DAPI EseFinishUpdate(
|
||||
__in JET_SESID jsSession,
|
||||
__in JET_TABLEID jtTable,
|
||||
__in BOOL fSeekToInsertedRecord
|
||||
);
|
||||
HRESULT DAPI EseSetColumnBinary(
|
||||
__in JET_SESID jsSession,
|
||||
__in ESE_TABLE_SCHEMA tsTable,
|
||||
__in DWORD dwColumn,
|
||||
__in_bcount(cbBuffer) const BYTE* pbBuffer,
|
||||
__in SIZE_T cbBuffer
|
||||
);
|
||||
HRESULT DAPI EseSetColumnDword(
|
||||
__in JET_SESID jsSession,
|
||||
__in ESE_TABLE_SCHEMA tsTable,
|
||||
__in DWORD dwColumn,
|
||||
__in DWORD dwValue
|
||||
);
|
||||
HRESULT DAPI EseSetColumnBool(
|
||||
__in JET_SESID jsSession,
|
||||
__in ESE_TABLE_SCHEMA tsTable,
|
||||
__in DWORD dwColumn,
|
||||
__in BOOL fValue
|
||||
);
|
||||
HRESULT DAPI EseSetColumnString(
|
||||
__in JET_SESID jsSession,
|
||||
__in ESE_TABLE_SCHEMA tsTable,
|
||||
__in DWORD dwColumn,
|
||||
__in_z LPCWSTR pszValue
|
||||
);
|
||||
HRESULT DAPI EseSetColumnEmpty(
|
||||
__in JET_SESID jsSession,
|
||||
__in ESE_TABLE_SCHEMA tsTable,
|
||||
__in DWORD dwColumn
|
||||
);
|
||||
HRESULT DAPI EseGetColumnBinary(
|
||||
__in JET_SESID jsSession,
|
||||
__in ESE_TABLE_SCHEMA tsTable,
|
||||
__in DWORD dwColumn,
|
||||
__deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
|
||||
__inout SIZE_T* piBuffer
|
||||
);
|
||||
HRESULT DAPI EseGetColumnDword(
|
||||
__in JET_SESID jsSession,
|
||||
__in ESE_TABLE_SCHEMA tsTable,
|
||||
__in DWORD dwColumn,
|
||||
__out DWORD *pdwValue
|
||||
);
|
||||
HRESULT DAPI EseGetColumnBool(
|
||||
__in JET_SESID jsSession,
|
||||
__in ESE_TABLE_SCHEMA tsTable,
|
||||
__in DWORD dwColumn,
|
||||
__out BOOL *pfValue
|
||||
);
|
||||
HRESULT DAPI EseGetColumnString(
|
||||
__in JET_SESID jsSession,
|
||||
__in ESE_TABLE_SCHEMA tsTable,
|
||||
__in DWORD dwColumn,
|
||||
__out LPWSTR *ppszValue
|
||||
);
|
||||
|
||||
// Call this once for each key column in the table
|
||||
HRESULT DAPI EseBeginQuery(
|
||||
__in JET_SESID jsSession,
|
||||
__in JET_TABLEID jtTable,
|
||||
__in ESE_QUERY_TYPE qtQueryType,
|
||||
__out ESE_QUERY_HANDLE *peqhHandle
|
||||
);
|
||||
HRESULT DAPI EseSetQueryColumnBinary(
|
||||
__in ESE_QUERY_HANDLE eqhHandle,
|
||||
__in_bcount(cbBuffer) const BYTE* pbBuffer,
|
||||
__in SIZE_T cbBuffer,
|
||||
__in BOOL fFinal // If this is true, all other key columns in the query will be set to "*"
|
||||
);
|
||||
HRESULT DAPI EseSetQueryColumnDword(
|
||||
__in ESE_QUERY_HANDLE eqhHandle,
|
||||
__in DWORD dwData,
|
||||
__in BOOL fFinal // If this is true, all other key columns in the query will be set to "*"
|
||||
);
|
||||
HRESULT DAPI EseSetQueryColumnBool(
|
||||
__in ESE_QUERY_HANDLE eqhHandle,
|
||||
__in BOOL fValue,
|
||||
__in BOOL fFinal // If this is true, all other key columns in the query will be set to "*"
|
||||
);
|
||||
HRESULT DAPI EseSetQueryColumnString(
|
||||
__in ESE_QUERY_HANDLE eqhHandle,
|
||||
__in_z LPCWSTR pszString,
|
||||
__in BOOL fFinal // If this is true, all other key columns in the query will be set to "*"
|
||||
);
|
||||
HRESULT DAPI EseFinishQuery(
|
||||
__in ESE_QUERY_HANDLE eqhHandle
|
||||
);
|
||||
// Once all columns have been set up, call this and read the result
|
||||
HRESULT DAPI EseRunQuery(
|
||||
__in ESE_QUERY_HANDLE eqhHandle
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
229
tools/WIX/sdk/inc/fileutil.h
Normal file
229
tools/WIX/sdk/inc/fileutil.h
Normal file
|
@ -0,0 +1,229 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="fileutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for file helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ReleaseFile(h) if (INVALID_HANDLE_VALUE != h) { ::CloseHandle(h); h = INVALID_HANDLE_VALUE; }
|
||||
#define ReleaseFileHandle(h) if (INVALID_HANDLE_VALUE != h) { ::CloseHandle(h); h = INVALID_HANDLE_VALUE; }
|
||||
#define ReleaseFileFindHandle(h) if (INVALID_HANDLE_VALUE != h) { ::FindClose(h); h = INVALID_HANDLE_VALUE; }
|
||||
|
||||
#define FILEMAKEVERSION(major, minor, build, revision) static_cast<DWORD64>((static_cast<DWORD64>(major & 0xFFFF) << 48) \
|
||||
| (static_cast<DWORD64>(minor & 0xFFFF) << 32) \
|
||||
| (static_cast<DWORD64>(build & 0xFFFF) << 16) \
|
||||
| (static_cast<DWORD64>(revision & 0xFFFF)))
|
||||
|
||||
typedef enum FILE_ARCHITECTURE
|
||||
{
|
||||
FILE_ARCHITECTURE_UNKNOWN,
|
||||
FILE_ARCHITECTURE_X86,
|
||||
FILE_ARCHITECTURE_X64,
|
||||
FILE_ARCHITECTURE_IA64,
|
||||
} FILE_ARCHITECTURE;
|
||||
|
||||
typedef enum FILE_ENCODING
|
||||
{
|
||||
FILE_ENCODING_UNSPECIFIED = 0,
|
||||
// TODO: distinguish between non-BOM utf-8 and ANSI in the future?
|
||||
FILE_ENCODING_UTF8,
|
||||
FILE_ENCODING_UTF8_WITH_BOM,
|
||||
FILE_ENCODING_UTF16,
|
||||
FILE_ENCODING_UTF16_WITH_BOM,
|
||||
} FILE_ENCODING;
|
||||
|
||||
|
||||
LPWSTR DAPI FileFromPath(
|
||||
__in_z LPCWSTR wzPath
|
||||
);
|
||||
HRESULT DAPI FileResolvePath(
|
||||
__in_z LPCWSTR wzRelativePath,
|
||||
__out LPWSTR *ppwzFullPath
|
||||
);
|
||||
HRESULT DAPI FileStripExtension(
|
||||
__in_z LPCWSTR wzFileName,
|
||||
__out LPWSTR *ppwzFileNameNoExtension
|
||||
);
|
||||
HRESULT DAPI FileChangeExtension(
|
||||
__in_z LPCWSTR wzFileName,
|
||||
__in_z LPCWSTR wzNewExtension,
|
||||
__out LPWSTR *ppwzFileNameNewExtension
|
||||
);
|
||||
HRESULT DAPI FileAddSuffixToBaseName(
|
||||
__in_z LPCWSTR wzFileName,
|
||||
__in_z LPCWSTR wzSuffix,
|
||||
__out_z LPWSTR* psczNewFileName
|
||||
);
|
||||
HRESULT DAPI FileVersionFromString(
|
||||
__in_z LPCWSTR wzVersion,
|
||||
__out DWORD *pdwVerMajor,
|
||||
__out DWORD* pdwVerMinor
|
||||
);
|
||||
HRESULT DAPI FileVersionFromStringEx(
|
||||
__in_z LPCWSTR wzVersion,
|
||||
__in DWORD cchVersion,
|
||||
__out DWORD64* pqwVersion
|
||||
);
|
||||
HRESULT DAPI FileVersionToStringEx(
|
||||
__in DWORD64 qwVersion,
|
||||
__out LPWSTR* psczVersion
|
||||
);
|
||||
HRESULT DAPI FileSetPointer(
|
||||
__in HANDLE hFile,
|
||||
__in DWORD64 dw64Move,
|
||||
__out_opt DWORD64* pdw64NewPosition,
|
||||
__in DWORD dwMoveMethod
|
||||
);
|
||||
HRESULT DAPI FileSize(
|
||||
__in_z LPCWSTR pwzFileName,
|
||||
__out LONGLONG* pllSize
|
||||
);
|
||||
HRESULT DAPI FileSizeByHandle(
|
||||
__in HANDLE hFile,
|
||||
__out LONGLONG* pllSize
|
||||
);
|
||||
BOOL DAPI FileExistsEx(
|
||||
__in_z LPCWSTR wzPath,
|
||||
__out_opt DWORD *pdwAttributes
|
||||
);
|
||||
BOOL DAPI FileExistsAfterRestart(
|
||||
__in_z LPCWSTR wzPath,
|
||||
__out_opt DWORD *pdwAttributes
|
||||
);
|
||||
HRESULT DAPI FileRemoveFromPendingRename(
|
||||
__in_z LPCWSTR wzPath
|
||||
);
|
||||
HRESULT DAPI FileRead(
|
||||
__deref_out_bcount_full(*pcbDest) LPBYTE* ppbDest,
|
||||
__out DWORD* pcbDest,
|
||||
__in_z LPCWSTR wzSrcPath
|
||||
);
|
||||
HRESULT DAPI FileReadUntil(
|
||||
__deref_out_bcount_full(*pcbDest) LPBYTE* ppbDest,
|
||||
__out_range(<=, cbMaxRead) DWORD* pcbDest,
|
||||
__in_z LPCWSTR wzSrcPath,
|
||||
__in DWORD cbMaxRead
|
||||
);
|
||||
HRESULT DAPI FileReadPartial(
|
||||
__deref_out_bcount_full(*pcbDest) LPBYTE* ppbDest,
|
||||
__out_range(<=, cbMaxRead) DWORD* pcbDest,
|
||||
__in_z LPCWSTR wzSrcPath,
|
||||
__in BOOL fSeek,
|
||||
__in DWORD cbStartPosition,
|
||||
__in DWORD cbMaxRead,
|
||||
__in BOOL fPartialOK
|
||||
);
|
||||
HRESULT DAPI FileWrite(
|
||||
__in_z LPCWSTR pwzFileName,
|
||||
__in DWORD dwFlagsAndAttributes,
|
||||
__in_bcount_opt(cbData) LPCBYTE pbData,
|
||||
__in DWORD cbData,
|
||||
__out_opt HANDLE* pHandle
|
||||
);
|
||||
HRESULT DAPI FileWriteHandle(
|
||||
__in HANDLE hFile,
|
||||
__in_bcount_opt(cbData) LPCBYTE pbData,
|
||||
__in DWORD cbData
|
||||
);
|
||||
HRESULT DAPI FileCopyUsingHandles(
|
||||
__in HANDLE hSource,
|
||||
__in HANDLE hTarget,
|
||||
__in DWORD64 cbCopy,
|
||||
__out_opt DWORD64* pcbCopied
|
||||
);
|
||||
HRESULT DAPI FileEnsureCopy(
|
||||
__in_z LPCWSTR wzSource,
|
||||
__in_z LPCWSTR wzTarget,
|
||||
__in BOOL fOverwrite
|
||||
);
|
||||
HRESULT DAPI FileEnsureCopyWithRetry(
|
||||
__in LPCWSTR wzSource,
|
||||
__in LPCWSTR wzTarget,
|
||||
__in BOOL fOverwrite,
|
||||
__in DWORD cRetry,
|
||||
__in DWORD dwWaitMilliseconds
|
||||
);
|
||||
HRESULT DAPI FileEnsureMove(
|
||||
__in_z LPCWSTR wzSource,
|
||||
__in_z LPCWSTR wzTarget,
|
||||
__in BOOL fOverwrite,
|
||||
__in BOOL fAllowCopy
|
||||
);
|
||||
HRESULT DAPI FileEnsureMoveWithRetry(
|
||||
__in LPCWSTR wzSource,
|
||||
__in LPCWSTR wzTarget,
|
||||
__in BOOL fOverwrite,
|
||||
__in BOOL fAllowCopy,
|
||||
__in DWORD cRetry,
|
||||
__in DWORD dwWaitMilliseconds
|
||||
);
|
||||
HRESULT DAPI FileCreateTemp(
|
||||
__in_z LPCWSTR wzPrefix,
|
||||
__in_z LPCWSTR wzExtension,
|
||||
__deref_opt_out_z LPWSTR* ppwzTempFile,
|
||||
__out_opt HANDLE* phTempFile
|
||||
);
|
||||
HRESULT DAPI FileCreateTempW(
|
||||
__in_z LPCWSTR wzPrefix,
|
||||
__in_z LPCWSTR wzExtension,
|
||||
__deref_opt_out_z LPWSTR* ppwzTempFile,
|
||||
__out_opt HANDLE* phTempFile
|
||||
);
|
||||
HRESULT DAPI FileVersion(
|
||||
__in_z LPCWSTR wzFilename,
|
||||
__out DWORD *pdwVerMajor,
|
||||
__out DWORD* pdwVerMinor
|
||||
);
|
||||
HRESULT DAPI FileIsSame(
|
||||
__in_z LPCWSTR wzFile1,
|
||||
__in_z LPCWSTR wzFile2,
|
||||
__out LPBOOL lpfSameFile
|
||||
);
|
||||
HRESULT DAPI FileEnsureDelete(
|
||||
__in_z LPCWSTR wzFile
|
||||
);
|
||||
HRESULT DAPI FileGetTime(
|
||||
__in_z LPCWSTR wzFile,
|
||||
__out_opt LPFILETIME lpCreationTime,
|
||||
__out_opt LPFILETIME lpLastAccessTime,
|
||||
__out_opt LPFILETIME lpLastWriteTime
|
||||
);
|
||||
HRESULT DAPI FileSetTime(
|
||||
__in_z LPCWSTR wzFile,
|
||||
__in_opt const FILETIME *lpCreationTime,
|
||||
__in_opt const FILETIME *lpLastAccessTime,
|
||||
__in_opt const FILETIME *lpLastWriteTime
|
||||
);
|
||||
HRESULT DAPI FileResetTime(
|
||||
__in_z LPCWSTR wzFile
|
||||
);
|
||||
HRESULT DAPI FileExecutableArchitecture(
|
||||
__in_z LPCWSTR wzFile,
|
||||
__out FILE_ARCHITECTURE *pArchitecture
|
||||
);
|
||||
HRESULT DAPI FileToString(
|
||||
__in_z LPCWSTR wzFile,
|
||||
__out LPWSTR *psczString,
|
||||
__out_opt FILE_ENCODING *pfeEncoding
|
||||
);
|
||||
HRESULT DAPI FileFromString(
|
||||
__in_z LPCWSTR wzFile,
|
||||
__in DWORD dwFlagsAndAttributes,
|
||||
__in_z LPCWSTR sczString,
|
||||
__in FILE_ENCODING feEncoding
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
41
tools/WIX/sdk/inc/gdiputil.h
Normal file
41
tools/WIX/sdk/inc/gdiputil.h
Normal file
|
@ -0,0 +1,41 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="gdiputil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// GDI+ helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#define ExitOnGdipFailure(g, x, s) { x = GdipHresultFromStatus(g); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s); goto LExit; } }
|
||||
#define ExitOnGdipFailure1(g, x, f, s) { x = GdipHresultFromStatus(g); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; } }
|
||||
#define ExitOnGdipFailure2(g, x, f, s, t) { x = GdipHresultFromStatus(g); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace2(x, f, s, t); goto LExit; } }
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
HRESULT DAPI GdipBitmapFromResource(
|
||||
__in_opt HINSTANCE hinst,
|
||||
__in_z LPCSTR szId,
|
||||
__out Gdiplus::Bitmap **ppBitmap
|
||||
);
|
||||
|
||||
HRESULT DAPI GdipBitmapFromFile(
|
||||
__in_z LPCWSTR wzFileName,
|
||||
__out Gdiplus::Bitmap **ppBitmap
|
||||
);
|
||||
|
||||
HRESULT DAPI GdipHresultFromStatus(
|
||||
__in Gdiplus::Status gs
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
233
tools/WIX/sdk/inc/iis7util.h
Normal file
233
tools/WIX/sdk/inc/iis7util.h
Normal file
|
@ -0,0 +1,233 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="iis7util.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// IIS7 helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// IIS Config schema names
|
||||
#define IIS_CONFIG_ADD L"add"
|
||||
#define IIS_CONFIG_ALLOWED L"allowed"
|
||||
#define IIS_CONFIG_APPHOST_ROOT L"MACHINE/WEBROOT/APPHOST"
|
||||
#define IIS_CONFIG_APPLICATION L"application"
|
||||
#define IIS_CONFIG_APPPOOL L"applicationPool"
|
||||
#define IIS_CONFIG_APPPOOL_AUTO L"autoStart"
|
||||
#define IIS_CONFIG_APPPOOL_SECTION L"system.applicationHost/applicationPools"
|
||||
#define IIS_CONFIG_AUTOSTART L"serverAutoStart"
|
||||
#define IIS_CONFIG_BINDING L"binding"
|
||||
#define IIS_CONFIG_BINDINGINFO L"bindingInformation"
|
||||
#define IIS_CONFIG_BINDINGS L"bindings"
|
||||
#define IIS_CONFIG_DESC L"description"
|
||||
#define IIS_CONFIG_EXECUTABLE L"scriptProcessor"
|
||||
#define IIS_CONFIG_ENABLED L"enabled"
|
||||
#define IIS_CONFIG_ENABLE32 L"enable32BitAppOnWin64"
|
||||
#define IIS_CONFIG_FILEEXT L"fileExtension"
|
||||
#define IIS_CONFIG_FILTER L"filter"
|
||||
#define IIS_CONFIG_GROUPID L"groupId"
|
||||
#define IIS_CONFIG_HEADERS L"customHeaders"
|
||||
#define IIS_CONFIG_HTTPERRORS_SECTION L"system.webServer/httpErrors"
|
||||
#define IIS_CONFIG_ID L"id"
|
||||
#define IIS_CONFIG_ISAPI_SECTION L"system.webServer/isapiFilters"
|
||||
#define IIS_CONFIG_HTTPPROTO_SECTION L"system.webServer/httpProtocol"
|
||||
#define IIS_CONFIG_LOG_SECTION L"system.applicationHost/log"
|
||||
#define IIS_CONFIG_LOG_UTF8 L"logInUTF8"
|
||||
#define IIS_CONFIG_LIMITS L"limits"
|
||||
#define IIS_CONFIG_PIPELINEMODE L"managedPipelineMode"
|
||||
#define IIS_CONFIG_MANAGEDRUNTIMEVERSION L"managedRuntimeVersion"
|
||||
#define IIS_CONFIG_WEBLOG L"logFile"
|
||||
#define IIS_CONFIG_LOGFORMAT L"logFormat"
|
||||
#define IIS_CONFIG_MIMEMAP L"mimeMap"
|
||||
#define IIS_CONFIG_MIMETYPE L"mimeType"
|
||||
#define IIS_CONFIG_MODULES L"modules"
|
||||
#define IIS_CONFIG_NAME L"name"
|
||||
#define IIS_CONFIG_PATH L"path"
|
||||
#define IIS_CONFIG_PHYSPATH L"physicalPath"
|
||||
#define IIS_CONFIG_PROTOCOL L"protocol"
|
||||
#define IIS_CONFIG_RESTRICTION_SECTION L"system.webServer/security/isapiCgiRestriction"
|
||||
#define IIS_CONFIG_SITE L"site"
|
||||
#define IIS_CONFIG_SITE_ID L"id"
|
||||
#define IIS_CONFIG_SITES_SECTION L"system.applicationHost/sites"
|
||||
#define IIS_CONFIG_CONNECTTIMEOUT L"connectionTimeout"
|
||||
#define IIS_CONFIG_VDIR L"virtualDirectory"
|
||||
#define IIS_CONFIG_VALUE L"value"
|
||||
#define IIS_CONFIG_VERBS L"verb"
|
||||
#define IIS_CONFIG_WEBLIMITS_SECTION L"system.applicationHost/webLimits"
|
||||
#define IIS_CONFIG_WEBLIMITS_MAXBAND L"maxGlobalBandwidth"
|
||||
#define IIS_CONFIG_TRUE L"true"
|
||||
#define IIS_CONFIG_FALSE L"false"
|
||||
#define IIS_CONFIG_ERROR L"error"
|
||||
#define IIS_CONFIG_STATUSCODE L"statusCode"
|
||||
#define IIS_CONFIG_SUBSTATUS L"subStatusCode"
|
||||
#define IIS_CONFIG_LANGPATH L"prefixLanguageFilePath"
|
||||
#define IIS_CONFIG_RESPMODE L"responseMode"
|
||||
#define IIS_CONFIG_CLEAR L"clear"
|
||||
#define IIS_CONFIG_RECYCLING L"recycling"
|
||||
#define IIS_CONFIG_PEROIDRESTART L"periodicRestart"
|
||||
#define IIS_CONFIG_TIME L"time"
|
||||
#define IIS_CONFIG_REQUESTS L"requests"
|
||||
#define IIS_CONFIG_SCHEDULE L"schedule"
|
||||
#define IIS_CONFIG_MEMORY L"memory"
|
||||
#define IIS_CONFIG_PRIVMEMORY L"privateMemory"
|
||||
#define IIS_CONFIG_PROCESSMODEL L"processModel"
|
||||
#define IIS_CONFIG_IDLETIMEOUT L"idleTimeout"
|
||||
#define IIS_CONFIG_QUEUELENGTH L"queueLength"
|
||||
#define IIS_CONFIG_IDENITITYTYPE L"identityType"
|
||||
#define IIS_CONFIG_LOCALSYSTEM L"LocalSystem"
|
||||
#define IIS_CONFIG_LOCALSERVICE L"LocalService"
|
||||
#define IIS_CONFIG_NETWORKSERVICE L"NetworkService"
|
||||
#define IIS_CONFIG_SPECIFICUSER L"SpecificUser"
|
||||
#define IIS_CONFIG_APPLICATIONPOOLIDENTITY L"ApplicationPoolIdentity"
|
||||
#define IIS_CONFIG_USERNAME L"userName"
|
||||
#define IIS_CONFIG_PASSWORD L"password"
|
||||
#define IIS_CONFIG_CPU L"cpu"
|
||||
#define IIS_CONFIG_LIMIT L"limit"
|
||||
#define IIS_CONFIG_CPU_ACTION L"action"
|
||||
#define IIS_CONFIG_KILLW3WP L"KillW3wp"
|
||||
#define IIS_CONFIG_NOACTION L"NoAction"
|
||||
#define IIS_CONFIG_RESETINTERVAL L"resetInterval"
|
||||
#define IIS_CONFIG_MAXWRKPROCESSES L"maxProcesses"
|
||||
#define IIS_CONFIG_HANDLERS_SECTION L"system.webServer/handlers"
|
||||
#define IIS_CONFIG_DEFAULTDOC_SECTION L"system.webServer/defaultDocument"
|
||||
#define IIS_CONFIG_ASP_SECTION L"system.webServer/asp"
|
||||
#define IIS_CONFIG_SCRIPTERROR L"scriptErrorSentToBrowser"
|
||||
#define IIS_CONFIG_STATICCONTENT_SECTION L"system.webServer/staticContent"
|
||||
#define IIS_CONFIG_HTTPEXPIRES L"httpExpires"
|
||||
#define IIS_CONFIG_MAXAGE L"cacheControlMaxAge"
|
||||
#define IIS_CONFIG_CLIENTCACHE L"clientCache"
|
||||
#define IIS_CONFIG_CACHECONTROLMODE L"cacheControlMode"
|
||||
#define IIS_CONFIG_USEMAXAGE L"UseMaxAge"
|
||||
#define IIS_CONFIG_USEEXPIRES L"UseExpires"
|
||||
#define IIS_CONFIG_CACHECUST L"cacheControlCustom"
|
||||
#define IIS_CONFIG_ASP_SECTION L"system.webServer/asp"
|
||||
#define IIS_CONFIG_SESSION L"session"
|
||||
#define IIS_CONFIG_ALLOWSTATE L"allowSessionState"
|
||||
#define IIS_CONFIG_TIMEOUT L"timeout"
|
||||
#define IIS_CONFIG_BUFFERING L"bufferingOn"
|
||||
#define IIS_CONFIG_PARENTPATHS L"enableParentPaths"
|
||||
#define IIS_CONFIG_SCRIPTLANG L"scriptLanguage"
|
||||
#define IIS_CONFIG_SCRIPTTIMEOUT L"scriptTimeout"
|
||||
#define IIS_CONFIG_LIMITS L"limits"
|
||||
#define IIS_CONFIG_ALLOWDEBUG L"appAllowDebugging"
|
||||
#define IIS_CONFIG_ALLOWCLIENTDEBUG L"appAllowClientDebug"
|
||||
#define IIS_CONFIG_CERTIFICATEHASH L"certificateHash"
|
||||
#define IIS_CONFIG_CERTIFICATESTORENAME L"certificateStoreName"
|
||||
#define IIS_CONFIG_HTTPLOGGING_SECTION L"system.webServer/httpLogging"
|
||||
#define IIS_CONFIG_DONTLOG L"dontLog"
|
||||
|
||||
typedef BOOL (CALLBACK* ENUMAPHOSTELEMENTPROC)(IAppHostElement*, LPVOID);
|
||||
typedef BOOL (CALLBACK* VARIANTCOMPARATORPROC)(VARIANT*, VARIANT*);
|
||||
|
||||
HRESULT DAPI Iis7PutPropertyVariant(
|
||||
__in IAppHostElement *pElement,
|
||||
__in LPCWSTR wzPropName,
|
||||
__in VARIANT vtPut
|
||||
);
|
||||
|
||||
HRESULT DAPI Iis7PutPropertyInteger(
|
||||
__in IAppHostElement *pElement,
|
||||
__in LPCWSTR wzPropName,
|
||||
__in DWORD dValue
|
||||
);
|
||||
|
||||
HRESULT DAPI Iis7PutPropertyString(
|
||||
__in IAppHostElement *pElement,
|
||||
__in LPCWSTR wzPropName,
|
||||
__in LPCWSTR wzString
|
||||
);
|
||||
|
||||
HRESULT DAPI Iis7PutPropertyBool(
|
||||
__in IAppHostElement *pElement,
|
||||
__in LPCWSTR wzPropName,
|
||||
__in BOOL fValue);
|
||||
|
||||
HRESULT DAPI Iis7GetPropertyVariant(
|
||||
__in IAppHostElement *pElement,
|
||||
__in LPCWSTR wzPropName,
|
||||
__in VARIANT* vtGet
|
||||
);
|
||||
|
||||
HRESULT DAPI Iis7GetPropertyString(
|
||||
__in IAppHostElement *pElement,
|
||||
__in LPCWSTR wzPropName,
|
||||
__in LPWSTR* psczGet
|
||||
);
|
||||
|
||||
struct IIS7_APPHOSTELEMENTCOMPARISON
|
||||
{
|
||||
LPCWSTR sczElementName;
|
||||
LPCWSTR sczAttributeName;
|
||||
VARIANT* pvAttributeValue;
|
||||
VARIANTCOMPARATORPROC pComparator;
|
||||
};
|
||||
|
||||
BOOL DAPI Iis7IsMatchingAppHostElement(
|
||||
__in IAppHostElement *pElement,
|
||||
__in IIS7_APPHOSTELEMENTCOMPARISON* pComparison
|
||||
);
|
||||
|
||||
HRESULT DAPI Iis7FindAppHostElementString(
|
||||
__in IAppHostElementCollection *pCollection,
|
||||
__in LPCWSTR wzElementName,
|
||||
__in LPCWSTR wzAttributeName,
|
||||
__in LPCWSTR wzAttributeValue,
|
||||
__out IAppHostElement** ppElement,
|
||||
__out DWORD* pdwIndex
|
||||
);
|
||||
|
||||
HRESULT DAPI Iis7FindAppHostElementPath(
|
||||
__in IAppHostElementCollection *pCollection,
|
||||
__in LPCWSTR wzElementName,
|
||||
__in LPCWSTR wzAttributeName,
|
||||
__in LPCWSTR wzAttributeValue,
|
||||
__out IAppHostElement** ppElement,
|
||||
__out DWORD* pdwIndex
|
||||
);
|
||||
|
||||
HRESULT DAPI Iis7FindAppHostElementInteger(
|
||||
__in IAppHostElementCollection *pCollection,
|
||||
__in LPCWSTR wzElementName,
|
||||
__in LPCWSTR wzAttributeName,
|
||||
__in DWORD dwAttributeValue,
|
||||
__out IAppHostElement** ppElement,
|
||||
__out DWORD* pdwIndex
|
||||
);
|
||||
|
||||
HRESULT DAPI Iis7FindAppHostElementVariant(
|
||||
__in IAppHostElementCollection *pCollection,
|
||||
__in LPCWSTR wzElementName,
|
||||
__in LPCWSTR wzAttributeName,
|
||||
__in VARIANT* pvAttributeValue,
|
||||
__out IAppHostElement** ppElement,
|
||||
__out DWORD* pdwIndex
|
||||
);
|
||||
|
||||
HRESULT DAPI Iis7EnumAppHostElements(
|
||||
__in IAppHostElementCollection *pCollection,
|
||||
__in ENUMAPHOSTELEMENTPROC pCallback,
|
||||
__in LPVOID pContext,
|
||||
__out IAppHostElement** ppElement,
|
||||
__out DWORD* pdwIndex
|
||||
);
|
||||
|
||||
HRESULT DAPI Iis7FindAppHostMethod(
|
||||
__in IAppHostMethodCollection *pCollection,
|
||||
__in LPCWSTR wzMethodName,
|
||||
__out IAppHostMethod** ppMethod,
|
||||
__out DWORD* pdwIndex
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
49
tools/WIX/sdk/inc/inetutil.h
Normal file
49
tools/WIX/sdk/inc/inetutil.h
Normal file
|
@ -0,0 +1,49 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="inetutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Internet utilites.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ReleaseInternet(h) if (h) { ::InternetCloseHandle(h); h = NULL; }
|
||||
#define ReleaseNullInternet(h) if (h) { ::InternetCloseHandle(h); h = NULL; }
|
||||
|
||||
|
||||
// functions
|
||||
HRESULT DAPI InternetGetSizeByHandle(
|
||||
__in HINTERNET hiFile,
|
||||
__out LONGLONG* pllSize
|
||||
);
|
||||
|
||||
HRESULT DAPI InternetGetCreateTimeByHandle(
|
||||
__in HINTERNET hiFile,
|
||||
__out LPFILETIME pft
|
||||
);
|
||||
|
||||
HRESULT DAPI InternetQueryInfoString(
|
||||
__in HINTERNET h,
|
||||
__in DWORD dwInfo,
|
||||
__deref_out_z LPWSTR* psczValue
|
||||
);
|
||||
|
||||
HRESULT DAPI InternetQueryInfoNumber(
|
||||
__in HINTERNET h,
|
||||
__in DWORD dwInfo,
|
||||
__out LONG* plInfo
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
83
tools/WIX/sdk/inc/iniutil.h
Normal file
83
tools/WIX/sdk/inc/iniutil.h
Normal file
|
@ -0,0 +1,83 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="iniutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Ini/cfg file helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ReleaseIni(ih) if (ih) { IniUninitialize(ih); }
|
||||
#define ReleaseNullIni(ih) if (ih) { IniUninitialize(ih); ih = NULL; }
|
||||
|
||||
typedef void* INI_HANDLE;
|
||||
typedef const void* C_INI_HANDLE;
|
||||
|
||||
extern const int INI_HANDLE_BYTES;
|
||||
|
||||
struct INI_VALUE
|
||||
{
|
||||
LPCWSTR wzName;
|
||||
LPCWSTR wzValue;
|
||||
|
||||
DWORD dwLineNumber;
|
||||
};
|
||||
|
||||
HRESULT DAPI IniInitialize(
|
||||
__out_bcount(INI_HANDLE_BYTES) INI_HANDLE* piHandle
|
||||
);
|
||||
void DAPI IniUninitialize(
|
||||
__in_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle
|
||||
);
|
||||
HRESULT DAPI IniSetOpenTag(
|
||||
__inout_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle,
|
||||
__in_z_opt LPCWSTR wzOpenTagPrefix,
|
||||
__in_z_opt LPCWSTR wzOpenTagPostfix
|
||||
);
|
||||
HRESULT DAPI IniSetValueStyle(
|
||||
__inout_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle,
|
||||
__in_z_opt LPCWSTR wzValuePrefix,
|
||||
__in_z_opt LPCWSTR wzValueSeparator
|
||||
);
|
||||
HRESULT DAPI IniSetCommentStyle(
|
||||
__inout_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle,
|
||||
__in_z_opt LPCWSTR wzLinePrefix
|
||||
);
|
||||
HRESULT DAPI IniParse(
|
||||
__inout_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle,
|
||||
__in LPCWSTR wzPath,
|
||||
__out_opt FILE_ENCODING *pfeEncodingFound
|
||||
);
|
||||
HRESULT DAPI IniGetValueList(
|
||||
__in_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle,
|
||||
__deref_out_ecount_opt(pcValues) INI_VALUE** prgivValues,
|
||||
__out DWORD *pcValues
|
||||
);
|
||||
HRESULT DAPI IniGetValue(
|
||||
__in_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle,
|
||||
__in LPCWSTR wzValueName,
|
||||
__deref_out_z LPWSTR* psczValue
|
||||
);
|
||||
HRESULT DAPI IniSetValue(
|
||||
__in_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle,
|
||||
__in LPCWSTR wzValueName,
|
||||
__in_z_opt LPCWSTR wzValue
|
||||
);
|
||||
HRESULT DAPI IniWriteFile(
|
||||
__in_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle,
|
||||
__in_z_opt LPCWSTR wzPath,
|
||||
__in FILE_ENCODING feOverrideEncoding
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
122
tools/WIX/sdk/inc/jsonutil.h
Normal file
122
tools/WIX/sdk/inc/jsonutil.h
Normal file
|
@ -0,0 +1,122 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="jsonutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// JavaScript Object Notation (JSON) helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum JSON_TOKEN
|
||||
{
|
||||
JSON_TOKEN_NONE,
|
||||
JSON_TOKEN_ARRAY_START,
|
||||
JSON_TOKEN_ARRAY_VALUE,
|
||||
JSON_TOKEN_ARRAY_END,
|
||||
JSON_TOKEN_OBJECT_START,
|
||||
JSON_TOKEN_OBJECT_KEY,
|
||||
JSON_TOKEN_OBJECT_VALUE,
|
||||
JSON_TOKEN_OBJECT_END,
|
||||
JSON_TOKEN_VALUE,
|
||||
} JSON_TOKEN;
|
||||
|
||||
typedef struct _JSON_VALUE
|
||||
{
|
||||
} JSON_VALUE;
|
||||
|
||||
typedef struct _JSON_READER
|
||||
{
|
||||
CRITICAL_SECTION cs;
|
||||
LPWSTR sczJson;
|
||||
|
||||
LPWSTR pwz;
|
||||
JSON_TOKEN token;
|
||||
} JSON_READER;
|
||||
|
||||
typedef struct _JSON_WRITER
|
||||
{
|
||||
CRITICAL_SECTION cs;
|
||||
LPWSTR sczJson;
|
||||
|
||||
JSON_TOKEN* rgTokenStack;
|
||||
DWORD cTokens;
|
||||
DWORD cMaxTokens;
|
||||
} JSON_WRITER;
|
||||
|
||||
|
||||
DAPI_(HRESULT) JsonInitializeReader(
|
||||
__in_z LPCWSTR wzJson,
|
||||
__in JSON_READER* pReader
|
||||
);
|
||||
|
||||
DAPI_(void) JsonUninitializeReader(
|
||||
__in JSON_READER* pReader
|
||||
);
|
||||
|
||||
DAPI_(HRESULT) JsonReadNext(
|
||||
__in JSON_READER* pReader,
|
||||
__out JSON_TOKEN* pToken,
|
||||
__out JSON_VALUE* pValue
|
||||
);
|
||||
|
||||
DAPI_(HRESULT) JsonReadValue(
|
||||
__in JSON_READER* pReader,
|
||||
__in JSON_VALUE* pValue
|
||||
);
|
||||
|
||||
DAPI_(HRESULT) JsonInitializeWriter(
|
||||
__in JSON_WRITER* pWriter
|
||||
);
|
||||
|
||||
DAPI_(void) JsonUninitializeWriter(
|
||||
__in JSON_WRITER* pWriter
|
||||
);
|
||||
|
||||
DAPI_(HRESULT) JsonWriteBool(
|
||||
__in JSON_WRITER* pWriter,
|
||||
__in BOOL fValue
|
||||
);
|
||||
|
||||
DAPI_(HRESULT) JsonWriteNumber(
|
||||
__in JSON_WRITER* pWriter,
|
||||
__in DWORD dwValue
|
||||
);
|
||||
|
||||
DAPI_(HRESULT) JsonWriteString(
|
||||
__in JSON_WRITER* pWriter,
|
||||
__in_z LPCWSTR wzValue
|
||||
);
|
||||
|
||||
DAPI_(HRESULT) JsonWriteArrayStart(
|
||||
__in JSON_WRITER* pWriter
|
||||
);
|
||||
|
||||
DAPI_(HRESULT) JsonWriteArrayEnd(
|
||||
__in JSON_WRITER* pWriter
|
||||
);
|
||||
|
||||
DAPI_(HRESULT) JsonWriteObjectStart(
|
||||
__in JSON_WRITER* pWriter
|
||||
);
|
||||
|
||||
DAPI_(HRESULT) JsonWriteObjectKey(
|
||||
__in JSON_WRITER* pWriter,
|
||||
__in_z LPCWSTR wzKey
|
||||
);
|
||||
|
||||
DAPI_(HRESULT) JsonWriteObjectEnd(
|
||||
__in JSON_WRITER* pWriter
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
120
tools/WIX/sdk/inc/locutil.h
Normal file
120
tools/WIX/sdk/inc/locutil.h
Normal file
|
@ -0,0 +1,120 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="locutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for localization helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct LOC_STRING
|
||||
{
|
||||
LPWSTR wzId;
|
||||
LPWSTR wzText;
|
||||
BOOL bOverridable;
|
||||
};
|
||||
|
||||
const int LOC_CONTROL_NOT_SET = INT_MAX;
|
||||
|
||||
struct LOC_CONTROL
|
||||
{
|
||||
LPWSTR wzControl;
|
||||
int nX;
|
||||
int nY;
|
||||
int nWidth;
|
||||
int nHeight;
|
||||
LPWSTR wzText;
|
||||
};
|
||||
|
||||
const int WIX_LOCALIZATION_LANGUAGE_NOT_SET = INT_MAX;
|
||||
|
||||
struct WIX_LOCALIZATION
|
||||
{
|
||||
DWORD dwLangId;
|
||||
|
||||
DWORD cLocStrings;
|
||||
LOC_STRING* rgLocStrings;
|
||||
|
||||
DWORD cLocControls;
|
||||
LOC_CONTROL* rgLocControls;
|
||||
};
|
||||
|
||||
/********************************************************************
|
||||
LocProbeForFile - Searches for a localization file on disk.
|
||||
|
||||
*******************************************************************/
|
||||
HRESULT DAPI LocProbeForFile(
|
||||
__in_z LPCWSTR wzBasePath,
|
||||
__in_z LPCWSTR wzLocFileName,
|
||||
__in_z_opt LPCWSTR wzLanguage,
|
||||
__inout LPWSTR* psczPath
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
LocLoadFromFile - Loads a localization file
|
||||
|
||||
*******************************************************************/
|
||||
HRESULT DAPI LocLoadFromFile(
|
||||
__in_z LPCWSTR wzWxlFile,
|
||||
__out WIX_LOCALIZATION** ppWixLoc
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
LocLoadFromResource - loads a localization file from a module's data
|
||||
resource.
|
||||
|
||||
NOTE: The resource data must be UTF-8 encoded.
|
||||
*******************************************************************/
|
||||
HRESULT DAPI LocLoadFromResource(
|
||||
__in HMODULE hModule,
|
||||
__in_z LPCSTR szResource,
|
||||
__out WIX_LOCALIZATION** ppWixLoc
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
LocFree - free memory allocated when loading a localization file
|
||||
|
||||
*******************************************************************/
|
||||
void DAPI LocFree(
|
||||
__in_opt WIX_LOCALIZATION* pWixLoc
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
LocLocalizeString - replace any #(loc.id) in a string with the
|
||||
correct sub string
|
||||
*******************************************************************/
|
||||
HRESULT DAPI LocLocalizeString(
|
||||
__in const WIX_LOCALIZATION* pWixLoc,
|
||||
__inout LPWSTR* psczInput
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
LocGetControl - returns a control's localization information
|
||||
*******************************************************************/
|
||||
HRESULT DAPI LocGetControl(
|
||||
__in const WIX_LOCALIZATION* pWixLoc,
|
||||
__in_z LPCWSTR wzId,
|
||||
__out LOC_CONTROL** ppLocControl
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
LocGetString - returns a string's localization information
|
||||
*******************************************************************/
|
||||
extern "C" HRESULT DAPI LocGetString(
|
||||
__in const WIX_LOCALIZATION* pWixLoc,
|
||||
__in_z LPCWSTR wzId,
|
||||
__out LOC_STRING** ppLocString
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
210
tools/WIX/sdk/inc/logutil.h
Normal file
210
tools/WIX/sdk/inc/logutil.h
Normal file
|
@ -0,0 +1,210 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="logutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Logging helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define LogExitOnFailure(x, i, f) if (FAILED(x)) { LogErrorId(x, i, NULL, NULL, NULL); ExitTrace(x, f); goto LExit; }
|
||||
#define LogExitOnFailure1(x, i, f, s) if (FAILED(x)) { LogErrorId(x, i, s, NULL, NULL); ExitTrace1(x, f, s); goto LExit; }
|
||||
#define LogExitOnFailure2(x, i, f, s, t) if (FAILED(x)) { LogErrorId(x, i, s, t, NULL); ExitTrace2(x, f, s, t); goto LExit; }
|
||||
#define LogExitOnFailure3(x, i, f, s, t, u) if (FAILED(x)) { LogErrorId(x, i, s, t, u); ExitTrace3(x, f, s, t, u); goto LExit; }
|
||||
|
||||
#define LogExitOnRootFailure(x, i, f) if (FAILED(x)) { LogErrorId(x, i, NULL, NULL, NULL); Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, f); goto LExit; }
|
||||
#define LogExitOnRootFailure1(x, i, f, s) if (FAILED(x)) { LogErrorId(x, i, s, NULL, NULL); Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; }
|
||||
#define LogExitOnRootFailure2(x, i, f, s, t) if (FAILED(x)) { LogErrorId(x, i, s, t, NULL); Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace2(x, f, s, t); goto LExit; }
|
||||
#define LogExitOnRootFailure3(x, i, f, s, t, u) if (FAILED(x)) { LogErrorId(x, i, s, t, u); Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace3(x, f, s, t, u); goto LExit; }
|
||||
|
||||
typedef HRESULT (DAPI *PFN_LOGSTRINGWORKRAW)(
|
||||
__in_z LPCSTR szString,
|
||||
__in_opt LPVOID pvContext
|
||||
);
|
||||
|
||||
// enums
|
||||
|
||||
// structs
|
||||
|
||||
// functions
|
||||
BOOL DAPI IsLogInitialized();
|
||||
|
||||
BOOL DAPI IsLogOpen();
|
||||
|
||||
void DAPI LogInitialize(
|
||||
__in HMODULE hModule
|
||||
);
|
||||
|
||||
HRESULT DAPI LogOpen(
|
||||
__in_z_opt LPCWSTR wzDirectory,
|
||||
__in_z LPCWSTR wzLog,
|
||||
__in_z_opt LPCWSTR wzPostfix,
|
||||
__in_z_opt LPCWSTR wzExt,
|
||||
__in BOOL fAppend,
|
||||
__in BOOL fHeader,
|
||||
__out_z_opt LPWSTR* psczLogPath
|
||||
);
|
||||
|
||||
void DAPI LogDisable();
|
||||
|
||||
void DAPI LogRedirect(
|
||||
__in_opt PFN_LOGSTRINGWORKRAW vpfLogStringWorkRaw,
|
||||
__in_opt LPVOID pvContext
|
||||
);
|
||||
|
||||
HRESULT DAPI LogRename(
|
||||
__in_z LPCWSTR wzNewPath
|
||||
);
|
||||
|
||||
void DAPI LogClose(
|
||||
__in BOOL fFooter
|
||||
);
|
||||
|
||||
void DAPI LogUninitialize(
|
||||
__in BOOL fFooter
|
||||
);
|
||||
|
||||
BOOL DAPI LogIsOpen();
|
||||
|
||||
HRESULT DAPI LogSetSpecialParams(
|
||||
__in_z_opt LPCWSTR wzSpecialBeginLine,
|
||||
__in_z_opt LPCWSTR wzSpecialAfterTimeStamp,
|
||||
__in_z_opt LPCWSTR wzSpecialEndLine
|
||||
);
|
||||
|
||||
REPORT_LEVEL DAPI LogSetLevel(
|
||||
__in REPORT_LEVEL rl,
|
||||
__in BOOL fLogChange
|
||||
);
|
||||
|
||||
REPORT_LEVEL DAPI LogGetLevel();
|
||||
|
||||
HRESULT DAPI LogGetPath(
|
||||
__out_ecount_z(cchLogPath) LPWSTR pwzLogPath,
|
||||
__in DWORD cchLogPath
|
||||
);
|
||||
|
||||
HANDLE DAPI LogGetHandle();
|
||||
|
||||
HRESULT DAPIV LogString(
|
||||
__in REPORT_LEVEL rl,
|
||||
__in_z __format_string LPCSTR szFormat,
|
||||
...
|
||||
);
|
||||
|
||||
HRESULT DAPI LogStringArgs(
|
||||
__in REPORT_LEVEL rl,
|
||||
__in_z __format_string LPCSTR szFormat,
|
||||
__in va_list args
|
||||
);
|
||||
|
||||
HRESULT DAPIV LogStringLine(
|
||||
__in REPORT_LEVEL rl,
|
||||
__in_z __format_string LPCSTR szFormat,
|
||||
...
|
||||
);
|
||||
|
||||
HRESULT DAPI LogStringLineArgs(
|
||||
__in REPORT_LEVEL rl,
|
||||
__in_z __format_string LPCSTR szFormat,
|
||||
__in va_list args
|
||||
);
|
||||
|
||||
HRESULT DAPI LogIdModuleArgs(
|
||||
__in REPORT_LEVEL rl,
|
||||
__in DWORD dwLogId,
|
||||
__in_opt HMODULE hModule,
|
||||
__in va_list args
|
||||
);
|
||||
|
||||
/*
|
||||
* Wraps LogIdModuleArgs, so inline to save the function call
|
||||
*/
|
||||
|
||||
inline HRESULT LogId(
|
||||
__in REPORT_LEVEL rl,
|
||||
__in DWORD dwLogId,
|
||||
...
|
||||
)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
va_list args;
|
||||
|
||||
va_start(args, dwLogId);
|
||||
hr = LogIdModuleArgs(rl, dwLogId, NULL, args);
|
||||
va_end(args);
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Wraps LogIdModuleArgs, so inline to save the function call
|
||||
*/
|
||||
|
||||
inline HRESULT LogIdArgs(
|
||||
__in REPORT_LEVEL rl,
|
||||
__in DWORD dwLogId,
|
||||
__in va_list args
|
||||
)
|
||||
{
|
||||
return LogIdModuleArgs(rl, dwLogId, NULL, args);
|
||||
}
|
||||
|
||||
HRESULT DAPIV LogErrorString(
|
||||
__in HRESULT hrError,
|
||||
__in_z __format_string LPCSTR szFormat,
|
||||
...
|
||||
);
|
||||
|
||||
HRESULT DAPI LogErrorStringArgs(
|
||||
__in HRESULT hrError,
|
||||
__in_z __format_string LPCSTR szFormat,
|
||||
__in va_list args
|
||||
);
|
||||
|
||||
HRESULT DAPI LogErrorIdModule(
|
||||
__in HRESULT hrError,
|
||||
__in DWORD dwLogId,
|
||||
__in_opt HMODULE hModule,
|
||||
__in_z_opt LPCWSTR wzString1,
|
||||
__in_z_opt LPCWSTR wzString2,
|
||||
__in_z_opt LPCWSTR wzString3
|
||||
);
|
||||
|
||||
inline HRESULT LogErrorId(
|
||||
__in HRESULT hrError,
|
||||
__in DWORD dwLogId,
|
||||
__in_z_opt LPCWSTR wzString1,
|
||||
__in_z_opt LPCWSTR wzString2,
|
||||
__in_z_opt LPCWSTR wzString3
|
||||
)
|
||||
{
|
||||
return LogErrorIdModule(hrError, dwLogId, NULL, wzString1, wzString2, wzString3);
|
||||
}
|
||||
|
||||
HRESULT DAPI LogHeader();
|
||||
|
||||
HRESULT DAPI LogFooter();
|
||||
|
||||
HRESULT LogStringWorkRaw(
|
||||
__in_z LPCSTR szLogData
|
||||
);
|
||||
|
||||
// begin the switch of LogXXX to LogStringXXX
|
||||
#define Log LogString
|
||||
#define LogLine LogStringLine
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
65
tools/WIX/sdk/inc/memutil.h
Normal file
65
tools/WIX/sdk/inc/memutil.h
Normal file
|
@ -0,0 +1,65 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="memutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for memory helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ReleaseMem(p) if (p) { MemFree(p); }
|
||||
#define ReleaseNullMem(p) if (p) { MemFree(p); p = NULL; }
|
||||
|
||||
HRESULT DAPI MemInitialize();
|
||||
void DAPI MemUninitialize();
|
||||
|
||||
LPVOID DAPI MemAlloc(
|
||||
__in SIZE_T cbSize,
|
||||
__in BOOL fZero
|
||||
);
|
||||
LPVOID DAPI MemReAlloc(
|
||||
__in LPVOID pv,
|
||||
__in SIZE_T cbSize,
|
||||
__in BOOL fZero
|
||||
);
|
||||
HRESULT DAPI MemReAllocSecure(
|
||||
__in LPVOID pv,
|
||||
__in SIZE_T cbSize,
|
||||
__in BOOL fZero,
|
||||
__deref_out LPVOID* ppvNew
|
||||
);
|
||||
HRESULT DAPI MemEnsureArraySize(
|
||||
__deref_out_bcount(cArray * cbArrayType) LPVOID* ppvArray,
|
||||
__in DWORD cArray,
|
||||
__in SIZE_T cbArrayType,
|
||||
__in DWORD dwGrowthCount
|
||||
);
|
||||
HRESULT DAPI MemInsertIntoArray(
|
||||
__deref_out_bcount((cExistingArray + cNumInsertItems) * cbArrayType) LPVOID* ppvArray,
|
||||
__in DWORD dwInsertIndex,
|
||||
__in DWORD cNumInsertItems,
|
||||
__in DWORD cExistingArray,
|
||||
__in SIZE_T cbArrayType,
|
||||
__in DWORD dwGrowthCount
|
||||
);
|
||||
|
||||
HRESULT DAPI MemFree(
|
||||
__in LPVOID pv
|
||||
);
|
||||
SIZE_T DAPI MemSize(
|
||||
__in LPCVOID pv
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
62
tools/WIX/sdk/inc/metautil.h
Normal file
62
tools/WIX/sdk/inc/metautil.h
Normal file
|
@ -0,0 +1,62 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="metautil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// IIS Metabase helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#include <iadmw.h>
|
||||
#include <iiscnfg.h>
|
||||
#include <iwamreg.h>
|
||||
#include <mddefw.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// structs
|
||||
|
||||
// prototypes
|
||||
HRESULT DAPI MetaFindWebBase(
|
||||
__in IMSAdminBaseW* piMetabase,
|
||||
__in_z LPCWSTR wzIP,
|
||||
__in int iPort,
|
||||
__in_z LPCWSTR wzHeader,
|
||||
__in BOOL fSecure,
|
||||
__out_ecount(cchWebBase) LPWSTR wzWebBase,
|
||||
__in DWORD cchWebBase
|
||||
);
|
||||
HRESULT DAPI MetaFindFreeWebBase(
|
||||
__in IMSAdminBaseW* piMetabase,
|
||||
__out_ecount(cchWebBase) LPWSTR wzWebBase,
|
||||
__in DWORD cchWebBase
|
||||
);
|
||||
|
||||
HRESULT DAPI MetaOpenKey(
|
||||
__in IMSAdminBaseW* piMetabase,
|
||||
__in METADATA_HANDLE mhKey,
|
||||
__in_z LPCWSTR wzKey,
|
||||
__in DWORD dwAccess,
|
||||
__in DWORD cRetries,
|
||||
__out METADATA_HANDLE* pmh
|
||||
);
|
||||
HRESULT DAPI MetaGetValue(
|
||||
__in IMSAdminBaseW* piMetabase,
|
||||
__in METADATA_HANDLE mhKey,
|
||||
__in_z LPCWSTR wzKey,
|
||||
__inout METADATA_RECORD* pmr
|
||||
);
|
||||
void DAPI MetaFreeValue(
|
||||
__in METADATA_RECORD* pmr
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
49
tools/WIX/sdk/inc/osutil.h
Normal file
49
tools/WIX/sdk/inc/osutil.h
Normal file
|
@ -0,0 +1,49 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="osutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Operating system helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum OS_VERSION
|
||||
{
|
||||
OS_VERSION_UNKNOWN,
|
||||
OS_VERSION_WINNT,
|
||||
OS_VERSION_WIN2000,
|
||||
OS_VERSION_WINXP,
|
||||
OS_VERSION_WIN2003,
|
||||
OS_VERSION_VISTA,
|
||||
OS_VERSION_WIN2008,
|
||||
OS_VERSION_WIN7,
|
||||
OS_VERSION_WIN2008_R2,
|
||||
OS_VERSION_FUTURE
|
||||
} OS_VERSION;
|
||||
|
||||
void DAPI OsGetVersion(
|
||||
__out OS_VERSION* pVersion,
|
||||
__out DWORD* pdwServicePack
|
||||
);
|
||||
HRESULT DAPI OsCouldRunPrivileged(
|
||||
__out BOOL* pfPrivileged
|
||||
);
|
||||
HRESULT DAPI OsIsRunningPrivileged(
|
||||
__out BOOL* pfPrivileged
|
||||
);
|
||||
HRESULT DAPI OsIsUacEnabled(
|
||||
__out BOOL* pfUacEnabled
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
230
tools/WIX/sdk/inc/pathutil.h
Normal file
230
tools/WIX/sdk/inc/pathutil.h
Normal file
|
@ -0,0 +1,230 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="pathutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for path helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum PATH_EXPAND
|
||||
{
|
||||
PATH_EXPAND_ENVIRONMENT = 0x0001,
|
||||
PATH_EXPAND_FULLPATH = 0x0002,
|
||||
} PATH_EXPAND;
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
PathCommandLineAppend - appends a command line argument on to a
|
||||
string such that ::CommandLineToArgv() will shred them correctly
|
||||
(i.e. quote arguments with spaces in them).
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) PathCommandLineAppend(
|
||||
__deref_out_z LPWSTR* psczCommandLine,
|
||||
__in_z LPCWSTR wzArgument
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathFile - returns a pointer to the file part of the path.
|
||||
********************************************************************/
|
||||
DAPI_(LPWSTR) PathFile(
|
||||
__in_z LPCWSTR wzPath
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathExtension - returns a pointer to the extension part of the path
|
||||
(including the dot).
|
||||
********************************************************************/
|
||||
DAPI_(LPCWSTR) PathExtension(
|
||||
__in_z LPCWSTR wzPath
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathGetDirectory - extracts the directory from a path.
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) PathGetDirectory(
|
||||
__in_z LPCWSTR wzPath,
|
||||
__out LPWSTR *psczDirectory
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathExpand - gets the full path to a file resolving environment
|
||||
variables along the way.
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) PathExpand(
|
||||
__out LPWSTR *psczFullPath,
|
||||
__in_z LPCWSTR wzRelativePath,
|
||||
__in DWORD dwResolveFlags
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathPrefix - prefixes a full path with \\?\ or \\?\UNC as
|
||||
appropriate.
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) PathPrefix(
|
||||
__inout LPWSTR *psczFullPath
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathFixedBackslashTerminate - appends a \ if path does not have it
|
||||
already, but fails if the buffer is
|
||||
insufficient.
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) PathFixedBackslashTerminate(
|
||||
__inout_ecount_z(cchPath) LPWSTR wzPath,
|
||||
__in DWORD_PTR cchPath
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathBackslashTerminate - appends a \ if path does not have it
|
||||
already.
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) PathBackslashTerminate(
|
||||
__inout LPWSTR* psczPath
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathForCurrentProcess - gets the full path to the currently executing
|
||||
process or (optionally) a module inside the process.
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) PathForCurrentProcess(
|
||||
__inout LPWSTR *psczFullPath,
|
||||
__in_opt HMODULE hModule
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathRelativeToModule - gets the name of a file in the same
|
||||
directory as the current process or (optionally) a module inside
|
||||
the process
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) PathRelativeToModule(
|
||||
__inout LPWSTR *psczFullPath,
|
||||
__in_opt LPCWSTR wzFileName,
|
||||
__in_opt HMODULE hModule
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathCreateTempFile
|
||||
|
||||
Note: if wzDirectory is null, ::GetTempPath() will be used instead.
|
||||
if wzFileNameTemplate is null, GetTempFileName() will be used instead.
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) PathCreateTempFile(
|
||||
__in_opt LPCWSTR wzDirectory,
|
||||
__in_opt __format_string LPCWSTR wzFileNameTemplate,
|
||||
__in DWORD dwUniqueCount,
|
||||
__in DWORD dwFileAttributes,
|
||||
__out_opt LPWSTR* psczTempFile,
|
||||
__out_opt HANDLE* phTempFile
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathCreateTimeBasedTempFile - creates an empty temp file based on current
|
||||
system time
|
||||
********************************************************************/
|
||||
DAPI_(HRESULT) PathCreateTimeBasedTempFile(
|
||||
__in_z_opt LPCWSTR wzDirectory,
|
||||
__in_z LPCWSTR wzPrefix,
|
||||
__in_z_opt LPCWSTR wzPostfix,
|
||||
__in_z LPCWSTR wzExtension,
|
||||
__deref_opt_out_z LPWSTR* psczTempFile,
|
||||
__out_opt HANDLE* phTempFile
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathCreateTempDirectory
|
||||
|
||||
Note: if wzDirectory is null, ::GetTempPath() will be used instead.
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) PathCreateTempDirectory(
|
||||
__in_opt LPCWSTR wzDirectory,
|
||||
__in __format_string LPCWSTR wzDirectoryNameTemplate,
|
||||
__in DWORD dwUniqueCount,
|
||||
__out LPWSTR* psczTempDirectory
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathGetKnownFolder - returns the path to a well-known shell folder
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) PathGetKnownFolder(
|
||||
__in int csidl,
|
||||
__out LPWSTR* psczKnownFolder
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathIsAbsolute - returns true if the path is absolute; false
|
||||
otherwise.
|
||||
*******************************************************************/
|
||||
DAPI_(BOOL) PathIsAbsolute(
|
||||
__in_z LPCWSTR wzPath
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathConcat - like .NET's Path.Combine, lets you build up a path
|
||||
one piece -- file or directory -- at a time.
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) PathConcat(
|
||||
__in_opt LPCWSTR wzPath1,
|
||||
__in_opt LPCWSTR wzPath2,
|
||||
__deref_out_z LPWSTR* psczCombined
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathEnsureQuoted - ensures that a path is quoted; optionally,
|
||||
this function also terminates a directory with a backslash
|
||||
if it is not already.
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) PathEnsureQuoted(
|
||||
__inout LPWSTR* ppszPath,
|
||||
__in BOOL fDirectory
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathCompare - compares the fully expanded path of the two paths using
|
||||
::CompareStringW().
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) PathCompare(
|
||||
__in_z LPCWSTR wzPath1,
|
||||
__in_z LPCWSTR wzPath2,
|
||||
__out int* pnResult
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathCompress - sets the compression state on an existing file or
|
||||
directory. A no-op on file systems that don't
|
||||
support compression.
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) PathCompress(
|
||||
__in_z LPCWSTR wzPath
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathCanonicalizePath - wrapper around PathCanonicalizeW.
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) PathCanonicalizePath(
|
||||
__in_z LPCWSTR wzPath,
|
||||
__deref_out_z LPWSTR* psczCanonicalized
|
||||
);
|
||||
|
||||
/*******************************************************************
|
||||
PathDirectoryContainsPath - checks if wzPath is located inside
|
||||
wzDirectory.
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) PathDirectoryContainsPath(
|
||||
__in_z LPCWSTR wzDirectory,
|
||||
__in_z LPCWSTR wzPath
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
34
tools/WIX/sdk/inc/perfutil.h
Normal file
34
tools/WIX/sdk/inc/perfutil.h
Normal file
|
@ -0,0 +1,34 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="perfutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Performance helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// structs
|
||||
|
||||
|
||||
// functions
|
||||
void DAPI PerfInitialize(
|
||||
);
|
||||
void DAPI PerfClickTime(
|
||||
__out_opt LARGE_INTEGER* pliElapsed
|
||||
);
|
||||
double DAPI PerfConvertToSeconds(
|
||||
__in const LARGE_INTEGER* pli
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
49
tools/WIX/sdk/inc/polcutil.h
Normal file
49
tools/WIX/sdk/inc/polcutil.h
Normal file
|
@ -0,0 +1,49 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="polcutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for Policy utility functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
const LPCWSTR POLICY_BURN_REGISTRY_PATH = L"WiX\\Burn";
|
||||
|
||||
/********************************************************************
|
||||
PolcReadNumber - reads a number from policy.
|
||||
|
||||
NOTE: S_FALSE returned if policy not set.
|
||||
NOTE: out is set to default on S_FALSE or any error.
|
||||
********************************************************************/
|
||||
HRESULT DAPI PolcReadNumber(
|
||||
__in_z LPCWSTR wzPolicyPath,
|
||||
__in_z LPCWSTR wzPolicyName,
|
||||
__in DWORD dwDefault,
|
||||
__out DWORD* pdw
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
PolcReadString - reads a string from policy.
|
||||
|
||||
NOTE: S_FALSE returned if policy not set.
|
||||
NOTE: out is set to default on S_FALSE or any error.
|
||||
********************************************************************/
|
||||
HRESULT DAPI PolcReadString(
|
||||
__in_z LPCWSTR wzPolicyPath,
|
||||
__in_z LPCWSTR wzPolicyName,
|
||||
__in_z_opt LPCWSTR wzDefault,
|
||||
__deref_out_z LPWSTR* pscz
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
85
tools/WIX/sdk/inc/procutil.h
Normal file
85
tools/WIX/sdk/inc/procutil.h
Normal file
|
@ -0,0 +1,85 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="procutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for process helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// structs
|
||||
typedef struct _PROC_FILESYSTEMREDIRECTION
|
||||
{
|
||||
BOOL fDisabled;
|
||||
LPVOID pvRevertState;
|
||||
} PROC_FILESYSTEMREDIRECTION;
|
||||
|
||||
HRESULT DAPI ProcElevated(
|
||||
__in HANDLE hProcess,
|
||||
__out BOOL* pfElevated
|
||||
);
|
||||
|
||||
HRESULT DAPI ProcWow64(
|
||||
__in HANDLE hProcess,
|
||||
__out BOOL* pfWow64
|
||||
);
|
||||
HRESULT DAPI ProcDisableWowFileSystemRedirection(
|
||||
__in PROC_FILESYSTEMREDIRECTION* pfsr
|
||||
);
|
||||
HRESULT DAPI ProcRevertWowFileSystemRedirection(
|
||||
__in PROC_FILESYSTEMREDIRECTION* pfsr
|
||||
);
|
||||
|
||||
HRESULT DAPI ProcExec(
|
||||
__in_z LPCWSTR wzExecutablePath,
|
||||
__in_z_opt LPCWSTR wzCommandLine,
|
||||
__in int nCmdShow,
|
||||
__out HANDLE *phProcess
|
||||
);
|
||||
HRESULT DAPI ProcExecute(
|
||||
__in_z LPWSTR wzCommand,
|
||||
__out HANDLE *phProcess,
|
||||
__out_opt HANDLE *phChildStdIn,
|
||||
__out_opt HANDLE *phChildStdOutErr
|
||||
);
|
||||
HRESULT DAPI ProcWaitForCompletion(
|
||||
__in HANDLE hProcess,
|
||||
__in DWORD dwTimeout,
|
||||
__out DWORD *pReturnCode
|
||||
);
|
||||
HRESULT DAPI ProcWaitForIds(
|
||||
__in_ecount(cProcessIds) const DWORD* pdwProcessIds,
|
||||
__in DWORD cProcessIds,
|
||||
__in DWORD dwMilliseconds
|
||||
);
|
||||
HRESULT DAPI ProcCloseIds(
|
||||
__in_ecount(cProcessIds) const DWORD* pdwProcessIds,
|
||||
__in DWORD cProcessIds
|
||||
);
|
||||
|
||||
// following code in proc2utl.cpp due to dependency on PSAPI.DLL.
|
||||
HRESULT DAPI ProcFindAllIdsFromExeName(
|
||||
__in_z LPCWSTR wzExeName,
|
||||
__out DWORD** ppdwProcessIds,
|
||||
__out DWORD* pcProcessIds
|
||||
);
|
||||
|
||||
// following code in proc3utl.cpp due to dependency on Wtsapi32.DLL.
|
||||
HRESULT DAPI ProcExecuteAsInteractiveUser(
|
||||
__in_z LPCWSTR wzExecutablePath,
|
||||
__in_z LPCWSTR wzCommand,
|
||||
__out HANDLE *phProcess
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
245
tools/WIX/sdk/inc/regutil.h
Normal file
245
tools/WIX/sdk/inc/regutil.h
Normal file
|
@ -0,0 +1,245 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="regutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Registry helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#define ReleaseRegKey(h) if (h) { ::RegCloseKey(h); h = NULL; }
|
||||
|
||||
typedef enum REG_KEY_BITNESS
|
||||
{
|
||||
REG_KEY_DEFAULT = 0,
|
||||
REG_KEY_32BIT = 1,
|
||||
REG_KEY_64BIT = 2
|
||||
} REG_KEY_BITNESS;
|
||||
|
||||
typedef LSTATUS (APIENTRY *PFN_REGCREATEKEYEXW)(
|
||||
__in HKEY hKey,
|
||||
__in LPCWSTR lpSubKey,
|
||||
__reserved DWORD Reserved,
|
||||
__in_opt LPWSTR lpClass,
|
||||
__in DWORD dwOptions,
|
||||
__in REGSAM samDesired,
|
||||
__in_opt CONST LPSECURITY_ATTRIBUTES lpSecurityAttributes,
|
||||
__out PHKEY phkResult,
|
||||
__out_opt LPDWORD lpdwDisposition
|
||||
);
|
||||
typedef LSTATUS (APIENTRY *PFN_REGOPENKEYEXW)(
|
||||
__in HKEY hKey,
|
||||
__in_opt LPCWSTR lpSubKey,
|
||||
__reserved DWORD ulOptions,
|
||||
__in REGSAM samDesired,
|
||||
__out PHKEY phkResult
|
||||
);
|
||||
typedef LSTATUS (APIENTRY *PFN_REGDELETEKEYEXW)(
|
||||
__in HKEY hKey,
|
||||
__in LPCWSTR lpSubKey,
|
||||
__in REGSAM samDesired,
|
||||
__reserved DWORD Reserved
|
||||
);
|
||||
typedef LSTATUS (APIENTRY *PFN_REGDELETEKEYW)(
|
||||
__in HKEY hKey,
|
||||
__in LPCWSTR lpSubKey
|
||||
);
|
||||
typedef LSTATUS (APIENTRY *PFN_REGENUMKEYEXW)(
|
||||
__in HKEY hKey,
|
||||
__in DWORD dwIndex,
|
||||
__out LPWSTR lpName,
|
||||
__inout LPDWORD lpcName,
|
||||
__reserved LPDWORD lpReserved,
|
||||
__inout LPWSTR lpClass,
|
||||
__inout_opt LPDWORD lpcClass,
|
||||
__out_opt PFILETIME lpftLastWriteTime
|
||||
);
|
||||
typedef LSTATUS (APIENTRY *PFN_REGENUMVALUEW)(
|
||||
__in HKEY hKey,
|
||||
__in DWORD dwIndex,
|
||||
__out LPWSTR lpValueName,
|
||||
__inout LPDWORD lpcchValueName,
|
||||
__reserved LPDWORD lpReserved,
|
||||
__out_opt LPDWORD lpType,
|
||||
__out_opt LPBYTE lpData,
|
||||
__out_opt LPDWORD lpcbData
|
||||
);
|
||||
typedef LSTATUS (APIENTRY *PFN_REGQUERYINFOKEYW)(
|
||||
__in HKEY hKey,
|
||||
__out LPWSTR lpClass,
|
||||
__inout_opt LPDWORD lpcClass,
|
||||
__reserved LPDWORD lpReserved,
|
||||
__out_opt LPDWORD lpcSubKeys,
|
||||
__out_opt LPDWORD lpcMaxSubKeyLen,
|
||||
__out_opt LPDWORD lpcMaxClassLen,
|
||||
__out_opt LPDWORD lpcValues,
|
||||
__out_opt LPDWORD lpcMaxValueNameLen,
|
||||
__out_opt LPDWORD lpcMaxValueLen,
|
||||
__out_opt LPDWORD lpcbSecurityDescriptor,
|
||||
__out_opt PFILETIME lpftLastWriteTime
|
||||
);
|
||||
typedef LSTATUS (APIENTRY *PFN_REGQUERYVALUEEXW)(
|
||||
__in HKEY hKey,
|
||||
__in_opt LPCWSTR lpValueName,
|
||||
__reserved LPDWORD lpReserved,
|
||||
__out_opt LPDWORD lpType,
|
||||
__out_bcount_part_opt(*lpcbData, *lpcbData) __out_data_source(REGISTRY) LPBYTE lpData,
|
||||
__inout_opt LPDWORD lpcbData
|
||||
);
|
||||
typedef LSTATUS (APIENTRY *PFN_REGSETVALUEEXW)(
|
||||
__in HKEY hKey,
|
||||
__in_opt LPCWSTR lpValueName,
|
||||
__reserved DWORD Reserved,
|
||||
__in DWORD dwType,
|
||||
__in_bcount_opt(cbData) CONST BYTE* lpData,
|
||||
__in DWORD cbData
|
||||
);
|
||||
typedef LSTATUS (APIENTRY *PFN_REGDELETEVALUEW)(
|
||||
__in HKEY hKey,
|
||||
__in_opt LPCWSTR lpValueName
|
||||
);
|
||||
|
||||
HRESULT DAPI RegInitialize();
|
||||
void DAPI RegUninitialize();
|
||||
|
||||
void DAPI RegFunctionOverride(
|
||||
__in_opt PFN_REGCREATEKEYEXW pfnRegCreateKeyExW,
|
||||
__in_opt PFN_REGOPENKEYEXW pfnRegOpenKeyExW,
|
||||
__in_opt PFN_REGDELETEKEYEXW pfnRegDeleteKeyExW,
|
||||
__in_opt PFN_REGENUMKEYEXW pfnRegEnumKeyExW,
|
||||
__in_opt PFN_REGENUMVALUEW pfnRegEnumValueW,
|
||||
__in_opt PFN_REGQUERYINFOKEYW pfnRegQueryInfoKeyW,
|
||||
__in_opt PFN_REGQUERYVALUEEXW pfnRegQueryValueExW,
|
||||
__in_opt PFN_REGSETVALUEEXW pfnRegSetValueExW,
|
||||
__in_opt PFN_REGDELETEVALUEW pfnRegDeleteValueW
|
||||
);
|
||||
HRESULT DAPI RegCreate(
|
||||
__in HKEY hkRoot,
|
||||
__in_z LPCWSTR wzSubKey,
|
||||
__in DWORD dwAccess,
|
||||
__out HKEY* phk
|
||||
);
|
||||
HRESULT DAPI RegCreateEx(
|
||||
__in HKEY hkRoot,
|
||||
__in_z LPCWSTR wzSubKey,
|
||||
__in DWORD dwAccess,
|
||||
__in BOOL fVolatile,
|
||||
__in_opt SECURITY_ATTRIBUTES* pSecurityAttributes,
|
||||
__out HKEY* phk,
|
||||
__out_opt BOOL* pfCreated
|
||||
);
|
||||
HRESULT DAPI RegOpen(
|
||||
__in HKEY hkRoot,
|
||||
__in_z LPCWSTR wzSubKey,
|
||||
__in DWORD dwAccess,
|
||||
__out HKEY* phk
|
||||
);
|
||||
HRESULT DAPI RegDelete(
|
||||
__in HKEY hkRoot,
|
||||
__in_z LPCWSTR wzSubKey,
|
||||
__in REG_KEY_BITNESS kbKeyBitness,
|
||||
__in BOOL fDeleteTree
|
||||
);
|
||||
HRESULT DAPI RegKeyEnum(
|
||||
__in HKEY hk,
|
||||
__in DWORD dwIndex,
|
||||
__deref_out_z LPWSTR* psczKey
|
||||
);
|
||||
HRESULT DAPI RegValueEnum(
|
||||
__in HKEY hk,
|
||||
__in DWORD dwIndex,
|
||||
__deref_out_z LPWSTR* psczName,
|
||||
__out_opt DWORD *pdwType
|
||||
);
|
||||
HRESULT DAPI RegGetType(
|
||||
__in HKEY hk,
|
||||
__in_z_opt LPCWSTR wzName,
|
||||
__out DWORD *pdwType
|
||||
);
|
||||
HRESULT DAPI RegReadBinary(
|
||||
__in HKEY hk,
|
||||
__in_z_opt LPCWSTR wzName,
|
||||
__deref_out_bcount_opt(*pcbBuffer) BYTE** ppbBuffer,
|
||||
__out SIZE_T *pcbBuffer
|
||||
);
|
||||
HRESULT DAPI RegReadString(
|
||||
__in HKEY hk,
|
||||
__in_z_opt LPCWSTR wzName,
|
||||
__deref_out_z LPWSTR* psczValue
|
||||
);
|
||||
HRESULT DAPI RegReadStringArray(
|
||||
__in HKEY hk,
|
||||
__in_z_opt LPCWSTR wzName,
|
||||
__deref_out_ecount_opt(pcStrings) LPWSTR** prgsczStrings,
|
||||
__out DWORD *pcStrings
|
||||
);
|
||||
HRESULT DAPI RegReadVersion(
|
||||
__in HKEY hk,
|
||||
__in_z_opt LPCWSTR wzName,
|
||||
__out DWORD64* pdw64Version
|
||||
);
|
||||
HRESULT DAPI RegReadNumber(
|
||||
__in HKEY hk,
|
||||
__in_z_opt LPCWSTR wzName,
|
||||
__out DWORD* pdwValue
|
||||
);
|
||||
HRESULT DAPI RegReadQword(
|
||||
__in HKEY hk,
|
||||
__in_z_opt LPCWSTR wzName,
|
||||
__out DWORD64* pqwValue
|
||||
);
|
||||
HRESULT DAPI RegWriteBinary(
|
||||
__in HKEY hk,
|
||||
__in_z_opt LPCWSTR wzName,
|
||||
__in_bcount(cbBuffer) const BYTE *pbBuffer,
|
||||
__in DWORD cbBuffer
|
||||
);
|
||||
HRESULT DAPI RegWriteString(
|
||||
__in HKEY hk,
|
||||
__in_z_opt LPCWSTR wzName,
|
||||
__in_z_opt LPCWSTR wzValue
|
||||
);
|
||||
HRESULT DAPI RegWriteStringArray(
|
||||
__in HKEY hk,
|
||||
__in_z_opt LPCWSTR wzName,
|
||||
__in_ecount(cValues) LPWSTR *rgwzStrings,
|
||||
__in DWORD cStrings
|
||||
);
|
||||
HRESULT DAPI RegWriteStringFormatted(
|
||||
__in HKEY hk,
|
||||
__in_z_opt LPCWSTR wzName,
|
||||
__in __format_string LPCWSTR szFormat,
|
||||
...
|
||||
);
|
||||
HRESULT DAPI RegWriteNumber(
|
||||
__in HKEY hk,
|
||||
__in_z_opt LPCWSTR wzName,
|
||||
__in DWORD dwValue
|
||||
);
|
||||
HRESULT DAPI RegWriteQword(
|
||||
__in HKEY hk,
|
||||
__in_z_opt LPCWSTR wzName,
|
||||
__in DWORD64 qwValue
|
||||
);
|
||||
HRESULT DAPI RegQueryKey(
|
||||
__in HKEY hk,
|
||||
__out_opt DWORD* pcSubKeys,
|
||||
__out_opt DWORD* pcValues
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
55
tools/WIX/sdk/inc/resrutil.h
Normal file
55
tools/WIX/sdk/inc/resrutil.h
Normal file
|
@ -0,0 +1,55 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="resrutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Resource read helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
HRESULT DAPI ResGetStringLangId(
|
||||
__in_opt LPCWSTR wzPath,
|
||||
__in UINT uID,
|
||||
__out WORD *pwLangId
|
||||
);
|
||||
|
||||
HRESULT DAPI ResReadString(
|
||||
__in HINSTANCE hinst,
|
||||
__in UINT uID,
|
||||
__deref_out_z LPWSTR* ppwzString
|
||||
);
|
||||
|
||||
HRESULT DAPI ResReadStringAnsi(
|
||||
__in HINSTANCE hinst,
|
||||
__in UINT uID,
|
||||
__deref_out_z LPSTR* ppszString
|
||||
);
|
||||
|
||||
HRESULT DAPI ResReadData(
|
||||
__in_opt HINSTANCE hinst,
|
||||
__in_z LPCSTR szDataName,
|
||||
__deref_out_bcount(*pcb) PVOID *ppv,
|
||||
__out DWORD *pcb
|
||||
);
|
||||
|
||||
HRESULT DAPI ResExportDataToFile(
|
||||
__in_z LPCSTR szDataName,
|
||||
__in_z LPCWSTR wzTargetFile,
|
||||
__in DWORD dwCreationDisposition
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
43
tools/WIX/sdk/inc/reswutil.h
Normal file
43
tools/WIX/sdk/inc/reswutil.h
Normal file
|
@ -0,0 +1,43 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="reswutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Resource writer helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
HRESULT DAPI ResWriteString(
|
||||
__in_z LPCWSTR wzResourceFile,
|
||||
__in DWORD dwDataId,
|
||||
__in_z LPCWSTR wzData,
|
||||
__in WORD wLangId
|
||||
);
|
||||
|
||||
HRESULT DAPI ResWriteData(
|
||||
__in_z LPCWSTR wzResourceFile,
|
||||
__in_z LPCSTR szDataName,
|
||||
__in PVOID pData,
|
||||
__in DWORD cbData
|
||||
);
|
||||
|
||||
HRESULT DAPI ResImportDataFromFile(
|
||||
__in_z LPCWSTR wzTargetFile,
|
||||
__in_z LPCWSTR wzSourceFile,
|
||||
__in_z LPCSTR szDataName
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
64
tools/WIX/sdk/inc/rexutil.h
Normal file
64
tools/WIX/sdk/inc/rexutil.h
Normal file
|
@ -0,0 +1,64 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="rexutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Resource Cabinet Extract Utilities
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#include <sys\stat.h>
|
||||
#include <fdi.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// defines
|
||||
#define FILETABLESIZE 40
|
||||
|
||||
// structs
|
||||
struct MEM_FILE
|
||||
{
|
||||
LPCBYTE vpStart;
|
||||
UINT uiCurrent;
|
||||
UINT uiLength;
|
||||
};
|
||||
|
||||
typedef enum FAKE_FILE_TYPE { NORMAL_FILE, MEMORY_FILE } FAKE_FILE_TYPE;
|
||||
|
||||
typedef HRESULT (*REX_CALLBACK_PROGRESS)(BOOL fBeginFile, LPCWSTR wzFileId, LPVOID pvContext);
|
||||
typedef VOID (*REX_CALLBACK_WRITE)(UINT cb);
|
||||
|
||||
|
||||
struct FAKE_FILE // used __in internal file table
|
||||
{
|
||||
BOOL fUsed;
|
||||
FAKE_FILE_TYPE fftType;
|
||||
MEM_FILE mfFile; // State for memory file
|
||||
HANDLE hFile; // Handle for disk file
|
||||
};
|
||||
|
||||
// functions
|
||||
HRESULT RexInitialize();
|
||||
void RexUninitialize();
|
||||
|
||||
HRESULT RexExtract(
|
||||
__in_z LPCSTR szResource,
|
||||
__in_z LPCWSTR wzExtractId,
|
||||
__in_z LPCWSTR wzExtractDir,
|
||||
__in_z LPCWSTR wzExtractName,
|
||||
__in REX_CALLBACK_PROGRESS pfnProgress,
|
||||
__in REX_CALLBACK_WRITE pfnWrite,
|
||||
__in LPVOID pvContext
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
56
tools/WIX/sdk/inc/rmutil.h
Normal file
56
tools/WIX/sdk/inc/rmutil.h
Normal file
|
@ -0,0 +1,56 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="rmutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for Restart Manager utility functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct _RMU_SESSION *PRMU_SESSION;
|
||||
|
||||
HRESULT DAPI RmuJoinSession(
|
||||
__out PRMU_SESSION *ppSession,
|
||||
__in_z LPCWSTR wzSessionKey
|
||||
);
|
||||
|
||||
HRESULT DAPI RmuAddFile(
|
||||
__in PRMU_SESSION pSession,
|
||||
__in_z LPCWSTR wzPath
|
||||
);
|
||||
|
||||
HRESULT DAPI RmuAddProcessById(
|
||||
__in PRMU_SESSION pSession,
|
||||
__in DWORD dwProcessId
|
||||
);
|
||||
|
||||
HRESULT DAPI RmuAddProcessesByName(
|
||||
__in PRMU_SESSION pSession,
|
||||
__in_z LPCWSTR wzProcessName
|
||||
);
|
||||
|
||||
HRESULT DAPI RmuAddService(
|
||||
__in PRMU_SESSION pSession,
|
||||
__in_z LPCWSTR wzServiceName
|
||||
);
|
||||
|
||||
HRESULT DAPI RmuRegisterResources(
|
||||
__in PRMU_SESSION pSession
|
||||
);
|
||||
|
||||
HRESULT DAPI RmuEndSession(
|
||||
__in PRMU_SESSION pSession
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
101
tools/WIX/sdk/inc/rssutil.h
Normal file
101
tools/WIX/sdk/inc/rssutil.h
Normal file
|
@ -0,0 +1,101 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="rssutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// RSS helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ReleaseRssChannel(p) if (p) { RssFreeChannel(p); }
|
||||
#define ReleaseNullRssChannel(p) if (p) { RssFreeChannel(p); p = NULL; }
|
||||
|
||||
|
||||
struct RSS_UNKNOWN_ATTRIBUTE
|
||||
{
|
||||
LPWSTR wzNamespace;
|
||||
LPWSTR wzAttribute;
|
||||
LPWSTR wzValue;
|
||||
|
||||
RSS_UNKNOWN_ATTRIBUTE* pNext;
|
||||
};
|
||||
|
||||
struct RSS_UNKNOWN_ELEMENT
|
||||
{
|
||||
LPWSTR wzNamespace;
|
||||
LPWSTR wzElement;
|
||||
LPWSTR wzValue;
|
||||
|
||||
RSS_UNKNOWN_ATTRIBUTE* pAttributes;
|
||||
RSS_UNKNOWN_ELEMENT* pNext;
|
||||
};
|
||||
|
||||
struct RSS_ITEM
|
||||
{
|
||||
LPWSTR wzTitle;
|
||||
LPWSTR wzLink;
|
||||
LPWSTR wzDescription;
|
||||
|
||||
LPWSTR wzGuid;
|
||||
FILETIME ftPublished;
|
||||
|
||||
LPWSTR wzEnclosureUrl;
|
||||
DWORD dwEnclosureSize;
|
||||
LPWSTR wzEnclosureType;
|
||||
|
||||
RSS_UNKNOWN_ELEMENT* pUnknownElements;
|
||||
};
|
||||
|
||||
struct RSS_CHANNEL
|
||||
{
|
||||
LPWSTR wzTitle;
|
||||
LPWSTR wzLink;
|
||||
LPWSTR wzDescription;
|
||||
DWORD dwTimeToLive;
|
||||
|
||||
RSS_UNKNOWN_ELEMENT* pUnknownElements;
|
||||
|
||||
DWORD cItems;
|
||||
RSS_ITEM rgItems[1];
|
||||
};
|
||||
|
||||
HRESULT DAPI RssInitialize(
|
||||
);
|
||||
|
||||
void DAPI RssUninitialize(
|
||||
);
|
||||
|
||||
HRESULT DAPI RssParseFromString(
|
||||
__in_z LPCWSTR wzRssString,
|
||||
__out RSS_CHANNEL **ppChannel
|
||||
);
|
||||
|
||||
HRESULT DAPI RssParseFromFile(
|
||||
__in_z LPCWSTR wzRssFile,
|
||||
__out RSS_CHANNEL **ppChannel
|
||||
);
|
||||
|
||||
// Adding this until we have the updated specstrings.h
|
||||
#ifndef __in_xcount
|
||||
#define __in_xcount(size)
|
||||
#endif
|
||||
|
||||
void DAPI RssFreeChannel(
|
||||
__in_xcount(pChannel->cItems) RSS_CHANNEL *pChannel
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
271
tools/WIX/sdk/inc/sceutil.h
Normal file
271
tools/WIX/sdk/inc/sceutil.h
Normal file
|
@ -0,0 +1,271 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="sceutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for SQL Compact Edition helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <sqlce_oledb.h>
|
||||
#include <sqlce_sync.h>
|
||||
#include <sqlce_err.h>
|
||||
|
||||
typedef void* SCE_DATABASE_HANDLE;
|
||||
typedef void* SCE_ROW_HANDLE;
|
||||
typedef void* SCE_QUERY_HANDLE;
|
||||
typedef void* SCE_QUERY_RESULTS_HANDLE;
|
||||
|
||||
extern const int SCE_ROW_HANDLE_BYTES;
|
||||
extern const int SCE_QUERY_HANDLE_BYTES;
|
||||
extern const int SCE_QUERY_RESULTS_HANDLE_BYTES;
|
||||
|
||||
#define ReleaseSceRow(prrh) if (prrh) { SceFreeRow(prrh); }
|
||||
#define ReleaseNullSceRow(prrh) if (prrh) { SceFreeRow(prrh); prrh = NULL; }
|
||||
#define ReleaseSceQuery(pqh) if (pqh) { SceFreeQuery(pqh); }
|
||||
#define ReleaseNullSceQuery(pqh) if (pqh) { SceFreeQuery(pqh); pqh = NULL; }
|
||||
#define ReleaseSceQueryResults(pqh) if (pqh) { SceFreeQueryResults(pqh); }
|
||||
#define ReleaseNullSceQueryResults(pqh) if (pqh) { SceFreeQueryResults(pqh); pqh = NULL; }
|
||||
|
||||
struct SCE_COLUMN_SCHEMA
|
||||
{
|
||||
LPCWSTR wzName;
|
||||
DBTYPE dbtColumnType;
|
||||
DWORD dwLength;
|
||||
BOOL fPrimaryKey; // If this column is the primary key
|
||||
BOOL fNullable;
|
||||
BOOL fAutoIncrement;
|
||||
|
||||
LPWSTR wzRelationName;
|
||||
DWORD dwForeignKeyTable;
|
||||
DWORD dwForeignKeyColumn;
|
||||
};
|
||||
|
||||
struct SCE_INDEX_SCHEMA
|
||||
{
|
||||
LPWSTR wzName;
|
||||
|
||||
DWORD *rgColumns;
|
||||
DWORD cColumns;
|
||||
};
|
||||
|
||||
struct SCE_TABLE_SCHEMA
|
||||
{
|
||||
LPCWSTR wzName;
|
||||
DWORD cColumns;
|
||||
SCE_COLUMN_SCHEMA *rgColumns;
|
||||
|
||||
DWORD cIndexes;
|
||||
SCE_INDEX_SCHEMA *rgIndexes;
|
||||
|
||||
// Internal to SCEUtil - consumers shouldn't access or modify
|
||||
// TODO: enforce / hide in a handle of some sort?
|
||||
IRowset *pIRowset;
|
||||
IRowsetChange *pIRowsetChange;
|
||||
};
|
||||
|
||||
struct SCE_DATABASE_SCHEMA
|
||||
{
|
||||
DWORD cTables;
|
||||
SCE_TABLE_SCHEMA *rgTables;
|
||||
};
|
||||
|
||||
struct SCE_DATABASE
|
||||
{
|
||||
SCE_DATABASE_HANDLE sdbHandle;
|
||||
SCE_DATABASE_SCHEMA *pdsSchema;
|
||||
};
|
||||
|
||||
HRESULT DAPI SceCreateDatabase(
|
||||
__in_z LPCWSTR sczFile,
|
||||
__deref_out SCE_DATABASE **ppDatabase
|
||||
);
|
||||
HRESULT DAPI SceOpenDatabase(
|
||||
__in_z LPCWSTR sczFile,
|
||||
__in LPCWSTR wzSchemaType,
|
||||
__in DWORD dwExpectedVersion,
|
||||
__deref_out SCE_DATABASE **ppDatabase,
|
||||
__in BOOL fReadOnly
|
||||
);
|
||||
HRESULT DAPI SceEnsureDatabase(
|
||||
__in_z LPCWSTR sczFile,
|
||||
__in LPCWSTR wzSchemaType,
|
||||
__in DWORD dwExpectedVersion,
|
||||
__in SCE_DATABASE_SCHEMA *pdsSchema,
|
||||
__deref_out SCE_DATABASE **ppDatabase
|
||||
);
|
||||
HRESULT DAPI SceIsTableEmpty(
|
||||
__in SCE_DATABASE *pDatabase,
|
||||
__in DWORD dwTableIndex,
|
||||
__out BOOL *pfEmpty
|
||||
);
|
||||
HRESULT DAPI SceGetFirstRow(
|
||||
__in SCE_DATABASE *pDatabase,
|
||||
__in DWORD dwTableIndex,
|
||||
__deref_out_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE *pRowHandle
|
||||
);
|
||||
HRESULT DAPI SceGetNextRow(
|
||||
__in SCE_DATABASE *pDatabase,
|
||||
__in DWORD dwTableIndex,
|
||||
__deref_out_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE *pRowHandle
|
||||
);
|
||||
HRESULT DAPI SceBeginTransaction(
|
||||
__in SCE_DATABASE *pDatabase
|
||||
);
|
||||
HRESULT DAPI SceCommitTransaction(
|
||||
__in SCE_DATABASE *pDatabase
|
||||
);
|
||||
HRESULT DAPI SceRollbackTransaction(
|
||||
__in SCE_DATABASE *pDatabase
|
||||
);
|
||||
HRESULT DAPI SceDeleteRow(
|
||||
__in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE *pRowHandle
|
||||
);
|
||||
HRESULT DAPI ScePrepareInsert(
|
||||
__in SCE_DATABASE *pDatabase,
|
||||
__in DWORD dwTableIndex,
|
||||
__deref_out_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE *pRowHandle
|
||||
);
|
||||
HRESULT DAPI SceFinishUpdate(
|
||||
__in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle
|
||||
);
|
||||
HRESULT DAPI SceSetColumnBinary(
|
||||
__in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle,
|
||||
__in DWORD dwColumnIndex,
|
||||
__in_bcount(cbBuffer) const BYTE* pbBuffer,
|
||||
__in SIZE_T cbBuffer
|
||||
);
|
||||
HRESULT DAPI SceSetColumnDword(
|
||||
__in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle,
|
||||
__in DWORD dwColumnIndex,
|
||||
__in const DWORD dwValue
|
||||
);
|
||||
HRESULT DAPI SceSetColumnQword(
|
||||
__in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle,
|
||||
__in DWORD dwColumnIndex,
|
||||
__in const DWORD64 qwValue
|
||||
);
|
||||
HRESULT DAPI SceSetColumnBool(
|
||||
__in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle,
|
||||
__in DWORD dwColumnIndex,
|
||||
__in const BOOL fValue
|
||||
);
|
||||
HRESULT DAPI SceSetColumnString(
|
||||
__in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle,
|
||||
__in DWORD dwColumnIndex,
|
||||
__in_z_opt LPCWSTR wzValue
|
||||
);
|
||||
HRESULT DAPI SceSetColumnSystemTime(
|
||||
__in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle,
|
||||
__in DWORD dwColumnIndex,
|
||||
__in const SYSTEMTIME *pst
|
||||
);
|
||||
HRESULT DAPI SceSetColumnEmpty(
|
||||
__in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle,
|
||||
__in DWORD dwColumnIndex
|
||||
);
|
||||
HRESULT DAPI SceGetColumnBinary(
|
||||
__in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowReadHandle,
|
||||
__in DWORD dwColumnIndex,
|
||||
__out_opt BYTE **ppbBuffer,
|
||||
__inout SIZE_T *pcbBuffer
|
||||
);
|
||||
HRESULT DAPI SceGetColumnDword(
|
||||
__in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowReadHandle,
|
||||
__in DWORD dwColumnIndex,
|
||||
__out DWORD *pdwValue
|
||||
);
|
||||
HRESULT DAPI SceGetColumnQword(
|
||||
__in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowReadHandle,
|
||||
__in DWORD dwColumnIndex,
|
||||
__out DWORD64 *pqwValue
|
||||
);
|
||||
HRESULT DAPI SceGetColumnBool(
|
||||
__in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowReadHandle,
|
||||
__in DWORD dwColumnIndex,
|
||||
__out BOOL *pfValue
|
||||
);
|
||||
HRESULT DAPI SceGetColumnString(
|
||||
__in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowReadHandle,
|
||||
__in DWORD dwColumnIndex,
|
||||
__out_z LPWSTR *psczValue
|
||||
);
|
||||
HRESULT DAPI SceGetColumnSystemTime(
|
||||
__in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowReadHandle,
|
||||
__in DWORD dwColumnIndex,
|
||||
__out SYSTEMTIME *pst
|
||||
);
|
||||
HRESULT DAPI SceBeginQuery(
|
||||
__in SCE_DATABASE *pDatabase,
|
||||
__in DWORD dwTableIndex,
|
||||
__in DWORD dwIndex,
|
||||
__deref_out_bcount(SCE_QUERY_HANDLE_BYTES) SCE_QUERY_HANDLE *psqhHandle
|
||||
);
|
||||
HRESULT DAPI SceSetQueryColumnBinary(
|
||||
__in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE sqhHandle,
|
||||
__in_bcount(cbBuffer) const BYTE* pbBuffer,
|
||||
__in SIZE_T cbBuffer
|
||||
);
|
||||
HRESULT DAPI SceSetQueryColumnDword(
|
||||
__in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE sqhHandle,
|
||||
__in const DWORD dwValue
|
||||
);
|
||||
HRESULT DAPI SceSetQueryColumnQword(
|
||||
__in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE sqhHandle,
|
||||
__in const DWORD64 qwValue
|
||||
);
|
||||
HRESULT DAPI SceSetQueryColumnBool(
|
||||
__in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE sqhHandle,
|
||||
__in const BOOL fValue
|
||||
);
|
||||
HRESULT DAPI SceSetQueryColumnString(
|
||||
__in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE sqhHandle,
|
||||
__in_z_opt LPCWSTR wzString
|
||||
);
|
||||
HRESULT DAPI SceSetQueryColumnSystemTime(
|
||||
__in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle,
|
||||
__in const SYSTEMTIME *pst
|
||||
);
|
||||
HRESULT DAPI SceSetQueryColumnEmpty(
|
||||
__in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE sqhHandle
|
||||
);
|
||||
HRESULT DAPI SceRunQueryExact(
|
||||
__in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE *psqhHandle,
|
||||
__deref_out_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE *pRowHandle
|
||||
);
|
||||
HRESULT DAPI SceRunQueryRange(
|
||||
__in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE *psqhHandle,
|
||||
__deref_out_bcount(SCE_QUERY_RESULTS_BYTES) SCE_QUERY_RESULTS_HANDLE *psqrhHandle
|
||||
);
|
||||
HRESULT DAPI SceGetNextResultRow(
|
||||
__in_bcount(SCE_QUERY_RESULTS_BYTES) SCE_QUERY_RESULTS_HANDLE sqrhHandle,
|
||||
__deref_out_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE *pRowHandle
|
||||
);
|
||||
void DAPI SceCloseTable(
|
||||
__in SCE_TABLE_SCHEMA *pTable
|
||||
);
|
||||
HRESULT DAPI SceCloseDatabase(
|
||||
__in SCE_DATABASE *pDatabase
|
||||
);
|
||||
void DAPI SceFreeRow(
|
||||
__in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowReadHandle
|
||||
);
|
||||
void DAPI SceFreeQuery(
|
||||
__in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE sqhHandle
|
||||
);
|
||||
void DAPI SceFreeQueryResults(
|
||||
__in_bcount(SCE_QUERY_RESULTS_BYTES) SCE_QUERY_RESULTS_HANDLE sqrhHandle
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
57
tools/WIX/sdk/inc/shelutil.h
Normal file
57
tools/WIX/sdk/inc/shelutil.h
Normal file
|
@ -0,0 +1,57 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="shelutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for shell helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifndef REFKNOWNFOLDERID
|
||||
#define REFKNOWNFOLDERID REFGUID
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef BOOL (STDAPICALLTYPE *PFN_SHELLEXECUTEEXW)(
|
||||
__inout LPSHELLEXECUTEINFOW lpExecInfo
|
||||
);
|
||||
|
||||
void DAPI ShelFunctionOverride(
|
||||
__in_opt PFN_SHELLEXECUTEEXW pfnShellExecuteExW
|
||||
);
|
||||
HRESULT DAPI ShelExec(
|
||||
__in_z LPCWSTR wzTargetPath,
|
||||
__in_opt LPCWSTR wzParameters,
|
||||
__in_opt LPCWSTR wzVerb,
|
||||
__in_opt LPCWSTR wzWorkingDirectory,
|
||||
__in int nShowCmd,
|
||||
__in_opt HWND hwndParent,
|
||||
__out_opt HANDLE* phProcess
|
||||
);
|
||||
HRESULT DAPI ShelExecUnelevated(
|
||||
__in_z LPCWSTR wzTargetPath,
|
||||
__in_z_opt LPCWSTR wzParameters,
|
||||
__in_z_opt LPCWSTR wzVerb,
|
||||
__in_z_opt LPCWSTR wzWorkingDirectory,
|
||||
__in int nShowCmd
|
||||
);
|
||||
HRESULT DAPI ShelGetFolder(
|
||||
__out_z LPWSTR* psczFolderPath,
|
||||
__in int csidlFolder
|
||||
);
|
||||
HRESULT DAPI ShelGetKnownFolder(
|
||||
__out_z LPWSTR* psczFolderPath,
|
||||
__in REFKNOWNFOLDERID rfidFolder
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
146
tools/WIX/sdk/inc/sqlutil.h
Normal file
146
tools/WIX/sdk/inc/sqlutil.h
Normal file
|
@ -0,0 +1,146 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="sqlutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// SQL helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#include <cguid.h>
|
||||
#include <oledberr.h>
|
||||
#include <sqloledb.h>
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// Adding this until the SQL annotations are published to specstrings.h
|
||||
#ifndef __sql_command
|
||||
#define __sql_command
|
||||
#endif
|
||||
|
||||
// structs
|
||||
struct SQL_FILESPEC
|
||||
{
|
||||
WCHAR wzName[MAX_PATH];
|
||||
WCHAR wzFilename[MAX_PATH];
|
||||
WCHAR wzSize[MAX_PATH];
|
||||
WCHAR wzMaxSize[MAX_PATH];
|
||||
WCHAR wzGrow[MAX_PATH];
|
||||
};
|
||||
|
||||
|
||||
// functions
|
||||
HRESULT DAPI SqlConnectDatabase(
|
||||
__in_z LPCWSTR wzServer,
|
||||
__in_z LPCWSTR wzInstance,
|
||||
__in_z LPCWSTR wzDatabase,
|
||||
__in BOOL fIntegratedAuth,
|
||||
__in_z LPCWSTR wzUser,
|
||||
__in_z LPCWSTR wzPassword,
|
||||
__out IDBCreateSession** ppidbSession
|
||||
);
|
||||
HRESULT DAPI SqlStartTransaction(
|
||||
__in IDBCreateSession* pidbSession,
|
||||
__out IDBCreateCommand** ppidbCommand,
|
||||
__out ITransaction** ppit
|
||||
);
|
||||
HRESULT DAPI SqlEndTransaction(
|
||||
__in ITransaction* pit,
|
||||
__in BOOL fCommit
|
||||
);
|
||||
HRESULT DAPI SqlDatabaseExists(
|
||||
__in_z LPCWSTR wzServer,
|
||||
__in_z LPCWSTR wzInstance,
|
||||
__in_z LPCWSTR wzDatabase,
|
||||
__in BOOL fIntegratedAuth,
|
||||
__in_z LPCWSTR wzUser,
|
||||
__in_z LPCWSTR wzPassword,
|
||||
__out_opt BSTR* pbstrErrorDescription
|
||||
);
|
||||
HRESULT DAPI SqlSessionDatabaseExists(
|
||||
__in IDBCreateSession* pidbSession,
|
||||
__in_z LPCWSTR wzDatabase,
|
||||
__out_opt BSTR* pbstrErrorDescription
|
||||
);
|
||||
HRESULT DAPI SqlDatabaseEnsureExists(
|
||||
__in_z LPCWSTR wzServer,
|
||||
__in_z LPCWSTR wzInstance,
|
||||
__in_z LPCWSTR wzDatabase,
|
||||
__in BOOL fIntegratedAuth,
|
||||
__in_z LPCWSTR wzUser,
|
||||
__in_z LPCWSTR wzPassword,
|
||||
__in_opt const SQL_FILESPEC* psfDatabase,
|
||||
__in_opt const SQL_FILESPEC* psfLog,
|
||||
__out_opt BSTR* pbstrErrorDescription
|
||||
);
|
||||
HRESULT DAPI SqlSessionDatabaseEnsureExists(
|
||||
__in IDBCreateSession* pidbSession,
|
||||
__in_z LPCWSTR wzDatabase,
|
||||
__in_opt const SQL_FILESPEC* psfDatabase,
|
||||
__in_opt const SQL_FILESPEC* psfLog,
|
||||
__out_opt BSTR* pbstrErrorDescription
|
||||
);
|
||||
HRESULT DAPI SqlCreateDatabase(
|
||||
__in_z LPCWSTR wzServer,
|
||||
__in_z LPCWSTR wzInstance,
|
||||
__in_z LPCWSTR wzDatabase,
|
||||
__in BOOL fIntegratedAuth,
|
||||
__in_z LPCWSTR wzUser,
|
||||
__in_z LPCWSTR wzPassword,
|
||||
__in_opt const SQL_FILESPEC* psfDatabase,
|
||||
__in_opt const SQL_FILESPEC* psfLog,
|
||||
__out_opt BSTR* pbstrErrorDescription
|
||||
);
|
||||
HRESULT DAPI SqlSessionCreateDatabase(
|
||||
__in IDBCreateSession* pidbSession,
|
||||
__in_z LPCWSTR wzDatabase,
|
||||
__in_opt const SQL_FILESPEC* psfDatabase,
|
||||
__in_opt const SQL_FILESPEC* psfLog,
|
||||
__out_opt BSTR* pbstrErrorDescription
|
||||
);
|
||||
HRESULT DAPI SqlDropDatabase(
|
||||
__in_z LPCWSTR wzServer,
|
||||
__in_z LPCWSTR wzInstance,
|
||||
__in_z LPCWSTR wzDatabase,
|
||||
__in BOOL fIntegratedAuth,
|
||||
__in_z LPCWSTR wzUser,
|
||||
__in_z LPCWSTR wzPassword,
|
||||
__out_opt BSTR* pbstrErrorDescription
|
||||
);
|
||||
HRESULT DAPI SqlSessionDropDatabase(
|
||||
__in IDBCreateSession* pidbSession,
|
||||
__in_z LPCWSTR wzDatabase,
|
||||
__out_opt BSTR* pbstrErrorDescription
|
||||
);
|
||||
HRESULT DAPI SqlSessionExecuteQuery(
|
||||
__in IDBCreateSession* pidbSession,
|
||||
__in __sql_command LPCWSTR wzSql,
|
||||
__out_opt IRowset** ppirs,
|
||||
__out_opt DBROWCOUNT* pcRows,
|
||||
__out_opt BSTR* pbstrErrorDescription
|
||||
);
|
||||
HRESULT DAPI SqlCommandExecuteQuery(
|
||||
__in IDBCreateCommand* pidbCommand,
|
||||
__in __sql_command LPCWSTR wzSql,
|
||||
__out IRowset** ppirs,
|
||||
__out DBROWCOUNT* pcRows
|
||||
);
|
||||
HRESULT DAPI SqlGetErrorInfo(
|
||||
__in IUnknown* pObjectWithError,
|
||||
__in REFIID IID_InterfaceWithError,
|
||||
__in DWORD dwLocaleId,
|
||||
__out_opt BSTR* pbstrErrorSource,
|
||||
__out_opt BSTR* pbstrErrorDescription
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
57
tools/WIX/sdk/inc/srputil.h
Normal file
57
tools/WIX/sdk/inc/srputil.h
Normal file
|
@ -0,0 +1,57 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="srputil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// System restore point helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
typedef enum SRP_ACTION
|
||||
{
|
||||
SRP_ACTION_UNKNOWN,
|
||||
SRP_ACTION_UNINSTALL,
|
||||
SRP_ACTION_INSTALL,
|
||||
SRP_ACTION_MODIFY,
|
||||
} SRP_ACTION;
|
||||
|
||||
|
||||
/********************************************************************
|
||||
SrpInitialize - initializes system restore point functionality.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) SrpInitialize(
|
||||
__in BOOL fInitializeComSecurity
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
SrpUninitialize - uninitializes system restore point functionality.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(void) SrpUninitialize();
|
||||
|
||||
/********************************************************************
|
||||
SrpCreateRestorePoint - creates a system restore point.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) SrpCreateRestorePoint(
|
||||
__in_z LPCWSTR wzApplicationName,
|
||||
__in SRP_ACTION action
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
311
tools/WIX/sdk/inc/strutil.h
Normal file
311
tools/WIX/sdk/inc/strutil.h
Normal file
|
@ -0,0 +1,311 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="strutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for string helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ReleaseStr(pwz) if (pwz) { StrFree(pwz); }
|
||||
#define ReleaseNullStr(pwz) if (pwz) { StrFree(pwz); pwz = NULL; }
|
||||
#define ReleaseBSTR(bstr) if (bstr) { ::SysFreeString(bstr); }
|
||||
#define ReleaseNullBSTR(bstr) if (bstr) { ::SysFreeString(bstr); bstr = NULL; }
|
||||
#define ReleaseStrArray(rg, c) { if (rg) { StrArrayFree(rg, c); } }
|
||||
#define ReleaseNullStrArray(rg, c) { if (rg) { StrArrayFree(rg, c); c = 0; rg = NULL; } }
|
||||
#define ReleaseNullStrSecure(pwz) if (pwz) { StrSecureZeroFreeString(pwz); pwz = NULL; }
|
||||
|
||||
#define DeclareConstBSTR(bstr_const, wz) const WCHAR bstr_const[] = { 0x00, 0x00, sizeof(wz)-sizeof(WCHAR), 0x00, wz }
|
||||
#define UseConstBSTR(bstr_const) const_cast<BSTR>(bstr_const + 4)
|
||||
|
||||
HRESULT DAPI StrAlloc(
|
||||
__deref_out_ecount_part(cch, 0) LPWSTR* ppwz,
|
||||
__in DWORD_PTR cch
|
||||
);
|
||||
HRESULT DAPI StrAllocSecure(
|
||||
__deref_out_ecount_part(cch, 0) LPWSTR* ppwz,
|
||||
__in DWORD_PTR cch
|
||||
);
|
||||
HRESULT DAPI StrTrimCapacity(
|
||||
__deref_out_z LPWSTR* ppwz
|
||||
);
|
||||
HRESULT DAPI StrTrimWhitespace(
|
||||
__deref_out_z LPWSTR* ppwz,
|
||||
__in_z LPCWSTR wzSource
|
||||
);
|
||||
HRESULT DAPI StrAnsiAlloc(
|
||||
__deref_out_ecount_part(cch, 0) LPSTR* ppz,
|
||||
__in DWORD_PTR cch
|
||||
);
|
||||
HRESULT DAPI StrAnsiTrimCapacity(
|
||||
__deref_out_z LPSTR* ppz
|
||||
);
|
||||
HRESULT DAPI StrAnsiTrimWhitespace(
|
||||
__deref_out_z LPSTR* ppz,
|
||||
__in_z LPCSTR szSource
|
||||
);
|
||||
HRESULT DAPI StrAllocString(
|
||||
__deref_out_ecount_z(cchSource+1) LPWSTR* ppwz,
|
||||
__in_z LPCWSTR wzSource,
|
||||
__in DWORD_PTR cchSource
|
||||
);
|
||||
HRESULT DAPI StrAllocStringSecure(
|
||||
__deref_out_ecount_z(cchSource + 1) LPWSTR* ppwz,
|
||||
__in_z LPCWSTR wzSource,
|
||||
__in DWORD_PTR cchSource
|
||||
);
|
||||
HRESULT DAPI StrAnsiAllocString(
|
||||
__deref_out_ecount_z(cchSource+1) LPSTR* ppsz,
|
||||
__in_z LPCWSTR wzSource,
|
||||
__in DWORD_PTR cchSource,
|
||||
__in UINT uiCodepage
|
||||
);
|
||||
HRESULT DAPI StrAllocStringAnsi(
|
||||
__deref_out_ecount_z(cchSource+1) LPWSTR* ppwz,
|
||||
__in_z LPCSTR szSource,
|
||||
__in DWORD_PTR cchSource,
|
||||
__in UINT uiCodepage
|
||||
);
|
||||
HRESULT DAPI StrAnsiAllocStringAnsi(
|
||||
__deref_out_ecount_z(cchSource+1) LPSTR* ppsz,
|
||||
__in_z LPCSTR szSource,
|
||||
__in DWORD_PTR cchSource
|
||||
);
|
||||
HRESULT DAPI StrAllocPrefix(
|
||||
__deref_out_z LPWSTR* ppwz,
|
||||
__in_z LPCWSTR wzPrefix,
|
||||
__in DWORD_PTR cchPrefix
|
||||
);
|
||||
HRESULT DAPI StrAllocConcat(
|
||||
__deref_out_z LPWSTR* ppwz,
|
||||
__in_z LPCWSTR wzSource,
|
||||
__in DWORD_PTR cchSource
|
||||
);
|
||||
HRESULT DAPI StrAllocConcatSecure(
|
||||
__deref_out_z LPWSTR* ppwz,
|
||||
__in_z LPCWSTR wzSource,
|
||||
__in DWORD_PTR cchSource
|
||||
);
|
||||
HRESULT DAPI StrAnsiAllocConcat(
|
||||
__deref_out_z LPSTR* ppz,
|
||||
__in_z LPCSTR pzSource,
|
||||
__in DWORD_PTR cchSource
|
||||
);
|
||||
HRESULT __cdecl StrAllocFormatted(
|
||||
__deref_out_z LPWSTR* ppwz,
|
||||
__in __format_string LPCWSTR wzFormat,
|
||||
...
|
||||
);
|
||||
HRESULT __cdecl StrAllocFormattedSecure(
|
||||
__deref_out_z LPWSTR* ppwz,
|
||||
__in __format_string LPCWSTR wzFormat,
|
||||
...
|
||||
);
|
||||
HRESULT __cdecl StrAnsiAllocFormatted(
|
||||
__deref_out_z LPSTR* ppsz,
|
||||
__in __format_string LPCSTR szFormat,
|
||||
...
|
||||
);
|
||||
HRESULT DAPI StrAllocFormattedArgs(
|
||||
__deref_out_z LPWSTR* ppwz,
|
||||
__in __format_string LPCWSTR wzFormat,
|
||||
__in va_list args
|
||||
);
|
||||
HRESULT DAPI StrAllocFormattedArgsSecure(
|
||||
__deref_out_z LPWSTR* ppwz,
|
||||
__in __format_string LPCWSTR wzFormat,
|
||||
__in va_list args
|
||||
);
|
||||
HRESULT DAPI StrAnsiAllocFormattedArgs(
|
||||
__deref_out_z LPSTR* ppsz,
|
||||
__in __format_string LPCSTR szFormat,
|
||||
__in va_list args
|
||||
);
|
||||
HRESULT DAPI StrAllocFromError(
|
||||
__inout LPWSTR *ppwzMessage,
|
||||
__in HRESULT hrError,
|
||||
__in_opt HMODULE hModule,
|
||||
...
|
||||
);
|
||||
|
||||
HRESULT DAPI StrMaxLength(
|
||||
__in LPCVOID p,
|
||||
__out DWORD_PTR* pcch
|
||||
);
|
||||
HRESULT DAPI StrSize(
|
||||
__in LPCVOID p,
|
||||
__out DWORD_PTR* pcb
|
||||
);
|
||||
|
||||
HRESULT DAPI StrFree(
|
||||
__in LPVOID p
|
||||
);
|
||||
|
||||
|
||||
HRESULT DAPI StrReplaceStringAll(
|
||||
__inout LPWSTR* ppwzOriginal,
|
||||
__in_z LPCWSTR wzOldSubString,
|
||||
__in_z LPCWSTR wzNewSubString
|
||||
);
|
||||
HRESULT DAPI StrReplaceString(
|
||||
__inout LPWSTR* ppwzOriginal,
|
||||
__inout DWORD* pdwStartIndex,
|
||||
__in_z LPCWSTR wzOldSubString,
|
||||
__in_z LPCWSTR wzNewSubString
|
||||
);
|
||||
|
||||
HRESULT DAPI StrHexEncode(
|
||||
__in_ecount(cbSource) const BYTE* pbSource,
|
||||
__in DWORD_PTR cbSource,
|
||||
__out_ecount(cchDest) LPWSTR wzDest,
|
||||
__in DWORD_PTR cchDest
|
||||
);
|
||||
HRESULT DAPI StrHexDecode(
|
||||
__in_z LPCWSTR wzSource,
|
||||
__out_bcount(cbDest) BYTE* pbDest,
|
||||
__in DWORD_PTR cbDest
|
||||
);
|
||||
HRESULT DAPI StrAllocHexDecode(
|
||||
__in_z LPCWSTR wzSource,
|
||||
__out_bcount(*pcbDest) BYTE** ppbDest,
|
||||
__out_opt DWORD* pcbDest
|
||||
);
|
||||
|
||||
HRESULT DAPI StrAllocBase85Encode(
|
||||
__in_bcount_opt(cbSource) const BYTE* pbSource,
|
||||
__in DWORD_PTR cbSource,
|
||||
__deref_out_z LPWSTR* pwzDest
|
||||
);
|
||||
HRESULT DAPI StrAllocBase85Decode(
|
||||
__in_z LPCWSTR wzSource,
|
||||
__deref_out_bcount(*pcbDest) BYTE** hbDest,
|
||||
__out DWORD_PTR* pcbDest
|
||||
);
|
||||
|
||||
HRESULT DAPI MultiSzLen(
|
||||
__in_ecount(*pcch) __nullnullterminated LPCWSTR pwzMultiSz,
|
||||
__out DWORD_PTR* pcch
|
||||
);
|
||||
HRESULT DAPI MultiSzPrepend(
|
||||
__deref_inout_ecount(*pcchMultiSz) __nullnullterminated LPWSTR* ppwzMultiSz,
|
||||
__inout_opt DWORD_PTR *pcchMultiSz,
|
||||
__in __nullnullterminated LPCWSTR pwzInsert
|
||||
);
|
||||
HRESULT DAPI MultiSzFindSubstring(
|
||||
__in __nullnullterminated LPCWSTR pwzMultiSz,
|
||||
__in __nullnullterminated LPCWSTR pwzSubstring,
|
||||
__out_opt DWORD_PTR* pdwIndex,
|
||||
__deref_opt_out_z LPCWSTR* ppwzFoundIn
|
||||
);
|
||||
HRESULT DAPI MultiSzFindString(
|
||||
__in __nullnullterminated LPCWSTR pwzMultiSz,
|
||||
__in __nullnullterminated LPCWSTR pwzString,
|
||||
__out_opt DWORD_PTR* pdwIndex,
|
||||
__deref_opt_out __nullnullterminated LPCWSTR* ppwzFound
|
||||
);
|
||||
HRESULT DAPI MultiSzRemoveString(
|
||||
__deref_inout __nullnullterminated LPWSTR* ppwzMultiSz,
|
||||
__in DWORD_PTR dwIndex
|
||||
);
|
||||
HRESULT DAPI MultiSzInsertString(
|
||||
__deref_inout_z LPWSTR* ppwzMultiSz,
|
||||
__inout_opt DWORD_PTR *pcchMultiSz,
|
||||
__in DWORD_PTR dwIndex,
|
||||
__in_z LPCWSTR pwzInsert
|
||||
);
|
||||
HRESULT DAPI MultiSzReplaceString(
|
||||
__deref_inout __nullnullterminated LPWSTR* ppwzMultiSz,
|
||||
__in DWORD_PTR dwIndex,
|
||||
__in_z LPCWSTR pwzString
|
||||
);
|
||||
|
||||
LPCWSTR wcsistr(
|
||||
__in_z LPCWSTR wzString,
|
||||
__in_z LPCWSTR wzCharSet
|
||||
);
|
||||
|
||||
HRESULT DAPI StrStringToInt16(
|
||||
__in_z LPCWSTR wzIn,
|
||||
__in DWORD cchIn,
|
||||
__out SHORT* psOut
|
||||
);
|
||||
HRESULT DAPI StrStringToUInt16(
|
||||
__in_z LPCWSTR wzIn,
|
||||
__in DWORD cchIn,
|
||||
__out USHORT* pusOut
|
||||
);
|
||||
HRESULT DAPI StrStringToInt32(
|
||||
__in_z LPCWSTR wzIn,
|
||||
__in DWORD cchIn,
|
||||
__out INT* piOut
|
||||
);
|
||||
HRESULT DAPI StrStringToUInt32(
|
||||
__in_z LPCWSTR wzIn,
|
||||
__in DWORD cchIn,
|
||||
__out UINT* puiOut
|
||||
);
|
||||
HRESULT DAPI StrStringToInt64(
|
||||
__in_z LPCWSTR wzIn,
|
||||
__in DWORD cchIn,
|
||||
__out LONGLONG* pllOut
|
||||
);
|
||||
HRESULT DAPI StrStringToUInt64(
|
||||
__in_z LPCWSTR wzIn,
|
||||
__in DWORD cchIn,
|
||||
__out ULONGLONG* pullOut
|
||||
);
|
||||
void DAPI StrStringToUpper(
|
||||
__inout_z LPWSTR wzIn
|
||||
);
|
||||
void DAPI StrStringToLower(
|
||||
__inout_z LPWSTR wzIn
|
||||
);
|
||||
HRESULT DAPI StrAllocStringToUpperInvariant(
|
||||
__deref_out_z LPWSTR* pscz,
|
||||
__in_z LPCWSTR wzSource,
|
||||
__in int cchSource
|
||||
);
|
||||
HRESULT DAPI StrAllocStringToLowerInvariant(
|
||||
__deref_out_z LPWSTR* pscz,
|
||||
__in_z LPCWSTR wzSource,
|
||||
__in int cchSource
|
||||
);
|
||||
|
||||
HRESULT DAPI StrArrayAllocString(
|
||||
__deref_inout_ecount_opt(*pcStrArray) LPWSTR **prgsczStrArray,
|
||||
__inout LPUINT pcStrArray,
|
||||
__in_z LPCWSTR wzSource,
|
||||
__in DWORD_PTR cchSource
|
||||
);
|
||||
|
||||
HRESULT DAPI StrArrayFree(
|
||||
__in_ecount(cStrArray) LPWSTR *rgsczStrArray,
|
||||
__in UINT cStrArray
|
||||
);
|
||||
|
||||
HRESULT DAPI StrSplitAllocArray(
|
||||
__deref_inout_ecount_opt(*pcStrArray) LPWSTR **prgsczStrArray,
|
||||
__inout LPUINT pcStrArray,
|
||||
__in_z LPCWSTR wzSource,
|
||||
__in_z LPCWSTR wzDelim
|
||||
);
|
||||
|
||||
HRESULT DAPI StrSecureZeroString(
|
||||
__in LPWSTR pwz
|
||||
);
|
||||
HRESULT DAPI StrSecureZeroFreeString(
|
||||
__in LPWSTR pwz
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
31
tools/WIX/sdk/inc/svcutil.h
Normal file
31
tools/WIX/sdk/inc/svcutil.h
Normal file
|
@ -0,0 +1,31 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="svcutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for Windows service helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#define ReleaseServiceHandle(h) if (h) { ::CloseServiceHandle(h); h = NULL; }
|
||||
|
||||
|
||||
HRESULT DAPI SvcQueryConfig(
|
||||
__in SC_HANDLE sch,
|
||||
__out QUERY_SERVICE_CONFIGW** ppConfig
|
||||
);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
559
tools/WIX/sdk/inc/thmutil.h
Normal file
559
tools/WIX/sdk/inc/thmutil.h
Normal file
|
@ -0,0 +1,559 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="thmutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Theme helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ReleaseTheme(p) if (p) { ThemeFree(p); p = NULL; }
|
||||
|
||||
typedef enum THEME_CONTROL_DATA
|
||||
{
|
||||
THEME_CONTROL_DATA_HOVER = 1,
|
||||
} THEME_CONTROL_DATA;
|
||||
|
||||
typedef enum THEME_CONTROL_TYPE
|
||||
{
|
||||
THEME_CONTROL_TYPE_UNKNOWN,
|
||||
THEME_CONTROL_TYPE_BILLBOARD,
|
||||
THEME_CONTROL_TYPE_BUTTON,
|
||||
THEME_CONTROL_TYPE_CHECKBOX,
|
||||
THEME_CONTROL_TYPE_EDITBOX,
|
||||
THEME_CONTROL_TYPE_HYPERLINK,
|
||||
THEME_CONTROL_TYPE_HYPERTEXT,
|
||||
THEME_CONTROL_TYPE_IMAGE,
|
||||
THEME_CONTROL_TYPE_PROGRESSBAR,
|
||||
THEME_CONTROL_TYPE_RICHEDIT,
|
||||
THEME_CONTROL_TYPE_STATIC,
|
||||
THEME_CONTROL_TYPE_TEXT,
|
||||
THEME_CONTROL_TYPE_LISTVIEW,
|
||||
THEME_CONTROL_TYPE_TREEVIEW,
|
||||
THEME_CONTROL_TYPE_TAB,
|
||||
} THEME_CONTROL_TYPE;
|
||||
|
||||
|
||||
struct THEME_BILLBOARD
|
||||
{
|
||||
HBITMAP hImage;
|
||||
LPWSTR sczUrl;
|
||||
};
|
||||
|
||||
|
||||
struct THEME_COLUMN
|
||||
{
|
||||
LPWSTR pszName;
|
||||
UINT uStringId;
|
||||
int nWidth;
|
||||
};
|
||||
|
||||
|
||||
struct THEME_TAB
|
||||
{
|
||||
LPWSTR pszName;
|
||||
UINT uStringId;
|
||||
};
|
||||
|
||||
// THEME_ASSIGN_CONTROL_ID - Used to apply a specific id to a named control (usually
|
||||
// to set the WM_COMMAND).
|
||||
struct THEME_ASSIGN_CONTROL_ID
|
||||
{
|
||||
WORD wId; // id to apply to control
|
||||
LPCWSTR wzName; // name of control to match
|
||||
};
|
||||
|
||||
const DWORD THEME_FIRST_ASSIGN_CONTROL_ID = 1024; // Recommended first control id to be assigned.
|
||||
|
||||
struct THEME_CONTROL
|
||||
{
|
||||
THEME_CONTROL_TYPE type;
|
||||
|
||||
WORD wId;
|
||||
WORD wPageId;
|
||||
|
||||
LPWSTR sczName; // optional name for control, only used to apply control id.
|
||||
LPWSTR sczText;
|
||||
int nX;
|
||||
int nY;
|
||||
int nHeight;
|
||||
int nWidth;
|
||||
int nSourceX;
|
||||
int nSourceY;
|
||||
UINT uStringId;
|
||||
|
||||
HBITMAP hImage;
|
||||
|
||||
// Don't free these; it's just a handle to the central image lists stored in THEME. The handle is freed once, there.
|
||||
HIMAGELIST rghImageList[4];
|
||||
|
||||
DWORD dwStyle;
|
||||
DWORD dwExtendedStyle;
|
||||
DWORD dwInternalStyle;
|
||||
|
||||
DWORD dwFontId;
|
||||
DWORD dwFontHoverId;
|
||||
DWORD dwFontSelectedId;
|
||||
|
||||
// Used by billboard controls
|
||||
THEME_BILLBOARD* ptbBillboards;
|
||||
DWORD cBillboards;
|
||||
WORD wBillboardInterval;
|
||||
WORD wBillboardUrls;
|
||||
BOOL fBillboardLoops;
|
||||
|
||||
// Used by listview controls
|
||||
THEME_COLUMN *ptcColumns;
|
||||
DWORD cColumns;
|
||||
|
||||
// Used by tab controls
|
||||
THEME_TAB *pttTabs;
|
||||
DWORD cTabs;
|
||||
|
||||
// state variables that should be ignored
|
||||
HWND hWnd;
|
||||
DWORD dwData; // type specific data
|
||||
};
|
||||
|
||||
|
||||
struct THEME_IMAGELIST
|
||||
{
|
||||
LPWSTR sczName;
|
||||
|
||||
HIMAGELIST hImageList;
|
||||
};
|
||||
|
||||
struct THEME_PAGE
|
||||
{
|
||||
WORD wId;
|
||||
LPWSTR sczName;
|
||||
|
||||
DWORD cControlIndices;
|
||||
DWORD* rgdwControlIndices;
|
||||
};
|
||||
|
||||
struct THEME_FONT
|
||||
{
|
||||
HFONT hFont;
|
||||
COLORREF crForeground;
|
||||
HBRUSH hForeground;
|
||||
COLORREF crBackground;
|
||||
HBRUSH hBackground;
|
||||
};
|
||||
|
||||
|
||||
struct THEME
|
||||
{
|
||||
WORD wId;
|
||||
|
||||
DWORD dwStyle;
|
||||
DWORD dwFontId;
|
||||
HANDLE hIcon;
|
||||
LPWSTR sczCaption;
|
||||
int nHeight;
|
||||
int nWidth;
|
||||
int nSourceX;
|
||||
int nSourceY;
|
||||
UINT uStringId;
|
||||
|
||||
HBITMAP hImage;
|
||||
|
||||
DWORD cFonts;
|
||||
THEME_FONT* rgFonts;
|
||||
|
||||
DWORD cPages;
|
||||
THEME_PAGE* rgPages;
|
||||
|
||||
DWORD cImageLists;
|
||||
THEME_IMAGELIST* rgImageLists;
|
||||
|
||||
DWORD cControls;
|
||||
THEME_CONTROL* rgControls;
|
||||
|
||||
// state variables that should be ignored
|
||||
HWND hwndParent; // parent for loaded controls
|
||||
HWND hwndHover; // current hwnd hovered over
|
||||
};
|
||||
|
||||
|
||||
/********************************************************************
|
||||
ThemeInitialize - initialized theme management.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) ThemeInitialize(
|
||||
__in_opt HMODULE hModule
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeUninitialize - unitialize theme management.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(void) ThemeUninitialize();
|
||||
|
||||
/********************************************************************
|
||||
ThemeLoadFromFile - loads a theme from a loose file.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) ThemeLoadFromFile(
|
||||
__in_z LPCWSTR wzThemeFile,
|
||||
__out THEME** ppTheme
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeLoadFromResource - loads a theme from a module's data resource.
|
||||
|
||||
NOTE: The resource data must be UTF-8 encoded.
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) ThemeLoadFromResource(
|
||||
__in_opt HMODULE hModule,
|
||||
__in_z LPCSTR szResource,
|
||||
__out THEME** ppTheme
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeFree - frees any memory associated with a theme.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(void) ThemeFree(
|
||||
__in THEME* pTheme
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeLoadControls - creates the windows for all the theme controls.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) ThemeLoadControls(
|
||||
__in THEME* pTheme,
|
||||
__in HWND hwndParent,
|
||||
__in_ecount_opt(cAssignControlIds) const THEME_ASSIGN_CONTROL_ID* rgAssignControlIds,
|
||||
__in DWORD cAssignControlIds
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeUnloadControls - resets all the theme control windows so the theme
|
||||
controls can be reloaded.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(void) ThemeUnloadControls(
|
||||
__in THEME* pTheme
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeLocalize - Localizes all of the strings in the them.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) ThemeLocalize(
|
||||
__in THEME *pTheme,
|
||||
__in const WIX_LOCALIZATION *pLocStringSet
|
||||
);
|
||||
|
||||
DAPI_(HRESULT) ThemeLoadStrings(
|
||||
__in THEME* pTheme,
|
||||
__in HMODULE hResModule
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeLoadRichEditFromFile - Attach a richedit control to a RTF file.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) ThemeLoadRichEditFromFile(
|
||||
__in THEME* pTheme,
|
||||
__in DWORD dwControl,
|
||||
__in_z LPCWSTR wzFileName,
|
||||
__in HMODULE hModule
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeLoadRichEditFromResource - Attach a richedit control to resource data.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) ThemeLoadRichEditFromResource(
|
||||
__in THEME* pTheme,
|
||||
__in DWORD dwControl,
|
||||
__in_z LPCSTR szResourceName,
|
||||
__in HMODULE hModule
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeLoadRichEditFromResourceToHWnd - Attach a richedit control (by
|
||||
HWND) to resource data.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) ThemeLoadRichEditFromResourceToHWnd(
|
||||
__in HWND hWnd,
|
||||
__in_z LPCSTR szResourceName,
|
||||
__in HMODULE hModule
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeHandleKeyboardMessage - will translate the message using the active
|
||||
accelerator table.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(BOOL) ThemeHandleKeyboardMessage(
|
||||
__in_opt THEME* pTheme,
|
||||
__in HWND hWnd,
|
||||
__in MSG* pMsg
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeDefWindowProc - replacement for DefWindowProc() when using theme.
|
||||
|
||||
*******************************************************************/
|
||||
LRESULT CALLBACK ThemeDefWindowProc(
|
||||
__in_opt THEME* pTheme,
|
||||
__in HWND hWnd,
|
||||
__in UINT uMsg,
|
||||
__in WPARAM wParam,
|
||||
__in LPARAM lParam
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeGetPageIds - gets the page ids for the theme via page names.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(void) ThemeGetPageIds(
|
||||
__in const THEME* pTheme,
|
||||
__in_ecount(cGetPages) LPCWSTR* rgwzFindNames,
|
||||
__in_ecount(cGetPages) DWORD* rgdwPageIds,
|
||||
__in DWORD cGetPages
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeGetPage - gets a theme page by id.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(THEME_PAGE*) ThemeGetPage(
|
||||
__in const THEME* pTheme,
|
||||
__in DWORD dwPage
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeShowPage - shows or hides all of the controls in the page at one time.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(void) ThemeShowPage(
|
||||
__in THEME* pTheme,
|
||||
__in DWORD dwPage,
|
||||
__in int nCmdShow
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeControlExists - check if a control with the specified id exists.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(BOOL) ThemeControlExists(
|
||||
__in THEME* pTheme,
|
||||
__in DWORD dwControl
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeControlEnable - enables/disables a control.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(void) ThemeControlEnable(
|
||||
__in THEME* pTheme,
|
||||
__in DWORD dwControl,
|
||||
__in BOOL fEnable
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeControlEnabled - returns whether a control is enabled/disabled.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(BOOL) ThemeControlEnabled(
|
||||
__in THEME* pTheme,
|
||||
__in DWORD dwControl
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeControlElevates - sets/removes the shield icon on a control.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(void) ThemeControlElevates(
|
||||
__in THEME* pTheme,
|
||||
__in DWORD dwControl,
|
||||
__in BOOL fElevates
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeShowControl - shows/hides a control.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(void) ThemeShowControl(
|
||||
__in THEME* pTheme,
|
||||
__in DWORD dwControl,
|
||||
__in int nCmdShow
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeControlVisible - returns whether a control is visible.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(BOOL) ThemeControlVisible(
|
||||
__in THEME* pTheme,
|
||||
__in DWORD dwControl
|
||||
);
|
||||
|
||||
DAPI_(BOOL) ThemePostControlMessage(
|
||||
__in THEME* pTheme,
|
||||
__in DWORD dwControl,
|
||||
__in UINT Msg,
|
||||
__in WPARAM wParam,
|
||||
__in LPARAM lParam
|
||||
);
|
||||
|
||||
DAPI_(LRESULT) ThemeSendControlMessage(
|
||||
__in THEME* pTheme,
|
||||
__in DWORD dwControl,
|
||||
__in UINT Msg,
|
||||
__in WPARAM wParam,
|
||||
__in LPARAM lParam
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeDrawBackground - draws the theme background.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) ThemeDrawBackground(
|
||||
__in THEME* pTheme,
|
||||
__in PAINTSTRUCT* pps
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeDrawControl - draw an owner drawn control.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) ThemeDrawControl(
|
||||
__in THEME* pTheme,
|
||||
__in DRAWITEMSTRUCT* pdis
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeHoverControl - mark a control as hover.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(BOOL) ThemeHoverControl(
|
||||
__in THEME* pTheme,
|
||||
__in HWND hwndParent,
|
||||
__in HWND hwndControl
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeIsControlChecked - gets whether a control is checked. Only
|
||||
really useful for checkbox controls.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(BOOL) ThemeIsControlChecked(
|
||||
__in THEME* pTheme,
|
||||
__in DWORD dwControl
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeSetControlColor - sets the color of text for a control.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(BOOL) ThemeSetControlColor(
|
||||
__in THEME* pTheme,
|
||||
__in HDC hdc,
|
||||
__in HWND hWnd,
|
||||
__out HBRUSH* phBackgroundBrush
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeStartBillboard - starts a billboard control changing images according
|
||||
to their interval.
|
||||
|
||||
NOTE: iImage specifies the image to start on. If iImage is
|
||||
greater than the number of images, the last image shown
|
||||
will be the start image.
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) ThemeStartBillboard(
|
||||
__in const THEME* pTheme,
|
||||
__in DWORD dwControl,
|
||||
__in WORD iImage
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeStopBillboard - stops a billboard control from changing images.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) ThemeStopBillboard(
|
||||
__in const THEME* pTheme,
|
||||
__in DWORD dwControl
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeSetProgressControl - sets the current percentage complete in a
|
||||
progress bar control.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) ThemeSetProgressControl(
|
||||
__in THEME* pTheme,
|
||||
__in DWORD dwControl,
|
||||
__in DWORD dwProgressPercentage
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeSetProgressControlColor - sets the current color of a
|
||||
progress bar control.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) ThemeSetProgressControlColor(
|
||||
__in THEME* pTheme,
|
||||
__in DWORD dwControl,
|
||||
__in DWORD dwColorIndex
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeSetTextControl - sets the text of a control.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) ThemeSetTextControl(
|
||||
__in THEME* pTheme,
|
||||
__in DWORD dwControl,
|
||||
__in_z LPCWSTR wzText
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeGetTextControl - gets the text of a control.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) ThemeGetTextControl(
|
||||
__in const THEME* pTheme,
|
||||
__in DWORD dwControl,
|
||||
__out LPWSTR* psczText
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeUpdateCaption - updates the caption in the theme.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(HRESULT) ThemeUpdateCaption(
|
||||
__in THEME* pTheme,
|
||||
__in_z LPCWSTR wzCaption
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
ThemeSetFocus - set the focus to the control supplied or the next
|
||||
enabled control if it is disabled.
|
||||
|
||||
*******************************************************************/
|
||||
DAPI_(void) ThemeSetFocus(
|
||||
__in THEME* pTheme,
|
||||
__in DWORD dwControl
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
45
tools/WIX/sdk/inc/timeutil.h
Normal file
45
tools/WIX/sdk/inc/timeutil.h
Normal file
|
@ -0,0 +1,45 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="timeutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Time helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
HRESULT DAPI TimeFromString(
|
||||
__in_z LPCWSTR wzTime,
|
||||
__out FILETIME* pFileTime
|
||||
);
|
||||
HRESULT DAPI TimeFromString3339(
|
||||
__in_z LPCWSTR wzTime,
|
||||
__out FILETIME* pFileTime
|
||||
);
|
||||
HRESULT DAPI TimeCurrentTime(
|
||||
__deref_out_z LPWSTR* ppwz,
|
||||
__in BOOL fGMT
|
||||
);
|
||||
HRESULT DAPI TimeCurrentDateTime(
|
||||
__deref_out_z LPWSTR* ppwz,
|
||||
__in BOOL fGMT
|
||||
);
|
||||
HRESULT DAPI TimeSystemDateTime(
|
||||
__deref_out_z LPWSTR* ppwz,
|
||||
__in const SYSTEMTIME *pst,
|
||||
__in BOOL fGMT
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
111
tools/WIX/sdk/inc/uriutil.h
Normal file
111
tools/WIX/sdk/inc/uriutil.h
Normal file
|
@ -0,0 +1,111 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="uriutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// URI helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "wininet.h"
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum URI_PROTOCOL
|
||||
{
|
||||
URI_PROTOCOL_UNKNOWN,
|
||||
URI_PROTOCOL_FILE,
|
||||
URI_PROTOCOL_FTP,
|
||||
URI_PROTOCOL_HTTP,
|
||||
URI_PROTOCOL_HTTPS,
|
||||
URI_PROTOCOL_LOCAL,
|
||||
URI_PROTOCOL_UNC
|
||||
} URI_PROTOCOL;
|
||||
|
||||
typedef struct _URI_INFO
|
||||
{
|
||||
INTERNET_SCHEME scheme;
|
||||
LPWSTR sczHostName;
|
||||
INTERNET_PORT port;
|
||||
LPWSTR sczUser;
|
||||
LPWSTR sczPassword;
|
||||
LPWSTR sczPath;
|
||||
LPWSTR sczQueryString;
|
||||
} URI_INFO;
|
||||
|
||||
|
||||
HRESULT DAPI UriCanonicalize(
|
||||
__inout_z LPWSTR* psczUri
|
||||
);
|
||||
|
||||
HRESULT DAPI UriCrack(
|
||||
__in_z LPCWSTR wzUri,
|
||||
__out_opt INTERNET_SCHEME* pScheme,
|
||||
__deref_opt_out_z LPWSTR* psczHostName,
|
||||
__out_opt INTERNET_PORT* pPort,
|
||||
__deref_opt_out_z LPWSTR* psczUser,
|
||||
__deref_opt_out_z LPWSTR* psczPassword,
|
||||
__deref_opt_out_z LPWSTR* psczPath,
|
||||
__deref_opt_out_z LPWSTR* psczQueryString
|
||||
);
|
||||
|
||||
HRESULT DAPI UriCrackEx(
|
||||
__in_z LPCWSTR wzUri,
|
||||
__in URI_INFO* pUriInfo
|
||||
);
|
||||
|
||||
void DAPI UriInfoUninitialize(
|
||||
__in URI_INFO* pUriInfo
|
||||
);
|
||||
|
||||
HRESULT DAPI UriCreate(
|
||||
__inout_z LPWSTR* psczUri,
|
||||
__in INTERNET_SCHEME scheme,
|
||||
__in_z_opt LPWSTR wzHostName,
|
||||
__in INTERNET_PORT port,
|
||||
__in_z_opt LPWSTR wzUser,
|
||||
__in_z_opt LPWSTR wzPassword,
|
||||
__in_z_opt LPWSTR wzPath,
|
||||
__in_z_opt LPWSTR wzQueryString
|
||||
);
|
||||
|
||||
HRESULT DAPI UriCanonicalize(
|
||||
__inout_z LPWSTR* psczUri
|
||||
);
|
||||
|
||||
HRESULT DAPI UriFile(
|
||||
__deref_out_z LPWSTR* psczFile,
|
||||
__in_z LPCWSTR wzUri
|
||||
);
|
||||
|
||||
HRESULT DAPI UriProtocol(
|
||||
__in_z LPCWSTR wzUri,
|
||||
__out URI_PROTOCOL* pProtocol
|
||||
);
|
||||
|
||||
HRESULT DAPI UriRoot(
|
||||
__in_z LPCWSTR wzUri,
|
||||
__out LPWSTR* ppwzRoot,
|
||||
__out_opt URI_PROTOCOL* pProtocol
|
||||
);
|
||||
|
||||
HRESULT DAPI UriResolve(
|
||||
__in_z LPCWSTR wzUri,
|
||||
__in_opt LPCWSTR wzBaseUri,
|
||||
__out LPWSTR* ppwzResolvedUri,
|
||||
__out_opt const URI_PROTOCOL* pResolvedProtocol
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
42
tools/WIX/sdk/inc/userutil.h
Normal file
42
tools/WIX/sdk/inc/userutil.h
Normal file
|
@ -0,0 +1,42 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="userutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// User helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
HRESULT DAPI UserBuildDomainUserName(
|
||||
__out_ecount_z(cchDest) LPWSTR wzDest,
|
||||
__in int cchDest,
|
||||
__in_z LPCWSTR pwzName,
|
||||
__in_z LPCWSTR pwzDomain
|
||||
);
|
||||
|
||||
HRESULT DAPI UserCheckIsMember(
|
||||
__in_z LPCWSTR pwzName,
|
||||
__in_z LPCWSTR pwzDomain,
|
||||
__in_z LPCWSTR pwzGroupName,
|
||||
__in_z LPCWSTR pwzGroupDomain,
|
||||
__out LPBOOL lpfMember
|
||||
);
|
||||
|
||||
HRESULT DAPI UserCreateADsPath(
|
||||
__in_z LPCWSTR wzObjectDomain,
|
||||
__in_z LPCWSTR wzObjectName,
|
||||
__out BSTR *pbstrAdsPath
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
24
tools/WIX/sdk/inc/wcalog.h
Normal file
24
tools/WIX/sdk/inc/wcalog.h
Normal file
|
@ -0,0 +1,24 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="wcalog.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Private header for internal logging functions
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
BOOL WIXAPI IsVerboseLogging();
|
||||
HRESULT WIXAPI SetVerboseLoggingAtom(BOOL bValue);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
372
tools/WIX/sdk/inc/wcautil.h
Normal file
372
tools/WIX/sdk/inc/wcautil.h
Normal file
|
@ -0,0 +1,372 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="wcautil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Windows Installer XML CustomAction utility library.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define WIXAPI __stdcall
|
||||
#define ExitTrace WcaLogError
|
||||
#define ExitTrace1 WcaLogError
|
||||
#define ExitTrace2 WcaLogError
|
||||
#define ExitTrace3 WcaLogError
|
||||
|
||||
#include "dutil.h"
|
||||
|
||||
#define MessageExitOnLastError(x, e, s) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { ExitTrace(x, "%s", s); WcaErrorMessage(e, x, MB_OK, 0); goto LExit; } }
|
||||
#define MessageExitOnLastError1(x, e, f, s) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { ExitTrace1(x, f, s); WcaErrorMessage(e, x, MB_OK, 1, s); goto LExit; } }
|
||||
|
||||
#define MessageExitOnFailure(x, e, s) if (FAILED(x)) { ExitTrace(x, "%s", s); WcaErrorMessage(e, x, INSTALLMESSAGE_ERROR | MB_OK, 0); goto LExit; }
|
||||
#define MessageExitOnFailure1(x, e, f, s) if (FAILED(x)) { ExitTrace1(x, f, s); WcaErrorMessage(e, x, INSTALLMESSAGE_ERROR | MB_OK, 1, s); goto LExit; }
|
||||
#define MessageExitOnFailure2(x, e, f, s, t) if (FAILED(x)) { ExitTrace2(x, f, s, t); WcaErrorMessage(e, x, INSTALLMESSAGE_ERROR | MB_OK, 2, s, t); goto LExit; }
|
||||
#define MessageExitOnFailure3(x, e, f, s, t, u) if (FAILED(x)) { ExitTrace2(x, f, s, t, u); WcaErrorMessage(e, x, INSTALLMESSAGE_ERROR | MB_OK, 3, s, t, u); goto LExit; }
|
||||
|
||||
#define MessageExitOnNullWithLastError(p, x, e, s) if (NULL == p) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } ExitTrace(x, "%s", s); WcaErrorMessage(e, x, MB_OK, 0); goto LExit; }
|
||||
#define MessageExitOnNullWithLastError1(p, x, e, f, s) if (NULL == p) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } ExitTrace(x, f, s); WcaErrorMessage(e, x, MB_OK, 1, s); goto LExit; }
|
||||
#define MessageExitOnNullWithLastError2(p, x, e, f, s, t) if (NULL == p) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } ExitTrace(x, f, s, t); WcaErrorMessage(e, x, MB_OK, 2, s, t); goto LExit; }
|
||||
|
||||
// Generic action enum.
|
||||
typedef enum WCA_ACTION
|
||||
{
|
||||
WCA_ACTION_NONE,
|
||||
WCA_ACTION_INSTALL,
|
||||
WCA_ACTION_UNINSTALL,
|
||||
} WCA_ACTION;
|
||||
|
||||
typedef enum WCA_CASCRIPT
|
||||
{
|
||||
WCA_CASCRIPT_SCHEDULED,
|
||||
WCA_CASCRIPT_ROLLBACK,
|
||||
} WCA_CASCRIPT;
|
||||
|
||||
typedef enum WCA_CASCRIPT_CLOSE
|
||||
{
|
||||
WCA_CASCRIPT_CLOSE_PRESERVE,
|
||||
WCA_CASCRIPT_CLOSE_DELETE,
|
||||
} WCA_CASCRIPT_CLOSE;
|
||||
|
||||
typedef enum WCA_TODO
|
||||
{
|
||||
WCA_TODO_UNKNOWN,
|
||||
WCA_TODO_INSTALL,
|
||||
WCA_TODO_UNINSTALL,
|
||||
WCA_TODO_REINSTALL,
|
||||
} WCA_TODO;
|
||||
|
||||
typedef struct WCA_CASCRIPT_STRUCT
|
||||
{
|
||||
LPWSTR pwzScriptPath;
|
||||
HANDLE hScriptFile;
|
||||
} *WCA_CASCRIPT_HANDLE;
|
||||
|
||||
void WIXAPI WcaGlobalInitialize(
|
||||
__in HINSTANCE hInst
|
||||
);
|
||||
void WIXAPI WcaGlobalFinalize();
|
||||
|
||||
HRESULT WIXAPI WcaInitialize(
|
||||
__in MSIHANDLE hInstall,
|
||||
__in_z PCSTR szCustomActionLogName
|
||||
);
|
||||
UINT WIXAPI WcaFinalize(
|
||||
__in UINT iReturnValue
|
||||
);
|
||||
BOOL WIXAPI WcaIsInitialized();
|
||||
|
||||
MSIHANDLE WIXAPI WcaGetInstallHandle();
|
||||
MSIHANDLE WIXAPI WcaGetDatabaseHandle();
|
||||
|
||||
const char* WIXAPI WcaGetLogName();
|
||||
|
||||
void WIXAPI WcaSetReturnValue(
|
||||
__in UINT iReturnValue
|
||||
);
|
||||
BOOL WIXAPI WcaCancelDetected();
|
||||
|
||||
#define LOG_BUFFER 2048
|
||||
typedef enum LOGLEVEL
|
||||
{
|
||||
LOGMSG_TRACEONLY, // Never written to the log file (except in DEBUG builds)
|
||||
LOGMSG_VERBOSE, // Written to log when LOGVERBOSE
|
||||
LOGMSG_STANDARD // Written to log whenever informational logging is enabled
|
||||
} LOGLEVEL;
|
||||
|
||||
void __cdecl WcaLog(
|
||||
__in LOGLEVEL llv,
|
||||
__in_z __format_string PCSTR fmt, ...
|
||||
);
|
||||
BOOL WIXAPI WcaDisplayAssert(
|
||||
__in LPCSTR sz
|
||||
);
|
||||
void __cdecl WcaLogError(
|
||||
__in HRESULT hr,
|
||||
__in LPCSTR szMessage,
|
||||
...
|
||||
);
|
||||
|
||||
UINT WIXAPI WcaProcessMessage(
|
||||
__in INSTALLMESSAGE eMessageType,
|
||||
__in MSIHANDLE hRecord
|
||||
);
|
||||
UINT __cdecl WcaErrorMessage(
|
||||
__in int iError,
|
||||
__in HRESULT hrError,
|
||||
__in UINT uiType,
|
||||
__in DWORD cArgs,
|
||||
...
|
||||
);
|
||||
HRESULT WIXAPI WcaProgressMessage(
|
||||
__in UINT uiCost,
|
||||
__in BOOL fExtendProgressBar
|
||||
);
|
||||
|
||||
BOOL WIXAPI WcaIsInstalling(
|
||||
__in INSTALLSTATE isInstalled,
|
||||
__in INSTALLSTATE isAction
|
||||
);
|
||||
BOOL WIXAPI WcaIsReInstalling(
|
||||
__in INSTALLSTATE isInstalled,
|
||||
__in INSTALLSTATE isAction
|
||||
);
|
||||
BOOL WIXAPI WcaIsUninstalling(
|
||||
__in INSTALLSTATE isInstalled,
|
||||
__in INSTALLSTATE isAction
|
||||
);
|
||||
|
||||
HRESULT WIXAPI WcaSetComponentState(
|
||||
__in_z LPCWSTR wzComponent,
|
||||
__in INSTALLSTATE isState
|
||||
);
|
||||
|
||||
HRESULT WIXAPI WcaTableExists(
|
||||
__in_z LPCWSTR wzTable
|
||||
);
|
||||
|
||||
HRESULT WIXAPI WcaOpenView(
|
||||
__in_z LPCWSTR wzSql,
|
||||
__out MSIHANDLE* phView
|
||||
);
|
||||
HRESULT WIXAPI WcaExecuteView(
|
||||
__in MSIHANDLE hView,
|
||||
__in MSIHANDLE hRec
|
||||
);
|
||||
HRESULT WIXAPI WcaOpenExecuteView(
|
||||
__in_z LPCWSTR wzSql,
|
||||
__out MSIHANDLE* phView
|
||||
);
|
||||
HRESULT WIXAPI WcaFetchRecord(
|
||||
__in MSIHANDLE hView,
|
||||
__out MSIHANDLE* phRec
|
||||
);
|
||||
HRESULT WIXAPI WcaFetchSingleRecord(
|
||||
__in MSIHANDLE hView,
|
||||
__out MSIHANDLE* phRec
|
||||
);
|
||||
|
||||
HRESULT WIXAPI WcaGetProperty(
|
||||
__in_z LPCWSTR wzProperty,
|
||||
__inout LPWSTR* ppwzData
|
||||
);
|
||||
HRESULT WIXAPI WcaGetFormattedProperty(
|
||||
__in_z LPCWSTR wzProperty,
|
||||
__out LPWSTR* ppwzData
|
||||
);
|
||||
HRESULT WIXAPI WcaGetFormattedString(
|
||||
__in_z LPCWSTR wzString,
|
||||
__out LPWSTR* ppwzData
|
||||
);
|
||||
HRESULT WIXAPI WcaGetIntProperty(
|
||||
__in_z LPCWSTR wzProperty,
|
||||
__inout int* piData
|
||||
);
|
||||
HRESULT WIXAPI WcaGetTargetPath(
|
||||
__in_z LPCWSTR wzFolder,
|
||||
__out LPWSTR* ppwzData
|
||||
);
|
||||
HRESULT WIXAPI WcaSetProperty(
|
||||
__in_z LPCWSTR wzPropertyName,
|
||||
__in_z LPCWSTR wzPropertyValue
|
||||
);
|
||||
HRESULT WIXAPI WcaSetIntProperty(
|
||||
__in_z LPCWSTR wzPropertyName,
|
||||
__in int nPropertyValue
|
||||
);
|
||||
BOOL WIXAPI WcaIsPropertySet(
|
||||
__in LPCSTR szProperty
|
||||
);
|
||||
BOOL WIXAPI WcaIsUnicodePropertySet(
|
||||
__in LPCWSTR wzProperty
|
||||
);
|
||||
|
||||
HRESULT WIXAPI WcaGetRecordInteger(
|
||||
__in MSIHANDLE hRec,
|
||||
__in UINT uiField,
|
||||
__inout int* piData
|
||||
);
|
||||
HRESULT WIXAPI WcaGetRecordString(
|
||||
__in MSIHANDLE hRec,
|
||||
__in UINT uiField,
|
||||
__inout LPWSTR* ppwzData
|
||||
);
|
||||
HRESULT WIXAPI WcaGetRecordFormattedInteger(
|
||||
__in MSIHANDLE hRec,
|
||||
__in UINT uiField,
|
||||
__out int* piData
|
||||
);
|
||||
HRESULT WIXAPI WcaGetRecordFormattedString(
|
||||
__in MSIHANDLE hRec,
|
||||
__in UINT uiField,
|
||||
__inout LPWSTR* ppwzData
|
||||
);
|
||||
|
||||
HRESULT WIXAPI WcaAllocStream(
|
||||
__deref_out_bcount_part(cbData, 0) BYTE** ppbData,
|
||||
__in DWORD cbData
|
||||
);
|
||||
HRESULT WIXAPI WcaFreeStream(
|
||||
__in BYTE* pbData
|
||||
);
|
||||
|
||||
HRESULT WIXAPI WcaGetRecordStream(
|
||||
__in MSIHANDLE hRecBinary,
|
||||
__in UINT uiField,
|
||||
__deref_out_bcount_full(*pcbData) BYTE** ppbData,
|
||||
__out DWORD* pcbData
|
||||
);
|
||||
HRESULT WIXAPI WcaSetRecordString(
|
||||
__in MSIHANDLE hRec,
|
||||
__in UINT uiField,
|
||||
__in_z LPCWSTR wzData
|
||||
);
|
||||
HRESULT WIXAPI WcaSetRecordInteger(
|
||||
__in MSIHANDLE hRec,
|
||||
__in UINT uiField,
|
||||
__in int iValue
|
||||
);
|
||||
|
||||
HRESULT WIXAPI WcaDoDeferredAction(
|
||||
__in_z LPCWSTR wzAction,
|
||||
__in_z LPCWSTR wzCustomActionData,
|
||||
__in UINT uiCost
|
||||
);
|
||||
DWORD WIXAPI WcaCountOfCustomActionDataRecords(
|
||||
__in_z LPCWSTR wzData
|
||||
);
|
||||
|
||||
HRESULT WIXAPI WcaReadStringFromCaData(
|
||||
__deref_in LPWSTR* ppwzCustomActionData,
|
||||
__deref_out_z LPWSTR* ppwzString
|
||||
);
|
||||
HRESULT WIXAPI WcaReadIntegerFromCaData(
|
||||
__deref_in LPWSTR* ppwzCustomActionData,
|
||||
__out int* piResult
|
||||
);
|
||||
HRESULT WIXAPI WcaReadStreamFromCaData(
|
||||
__deref_in LPWSTR* ppwzCustomActionData,
|
||||
__deref_out_bcount(*pcbData) BYTE** ppbData,
|
||||
__out DWORD_PTR* pcbData
|
||||
);
|
||||
HRESULT WIXAPI WcaWriteStringToCaData(
|
||||
__in_z LPCWSTR wzString,
|
||||
__deref_inout_z LPWSTR* ppwzCustomActionData
|
||||
);
|
||||
HRESULT WIXAPI WcaWriteIntegerToCaData(
|
||||
__in int i,
|
||||
__deref_out_z_opt LPWSTR* ppwzCustomActionData
|
||||
);
|
||||
HRESULT WIXAPI WcaWriteStreamToCaData(
|
||||
__in_bcount(cbData) const BYTE* pbData,
|
||||
__in DWORD cbData,
|
||||
__deref_inout_z_opt LPWSTR* ppwzCustomActionData
|
||||
);
|
||||
|
||||
HRESULT __cdecl WcaAddTempRecord(
|
||||
__inout MSIHANDLE* phTableView,
|
||||
__inout MSIHANDLE* phColumns,
|
||||
__in_z LPCWSTR wzTable,
|
||||
__out_opt MSIDBERROR* pdbError,
|
||||
__in UINT uiUniquifyColumn,
|
||||
__in UINT cColumns,
|
||||
...
|
||||
);
|
||||
|
||||
HRESULT WIXAPI WcaDumpTable(
|
||||
__in_z LPCWSTR wzTable
|
||||
);
|
||||
|
||||
HRESULT WIXAPI WcaDeferredActionRequiresReboot();
|
||||
BOOL WIXAPI WcaDidDeferredActionRequireReboot();
|
||||
|
||||
HRESULT WIXAPI WcaCaScriptCreateKey(
|
||||
__out LPWSTR* ppwzScriptKey
|
||||
);
|
||||
|
||||
HRESULT WIXAPI WcaCaScriptCreate(
|
||||
__in WCA_ACTION action,
|
||||
__in WCA_CASCRIPT script,
|
||||
__in BOOL fImpersonated,
|
||||
__in_z LPCWSTR wzScriptKey,
|
||||
__in BOOL fAppend,
|
||||
__out WCA_CASCRIPT_HANDLE* phScript
|
||||
);
|
||||
|
||||
HRESULT WIXAPI WcaCaScriptOpen(
|
||||
__in WCA_ACTION action,
|
||||
__in WCA_CASCRIPT script,
|
||||
__in BOOL fImpersonated,
|
||||
__in_z LPCWSTR wzScriptKey,
|
||||
__out WCA_CASCRIPT_HANDLE* phScript
|
||||
);
|
||||
|
||||
void WIXAPI WcaCaScriptClose(
|
||||
__in_opt WCA_CASCRIPT_HANDLE hScript,
|
||||
__in WCA_CASCRIPT_CLOSE closeOperation
|
||||
);
|
||||
|
||||
HRESULT WIXAPI WcaCaScriptReadAsCustomActionData(
|
||||
__in WCA_CASCRIPT_HANDLE hScript,
|
||||
__out LPWSTR* ppwzCustomActionData
|
||||
);
|
||||
|
||||
HRESULT WIXAPI WcaCaScriptWriteString(
|
||||
__in WCA_CASCRIPT_HANDLE hScript,
|
||||
__in_z LPCWSTR wzValue
|
||||
);
|
||||
|
||||
HRESULT WIXAPI WcaCaScriptWriteNumber(
|
||||
__in WCA_CASCRIPT_HANDLE hScript,
|
||||
__in DWORD dwValue
|
||||
);
|
||||
|
||||
void WIXAPI WcaCaScriptFlush(
|
||||
__in WCA_CASCRIPT_HANDLE hScript
|
||||
);
|
||||
|
||||
void WIXAPI WcaCaScriptCleanup(
|
||||
__in_z LPCWSTR wzProductCode,
|
||||
__in BOOL fImpersonated
|
||||
);
|
||||
|
||||
HRESULT WIXAPI QuietExec(
|
||||
__inout_z LPWSTR wzCommand,
|
||||
__in DWORD dwTimeout
|
||||
);
|
||||
|
||||
WCA_TODO WIXAPI WcaGetComponentToDo(
|
||||
__in_z LPCWSTR wzComponentId
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
30
tools/WIX/sdk/inc/wcawow64.h
Normal file
30
tools/WIX/sdk/inc/wcawow64.h
Normal file
|
@ -0,0 +1,30 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="wcawow64.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Windows Installer XML CustomAction utility library for Wow64 API-related functionality.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#include "wcautil.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
HRESULT WIXAPI WcaInitializeWow64();
|
||||
BOOL WIXAPI WcaIsWow64Process();
|
||||
BOOL WIXAPI WcaIsWow64Initialized();
|
||||
HRESULT WIXAPI WcaDisableWow64FSRedirection();
|
||||
HRESULT WIXAPI WcaRevertWow64FSRedirection();
|
||||
HRESULT WIXAPI WcaFinalizeWow64();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
141
tools/WIX/sdk/inc/wcawrapquery.h
Normal file
141
tools/WIX/sdk/inc/wcawrapquery.h
Normal file
|
@ -0,0 +1,141 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="wcawrapquery.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Windows Installer XML CustomAction utility library wrappers meant to wrap an MSI view as
|
||||
// opened by an immediate custom action and transmit it to a deferred custom action
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#include "wcautil.h"
|
||||
|
||||
// Enumerations
|
||||
typedef enum eWrapQueryAction
|
||||
{
|
||||
wqaTableBegin = 1,
|
||||
wqaTableFinish,
|
||||
wqaRowBegin,
|
||||
wqaRowFinish
|
||||
} eWrapQueryAction;
|
||||
|
||||
typedef enum eColumnDataType
|
||||
{
|
||||
cdtString = 1,
|
||||
cdtInt,
|
||||
cdtStream,
|
||||
cdtUnknown
|
||||
} eColumnDataType;
|
||||
|
||||
typedef enum eFormatMaskColumn
|
||||
{
|
||||
efmcColumn1 = 1,
|
||||
efmcColumn2 = 1 << 1,
|
||||
efmcColumn3 = 1 << 2,
|
||||
efmcColumn4 = 1 << 3,
|
||||
efmcColumn5 = 1 << 4,
|
||||
efmcColumn6 = 1 << 5,
|
||||
efmcColumn7 = 1 << 6,
|
||||
efmcColumn8 = 1 << 7,
|
||||
efmcColumn9 = 1 << 8,
|
||||
efmcColumn10 = 1 << 9,
|
||||
efmcColumn11 = 1 << 10,
|
||||
efmcColumn12 = 1 << 11,
|
||||
efmcColumn13 = 1 << 12,
|
||||
efmcColumn14 = 1 << 13,
|
||||
efmcColumn15 = 1 << 14,
|
||||
efmcColumn16 = 1 << 15,
|
||||
efmcColumn17 = 1 << 16,
|
||||
efmcColumn18 = 1 << 17,
|
||||
efmcColumn19 = 1 << 18,
|
||||
efmcColumn20 = 1 << 19,
|
||||
efmcColumn21 = 1 << 20,
|
||||
efmcColumn22 = 1 << 21,
|
||||
efmcColumn23 = 1 << 22,
|
||||
efmcColumn24 = 1 << 23,
|
||||
efmcColumn25 = 1 << 24,
|
||||
efmcColumn26 = 1 << 25,
|
||||
efmcColumn27 = 1 << 26,
|
||||
efmcColumn28 = 1 << 27,
|
||||
efmcColumn29 = 1 << 28,
|
||||
efmcColumn30 = 1 << 29,
|
||||
efmcColumn31 = 1 << 30,
|
||||
efmcColumn32 = 1 << 31,
|
||||
} eFormatMaskColumn;
|
||||
|
||||
// Keeps track of the query instance for the reading CA (deferred CA)
|
||||
typedef struct WCA_WRAPQUERY_STRUCT
|
||||
{
|
||||
// These are used to size our dynamic arrays below
|
||||
DWORD dwColumns, dwRows, dwNextIndex;
|
||||
|
||||
// Dynamic arrays of column schema information
|
||||
eColumnDataType *pcdtColumnType;
|
||||
LPWSTR *ppwzColumnNames;
|
||||
|
||||
// Dynamic array of raw record data
|
||||
MSIHANDLE *phRecords;
|
||||
} *WCA_WRAPQUERY_HANDLE;
|
||||
|
||||
// Wrap a query
|
||||
// Setting the pfFormatMask enables control over which fields will be formatted, and which will be left unchanged
|
||||
// Setting dwComponentColumn to something other than 0xFFFFFFFF tells WcaWrapQuery to add two additional columns to the right side of the table
|
||||
// - ISInstalled and ISAction - which map to the ComponentState of the component (the component is found in the column specified)
|
||||
// Note that if a component is NULL, the component state columns will also be left null, and it will be up to the deferred CA to fail or ignore the case appropriately
|
||||
// Setting dwDirectoryColumn to something other than 0xFFFFFFFF tells WcaWrapQuery to add two more additional columns to the right side of the table
|
||||
// - SourcePath and TargetPath - which map to the Directory's Source and Target Path (the directory is found in the column specified)
|
||||
// Note that if a directory is NULL, the directory source/target path columns will also be left null, and it will be up to the deferred CA to fail or ignore the case appropriately
|
||||
HRESULT WIXAPI WcaWrapQuery(
|
||||
__in_z LPCWSTR pwzQuery,
|
||||
__inout LPWSTR * ppwzCustomActionData,
|
||||
__in_opt DWORD dwFormatMask,
|
||||
__in_opt DWORD dwComponentColumn,
|
||||
__in_opt DWORD dwDirectoryColumn
|
||||
);
|
||||
// This wraps an empty table query into the custom action data - this is a way to indicate to the deferred custom action that a necessary table doesn't exist, or its query returned no results
|
||||
HRESULT WIXAPI WcaWrapEmptyQuery(
|
||||
__inout LPWSTR * ppwzCustomActionData
|
||||
);
|
||||
|
||||
// Open a new unwrap query operation, with data from the ppwzCustomActionData string
|
||||
HRESULT WIXAPI WcaBeginUnwrapQuery(
|
||||
__out WCA_WRAPQUERY_HANDLE * phWrapQuery,
|
||||
__inout LPWSTR * ppwzCustomActionData
|
||||
);
|
||||
|
||||
// Get the number of records in a query being unwrapped
|
||||
DWORD WIXAPI WcaGetQueryRecords(
|
||||
__in const WCA_WRAPQUERY_HANDLE hWrapQuery
|
||||
);
|
||||
|
||||
// This function resets a query back to its first row, so that the next fetch returns the first record
|
||||
void WIXAPI WcaFetchWrappedReset(
|
||||
__in WCA_WRAPQUERY_HANDLE hWrapQuery
|
||||
);
|
||||
// Fetch the next record in this query
|
||||
// NOTE: the MSIHANDLE returned by this function should not be released, as it is the same handle used by the query object to maintain the item.
|
||||
// so, don't use this function with PMSIHANDLE objects!
|
||||
HRESULT WIXAPI WcaFetchWrappedRecord(
|
||||
__in WCA_WRAPQUERY_HANDLE hWrapQuery,
|
||||
__out MSIHANDLE* phRec
|
||||
);
|
||||
|
||||
// Fetch the next record in the query where the string value in column dwComparisonColumn equals the value pwzExpectedValue
|
||||
// NOTE: the MSIHANDLE returned by this function should not be released, as it is the same handle used by the query object to maintain the item.
|
||||
// so, don't use this function with PMSIHANDLE objects!
|
||||
HRESULT WIXAPI WcaFetchWrappedRecordWhereString(
|
||||
__in WCA_WRAPQUERY_HANDLE hWrapQuery,
|
||||
__in DWORD dwComparisonColumn,
|
||||
__in_z LPCWSTR pwzExpectedValue,
|
||||
__out MSIHANDLE* phRec
|
||||
);
|
||||
|
||||
// Release a query ID (frees memory, and frees the ID for a new query)
|
||||
void WIXAPI WcaFinishUnwrapQuery(
|
||||
__in_opt WCA_WRAPQUERY_HANDLE hWrapQuery
|
||||
);
|
383
tools/WIX/sdk/inc/wiutil.h
Normal file
383
tools/WIX/sdk/inc/wiutil.h
Normal file
|
@ -0,0 +1,383 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="wiutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for Windows Installer helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// constants
|
||||
|
||||
#define IDNOACTION 0
|
||||
#define WIU_MB_OKIGNORECANCELRETRY 0xE
|
||||
|
||||
#define MAX_DARWIN_KEY 73
|
||||
#define MAX_DARWIN_COLUMN 255
|
||||
|
||||
#define WIU_LOG_DEFAULT INSTALLLOGMODE_FATALEXIT | INSTALLLOGMODE_ERROR | INSTALLLOGMODE_WARNING | \
|
||||
INSTALLLOGMODE_USER | INSTALLLOGMODE_INFO | INSTALLLOGMODE_RESOLVESOURCE | \
|
||||
INSTALLLOGMODE_OUTOFDISKSPACE | INSTALLLOGMODE_ACTIONSTART | \
|
||||
INSTALLLOGMODE_ACTIONDATA | INSTALLLOGMODE_COMMONDATA | INSTALLLOGMODE_PROPERTYDUMP
|
||||
|
||||
#define ReleaseMsi(h) if (h) { ::MsiCloseHandle(h); }
|
||||
#define ReleaseNullMsi(h) if (h) { ::MsiCloseHandle(h); h = NULL; }
|
||||
|
||||
|
||||
typedef enum WIU_RESTART
|
||||
{
|
||||
WIU_RESTART_NONE,
|
||||
WIU_RESTART_REQUIRED,
|
||||
WIU_RESTART_INITIATED,
|
||||
} WIU_RESTART;
|
||||
|
||||
typedef enum WIU_MSI_EXECUTE_MESSAGE_TYPE
|
||||
{
|
||||
WIU_MSI_EXECUTE_MESSAGE_NONE,
|
||||
WIU_MSI_EXECUTE_MESSAGE_PROGRESS,
|
||||
WIU_MSI_EXECUTE_MESSAGE_ERROR,
|
||||
WIU_MSI_EXECUTE_MESSAGE_MSI_MESSAGE,
|
||||
WIU_MSI_EXECUTE_MESSAGE_MSI_FILES_IN_USE,
|
||||
} WIU_MSI_EXECUTE_MESSAGE_TYPE;
|
||||
|
||||
|
||||
// structures
|
||||
|
||||
typedef struct _WIU_MSI_EXECUTE_MESSAGE
|
||||
{
|
||||
WIU_MSI_EXECUTE_MESSAGE_TYPE type;
|
||||
DWORD dwAllowedResults;
|
||||
|
||||
DWORD cData;
|
||||
LPCWSTR* rgwzData;
|
||||
|
||||
INT nResultRecommendation; // recommended return result for this message based on analysis of real world installs.
|
||||
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
DWORD dwPercentage;
|
||||
} progress;
|
||||
struct
|
||||
{
|
||||
DWORD dwErrorCode;
|
||||
LPCWSTR wzMessage;
|
||||
} error;
|
||||
struct
|
||||
{
|
||||
INSTALLMESSAGE mt;
|
||||
LPCWSTR wzMessage;
|
||||
} msiMessage;
|
||||
struct
|
||||
{
|
||||
DWORD cFiles;
|
||||
LPCWSTR* rgwzFiles;
|
||||
} msiFilesInUse;
|
||||
};
|
||||
} WIU_MSI_EXECUTE_MESSAGE;
|
||||
|
||||
typedef struct _WIU_MSI_PROGRESS
|
||||
{
|
||||
DWORD dwTotal;
|
||||
DWORD dwCompleted;
|
||||
DWORD dwStep;
|
||||
BOOL fMoveForward;
|
||||
BOOL fEnableActionData;
|
||||
BOOL fScriptInProgress;
|
||||
} WIU_MSI_PROGRESS;
|
||||
|
||||
|
||||
typedef int (*PFN_MSIEXECUTEMESSAGEHANDLER)(
|
||||
__in WIU_MSI_EXECUTE_MESSAGE* pMessage,
|
||||
__in_opt LPVOID pvContext
|
||||
);
|
||||
|
||||
typedef struct _WIU_MSI_EXECUTE_CONTEXT
|
||||
{
|
||||
BOOL fRollback;
|
||||
PFN_MSIEXECUTEMESSAGEHANDLER pfnMessageHandler;
|
||||
LPVOID pvContext;
|
||||
WIU_MSI_PROGRESS rgMsiProgress[64];
|
||||
DWORD dwCurrentProgressIndex;
|
||||
|
||||
INSTALLUILEVEL previousInstallUILevel;
|
||||
HWND hwndPreviousParentWindow;
|
||||
INSTALLUI_HANDLERW pfnPreviousExternalUI;
|
||||
INSTALLUI_HANDLER_RECORD pfnPreviousExternalUIRecord;
|
||||
|
||||
BOOL fSetPreviousExternalUIRecord;
|
||||
BOOL fSetPreviousExternalUI;
|
||||
} WIU_MSI_EXECUTE_CONTEXT;
|
||||
|
||||
|
||||
// typedefs
|
||||
typedef UINT (WINAPI *PFN_MSIENABLELOGW)(
|
||||
__in DWORD dwLogMode,
|
||||
__in_z LPCWSTR szLogFile,
|
||||
__in DWORD dwLogAttributes
|
||||
);
|
||||
typedef UINT (WINAPI *PFN_MSIGETPRODUCTINFOW)(
|
||||
__in LPCWSTR szProductCode,
|
||||
__in LPCWSTR szProperty,
|
||||
__out_ecount_opt(*pcchValue) LPWSTR szValue,
|
||||
__inout LPDWORD pcchValue
|
||||
);
|
||||
typedef INSTALLSTATE (WINAPI *PFN_MSIGETCOMPONENTPATHW)(
|
||||
__in LPCWSTR szProduct,
|
||||
__in LPCWSTR szComponent,
|
||||
__out_ecount_opt(*pcchBuf) LPWSTR lpPathBuf,
|
||||
__inout_opt LPDWORD pcchBuf
|
||||
);
|
||||
typedef INSTALLSTATE (WINAPI *PFN_MSILOCATECOMPONENTW)(
|
||||
__in LPCWSTR szComponent,
|
||||
__out_ecount_opt(*pcchBuf) LPWSTR lpPathBuf,
|
||||
__inout_opt LPDWORD pcchBuf
|
||||
);
|
||||
typedef UINT (WINAPI *PFN_MSIGETPRODUCTINFOEXW)(
|
||||
__in LPCWSTR szProductCode,
|
||||
__in_opt LPCWSTR szUserSid,
|
||||
__in MSIINSTALLCONTEXT dwContext,
|
||||
__in LPCWSTR szProperty,
|
||||
__out_ecount_opt(*pcchValue) LPWSTR szValue,
|
||||
__inout_opt LPDWORD pcchValue
|
||||
);
|
||||
typedef INSTALLSTATE (WINAPI *PFN_MSIQUERYFEATURESTATEW)(
|
||||
__in LPCWSTR szProduct,
|
||||
__in LPCWSTR szFeature
|
||||
);
|
||||
typedef UINT (WINAPI *PFN_MSIGETPATCHINFOEXW)(
|
||||
__in_z LPCWSTR wzPatchCode,
|
||||
__in_z LPCWSTR wzProductCode,
|
||||
__in_z_opt LPCWSTR wzUserSid,
|
||||
__in MSIINSTALLCONTEXT dwContext,
|
||||
__in_z LPCWSTR wzProperty,
|
||||
__out_opt LPWSTR wzValue,
|
||||
__inout DWORD* pcchValue
|
||||
);
|
||||
typedef UINT (WINAPI *PFN_MSIDETERMINEPATCHSEQUENCEW)(
|
||||
__in_z LPCWSTR wzProductCode,
|
||||
__in_z_opt LPCWSTR wzUserSid,
|
||||
__in MSIINSTALLCONTEXT context,
|
||||
__in DWORD cPatchInfo,
|
||||
__in PMSIPATCHSEQUENCEINFOW pPatchInfo
|
||||
);
|
||||
typedef UINT (WINAPI *PFN_MSIDETERMINEAPPLICABLEPATCHESW)(
|
||||
__in_z LPCWSTR wzProductPackagePath,
|
||||
__in DWORD cPatchInfo,
|
||||
__in PMSIPATCHSEQUENCEINFOW pPatchInfo
|
||||
);
|
||||
typedef UINT (WINAPI *PFN_MSIINSTALLPRODUCTW)(
|
||||
__in LPCWSTR szPackagePath,
|
||||
__in_opt LPCWSTR szCommandLine
|
||||
);
|
||||
typedef UINT (WINAPI *PFN_MSICONFIGUREPRODUCTEXW)(
|
||||
__in LPCWSTR szProduct,
|
||||
__in int iInstallLevel,
|
||||
__in INSTALLSTATE eInstallState,
|
||||
__in_opt LPCWSTR szCommandLine
|
||||
);
|
||||
typedef UINT (WINAPI *PFN_MSIREMOVEPATCHESW)(
|
||||
__in_z LPCWSTR wzPatchList,
|
||||
__in_z LPCWSTR wzProductCode,
|
||||
__in INSTALLTYPE eUninstallType,
|
||||
__in_z_opt LPCWSTR szPropertyList
|
||||
);
|
||||
typedef INSTALLUILEVEL (WINAPI *PFN_MSISETINTERNALUI)(
|
||||
__in INSTALLUILEVEL dwUILevel,
|
||||
__inout_opt HWND *phWnd
|
||||
);
|
||||
typedef UINT (WINAPI *PFN_MSISETEXTERNALUIRECORD)(
|
||||
__in_opt INSTALLUI_HANDLER_RECORD puiHandler,
|
||||
__in DWORD dwMessageFilter,
|
||||
__in_opt LPVOID pvContext,
|
||||
__out_opt PINSTALLUI_HANDLER_RECORD ppuiPrevHandler
|
||||
);
|
||||
typedef INSTALLUI_HANDLERW (WINAPI *PFN_MSISETEXTERNALUIW)(
|
||||
__in_opt INSTALLUI_HANDLERW puiHandler,
|
||||
__in DWORD dwMessageFilter,
|
||||
__in_opt LPVOID pvContext
|
||||
);
|
||||
typedef UINT (WINAPI *PFN_MSIENUMPRODUCTSW)(
|
||||
__in DWORD iProductIndex,
|
||||
__out_ecount(MAX_GUID_CHARS + 1) LPWSTR lpProductBuf
|
||||
);
|
||||
typedef UINT (WINAPI *PFN_MSIENUMPRODUCTSEXW)(
|
||||
__in_z_opt LPCWSTR wzProductCode,
|
||||
__in_z_opt LPCWSTR wzUserSid,
|
||||
__in DWORD dwContext,
|
||||
__in DWORD dwIndex,
|
||||
__out_opt WCHAR wzInstalledProductCode[39],
|
||||
__out_opt MSIINSTALLCONTEXT *pdwInstalledContext,
|
||||
__out_opt LPWSTR wzSid,
|
||||
__inout_opt LPDWORD pcchSid
|
||||
);
|
||||
|
||||
typedef UINT (WINAPI *PFN_MSIENUMRELATEDPRODUCTSW)(
|
||||
__in LPCWSTR lpUpgradeCode,
|
||||
__reserved DWORD dwReserved,
|
||||
__in DWORD iProductIndex,
|
||||
__out_ecount(MAX_GUID_CHARS + 1) LPWSTR lpProductBuf
|
||||
);
|
||||
typedef UINT (WINAPI *PFN_MSISOURCELISTADDSOURCEEXW)(
|
||||
__in LPCWSTR szProductCodeOrPatchCode,
|
||||
__in_opt LPCWSTR szUserSid,
|
||||
__in MSIINSTALLCONTEXT dwContext,
|
||||
__in DWORD dwOptions,
|
||||
__in LPCWSTR szSource,
|
||||
__in_opt DWORD dwIndex
|
||||
);
|
||||
|
||||
|
||||
HRESULT DAPI WiuInitialize(
|
||||
);
|
||||
void DAPI WiuUninitialize(
|
||||
);
|
||||
void DAPI WiuFunctionOverride(
|
||||
__in_opt PFN_MSIENABLELOGW pfnMsiEnableLogW,
|
||||
__in_opt PFN_MSIGETCOMPONENTPATHW pfnMsiGetComponentPathW,
|
||||
__in_opt PFN_MSILOCATECOMPONENTW pfnMsiLocateComponentW,
|
||||
__in_opt PFN_MSIQUERYFEATURESTATEW pfnMsiQueryFeatureStateW,
|
||||
__in_opt PFN_MSIGETPRODUCTINFOW pfnMsiGetProductInfoW,
|
||||
__in_opt PFN_MSIGETPRODUCTINFOEXW pfnMsiGetProductInfoExW,
|
||||
__in_opt PFN_MSIINSTALLPRODUCTW pfnMsiInstallProductW,
|
||||
__in_opt PFN_MSICONFIGUREPRODUCTEXW pfnMsiConfigureProductExW,
|
||||
__in_opt PFN_MSISETINTERNALUI pfnMsiSetInternalUI,
|
||||
__in_opt PFN_MSISETEXTERNALUIW pfnMsiSetExternalUIW,
|
||||
__in_opt PFN_MSIENUMRELATEDPRODUCTSW pfnMsiEnumRelatedProductsW,
|
||||
__in_opt PFN_MSISETEXTERNALUIRECORD pfnMsiSetExternalUIRecord,
|
||||
__in_opt PFN_MSISOURCELISTADDSOURCEEXW pfnMsiSourceListAddSourceExW
|
||||
);
|
||||
HRESULT DAPI WiuGetComponentPath(
|
||||
__in_z LPCWSTR wzProductCode,
|
||||
__in_z LPCWSTR wzComponentId,
|
||||
__out INSTALLSTATE* pInstallState,
|
||||
__out_z LPWSTR* psczValue
|
||||
);
|
||||
HRESULT DAPI WiuLocateComponent(
|
||||
__in_z LPCWSTR wzComponentId,
|
||||
__out INSTALLSTATE* pInstallState,
|
||||
__out_z LPWSTR* psczValue
|
||||
);
|
||||
HRESULT DAPI WiuQueryFeatureState(
|
||||
__in_z LPCWSTR wzProduct,
|
||||
__in_z LPCWSTR wzFeature,
|
||||
__out INSTALLSTATE* pInstallState
|
||||
);
|
||||
HRESULT DAPI WiuGetProductInfo(
|
||||
__in_z LPCWSTR wzProductCode,
|
||||
__in_z LPCWSTR wzProperty,
|
||||
__out LPWSTR* psczValue
|
||||
);
|
||||
HRESULT DAPI WiuGetProductInfoEx(
|
||||
__in_z LPCWSTR wzProductCode,
|
||||
__in_z_opt LPCWSTR wzUserSid,
|
||||
__in MSIINSTALLCONTEXT dwContext,
|
||||
__in_z LPCWSTR wzProperty,
|
||||
__out LPWSTR* psczValue
|
||||
);
|
||||
HRESULT DAPI WiuGetProductProperty(
|
||||
__in MSIHANDLE hProduct,
|
||||
__in_z LPCWSTR wzProperty,
|
||||
__out LPWSTR* psczValue
|
||||
);
|
||||
HRESULT DAPI WiuGetPatchInfoEx(
|
||||
__in_z LPCWSTR wzPatchCode,
|
||||
__in_z LPCWSTR wzProductCode,
|
||||
__in_z_opt LPCWSTR wzUserSid,
|
||||
__in MSIINSTALLCONTEXT dwContext,
|
||||
__in_z LPCWSTR wzProperty,
|
||||
__out LPWSTR* psczValue
|
||||
);
|
||||
HRESULT DAPI WiuDeterminePatchSequence(
|
||||
__in_z LPCWSTR wzProductCode,
|
||||
__in_z_opt LPCWSTR wzUserSid,
|
||||
__in MSIINSTALLCONTEXT context,
|
||||
__in PMSIPATCHSEQUENCEINFOW pPatchInfo,
|
||||
__in DWORD cPatchInfo
|
||||
);
|
||||
HRESULT DAPI WiuDetermineApplicablePatches(
|
||||
__in_z LPCWSTR wzProductPackagePath,
|
||||
__in PMSIPATCHSEQUENCEINFOW pPatchInfo,
|
||||
__in DWORD cPatchInfo
|
||||
);
|
||||
HRESULT DAPI WiuEnumProducts(
|
||||
__in DWORD iProductIndex,
|
||||
__out_ecount(MAX_GUID_CHARS + 1) LPWSTR wzProductCode
|
||||
);
|
||||
HRESULT DAPI WiuEnumProductsEx(
|
||||
__in_z_opt LPCWSTR wzProductCode,
|
||||
__in_z_opt LPCWSTR wzUserSid,
|
||||
__in DWORD dwContext,
|
||||
__in DWORD dwIndex,
|
||||
__out_opt WCHAR wzInstalledProductCode[39],
|
||||
__out_opt MSIINSTALLCONTEXT *pdwInstalledContext,
|
||||
__out_opt LPWSTR wzSid,
|
||||
__inout_opt LPDWORD pcchSid
|
||||
);
|
||||
HRESULT DAPI WiuEnumRelatedProducts(
|
||||
__in_z LPCWSTR wzUpgradeCode,
|
||||
__in DWORD iProductIndex,
|
||||
__out_ecount(MAX_GUID_CHARS + 1) LPWSTR wzProductCode
|
||||
);
|
||||
HRESULT DAPI WiuEnumRelatedProductCodes(
|
||||
__in_z LPCWSTR wzUpgradeCode,
|
||||
__deref_out_ecount_opt(pcRelatedProducts) LPWSTR** prgsczProductCodes,
|
||||
__out DWORD* pcRelatedProducts,
|
||||
__in BOOL fReturnHighestVersionOnly
|
||||
);
|
||||
HRESULT DAPI WiuEnableLog(
|
||||
__in DWORD dwLogMode,
|
||||
__in_z LPCWSTR wzLogFile,
|
||||
__in DWORD dwLogAttributes
|
||||
);
|
||||
HRESULT DAPI WiuInitializeExternalUI(
|
||||
__in PFN_MSIEXECUTEMESSAGEHANDLER pfnMessageHandler,
|
||||
__in INSTALLUILEVEL internalUILevel,
|
||||
__in HWND hwndParent,
|
||||
__in LPVOID pvContext,
|
||||
__in BOOL fRollback,
|
||||
__in WIU_MSI_EXECUTE_CONTEXT* pExecuteContext
|
||||
);
|
||||
void DAPI WiuUninitializeExternalUI(
|
||||
__in WIU_MSI_EXECUTE_CONTEXT* pExecuteContext
|
||||
);
|
||||
HRESULT DAPI WiuConfigureProductEx(
|
||||
__in_z LPCWSTR wzProduct,
|
||||
__in int iInstallLevel,
|
||||
__in INSTALLSTATE eInstallState,
|
||||
__in_z LPCWSTR wzCommandLine,
|
||||
__out WIU_RESTART* pRestart
|
||||
);
|
||||
HRESULT DAPI WiuInstallProduct(
|
||||
__in_z LPCWSTR wzPackagPath,
|
||||
__in_z LPCWSTR wzCommandLine,
|
||||
__out WIU_RESTART* pRestart
|
||||
);
|
||||
HRESULT DAPI WiuRemovePatches(
|
||||
__in_z LPCWSTR wzPatchList,
|
||||
__in_z LPCWSTR wzProductCode,
|
||||
__in_z LPCWSTR wzPropertyList,
|
||||
__out WIU_RESTART* pRestart
|
||||
);
|
||||
HRESULT DAPI WiuSourceListAddSourceEx(
|
||||
__in_z LPCWSTR wzProductCodeOrPatchCode,
|
||||
__in_z_opt LPCWSTR wzUserSid,
|
||||
__in MSIINSTALLCONTEXT dwContext,
|
||||
__in DWORD dwCode,
|
||||
__in_z LPCWSTR wzSource,
|
||||
__in_opt DWORD dwIndex
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
31
tools/WIX/sdk/inc/wuautil.h
Normal file
31
tools/WIX/sdk/inc/wuautil.h
Normal file
|
@ -0,0 +1,31 @@
|
|||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="wuautil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// Header for Windows Update Agent helpers.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
HRESULT DAPI WuaPauseAutomaticUpdates();
|
||||
|
||||
HRESULT DAPI WuaResumeAutomaticUpdates();
|
||||
|
||||
HRESULT DAPI WuaRestartRequired(
|
||||
__out BOOL* pfRestartRequired
|
||||
);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
178
tools/WIX/sdk/inc/xmlutil.h
Normal file
178
tools/WIX/sdk/inc/xmlutil.h
Normal file
|
@ -0,0 +1,178 @@
|
|||
#pragma once
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// <copyright file="xmlutil.h" company="Outercurve Foundation">
|
||||
// Copyright (c) 2004, Outercurve Foundation.
|
||||
// This software is released under Microsoft Reciprocal License (MS-RL).
|
||||
// The license and further copyright text can be found in the file
|
||||
// LICENSE.TXT at the root directory of the distribution.
|
||||
// </copyright>
|
||||
//
|
||||
// <summary>
|
||||
// XML helper functions.
|
||||
// </summary>
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
// constant XML CLSIDs and IIDs
|
||||
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument = {0x2933BF90, 0x7B36, 0x11d2, {0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60}};
|
||||
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument20 = {0xF6D90F11, 0x9C73, 0x11D3, {0xB3, 0x2E, 0x00, 0xC0, 0x4F, 0x99, 0x0B, 0xB4}};
|
||||
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument26 = {0xf5078f1b, 0xc551, 0x11d3, {0x89, 0xb9, 0x00, 0x00, 0xf8, 0x1f, 0xe2, 0x21}};
|
||||
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument30 = {0xf5078f32, 0xc551, 0x11d3, {0x89, 0xb9, 0x00, 0x00, 0xf8, 0x1f, 0xe2, 0x21}};
|
||||
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument40 = {0x88d969c0, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
|
||||
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument50 = {0x88d969e5, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
|
||||
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument60 = {0x88d96a05, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
|
||||
extern __declspec(selectany) const CLSID XmlUtil_CLSID_XMLSchemaCache = {0x88d969c2, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
|
||||
|
||||
extern __declspec(selectany) const IID XmlUtil_IID_IXMLDOMDocument = {0x2933BF81, 0x7B36, 0x11D2, {0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60}};
|
||||
extern __declspec(selectany) const IID XmlUtil_IID_IXMLDOMDocument2 = {0x2933BF95, 0x7B36, 0x11D2, {0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60}};
|
||||
extern __declspec(selectany) const IID XmlUtil_IID_IXMLDOMSchemaCollection = {0x373984C8, 0xB845, 0x449B, {0x91, 0xE7, 0x45, 0xAC, 0x83, 0x03, 0x6A, 0xDE}};
|
||||
|
||||
typedef enum XML_LOAD_ATTRIBUTE
|
||||
{
|
||||
XML_LOAD_PRESERVE_WHITESPACE = 1,
|
||||
} XML_LOAD_ATTRIBUTE;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
HRESULT DAPI XmlInitialize();
|
||||
void DAPI XmlUninitialize();
|
||||
|
||||
HRESULT DAPI XmlCreateElement(
|
||||
__in IXMLDOMDocument *pixdDocument,
|
||||
__in_z LPCWSTR wzElementName,
|
||||
__out IXMLDOMElement **ppixnElement
|
||||
);
|
||||
HRESULT DAPI XmlCreateDocument(
|
||||
__in_opt LPCWSTR pwzElementName,
|
||||
__out IXMLDOMDocument** ppixdDocument,
|
||||
__out_opt IXMLDOMElement** ppixeRootElement = NULL
|
||||
);
|
||||
HRESULT DAPI XmlLoadDocument(
|
||||
__in_z LPCWSTR wzDocument,
|
||||
__out IXMLDOMDocument** ppixdDocument
|
||||
);
|
||||
HRESULT DAPI XmlLoadDocumentEx(
|
||||
__in_z LPCWSTR wzDocument,
|
||||
__in DWORD dwAttributes,
|
||||
__out IXMLDOMDocument** ppixdDocument
|
||||
);
|
||||
HRESULT DAPI XmlLoadDocumentFromFile(
|
||||
__in_z LPCWSTR wzPath,
|
||||
__out IXMLDOMDocument** ppixdDocument
|
||||
);
|
||||
HRESULT DAPI XmlLoadDocumentFromBuffer(
|
||||
__in_bcount(cbSource) const BYTE* pbSource,
|
||||
__in DWORD cbSource,
|
||||
__out IXMLDOMDocument** ppixdDocument
|
||||
);
|
||||
HRESULT DAPI XmlLoadDocumentFromFileEx(
|
||||
__in_z LPCWSTR wzPath,
|
||||
__in DWORD dwAttributes,
|
||||
__out IXMLDOMDocument** ppixdDocument
|
||||
);
|
||||
HRESULT DAPI XmlSelectSingleNode(
|
||||
__in IXMLDOMNode* pixnParent,
|
||||
__in_z LPCWSTR wzXPath,
|
||||
__out IXMLDOMNode **ppixnChild
|
||||
);
|
||||
HRESULT DAPI XmlSetAttribute(
|
||||
__in IXMLDOMNode* pixnNode,
|
||||
__in_z LPCWSTR pwzAttribute,
|
||||
__in_z LPCWSTR pwzAttributeValue
|
||||
);
|
||||
HRESULT DAPI XmlCreateTextNode(
|
||||
__in IXMLDOMDocument *pixdDocument,
|
||||
__in_z LPCWSTR wzText,
|
||||
__out IXMLDOMText **ppixnTextNode
|
||||
);
|
||||
HRESULT DAPI XmlGetText(
|
||||
__in IXMLDOMNode* pixnNode,
|
||||
__deref_out_z BSTR* pbstrText
|
||||
);
|
||||
HRESULT DAPI XmlGetAttribute(
|
||||
__in IXMLDOMNode* pixnNode,
|
||||
__in_z LPCWSTR pwzAttribute,
|
||||
__deref_out_z BSTR* pbstrAttributeValue
|
||||
);
|
||||
HRESULT DAPI XmlGetAttributeEx(
|
||||
__in IXMLDOMNode* pixnNode,
|
||||
__in_z LPCWSTR wzAttribute,
|
||||
__deref_out_z LPWSTR* psczAttributeValue
|
||||
);
|
||||
HRESULT DAPI XmlGetYesNoAttribute(
|
||||
__in IXMLDOMNode* pixnNode,
|
||||
__in_z LPCWSTR wzAttribute,
|
||||
__out BOOL* pfYes
|
||||
);
|
||||
HRESULT DAPI XmlGetAttributeNumber(
|
||||
__in IXMLDOMNode* pixnNode,
|
||||
__in_z LPCWSTR pwzAttribute,
|
||||
__out DWORD* pdwValue
|
||||
);
|
||||
HRESULT DAPI XmlGetAttributeNumberBase(
|
||||
__in IXMLDOMNode* pixnNode,
|
||||
__in_z LPCWSTR pwzAttribute,
|
||||
__in int nBase,
|
||||
__out DWORD* pdwValue
|
||||
);
|
||||
HRESULT DAPI XmlGetAttributeLargeNumber(
|
||||
__in IXMLDOMNode* pixnNode,
|
||||
__in_z LPCWSTR pwzAttribute,
|
||||
__out DWORD64* pdw64Value
|
||||
);
|
||||
HRESULT DAPI XmlGetNamedItem(
|
||||
__in IXMLDOMNamedNodeMap *pixnmAttributes,
|
||||
__in_opt LPCWSTR wzName,
|
||||
__out IXMLDOMNode **ppixnNamedItem
|
||||
);
|
||||
HRESULT DAPI XmlSetText(
|
||||
__in IXMLDOMNode* pixnNode,
|
||||
__in_z LPCWSTR pwzText
|
||||
);
|
||||
HRESULT DAPI XmlSetTextNumber(
|
||||
__in IXMLDOMNode *pixnNode,
|
||||
__in DWORD dwValue
|
||||
);
|
||||
HRESULT DAPI XmlCreateChild(
|
||||
__in IXMLDOMNode* pixnParent,
|
||||
__in_z LPCWSTR pwzElementType,
|
||||
__out IXMLDOMNode** ppixnChild
|
||||
);
|
||||
HRESULT DAPI XmlRemoveAttribute(
|
||||
__in IXMLDOMNode* pixnNode,
|
||||
__in_z LPCWSTR pwzAttribute
|
||||
);
|
||||
HRESULT DAPI XmlSelectNodes(
|
||||
__in IXMLDOMNode* pixnParent,
|
||||
__in_z LPCWSTR wzXPath,
|
||||
__out IXMLDOMNodeList **ppixnChild
|
||||
);
|
||||
HRESULT DAPI XmlNextAttribute(
|
||||
__in IXMLDOMNamedNodeMap* pixnnm,
|
||||
__out IXMLDOMNode** pixnAttribute,
|
||||
__deref_opt_out_z_opt BSTR* pbstrAttribute
|
||||
);
|
||||
HRESULT DAPI XmlNextElement(
|
||||
__in IXMLDOMNodeList* pixnl,
|
||||
__out IXMLDOMNode** pixnElement,
|
||||
__deref_opt_out_z_opt BSTR* pbstrElement
|
||||
);
|
||||
HRESULT DAPI XmlRemoveChildren(
|
||||
__in IXMLDOMNode* pixnSource,
|
||||
__in_z LPCWSTR pwzXPath
|
||||
);
|
||||
HRESULT DAPI XmlSaveDocument(
|
||||
__in IXMLDOMDocument* pixdDocument,
|
||||
__inout LPCWSTR wzPath
|
||||
);
|
||||
HRESULT DAPI XmlSaveDocumentToBuffer(
|
||||
__in IXMLDOMDocument* pixdDocument,
|
||||
__deref_out_bcount(*pcbDest) BYTE** ppbDest,
|
||||
__out DWORD* pcbDest
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
BIN
tools/WIX/sdk/vs2010/lib/x64/deputil.lib
Normal file
BIN
tools/WIX/sdk/vs2010/lib/x64/deputil.lib
Normal file
Binary file not shown.
BIN
tools/WIX/sdk/vs2010/lib/x64/dutil.lib
Normal file
BIN
tools/WIX/sdk/vs2010/lib/x64/dutil.lib
Normal file
Binary file not shown.
BIN
tools/WIX/sdk/vs2010/lib/x64/wcautil.lib
Normal file
BIN
tools/WIX/sdk/vs2010/lib/x64/wcautil.lib
Normal file
Binary file not shown.
BIN
tools/WIX/sdk/vs2010/lib/x86/balutil.lib
Normal file
BIN
tools/WIX/sdk/vs2010/lib/x86/balutil.lib
Normal file
Binary file not shown.
BIN
tools/WIX/sdk/vs2010/lib/x86/deputil.lib
Normal file
BIN
tools/WIX/sdk/vs2010/lib/x86/deputil.lib
Normal file
Binary file not shown.
BIN
tools/WIX/sdk/vs2010/lib/x86/dutil.lib
Normal file
BIN
tools/WIX/sdk/vs2010/lib/x86/dutil.lib
Normal file
Binary file not shown.
BIN
tools/WIX/sdk/vs2010/lib/x86/wcautil.lib
Normal file
BIN
tools/WIX/sdk/vs2010/lib/x86/wcautil.lib
Normal file
Binary file not shown.
BIN
tools/WIX/sdk/vs2012/lib/x64/deputil.lib
Normal file
BIN
tools/WIX/sdk/vs2012/lib/x64/deputil.lib
Normal file
Binary file not shown.
BIN
tools/WIX/sdk/vs2012/lib/x64/dutil.lib
Normal file
BIN
tools/WIX/sdk/vs2012/lib/x64/dutil.lib
Normal file
Binary file not shown.
BIN
tools/WIX/sdk/vs2012/lib/x64/wcautil.lib
Normal file
BIN
tools/WIX/sdk/vs2012/lib/x64/wcautil.lib
Normal file
Binary file not shown.
BIN
tools/WIX/sdk/vs2012/lib/x86/balutil.lib
Normal file
BIN
tools/WIX/sdk/vs2012/lib/x86/balutil.lib
Normal file
Binary file not shown.
BIN
tools/WIX/sdk/vs2012/lib/x86/deputil.lib
Normal file
BIN
tools/WIX/sdk/vs2012/lib/x86/deputil.lib
Normal file
Binary file not shown.
BIN
tools/WIX/sdk/vs2012/lib/x86/dutil.lib
Normal file
BIN
tools/WIX/sdk/vs2012/lib/x86/dutil.lib
Normal file
Binary file not shown.
BIN
tools/WIX/sdk/vs2012/lib/x86/wcautil.lib
Normal file
BIN
tools/WIX/sdk/vs2012/lib/x86/wcautil.lib
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue