5 Commits

Author SHA1 Message Date
Steve Dower
d558d057bd Merge pull request #3 from zooba/wix
Update to WiX 3.11.1
2018-01-05 05:39:08 -08:00
Steve Dower
53d82f4590 Update to WiX 3.11.1 2018-01-05 13:45:01 +11:00
Steve Dower
86b2b5ccfc Merge pull request #2 from zooba/wix
Update Wix to v3.11
2017-09-04 14:02:35 -07:00
Steve Dower
2431f7ee3f Update Wix to v3.11 2017-09-04 14:00:39 -07:00
Zachary Ware
dfc13f5681 Import wix as of r89086 2017-05-22 13:38:44 -05:00
242 changed files with 50533 additions and 3422 deletions

21
LICENSE
View File

@@ -1,21 +0,0 @@
libffi - Copyright (c) 1996-2014 Anthony Green, Red Hat, Inc and others.
See source files for details.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
``Software''), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

28
LICENSE.TXT Normal file
View File

@@ -0,0 +1,28 @@
Copyright (c) .NET Foundation and contributors.
This software is released under the Microsoft Reciprocal License (MS-RL) (the "License"); you may not use the software except in compliance with the License.
The text of the Microsoft Reciprocal License (MS-RL) can be found online at:
http://opensource.org/licenses/ms-rl
Microsoft Reciprocal License (MS-RL)
This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
1. Definitions
The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law.
A "contribution" is the original software, or any additions or changes to the software.
A "contributor" is any person that distributes its contribution under this license.
"Licensed patents" are a contributor's patent claims that read directly on its contribution.
2. Grant of Rights
(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
3. Conditions and Limitations
(A) Reciprocal Grants- For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
(B) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
(C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
(D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
(E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
(F) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.

BIN
LuxTasks.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,6 +0,0 @@
# cpython-bin-deps
Binaries that the cpython build process depends on
It is currently expected that this will only be useful on Windows,
and in any case you should never need to clone this repository
unless you are updating its contents.

BIN
ThmViewer.exe Normal file

Binary file not shown.

BIN
WixBalExtension.dll Normal file

Binary file not shown.

BIN
WixComPlusExtension.dll Normal file

Binary file not shown.

BIN
WixCop.exe Normal file

Binary file not shown.

BIN
WixDependencyExtension.dll Normal file

Binary file not shown.

BIN
WixDifxAppExtension.dll Normal file

Binary file not shown.

BIN
WixDirectXExtension.dll Normal file

Binary file not shown.

BIN
WixFirewallExtension.dll Normal file

Binary file not shown.

BIN
WixGamingExtension.dll Normal file

Binary file not shown.

BIN
WixHttpExtension.dll Normal file

Binary file not shown.

BIN
WixIIsExtension.dll Normal file

Binary file not shown.

BIN
WixLuxExtension.dll Normal file

Binary file not shown.

BIN
WixMsmqExtension.dll Normal file

Binary file not shown.

BIN
WixNetFxExtension.dll Normal file

Binary file not shown.

BIN
WixPSExtension.dll Normal file

Binary file not shown.

BIN
WixSqlExtension.dll Normal file

Binary file not shown.

BIN
WixTagExtension.dll Normal file

Binary file not shown.

BIN
WixTasks.dll Normal file

Binary file not shown.

BIN
WixUIExtension.dll Normal file

Binary file not shown.

BIN
WixUtilExtension.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
WixVSExtension.dll Normal file

Binary file not shown.

View File

@@ -1,515 +0,0 @@
/* -----------------------------------------------------------------*-C-*-
libffi 3.3-rc0 - Copyright (c) 2011, 2014 Anthony Green
- Copyright (c) 1996-2003, 2007, 2008 Red Hat, Inc.
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the ``Software''), to deal in the Software without
restriction, including without limitation the rights to use, copy,
modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
----------------------------------------------------------------------- */
/* -------------------------------------------------------------------
Most of the API is documented in doc/libffi.texi.
The raw API is designed to bypass some of the argument packing and
unpacking on architectures for which it can be avoided. Routines
are provided to emulate the raw API if the underlying platform
doesn't allow faster implementation.
More details on the raw API can be found in:
http://gcc.gnu.org/ml/java/1999-q3/msg00138.html
and
http://gcc.gnu.org/ml/java/1999-q3/msg00174.html
-------------------------------------------------------------------- */
#ifndef LIBFFI_H
#define LIBFFI_H
#ifdef __cplusplus
extern "C" {
#endif
/* Specify which architecture libffi is configured for. */
#ifndef X86_WIN64
#define X86_WIN64
#endif
/* ---- System configuration information --------------------------------- */
#include <ffitarget.h>
#ifndef LIBFFI_ASM
#if defined(_MSC_VER) && !defined(__clang__)
#define __attribute__(X)
#endif
#include <stddef.h>
#include <limits.h>
/* LONG_LONG_MAX is not always defined (not if STRICT_ANSI, for example).
But we can find it either under the correct ANSI name, or under GNU
C's internal name. */
#define FFI_64_BIT_MAX 9223372036854775807
#ifdef LONG_LONG_MAX
# define FFI_LONG_LONG_MAX LONG_LONG_MAX
#else
# ifdef LLONG_MAX
# define FFI_LONG_LONG_MAX LLONG_MAX
# ifdef _AIX52 /* or newer has C99 LLONG_MAX */
# undef FFI_64_BIT_MAX
# define FFI_64_BIT_MAX 9223372036854775807LL
# endif /* _AIX52 or newer */
# else
# ifdef __GNUC__
# define FFI_LONG_LONG_MAX __LONG_LONG_MAX__
# endif
# ifdef _AIX /* AIX 5.1 and earlier have LONGLONG_MAX */
# ifndef __PPC64__
# if defined (__IBMC__) || defined (__IBMCPP__)
# define FFI_LONG_LONG_MAX LONGLONG_MAX
# endif
# endif /* __PPC64__ */
# undef FFI_64_BIT_MAX
# define FFI_64_BIT_MAX 9223372036854775807LL
# endif
# endif
#endif
/* The closure code assumes that this works on pointers, i.e. a size_t
can hold a pointer. */
typedef struct _ffi_type
{
size_t size;
unsigned short alignment;
unsigned short type;
struct _ffi_type **elements;
} ffi_type;
/* Need minimal decorations for DLLs to work on Windows. GCC has
autoimport and autoexport. Always mark externally visible symbols
as dllimport for MSVC clients, even if it means an extra indirection
when using the static version of the library.
Besides, as a workaround, they can define FFI_BUILDING if they
*know* they are going to link with the static library. */
#if defined _MSC_VER
# if defined FFI_BUILDING_DLL /* Building libffi.DLL with msvcc.sh */
# define FFI_API __declspec(dllexport)
# elif !defined FFI_BUILDING /* Importing libffi.DLL */
# define FFI_API __declspec(dllimport)
# else /* Building/linking static library */
# define FFI_API
# endif
#else
# define FFI_API
#endif
/* The externally visible type declarations also need the MSVC DLL
decorations, or they will not be exported from the object file. */
#if defined LIBFFI_HIDE_BASIC_TYPES
# define FFI_EXTERN FFI_API
#else
# define FFI_EXTERN extern FFI_API
#endif
#ifndef LIBFFI_HIDE_BASIC_TYPES
#if SCHAR_MAX == 127
# define ffi_type_uchar ffi_type_uint8
# define ffi_type_schar ffi_type_sint8
#else
#error "char size not supported"
#endif
#if SHRT_MAX == 32767
# define ffi_type_ushort ffi_type_uint16
# define ffi_type_sshort ffi_type_sint16
#elif SHRT_MAX == 2147483647
# define ffi_type_ushort ffi_type_uint32
# define ffi_type_sshort ffi_type_sint32
#else
#error "short size not supported"
#endif
#if INT_MAX == 32767
# define ffi_type_uint ffi_type_uint16
# define ffi_type_sint ffi_type_sint16
#elif INT_MAX == 2147483647
# define ffi_type_uint ffi_type_uint32
# define ffi_type_sint ffi_type_sint32
#elif INT_MAX == 9223372036854775807
# define ffi_type_uint ffi_type_uint64
# define ffi_type_sint ffi_type_sint64
#else
#error "int size not supported"
#endif
#if LONG_MAX == 2147483647
# if FFI_LONG_LONG_MAX != FFI_64_BIT_MAX
#error "no 64-bit data type supported"
# endif
#elif LONG_MAX != FFI_64_BIT_MAX
#error "long size not supported"
#endif
#if LONG_MAX == 2147483647
# define ffi_type_ulong ffi_type_uint32
# define ffi_type_slong ffi_type_sint32
#elif LONG_MAX == FFI_64_BIT_MAX
# define ffi_type_ulong ffi_type_uint64
# define ffi_type_slong ffi_type_sint64
#else
#error "long size not supported"
#endif
/* These are defined in types.c. */
FFI_EXTERN ffi_type ffi_type_void;
FFI_EXTERN ffi_type ffi_type_uint8;
FFI_EXTERN ffi_type ffi_type_sint8;
FFI_EXTERN ffi_type ffi_type_uint16;
FFI_EXTERN ffi_type ffi_type_sint16;
FFI_EXTERN ffi_type ffi_type_uint32;
FFI_EXTERN ffi_type ffi_type_sint32;
FFI_EXTERN ffi_type ffi_type_uint64;
FFI_EXTERN ffi_type ffi_type_sint64;
FFI_EXTERN ffi_type ffi_type_float;
FFI_EXTERN ffi_type ffi_type_double;
FFI_EXTERN ffi_type ffi_type_pointer;
#if 0
FFI_EXTERN ffi_type ffi_type_longdouble;
#else
#define ffi_type_longdouble ffi_type_double
#endif
#ifdef FFI_TARGET_HAS_COMPLEX_TYPE
FFI_EXTERN ffi_type ffi_type_complex_float;
FFI_EXTERN ffi_type ffi_type_complex_double;
#if 0
FFI_EXTERN ffi_type ffi_type_complex_longdouble;
#else
#define ffi_type_complex_longdouble ffi_type_complex_double
#endif
#endif
#endif /* LIBFFI_HIDE_BASIC_TYPES */
typedef enum {
FFI_OK = 0,
FFI_BAD_TYPEDEF,
FFI_BAD_ABI
} ffi_status;
typedef struct {
ffi_abi abi;
unsigned nargs;
ffi_type **arg_types;
ffi_type *rtype;
unsigned bytes;
unsigned flags;
#ifdef FFI_EXTRA_CIF_FIELDS
FFI_EXTRA_CIF_FIELDS;
#endif
} ffi_cif;
/* ---- Definitions for the raw API -------------------------------------- */
#ifndef FFI_SIZEOF_ARG
# if LONG_MAX == 2147483647
# define FFI_SIZEOF_ARG 4
# elif LONG_MAX == FFI_64_BIT_MAX
# define FFI_SIZEOF_ARG 8
# endif
#endif
#ifndef FFI_SIZEOF_JAVA_RAW
# define FFI_SIZEOF_JAVA_RAW FFI_SIZEOF_ARG
#endif
typedef union {
ffi_sarg sint;
ffi_arg uint;
float flt;
char data[FFI_SIZEOF_ARG];
void* ptr;
} ffi_raw;
#if FFI_SIZEOF_JAVA_RAW == 4 && FFI_SIZEOF_ARG == 8
/* This is a special case for mips64/n32 ABI (and perhaps others) where
sizeof(void *) is 4 and FFI_SIZEOF_ARG is 8. */
typedef union {
signed int sint;
unsigned int uint;
float flt;
char data[FFI_SIZEOF_JAVA_RAW];
void* ptr;
} ffi_java_raw;
#else
typedef ffi_raw ffi_java_raw;
#endif
FFI_API
void ffi_raw_call (ffi_cif *cif,
void (*fn)(void),
void *rvalue,
ffi_raw *avalue);
FFI_API void ffi_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_raw *raw);
FFI_API void ffi_raw_to_ptrarray (ffi_cif *cif, ffi_raw *raw, void **args);
FFI_API size_t ffi_raw_size (ffi_cif *cif);
/* This is analogous to the raw API, except it uses Java parameter
packing, even on 64-bit machines. I.e. on 64-bit machines longs
and doubles are followed by an empty 64-bit word. */
#if !FFI_NATIVE_RAW_API
FFI_API
void ffi_java_raw_call (ffi_cif *cif,
void (*fn)(void),
void *rvalue,
ffi_java_raw *avalue);
#endif
FFI_API
void ffi_java_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_java_raw *raw);
FFI_API
void ffi_java_raw_to_ptrarray (ffi_cif *cif, ffi_java_raw *raw, void **args);
FFI_API
size_t ffi_java_raw_size (ffi_cif *cif);
/* ---- Definitions for closures ----------------------------------------- */
#if FFI_CLOSURES
#ifdef _MSC_VER
__declspec(align(8))
#endif
typedef struct {
#if 0
void *trampoline_table;
void *trampoline_table_entry;
#else
char tramp[FFI_TRAMPOLINE_SIZE];
#endif
ffi_cif *cif;
void (*fun)(ffi_cif*,void*,void**,void*);
void *user_data;
} ffi_closure
#ifdef __GNUC__
__attribute__((aligned (8)))
#endif
;
#ifndef __GNUC__
# ifdef __sgi
# pragma pack 0
# endif
#endif
FFI_API void *ffi_closure_alloc (size_t size, void **code);
FFI_API void ffi_closure_free (void *);
FFI_API ffi_status
ffi_prep_closure (ffi_closure*,
ffi_cif *,
void (*fun)(ffi_cif*,void*,void**,void*),
void *user_data)
#if defined(__GNUC__) && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 405)
__attribute__((deprecated ("use ffi_prep_closure_loc instead")))
#elif defined(__GNUC__) && __GNUC__ >= 3
__attribute__((deprecated))
#endif
;
FFI_API ffi_status
ffi_prep_closure_loc (ffi_closure*,
ffi_cif *,
void (*fun)(ffi_cif*,void*,void**,void*),
void *user_data,
void*codeloc);
#ifdef __sgi
# pragma pack 8
#endif
typedef struct {
#if 0
void *trampoline_table;
void *trampoline_table_entry;
#else
char tramp[FFI_TRAMPOLINE_SIZE];
#endif
ffi_cif *cif;
#if !FFI_NATIVE_RAW_API
/* If this is enabled, then a raw closure has the same layout
as a regular closure. We use this to install an intermediate
handler to do the transaltion, void** -> ffi_raw*. */
void (*translate_args)(ffi_cif*,void*,void**,void*);
void *this_closure;
#endif
void (*fun)(ffi_cif*,void*,ffi_raw*,void*);
void *user_data;
} ffi_raw_closure;
typedef struct {
#if 0
void *trampoline_table;
void *trampoline_table_entry;
#else
char tramp[FFI_TRAMPOLINE_SIZE];
#endif
ffi_cif *cif;
#if !FFI_NATIVE_RAW_API
/* If this is enabled, then a raw closure has the same layout
as a regular closure. We use this to install an intermediate
handler to do the translation, void** -> ffi_raw*. */
void (*translate_args)(ffi_cif*,void*,void**,void*);
void *this_closure;
#endif
void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*);
void *user_data;
} ffi_java_raw_closure;
FFI_API ffi_status
ffi_prep_raw_closure (ffi_raw_closure*,
ffi_cif *cif,
void (*fun)(ffi_cif*,void*,ffi_raw*,void*),
void *user_data);
FFI_API ffi_status
ffi_prep_raw_closure_loc (ffi_raw_closure*,
ffi_cif *cif,
void (*fun)(ffi_cif*,void*,ffi_raw*,void*),
void *user_data,
void *codeloc);
#if !FFI_NATIVE_RAW_API
FFI_API ffi_status
ffi_prep_java_raw_closure (ffi_java_raw_closure*,
ffi_cif *cif,
void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*),
void *user_data);
FFI_API ffi_status
ffi_prep_java_raw_closure_loc (ffi_java_raw_closure*,
ffi_cif *cif,
void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*),
void *user_data,
void *codeloc);
#endif
#endif /* FFI_CLOSURES */
#if FFI_GO_CLOSURES
typedef struct {
void *tramp;
ffi_cif *cif;
void (*fun)(ffi_cif*,void*,void**,void*);
} ffi_go_closure;
FFI_API ffi_status ffi_prep_go_closure (ffi_go_closure*, ffi_cif *,
void (*fun)(ffi_cif*,void*,void**,void*));
FFI_API void ffi_call_go (ffi_cif *cif, void (*fn)(void), void *rvalue,
void **avalue, void *closure);
#endif /* FFI_GO_CLOSURES */
/* ---- Public interface definition -------------------------------------- */
FFI_API
ffi_status ffi_prep_cif(ffi_cif *cif,
ffi_abi abi,
unsigned int nargs,
ffi_type *rtype,
ffi_type **atypes);
FFI_API
ffi_status ffi_prep_cif_var(ffi_cif *cif,
ffi_abi abi,
unsigned int nfixedargs,
unsigned int ntotalargs,
ffi_type *rtype,
ffi_type **atypes);
FFI_API
void ffi_call(ffi_cif *cif,
void (*fn)(void),
void *rvalue,
void **avalue);
FFI_API
ffi_status ffi_get_struct_offsets (ffi_abi abi, ffi_type *struct_type,
size_t *offsets);
/* Useful for eliminating compiler warnings. */
#define FFI_FN(f) ((void (*)(void))f)
/* ---- Definitions shared with assembly code ---------------------------- */
#endif
/* If these change, update src/mips/ffitarget.h. */
#define FFI_TYPE_VOID 0
#define FFI_TYPE_INT 1
#define FFI_TYPE_FLOAT 2
#define FFI_TYPE_DOUBLE 3
#if 0
#define FFI_TYPE_LONGDOUBLE 4
#else
#define FFI_TYPE_LONGDOUBLE FFI_TYPE_DOUBLE
#endif
#define FFI_TYPE_UINT8 5
#define FFI_TYPE_SINT8 6
#define FFI_TYPE_UINT16 7
#define FFI_TYPE_SINT16 8
#define FFI_TYPE_UINT32 9
#define FFI_TYPE_SINT32 10
#define FFI_TYPE_UINT64 11
#define FFI_TYPE_SINT64 12
#define FFI_TYPE_STRUCT 13
#define FFI_TYPE_POINTER 14
#define FFI_TYPE_COMPLEX 15
/* This should always refer to the last type code (for sanity checks). */
#define FFI_TYPE_LAST FFI_TYPE_COMPLEX
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -1,215 +0,0 @@
/* fficonfig.h. Generated from fficonfig.h.in by configure. */
/* fficonfig.h.in. Generated from configure.ac by autoheader. */
/* Define if building universal (internal helper macro) */
/* #undef AC_APPLE_UNIVERSAL_BUILD */
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
systems. This function is required for `alloca.c' support on those systems.
*/
/* #undef CRAY_STACKSEG_END */
/* Define to 1 if using `alloca.c'. */
/* #undef C_ALLOCA */
/* Define to the flags needed for the .section .eh_frame directive. */
/* #undef EH_FRAME_FLAGS */
/* Define this if you want extra debugging. */
/* #undef FFI_DEBUG */
/* Cannot use PROT_EXEC on this target, so, we revert to alternative means */
/* #undef FFI_EXEC_TRAMPOLINE_TABLE */
/* Define this if you want to enable pax emulated trampolines */
/* #undef FFI_MMAP_EXEC_EMUTRAMP_PAX */
/* Cannot use malloc on this target, so, we revert to alternative means */
/* #undef FFI_MMAP_EXEC_WRIT */
/* Define this if you do not want support for the raw API. */
/* #undef FFI_NO_RAW_API */
/* Define this if you do not want support for aggregate types. */
/* #undef FFI_NO_STRUCTS */
/* Define to 1 if you have `alloca', as a function or macro. */
#define HAVE_ALLOCA 1
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
*/
/* #undef HAVE_ALLOCA_H */
/* Define if your assembler supports .cfi_* directives. */
/* #undef HAVE_AS_CFI_PSEUDO_OP */
/* Define if your assembler supports .register. */
/* #undef HAVE_AS_REGISTER_PSEUDO_OP */
/* Define if the compiler uses zarch features. */
/* #undef HAVE_AS_S390_ZARCH */
/* Define if your assembler and linker support unaligned PC relative relocs.
*/
/* #undef HAVE_AS_SPARC_UA_PCREL */
/* Define if your assembler supports unwind section type. */
/* #undef HAVE_AS_X86_64_UNWIND_SECTION_TYPE */
/* Define if your assembler supports PC relative relocs. */
#define HAVE_AS_X86_PCREL 1
/* Define to 1 if you have the <dlfcn.h> header file. */
/* #undef HAVE_DLFCN_H */
/* Define if __attribute__((visibility("hidden"))) is supported. */
/* #undef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE */
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define if you have the long double type and it is bigger than a double */
/* #undef HAVE_LONG_DOUBLE */
/* Define if you support more than one size of the long double type */
/* #undef HAVE_LONG_DOUBLE_VARIANT */
/* Define to 1 if you have the `memcpy' function. */
/* #undef HAVE_MEMCPY */
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the `mkostemp' function. */
/* #undef HAVE_MKOSTEMP */
/* Define to 1 if you have the `mmap' function. */
/* #undef HAVE_MMAP */
/* Define if mmap with MAP_ANON(YMOUS) works. */
/* #undef HAVE_MMAP_ANON */
/* Define if mmap of /dev/zero works. */
/* #undef HAVE_MMAP_DEV_ZERO */
/* Define if read-only mmap of a plain file works. */
/* #undef HAVE_MMAP_FILE */
/* Define if .eh_frame sections should be read-only. */
/* #undef HAVE_RO_EH_FRAME */
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
/* #undef HAVE_STRINGS_H */
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the <sys/mman.h> header file. */
/* #undef HAVE_SYS_MMAN_H */
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
/* #undef HAVE_UNISTD_H */
/* Define to 1 if GNU symbol versioning is used for libatomic. */
/* #undef LIBFFI_GNU_SYMBOL_VERSIONING */
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#define LT_OBJDIR ".libs/"
/* Name of package */
#define PACKAGE "libffi"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "http://github.com/libffi/libffi/issues"
/* Define to the full name of this package. */
#define PACKAGE_NAME "libffi"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "libffi 3.3-rc0"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "libffi"
/* Define to the home page for this package. */
#define PACKAGE_URL ""
/* Define to the version of this package. */
#define PACKAGE_VERSION "3.3-rc0"
/* The size of `double', as computed by sizeof. */
#define SIZEOF_DOUBLE 8
/* The size of `long double', as computed by sizeof. */
#define SIZEOF_LONG_DOUBLE 8
/* The size of `size_t', as computed by sizeof. */
#define SIZEOF_SIZE_T 8
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at runtime.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
/* #undef STACK_DIRECTION */
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Define if symbols are underscored. */
/* #undef SYMBOL_UNDERSCORE */
/* Define this if you are using Purify and want to suppress spurious messages.
*/
/* #undef USING_PURIFY */
/* Version number of package */
#define VERSION "3.3-rc0"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
/* # undef WORDS_BIGENDIAN */
# endif
#endif
/* Define to `unsigned int' if <sys/types.h> does not define. */
/* #undef size_t */
#ifdef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
#ifdef LIBFFI_ASM
#ifdef __APPLE__
#define FFI_HIDDEN(name) .private_extern name
#else
#define FFI_HIDDEN(name) .hidden name
#endif
#else
#define FFI_HIDDEN __attribute__ ((visibility ("hidden")))
#endif
#else
#ifdef LIBFFI_ASM
#define FFI_HIDDEN(name)
#else
#define FFI_HIDDEN
#endif
#endif

View File

@@ -1,147 +0,0 @@
/* -----------------------------------------------------------------*-C-*-
ffitarget.h - Copyright (c) 2012, 2014, 2018 Anthony Green
Copyright (c) 1996-2003, 2010 Red Hat, Inc.
Copyright (C) 2008 Free Software Foundation, Inc.
Target configuration macros for x86 and x86-64.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
``Software''), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
----------------------------------------------------------------------- */
#ifndef LIBFFI_TARGET_H
#define LIBFFI_TARGET_H
#ifndef LIBFFI_H
#error "Please do not include ffitarget.h directly into your source. Use ffi.h instead."
#endif
/* ---- System specific configurations ----------------------------------- */
/* For code common to all platforms on x86 and x86_64. */
#define X86_ANY
#if defined (X86_64) && defined (__i386__)
#undef X86_64
#define X86
#endif
#ifdef X86_WIN64
#define FFI_SIZEOF_ARG 8
#define USE_BUILTIN_FFS 0 /* not yet implemented in mingw-64 */
#endif
#define FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION
#ifndef _MSC_VER
#define FFI_TARGET_HAS_COMPLEX_TYPE
#endif
/* ---- Generic type definitions ----------------------------------------- */
#ifndef LIBFFI_ASM
#ifdef X86_WIN64
#ifdef _MSC_VER
typedef unsigned __int64 ffi_arg;
typedef __int64 ffi_sarg;
#else
typedef unsigned long long ffi_arg;
typedef long long ffi_sarg;
#endif
#else
#if defined __x86_64__ && defined __ILP32__
#define FFI_SIZEOF_ARG 8
#define FFI_SIZEOF_JAVA_RAW 4
typedef unsigned long long ffi_arg;
typedef long long ffi_sarg;
#else
typedef unsigned long ffi_arg;
typedef signed long ffi_sarg;
#endif
#endif
typedef enum ffi_abi {
#if defined(X86_WIN64)
FFI_FIRST_ABI = 0,
FFI_WIN64, /* sizeof(long double) == 8 - microsoft compilers */
FFI_GNUW64, /* sizeof(long double) == 16 - GNU compilers */
FFI_LAST_ABI,
#ifdef __GNUC__
FFI_DEFAULT_ABI = FFI_GNUW64
#else
FFI_DEFAULT_ABI = FFI_WIN64
#endif
#elif defined(X86_64) || (defined (__x86_64__) && defined (X86_DARWIN))
FFI_FIRST_ABI = 1,
FFI_UNIX64,
FFI_WIN64,
FFI_EFI64 = FFI_WIN64,
FFI_GNUW64,
FFI_LAST_ABI,
FFI_DEFAULT_ABI = FFI_UNIX64
#elif defined(X86_WIN32)
FFI_FIRST_ABI = 0,
FFI_SYSV = 1,
FFI_STDCALL = 2,
FFI_THISCALL = 3,
FFI_FASTCALL = 4,
FFI_MS_CDECL = 5,
FFI_PASCAL = 6,
FFI_REGISTER = 7,
FFI_LAST_ABI,
FFI_DEFAULT_ABI = FFI_MS_CDECL
#else
FFI_FIRST_ABI = 0,
FFI_SYSV = 1,
FFI_THISCALL = 3,
FFI_FASTCALL = 4,
FFI_STDCALL = 5,
FFI_PASCAL = 6,
FFI_REGISTER = 7,
FFI_MS_CDECL = 8,
FFI_LAST_ABI,
FFI_DEFAULT_ABI = FFI_SYSV
#endif
} ffi_abi;
#endif
/* ---- Definitions for closures ----------------------------------------- */
#define FFI_CLOSURES 1
#define FFI_GO_CLOSURES 1
#define FFI_TYPE_SMALL_STRUCT_1B (FFI_TYPE_LAST + 1)
#define FFI_TYPE_SMALL_STRUCT_2B (FFI_TYPE_LAST + 2)
#define FFI_TYPE_SMALL_STRUCT_4B (FFI_TYPE_LAST + 3)
#define FFI_TYPE_MS_STRUCT (FFI_TYPE_LAST + 4)
#if defined (X86_64) || defined(X86_WIN64) \
|| (defined (__x86_64__) && defined (X86_DARWIN))
# define FFI_TRAMPOLINE_SIZE 24
# define FFI_NATIVE_RAW_API 0
#else
# define FFI_TRAMPOLINE_SIZE 12
# define FFI_NATIVE_RAW_API 1 /* x86 has native raw api support */
#endif
#endif

Binary file not shown.

Binary file not shown.

View File

@@ -1,515 +0,0 @@
/* -----------------------------------------------------------------*-C-*-
libffi 3.3-rc0 - Copyright (c) 2011, 2014 Anthony Green
- Copyright (c) 1996-2003, 2007, 2008 Red Hat, Inc.
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the ``Software''), to deal in the Software without
restriction, including without limitation the rights to use, copy,
modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
----------------------------------------------------------------------- */
/* -------------------------------------------------------------------
Most of the API is documented in doc/libffi.texi.
The raw API is designed to bypass some of the argument packing and
unpacking on architectures for which it can be avoided. Routines
are provided to emulate the raw API if the underlying platform
doesn't allow faster implementation.
More details on the raw API can be found in:
http://gcc.gnu.org/ml/java/1999-q3/msg00138.html
and
http://gcc.gnu.org/ml/java/1999-q3/msg00174.html
-------------------------------------------------------------------- */
#ifndef LIBFFI_H
#define LIBFFI_H
#ifdef __cplusplus
extern "C" {
#endif
/* Specify which architecture libffi is configured for. */
#ifndef ARM_WIN32
#define ARM_WIN32
#endif
/* ---- System configuration information --------------------------------- */
#include <ffitarget.h>
#ifndef LIBFFI_ASM
#if defined(_MSC_VER) && !defined(__clang__)
#define __attribute__(X)
#endif
#include <stddef.h>
#include <limits.h>
/* LONG_LONG_MAX is not always defined (not if STRICT_ANSI, for example).
But we can find it either under the correct ANSI name, or under GNU
C's internal name. */
#define FFI_64_BIT_MAX 9223372036854775807
#ifdef LONG_LONG_MAX
# define FFI_LONG_LONG_MAX LONG_LONG_MAX
#else
# ifdef LLONG_MAX
# define FFI_LONG_LONG_MAX LLONG_MAX
# ifdef _AIX52 /* or newer has C99 LLONG_MAX */
# undef FFI_64_BIT_MAX
# define FFI_64_BIT_MAX 9223372036854775807LL
# endif /* _AIX52 or newer */
# else
# ifdef __GNUC__
# define FFI_LONG_LONG_MAX __LONG_LONG_MAX__
# endif
# ifdef _AIX /* AIX 5.1 and earlier have LONGLONG_MAX */
# ifndef __PPC64__
# if defined (__IBMC__) || defined (__IBMCPP__)
# define FFI_LONG_LONG_MAX LONGLONG_MAX
# endif
# endif /* __PPC64__ */
# undef FFI_64_BIT_MAX
# define FFI_64_BIT_MAX 9223372036854775807LL
# endif
# endif
#endif
/* The closure code assumes that this works on pointers, i.e. a size_t
can hold a pointer. */
typedef struct _ffi_type
{
size_t size;
unsigned short alignment;
unsigned short type;
struct _ffi_type **elements;
} ffi_type;
/* Need minimal decorations for DLLs to work on Windows. GCC has
autoimport and autoexport. Always mark externally visible symbols
as dllimport for MSVC clients, even if it means an extra indirection
when using the static version of the library.
Besides, as a workaround, they can define FFI_BUILDING if they
*know* they are going to link with the static library. */
#if defined _MSC_VER
# if defined FFI_BUILDING_DLL /* Building libffi.DLL with msvcc.sh */
# define FFI_API __declspec(dllexport)
# elif !defined FFI_BUILDING /* Importing libffi.DLL */
# define FFI_API __declspec(dllimport)
# else /* Building/linking static library */
# define FFI_API
# endif
#else
# define FFI_API
#endif
/* The externally visible type declarations also need the MSVC DLL
decorations, or they will not be exported from the object file. */
#if defined LIBFFI_HIDE_BASIC_TYPES
# define FFI_EXTERN FFI_API
#else
# define FFI_EXTERN extern FFI_API
#endif
#ifndef LIBFFI_HIDE_BASIC_TYPES
#if SCHAR_MAX == 127
# define ffi_type_uchar ffi_type_uint8
# define ffi_type_schar ffi_type_sint8
#else
#error "char size not supported"
#endif
#if SHRT_MAX == 32767
# define ffi_type_ushort ffi_type_uint16
# define ffi_type_sshort ffi_type_sint16
#elif SHRT_MAX == 2147483647
# define ffi_type_ushort ffi_type_uint32
# define ffi_type_sshort ffi_type_sint32
#else
#error "short size not supported"
#endif
#if INT_MAX == 32767
# define ffi_type_uint ffi_type_uint16
# define ffi_type_sint ffi_type_sint16
#elif INT_MAX == 2147483647
# define ffi_type_uint ffi_type_uint32
# define ffi_type_sint ffi_type_sint32
#elif INT_MAX == 9223372036854775807
# define ffi_type_uint ffi_type_uint64
# define ffi_type_sint ffi_type_sint64
#else
#error "int size not supported"
#endif
#if LONG_MAX == 2147483647
# if FFI_LONG_LONG_MAX != FFI_64_BIT_MAX
#error "no 64-bit data type supported"
# endif
#elif LONG_MAX != FFI_64_BIT_MAX
#error "long size not supported"
#endif
#if LONG_MAX == 2147483647
# define ffi_type_ulong ffi_type_uint32
# define ffi_type_slong ffi_type_sint32
#elif LONG_MAX == FFI_64_BIT_MAX
# define ffi_type_ulong ffi_type_uint64
# define ffi_type_slong ffi_type_sint64
#else
#error "long size not supported"
#endif
/* These are defined in types.c. */
FFI_EXTERN ffi_type ffi_type_void;
FFI_EXTERN ffi_type ffi_type_uint8;
FFI_EXTERN ffi_type ffi_type_sint8;
FFI_EXTERN ffi_type ffi_type_uint16;
FFI_EXTERN ffi_type ffi_type_sint16;
FFI_EXTERN ffi_type ffi_type_uint32;
FFI_EXTERN ffi_type ffi_type_sint32;
FFI_EXTERN ffi_type ffi_type_uint64;
FFI_EXTERN ffi_type ffi_type_sint64;
FFI_EXTERN ffi_type ffi_type_float;
FFI_EXTERN ffi_type ffi_type_double;
FFI_EXTERN ffi_type ffi_type_pointer;
#if 0
FFI_EXTERN ffi_type ffi_type_longdouble;
#else
#define ffi_type_longdouble ffi_type_double
#endif
#ifdef FFI_TARGET_HAS_COMPLEX_TYPE
FFI_EXTERN ffi_type ffi_type_complex_float;
FFI_EXTERN ffi_type ffi_type_complex_double;
#if 0
FFI_EXTERN ffi_type ffi_type_complex_longdouble;
#else
#define ffi_type_complex_longdouble ffi_type_complex_double
#endif
#endif
#endif /* LIBFFI_HIDE_BASIC_TYPES */
typedef enum {
FFI_OK = 0,
FFI_BAD_TYPEDEF,
FFI_BAD_ABI
} ffi_status;
typedef struct {
ffi_abi abi;
unsigned nargs;
ffi_type **arg_types;
ffi_type *rtype;
unsigned bytes;
unsigned flags;
#ifdef FFI_EXTRA_CIF_FIELDS
FFI_EXTRA_CIF_FIELDS;
#endif
} ffi_cif;
/* ---- Definitions for the raw API -------------------------------------- */
#ifndef FFI_SIZEOF_ARG
# if LONG_MAX == 2147483647
# define FFI_SIZEOF_ARG 4
# elif LONG_MAX == FFI_64_BIT_MAX
# define FFI_SIZEOF_ARG 8
# endif
#endif
#ifndef FFI_SIZEOF_JAVA_RAW
# define FFI_SIZEOF_JAVA_RAW FFI_SIZEOF_ARG
#endif
typedef union {
ffi_sarg sint;
ffi_arg uint;
float flt;
char data[FFI_SIZEOF_ARG];
void* ptr;
} ffi_raw;
#if FFI_SIZEOF_JAVA_RAW == 4 && FFI_SIZEOF_ARG == 8
/* This is a special case for mips64/n32 ABI (and perhaps others) where
sizeof(void *) is 4 and FFI_SIZEOF_ARG is 8. */
typedef union {
signed int sint;
unsigned int uint;
float flt;
char data[FFI_SIZEOF_JAVA_RAW];
void* ptr;
} ffi_java_raw;
#else
typedef ffi_raw ffi_java_raw;
#endif
FFI_API
void ffi_raw_call (ffi_cif *cif,
void (*fn)(void),
void *rvalue,
ffi_raw *avalue);
FFI_API void ffi_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_raw *raw);
FFI_API void ffi_raw_to_ptrarray (ffi_cif *cif, ffi_raw *raw, void **args);
FFI_API size_t ffi_raw_size (ffi_cif *cif);
/* This is analogous to the raw API, except it uses Java parameter
packing, even on 64-bit machines. I.e. on 64-bit machines longs
and doubles are followed by an empty 64-bit word. */
#if !FFI_NATIVE_RAW_API
FFI_API
void ffi_java_raw_call (ffi_cif *cif,
void (*fn)(void),
void *rvalue,
ffi_java_raw *avalue);
#endif
FFI_API
void ffi_java_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_java_raw *raw);
FFI_API
void ffi_java_raw_to_ptrarray (ffi_cif *cif, ffi_java_raw *raw, void **args);
FFI_API
size_t ffi_java_raw_size (ffi_cif *cif);
/* ---- Definitions for closures ----------------------------------------- */
#if FFI_CLOSURES
#ifdef _MSC_VER
__declspec(align(8))
#endif
typedef struct {
#if 0
void *trampoline_table;
void *trampoline_table_entry;
#else
char tramp[FFI_TRAMPOLINE_SIZE];
#endif
ffi_cif *cif;
void (*fun)(ffi_cif*,void*,void**,void*);
void *user_data;
} ffi_closure
#ifdef __GNUC__
__attribute__((aligned (8)))
#endif
;
#ifndef __GNUC__
# ifdef __sgi
# pragma pack 0
# endif
#endif
FFI_API void *ffi_closure_alloc (size_t size, void **code);
FFI_API void ffi_closure_free (void *);
FFI_API ffi_status
ffi_prep_closure (ffi_closure*,
ffi_cif *,
void (*fun)(ffi_cif*,void*,void**,void*),
void *user_data)
#if defined(__GNUC__) && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 405)
__attribute__((deprecated ("use ffi_prep_closure_loc instead")))
#elif defined(__GNUC__) && __GNUC__ >= 3
__attribute__((deprecated))
#endif
;
FFI_API ffi_status
ffi_prep_closure_loc (ffi_closure*,
ffi_cif *,
void (*fun)(ffi_cif*,void*,void**,void*),
void *user_data,
void*codeloc);
#ifdef __sgi
# pragma pack 8
#endif
typedef struct {
#if 0
void *trampoline_table;
void *trampoline_table_entry;
#else
char tramp[FFI_TRAMPOLINE_SIZE];
#endif
ffi_cif *cif;
#if !FFI_NATIVE_RAW_API
/* If this is enabled, then a raw closure has the same layout
as a regular closure. We use this to install an intermediate
handler to do the transaltion, void** -> ffi_raw*. */
void (*translate_args)(ffi_cif*,void*,void**,void*);
void *this_closure;
#endif
void (*fun)(ffi_cif*,void*,ffi_raw*,void*);
void *user_data;
} ffi_raw_closure;
typedef struct {
#if 0
void *trampoline_table;
void *trampoline_table_entry;
#else
char tramp[FFI_TRAMPOLINE_SIZE];
#endif
ffi_cif *cif;
#if !FFI_NATIVE_RAW_API
/* If this is enabled, then a raw closure has the same layout
as a regular closure. We use this to install an intermediate
handler to do the translation, void** -> ffi_raw*. */
void (*translate_args)(ffi_cif*,void*,void**,void*);
void *this_closure;
#endif
void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*);
void *user_data;
} ffi_java_raw_closure;
FFI_API ffi_status
ffi_prep_raw_closure (ffi_raw_closure*,
ffi_cif *cif,
void (*fun)(ffi_cif*,void*,ffi_raw*,void*),
void *user_data);
FFI_API ffi_status
ffi_prep_raw_closure_loc (ffi_raw_closure*,
ffi_cif *cif,
void (*fun)(ffi_cif*,void*,ffi_raw*,void*),
void *user_data,
void *codeloc);
#if !FFI_NATIVE_RAW_API
FFI_API ffi_status
ffi_prep_java_raw_closure (ffi_java_raw_closure*,
ffi_cif *cif,
void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*),
void *user_data);
FFI_API ffi_status
ffi_prep_java_raw_closure_loc (ffi_java_raw_closure*,
ffi_cif *cif,
void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*),
void *user_data,
void *codeloc);
#endif
#endif /* FFI_CLOSURES */
#if FFI_GO_CLOSURES
typedef struct {
void *tramp;
ffi_cif *cif;
void (*fun)(ffi_cif*,void*,void**,void*);
} ffi_go_closure;
FFI_API ffi_status ffi_prep_go_closure (ffi_go_closure*, ffi_cif *,
void (*fun)(ffi_cif*,void*,void**,void*));
FFI_API void ffi_call_go (ffi_cif *cif, void (*fn)(void), void *rvalue,
void **avalue, void *closure);
#endif /* FFI_GO_CLOSURES */
/* ---- Public interface definition -------------------------------------- */
FFI_API
ffi_status ffi_prep_cif(ffi_cif *cif,
ffi_abi abi,
unsigned int nargs,
ffi_type *rtype,
ffi_type **atypes);
FFI_API
ffi_status ffi_prep_cif_var(ffi_cif *cif,
ffi_abi abi,
unsigned int nfixedargs,
unsigned int ntotalargs,
ffi_type *rtype,
ffi_type **atypes);
FFI_API
void ffi_call(ffi_cif *cif,
void (*fn)(void),
void *rvalue,
void **avalue);
FFI_API
ffi_status ffi_get_struct_offsets (ffi_abi abi, ffi_type *struct_type,
size_t *offsets);
/* Useful for eliminating compiler warnings. */
#define FFI_FN(f) ((void (*)(void))f)
/* ---- Definitions shared with assembly code ---------------------------- */
#endif
/* If these change, update src/mips/ffitarget.h. */
#define FFI_TYPE_VOID 0
#define FFI_TYPE_INT 1
#define FFI_TYPE_FLOAT 2
#define FFI_TYPE_DOUBLE 3
#if 0
#define FFI_TYPE_LONGDOUBLE 4
#else
#define FFI_TYPE_LONGDOUBLE FFI_TYPE_DOUBLE
#endif
#define FFI_TYPE_UINT8 5
#define FFI_TYPE_SINT8 6
#define FFI_TYPE_UINT16 7
#define FFI_TYPE_SINT16 8
#define FFI_TYPE_UINT32 9
#define FFI_TYPE_SINT32 10
#define FFI_TYPE_UINT64 11
#define FFI_TYPE_SINT64 12
#define FFI_TYPE_STRUCT 13
#define FFI_TYPE_POINTER 14
#define FFI_TYPE_COMPLEX 15
/* This should always refer to the last type code (for sanity checks). */
#define FFI_TYPE_LAST FFI_TYPE_COMPLEX
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -1,215 +0,0 @@
/* fficonfig.h. Generated from fficonfig.h.in by configure. */
/* fficonfig.h.in. Generated from configure.ac by autoheader. */
/* Define if building universal (internal helper macro) */
/* #undef AC_APPLE_UNIVERSAL_BUILD */
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
systems. This function is required for `alloca.c' support on those systems.
*/
/* #undef CRAY_STACKSEG_END */
/* Define to 1 if using `alloca.c'. */
/* #undef C_ALLOCA */
/* Define to the flags needed for the .section .eh_frame directive. */
/* #undef EH_FRAME_FLAGS */
/* Define this if you want extra debugging. */
/* #undef FFI_DEBUG */
/* Cannot use PROT_EXEC on this target, so, we revert to alternative means */
/* #undef FFI_EXEC_TRAMPOLINE_TABLE */
/* Define this if you want to enable pax emulated trampolines */
/* #undef FFI_MMAP_EXEC_EMUTRAMP_PAX */
/* Cannot use malloc on this target, so, we revert to alternative means */
/* #undef FFI_MMAP_EXEC_WRIT */
/* Define this if you do not want support for the raw API. */
/* #undef FFI_NO_RAW_API */
/* Define this if you do not want support for aggregate types. */
/* #undef FFI_NO_STRUCTS */
/* Define to 1 if you have `alloca', as a function or macro. */
#define HAVE_ALLOCA 1
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
*/
/* #undef HAVE_ALLOCA_H */
/* Define if your assembler supports .cfi_* directives. */
/* #undef HAVE_AS_CFI_PSEUDO_OP */
/* Define if your assembler supports .register. */
/* #undef HAVE_AS_REGISTER_PSEUDO_OP */
/* Define if the compiler uses zarch features. */
/* #undef HAVE_AS_S390_ZARCH */
/* Define if your assembler and linker support unaligned PC relative relocs.
*/
/* #undef HAVE_AS_SPARC_UA_PCREL */
/* Define if your assembler supports unwind section type. */
/* #undef HAVE_AS_X86_64_UNWIND_SECTION_TYPE */
/* Define if your assembler supports PC relative relocs. */
/* #undef HAVE_AS_X86_PCREL */
/* Define to 1 if you have the <dlfcn.h> header file. */
/* #undef HAVE_DLFCN_H */
/* Define if __attribute__((visibility("hidden"))) is supported. */
/* #undef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE */
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define if you have the long double type and it is bigger than a double */
/* #undef HAVE_LONG_DOUBLE */
/* Define if you support more than one size of the long double type */
/* #undef HAVE_LONG_DOUBLE_VARIANT */
/* Define to 1 if you have the `memcpy' function. */
/* #undef HAVE_MEMCPY */
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the `mkostemp' function. */
/* #undef HAVE_MKOSTEMP */
/* Define to 1 if you have the `mmap' function. */
/* #undef HAVE_MMAP */
/* Define if mmap with MAP_ANON(YMOUS) works. */
/* #undef HAVE_MMAP_ANON */
/* Define if mmap of /dev/zero works. */
/* #undef HAVE_MMAP_DEV_ZERO */
/* Define if read-only mmap of a plain file works. */
/* #undef HAVE_MMAP_FILE */
/* Define if .eh_frame sections should be read-only. */
/* #undef HAVE_RO_EH_FRAME */
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
/* #undef HAVE_STRINGS_H */
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the <sys/mman.h> header file. */
/* #undef HAVE_SYS_MMAN_H */
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
/* #undef HAVE_UNISTD_H */
/* Define to 1 if GNU symbol versioning is used for libatomic. */
/* #undef LIBFFI_GNU_SYMBOL_VERSIONING */
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#define LT_OBJDIR ".libs/"
/* Name of package */
#define PACKAGE "libffi"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "http://github.com/libffi/libffi/issues"
/* Define to the full name of this package. */
#define PACKAGE_NAME "libffi"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "libffi 3.3-rc0"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "libffi"
/* Define to the home page for this package. */
#define PACKAGE_URL ""
/* Define to the version of this package. */
#define PACKAGE_VERSION "3.3-rc0"
/* The size of `double', as computed by sizeof. */
#define SIZEOF_DOUBLE 8
/* The size of `long double', as computed by sizeof. */
#define SIZEOF_LONG_DOUBLE 8
/* The size of `size_t', as computed by sizeof. */
#define SIZEOF_SIZE_T 4
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at runtime.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
/* #undef STACK_DIRECTION */
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Define if symbols are underscored. */
/* #undef SYMBOL_UNDERSCORE */
/* Define this if you are using Purify and want to suppress spurious messages.
*/
/* #undef USING_PURIFY */
/* Version number of package */
#define VERSION "3.3-rc0"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
/* # undef WORDS_BIGENDIAN */
# endif
#endif
/* Define to `unsigned int' if <sys/types.h> does not define. */
/* #undef size_t */
#ifdef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
#ifdef LIBFFI_ASM
#ifdef __APPLE__
#define FFI_HIDDEN(name) .private_extern name
#else
#define FFI_HIDDEN(name) .hidden name
#endif
#else
#define FFI_HIDDEN __attribute__ ((visibility ("hidden")))
#endif
#else
#ifdef LIBFFI_ASM
#define FFI_HIDDEN(name)
#else
#define FFI_HIDDEN
#endif
#endif

View File

@@ -1,89 +0,0 @@
/* -----------------------------------------------------------------*-C-*-
ffitarget.h - Copyright (c) 2012 Anthony Green
Copyright (c) 2010 CodeSourcery
Copyright (c) 1996-2003 Red Hat, Inc.
Target configuration macros for ARM.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
``Software''), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
----------------------------------------------------------------------- */
#ifndef LIBFFI_TARGET_H
#define LIBFFI_TARGET_H
#ifndef LIBFFI_H
#error "Please do not include ffitarget.h directly into your source. Use ffi.h instead."
#endif
#ifndef LIBFFI_ASM
typedef unsigned long ffi_arg;
typedef signed long ffi_sarg;
typedef enum ffi_abi {
FFI_FIRST_ABI = 0,
FFI_SYSV,
FFI_VFP,
FFI_LAST_ABI,
#if defined(__ARM_PCS_VFP) || defined(_M_ARM)
FFI_DEFAULT_ABI = FFI_VFP,
#else
FFI_DEFAULT_ABI = FFI_SYSV,
#endif
} ffi_abi;
#endif
#define FFI_EXTRA_CIF_FIELDS \
int vfp_used; \
unsigned short vfp_reg_free, vfp_nargs; \
signed char vfp_args[16] \
#define FFI_TARGET_SPECIFIC_VARIADIC
#ifndef _M_ARM
#define FFI_TARGET_HAS_COMPLEX_TYPE
#endif
/* ---- Definitions for closures ----------------------------------------- */
#define FFI_CLOSURES 1
#define FFI_GO_CLOSURES 1
#define FFI_NATIVE_RAW_API 0
#if defined (FFI_EXEC_TRAMPOLINE_TABLE) && FFI_EXEC_TRAMPOLINE_TABLE
#ifdef __MACH__
#define FFI_TRAMPOLINE_SIZE 12
#define FFI_TRAMPOLINE_CLOSURE_OFFSET 8
#else
#error "No trampoline table implementation"
#endif
#else
#ifdef _MSC_VER
#define FFI_TRAMPOLINE_SIZE 16
#define FFI_TRAMPOLINE_CLOSURE_FUNCTION 12
#else
#define FFI_TRAMPOLINE_SIZE 12
#endif
#define FFI_TRAMPOLINE_CLOSURE_OFFSET FFI_TRAMPOLINE_SIZE
#endif
#endif

Binary file not shown.

Binary file not shown.

View File

@@ -1,515 +0,0 @@
/* -----------------------------------------------------------------*-C-*-
libffi 3.3-rc0 - Copyright (c) 2011, 2014 Anthony Green
- Copyright (c) 1996-2003, 2007, 2008 Red Hat, Inc.
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the ``Software''), to deal in the Software without
restriction, including without limitation the rights to use, copy,
modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
----------------------------------------------------------------------- */
/* -------------------------------------------------------------------
Most of the API is documented in doc/libffi.texi.
The raw API is designed to bypass some of the argument packing and
unpacking on architectures for which it can be avoided. Routines
are provided to emulate the raw API if the underlying platform
doesn't allow faster implementation.
More details on the raw API can be found in:
http://gcc.gnu.org/ml/java/1999-q3/msg00138.html
and
http://gcc.gnu.org/ml/java/1999-q3/msg00174.html
-------------------------------------------------------------------- */
#ifndef LIBFFI_H
#define LIBFFI_H
#ifdef __cplusplus
extern "C" {
#endif
/* Specify which architecture libffi is configured for. */
#ifndef ARM_WIN64
#define ARM_WIN64
#endif
/* ---- System configuration information --------------------------------- */
#include <ffitarget.h>
#ifndef LIBFFI_ASM
#if defined(_MSC_VER) && !defined(__clang__)
#define __attribute__(X)
#endif
#include <stddef.h>
#include <limits.h>
/* LONG_LONG_MAX is not always defined (not if STRICT_ANSI, for example).
But we can find it either under the correct ANSI name, or under GNU
C's internal name. */
#define FFI_64_BIT_MAX 9223372036854775807
#ifdef LONG_LONG_MAX
# define FFI_LONG_LONG_MAX LONG_LONG_MAX
#else
# ifdef LLONG_MAX
# define FFI_LONG_LONG_MAX LLONG_MAX
# ifdef _AIX52 /* or newer has C99 LLONG_MAX */
# undef FFI_64_BIT_MAX
# define FFI_64_BIT_MAX 9223372036854775807LL
# endif /* _AIX52 or newer */
# else
# ifdef __GNUC__
# define FFI_LONG_LONG_MAX __LONG_LONG_MAX__
# endif
# ifdef _AIX /* AIX 5.1 and earlier have LONGLONG_MAX */
# ifndef __PPC64__
# if defined (__IBMC__) || defined (__IBMCPP__)
# define FFI_LONG_LONG_MAX LONGLONG_MAX
# endif
# endif /* __PPC64__ */
# undef FFI_64_BIT_MAX
# define FFI_64_BIT_MAX 9223372036854775807LL
# endif
# endif
#endif
/* The closure code assumes that this works on pointers, i.e. a size_t
can hold a pointer. */
typedef struct _ffi_type
{
size_t size;
unsigned short alignment;
unsigned short type;
struct _ffi_type **elements;
} ffi_type;
/* Need minimal decorations for DLLs to work on Windows. GCC has
autoimport and autoexport. Always mark externally visible symbols
as dllimport for MSVC clients, even if it means an extra indirection
when using the static version of the library.
Besides, as a workaround, they can define FFI_BUILDING if they
*know* they are going to link with the static library. */
#if defined _MSC_VER
# if defined FFI_BUILDING_DLL /* Building libffi.DLL with msvcc.sh */
# define FFI_API __declspec(dllexport)
# elif !defined FFI_BUILDING /* Importing libffi.DLL */
# define FFI_API __declspec(dllimport)
# else /* Building/linking static library */
# define FFI_API
# endif
#else
# define FFI_API
#endif
/* The externally visible type declarations also need the MSVC DLL
decorations, or they will not be exported from the object file. */
#if defined LIBFFI_HIDE_BASIC_TYPES
# define FFI_EXTERN FFI_API
#else
# define FFI_EXTERN extern FFI_API
#endif
#ifndef LIBFFI_HIDE_BASIC_TYPES
#if SCHAR_MAX == 127
# define ffi_type_uchar ffi_type_uint8
# define ffi_type_schar ffi_type_sint8
#else
#error "char size not supported"
#endif
#if SHRT_MAX == 32767
# define ffi_type_ushort ffi_type_uint16
# define ffi_type_sshort ffi_type_sint16
#elif SHRT_MAX == 2147483647
# define ffi_type_ushort ffi_type_uint32
# define ffi_type_sshort ffi_type_sint32
#else
#error "short size not supported"
#endif
#if INT_MAX == 32767
# define ffi_type_uint ffi_type_uint16
# define ffi_type_sint ffi_type_sint16
#elif INT_MAX == 2147483647
# define ffi_type_uint ffi_type_uint32
# define ffi_type_sint ffi_type_sint32
#elif INT_MAX == 9223372036854775807
# define ffi_type_uint ffi_type_uint64
# define ffi_type_sint ffi_type_sint64
#else
#error "int size not supported"
#endif
#if LONG_MAX == 2147483647
# if FFI_LONG_LONG_MAX != FFI_64_BIT_MAX
#error "no 64-bit data type supported"
# endif
#elif LONG_MAX != FFI_64_BIT_MAX
#error "long size not supported"
#endif
#if LONG_MAX == 2147483647
# define ffi_type_ulong ffi_type_uint32
# define ffi_type_slong ffi_type_sint32
#elif LONG_MAX == FFI_64_BIT_MAX
# define ffi_type_ulong ffi_type_uint64
# define ffi_type_slong ffi_type_sint64
#else
#error "long size not supported"
#endif
/* These are defined in types.c. */
FFI_EXTERN ffi_type ffi_type_void;
FFI_EXTERN ffi_type ffi_type_uint8;
FFI_EXTERN ffi_type ffi_type_sint8;
FFI_EXTERN ffi_type ffi_type_uint16;
FFI_EXTERN ffi_type ffi_type_sint16;
FFI_EXTERN ffi_type ffi_type_uint32;
FFI_EXTERN ffi_type ffi_type_sint32;
FFI_EXTERN ffi_type ffi_type_uint64;
FFI_EXTERN ffi_type ffi_type_sint64;
FFI_EXTERN ffi_type ffi_type_float;
FFI_EXTERN ffi_type ffi_type_double;
FFI_EXTERN ffi_type ffi_type_pointer;
#if 0
FFI_EXTERN ffi_type ffi_type_longdouble;
#else
#define ffi_type_longdouble ffi_type_double
#endif
#ifdef FFI_TARGET_HAS_COMPLEX_TYPE
FFI_EXTERN ffi_type ffi_type_complex_float;
FFI_EXTERN ffi_type ffi_type_complex_double;
#if 0
FFI_EXTERN ffi_type ffi_type_complex_longdouble;
#else
#define ffi_type_complex_longdouble ffi_type_complex_double
#endif
#endif
#endif /* LIBFFI_HIDE_BASIC_TYPES */
typedef enum {
FFI_OK = 0,
FFI_BAD_TYPEDEF,
FFI_BAD_ABI
} ffi_status;
typedef struct {
ffi_abi abi;
unsigned nargs;
ffi_type **arg_types;
ffi_type *rtype;
unsigned bytes;
unsigned flags;
#ifdef FFI_EXTRA_CIF_FIELDS
FFI_EXTRA_CIF_FIELDS;
#endif
} ffi_cif;
/* ---- Definitions for the raw API -------------------------------------- */
#ifndef FFI_SIZEOF_ARG
# if LONG_MAX == 2147483647
# define FFI_SIZEOF_ARG 4
# elif LONG_MAX == FFI_64_BIT_MAX
# define FFI_SIZEOF_ARG 8
# endif
#endif
#ifndef FFI_SIZEOF_JAVA_RAW
# define FFI_SIZEOF_JAVA_RAW FFI_SIZEOF_ARG
#endif
typedef union {
ffi_sarg sint;
ffi_arg uint;
float flt;
char data[FFI_SIZEOF_ARG];
void* ptr;
} ffi_raw;
#if FFI_SIZEOF_JAVA_RAW == 4 && FFI_SIZEOF_ARG == 8
/* This is a special case for mips64/n32 ABI (and perhaps others) where
sizeof(void *) is 4 and FFI_SIZEOF_ARG is 8. */
typedef union {
signed int sint;
unsigned int uint;
float flt;
char data[FFI_SIZEOF_JAVA_RAW];
void* ptr;
} ffi_java_raw;
#else
typedef ffi_raw ffi_java_raw;
#endif
FFI_API
void ffi_raw_call (ffi_cif *cif,
void (*fn)(void),
void *rvalue,
ffi_raw *avalue);
FFI_API void ffi_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_raw *raw);
FFI_API void ffi_raw_to_ptrarray (ffi_cif *cif, ffi_raw *raw, void **args);
FFI_API size_t ffi_raw_size (ffi_cif *cif);
/* This is analogous to the raw API, except it uses Java parameter
packing, even on 64-bit machines. I.e. on 64-bit machines longs
and doubles are followed by an empty 64-bit word. */
#if !FFI_NATIVE_RAW_API
FFI_API
void ffi_java_raw_call (ffi_cif *cif,
void (*fn)(void),
void *rvalue,
ffi_java_raw *avalue);
#endif
FFI_API
void ffi_java_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_java_raw *raw);
FFI_API
void ffi_java_raw_to_ptrarray (ffi_cif *cif, ffi_java_raw *raw, void **args);
FFI_API
size_t ffi_java_raw_size (ffi_cif *cif);
/* ---- Definitions for closures ----------------------------------------- */
#if FFI_CLOSURES
#ifdef _MSC_VER
__declspec(align(8))
#endif
typedef struct {
#if 0
void *trampoline_table;
void *trampoline_table_entry;
#else
char tramp[FFI_TRAMPOLINE_SIZE];
#endif
ffi_cif *cif;
void (*fun)(ffi_cif*,void*,void**,void*);
void *user_data;
} ffi_closure
#ifdef __GNUC__
__attribute__((aligned (8)))
#endif
;
#ifndef __GNUC__
# ifdef __sgi
# pragma pack 0
# endif
#endif
FFI_API void *ffi_closure_alloc (size_t size, void **code);
FFI_API void ffi_closure_free (void *);
FFI_API ffi_status
ffi_prep_closure (ffi_closure*,
ffi_cif *,
void (*fun)(ffi_cif*,void*,void**,void*),
void *user_data)
#if defined(__GNUC__) && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 405)
__attribute__((deprecated ("use ffi_prep_closure_loc instead")))
#elif defined(__GNUC__) && __GNUC__ >= 3
__attribute__((deprecated))
#endif
;
FFI_API ffi_status
ffi_prep_closure_loc (ffi_closure*,
ffi_cif *,
void (*fun)(ffi_cif*,void*,void**,void*),
void *user_data,
void*codeloc);
#ifdef __sgi
# pragma pack 8
#endif
typedef struct {
#if 0
void *trampoline_table;
void *trampoline_table_entry;
#else
char tramp[FFI_TRAMPOLINE_SIZE];
#endif
ffi_cif *cif;
#if !FFI_NATIVE_RAW_API
/* If this is enabled, then a raw closure has the same layout
as a regular closure. We use this to install an intermediate
handler to do the transaltion, void** -> ffi_raw*. */
void (*translate_args)(ffi_cif*,void*,void**,void*);
void *this_closure;
#endif
void (*fun)(ffi_cif*,void*,ffi_raw*,void*);
void *user_data;
} ffi_raw_closure;
typedef struct {
#if 0
void *trampoline_table;
void *trampoline_table_entry;
#else
char tramp[FFI_TRAMPOLINE_SIZE];
#endif
ffi_cif *cif;
#if !FFI_NATIVE_RAW_API
/* If this is enabled, then a raw closure has the same layout
as a regular closure. We use this to install an intermediate
handler to do the translation, void** -> ffi_raw*. */
void (*translate_args)(ffi_cif*,void*,void**,void*);
void *this_closure;
#endif
void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*);
void *user_data;
} ffi_java_raw_closure;
FFI_API ffi_status
ffi_prep_raw_closure (ffi_raw_closure*,
ffi_cif *cif,
void (*fun)(ffi_cif*,void*,ffi_raw*,void*),
void *user_data);
FFI_API ffi_status
ffi_prep_raw_closure_loc (ffi_raw_closure*,
ffi_cif *cif,
void (*fun)(ffi_cif*,void*,ffi_raw*,void*),
void *user_data,
void *codeloc);
#if !FFI_NATIVE_RAW_API
FFI_API ffi_status
ffi_prep_java_raw_closure (ffi_java_raw_closure*,
ffi_cif *cif,
void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*),
void *user_data);
FFI_API ffi_status
ffi_prep_java_raw_closure_loc (ffi_java_raw_closure*,
ffi_cif *cif,
void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*),
void *user_data,
void *codeloc);
#endif
#endif /* FFI_CLOSURES */
#if FFI_GO_CLOSURES
typedef struct {
void *tramp;
ffi_cif *cif;
void (*fun)(ffi_cif*,void*,void**,void*);
} ffi_go_closure;
FFI_API ffi_status ffi_prep_go_closure (ffi_go_closure*, ffi_cif *,
void (*fun)(ffi_cif*,void*,void**,void*));
FFI_API void ffi_call_go (ffi_cif *cif, void (*fn)(void), void *rvalue,
void **avalue, void *closure);
#endif /* FFI_GO_CLOSURES */
/* ---- Public interface definition -------------------------------------- */
FFI_API
ffi_status ffi_prep_cif(ffi_cif *cif,
ffi_abi abi,
unsigned int nargs,
ffi_type *rtype,
ffi_type **atypes);
FFI_API
ffi_status ffi_prep_cif_var(ffi_cif *cif,
ffi_abi abi,
unsigned int nfixedargs,
unsigned int ntotalargs,
ffi_type *rtype,
ffi_type **atypes);
FFI_API
void ffi_call(ffi_cif *cif,
void (*fn)(void),
void *rvalue,
void **avalue);
FFI_API
ffi_status ffi_get_struct_offsets (ffi_abi abi, ffi_type *struct_type,
size_t *offsets);
/* Useful for eliminating compiler warnings. */
#define FFI_FN(f) ((void (*)(void))f)
/* ---- Definitions shared with assembly code ---------------------------- */
#endif
/* If these change, update src/mips/ffitarget.h. */
#define FFI_TYPE_VOID 0
#define FFI_TYPE_INT 1
#define FFI_TYPE_FLOAT 2
#define FFI_TYPE_DOUBLE 3
#if 0
#define FFI_TYPE_LONGDOUBLE 4
#else
#define FFI_TYPE_LONGDOUBLE FFI_TYPE_DOUBLE
#endif
#define FFI_TYPE_UINT8 5
#define FFI_TYPE_SINT8 6
#define FFI_TYPE_UINT16 7
#define FFI_TYPE_SINT16 8
#define FFI_TYPE_UINT32 9
#define FFI_TYPE_SINT32 10
#define FFI_TYPE_UINT64 11
#define FFI_TYPE_SINT64 12
#define FFI_TYPE_STRUCT 13
#define FFI_TYPE_POINTER 14
#define FFI_TYPE_COMPLEX 15
/* This should always refer to the last type code (for sanity checks). */
#define FFI_TYPE_LAST FFI_TYPE_COMPLEX
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -1,215 +0,0 @@
/* fficonfig.h. Generated from fficonfig.h.in by configure. */
/* fficonfig.h.in. Generated from configure.ac by autoheader. */
/* Define if building universal (internal helper macro) */
/* #undef AC_APPLE_UNIVERSAL_BUILD */
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
systems. This function is required for `alloca.c' support on those systems.
*/
/* #undef CRAY_STACKSEG_END */
/* Define to 1 if using `alloca.c'. */
/* #undef C_ALLOCA */
/* Define to the flags needed for the .section .eh_frame directive. */
/* #undef EH_FRAME_FLAGS */
/* Define this if you want extra debugging. */
/* #undef FFI_DEBUG */
/* Cannot use PROT_EXEC on this target, so, we revert to alternative means */
/* #undef FFI_EXEC_TRAMPOLINE_TABLE */
/* Define this if you want to enable pax emulated trampolines */
/* #undef FFI_MMAP_EXEC_EMUTRAMP_PAX */
/* Cannot use malloc on this target, so, we revert to alternative means */
/* #undef FFI_MMAP_EXEC_WRIT */
/* Define this if you do not want support for the raw API. */
/* #undef FFI_NO_RAW_API */
/* Define this if you do not want support for aggregate types. */
/* #undef FFI_NO_STRUCTS */
/* Define to 1 if you have `alloca', as a function or macro. */
#define HAVE_ALLOCA 1
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
*/
/* #undef HAVE_ALLOCA_H */
/* Define if your assembler supports .cfi_* directives. */
/* #undef HAVE_AS_CFI_PSEUDO_OP */
/* Define if your assembler supports .register. */
/* #undef HAVE_AS_REGISTER_PSEUDO_OP */
/* Define if the compiler uses zarch features. */
/* #undef HAVE_AS_S390_ZARCH */
/* Define if your assembler and linker support unaligned PC relative relocs.
*/
/* #undef HAVE_AS_SPARC_UA_PCREL */
/* Define if your assembler supports unwind section type. */
/* #undef HAVE_AS_X86_64_UNWIND_SECTION_TYPE */
/* Define if your assembler supports PC relative relocs. */
/* #undef HAVE_AS_X86_PCREL */
/* Define to 1 if you have the <dlfcn.h> header file. */
/* #undef HAVE_DLFCN_H */
/* Define if __attribute__((visibility("hidden"))) is supported. */
/* #undef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE */
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define if you have the long double type and it is bigger than a double */
/* #undef HAVE_LONG_DOUBLE */
/* Define if you support more than one size of the long double type */
/* #undef HAVE_LONG_DOUBLE_VARIANT */
/* Define to 1 if you have the `memcpy' function. */
/* #undef HAVE_MEMCPY */
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the `mkostemp' function. */
/* #undef HAVE_MKOSTEMP */
/* Define to 1 if you have the `mmap' function. */
/* #undef HAVE_MMAP */
/* Define if mmap with MAP_ANON(YMOUS) works. */
/* #undef HAVE_MMAP_ANON */
/* Define if mmap of /dev/zero works. */
/* #undef HAVE_MMAP_DEV_ZERO */
/* Define if read-only mmap of a plain file works. */
/* #undef HAVE_MMAP_FILE */
/* Define if .eh_frame sections should be read-only. */
/* #undef HAVE_RO_EH_FRAME */
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
/* #undef HAVE_STRINGS_H */
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the <sys/mman.h> header file. */
/* #undef HAVE_SYS_MMAN_H */
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
/* #undef HAVE_UNISTD_H */
/* Define to 1 if GNU symbol versioning is used for libatomic. */
/* #undef LIBFFI_GNU_SYMBOL_VERSIONING */
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#define LT_OBJDIR ".libs/"
/* Name of package */
#define PACKAGE "libffi"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "http://github.com/libffi/libffi/issues"
/* Define to the full name of this package. */
#define PACKAGE_NAME "libffi"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "libffi 3.3-rc0"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "libffi"
/* Define to the home page for this package. */
#define PACKAGE_URL ""
/* Define to the version of this package. */
#define PACKAGE_VERSION "3.3-rc0"
/* The size of `double', as computed by sizeof. */
#define SIZEOF_DOUBLE 8
/* The size of `long double', as computed by sizeof. */
#define SIZEOF_LONG_DOUBLE 8
/* The size of `size_t', as computed by sizeof. */
#define SIZEOF_SIZE_T 8
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at runtime.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
/* #undef STACK_DIRECTION */
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Define if symbols are underscored. */
/* #undef SYMBOL_UNDERSCORE */
/* Define this if you are using Purify and want to suppress spurious messages.
*/
/* #undef USING_PURIFY */
/* Version number of package */
#define VERSION "3.3-rc0"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
/* # undef WORDS_BIGENDIAN */
# endif
#endif
/* Define to `unsigned int' if <sys/types.h> does not define. */
/* #undef size_t */
#ifdef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
#ifdef LIBFFI_ASM
#ifdef __APPLE__
#define FFI_HIDDEN(name) .private_extern name
#else
#define FFI_HIDDEN(name) .hidden name
#endif
#else
#define FFI_HIDDEN __attribute__ ((visibility ("hidden")))
#endif
#else
#ifdef LIBFFI_ASM
#define FFI_HIDDEN(name)
#else
#define FFI_HIDDEN
#endif
#endif

View File

@@ -1,92 +0,0 @@
/* Copyright (c) 2009, 2010, 2011, 2012 ARM Ltd.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
``Software''), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
#ifndef LIBFFI_TARGET_H
#define LIBFFI_TARGET_H
#ifndef LIBFFI_H
#error "Please do not include ffitarget.h directly into your source. Use ffi.h instead."
#endif
#ifndef LIBFFI_ASM
#ifdef __ILP32__
#define FFI_SIZEOF_ARG 8
#define FFI_SIZEOF_JAVA_RAW 4
typedef unsigned long long ffi_arg;
typedef signed long long ffi_sarg;
#elif defined(_M_ARM64)
#define FFI_SIZEOF_ARG 8
typedef unsigned long long ffi_arg;
typedef signed long long ffi_sarg;
#else
typedef unsigned long ffi_arg;
typedef signed long ffi_sarg;
#endif
typedef enum ffi_abi
{
FFI_FIRST_ABI = 0,
FFI_SYSV,
FFI_LAST_ABI,
FFI_DEFAULT_ABI = FFI_SYSV
} ffi_abi;
#endif
/* ---- Definitions for closures ----------------------------------------- */
#define FFI_CLOSURES 1
#define FFI_NATIVE_RAW_API 0
#if defined (FFI_EXEC_TRAMPOLINE_TABLE) && FFI_EXEC_TRAMPOLINE_TABLE
#ifdef __MACH__
#define FFI_TRAMPOLINE_SIZE 16
#define FFI_TRAMPOLINE_CLOSURE_OFFSET 16
#else
#error "No trampoline table implementation"
#endif
#else
#define FFI_TRAMPOLINE_SIZE 24
#define FFI_TRAMPOLINE_CLOSURE_OFFSET FFI_TRAMPOLINE_SIZE
#endif
#ifdef _M_ARM64
#define FFI_EXTRA_CIF_FIELDS unsigned is_variadic
#endif
/* ---- Internal ---- */
#if defined (__APPLE__)
#define FFI_TARGET_SPECIFIC_VARIADIC
#define FFI_EXTRA_CIF_FIELDS unsigned aarch64_nfixedargs
#elif !defined(_M_ARM64)
/* iOS and Windows reserve x18 for the system. Disable Go closures until
a new static chain is chosen. */
#define FFI_GO_CLOSURES 1
#endif
#ifndef _M_ARM64
/* No complex type on Windows */
#define FFI_TARGET_HAS_COMPLEX_TYPE
#endif
#endif

Binary file not shown.

Binary file not shown.

BIN
candle.exe Normal file

Binary file not shown.

13
candle.exe.config Normal file
View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
<supportedRuntime version="v2.0.50727" />
</startup>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>

BIN
darice.cub Normal file

Binary file not shown.

BIN
dark.exe Normal file

Binary file not shown.

16
dark.exe.config Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<configuration>
<appSettings>
<add key="extensions" value="WixDifxAppExtension;WixDependencyExtension;WixDirectXExtension;WixFirewallExtension;WixGamingExtension;WixHttpExtension;WixIIsExtension;WixNetFxExtension;WixSqlExtension;WixUIExtension;WixUtilExtension;WixVSExtension" />
</appSettings>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
<supportedRuntime version="v2.0.50727" />
</startup>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>

BIN
difxapp_x64.wixlib Normal file

Binary file not shown.

BIN
difxapp_x86.wixlib Normal file

Binary file not shown.

BIN
doc/DTF.chm Normal file

Binary file not shown.

BIN
doc/DTFAPI.chm Normal file

Binary file not shown.

221
doc/Dependency.xsd Normal file
View File

@@ -0,0 +1,221 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<xs:schema xmlns:html="http://www.w3.org/1999/xhtml" xmlns:wix="http://schemas.microsoft.com/wix/2006/wi" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" targetNamespace="http://schemas.microsoft.com/wix/DependencyExtension" xmlns="http://schemas.microsoft.com/wix/DependencyExtension">
<xs:annotation>
<xs:documentation>
The source code schema for the Windows Installer XML Toolset Dependency Extension.
</xs:documentation>
</xs:annotation>
<xs:element name="Provides">
<xs:annotation>
<xs:documentation>
Describes the information for this product or feature that serves as a dependency of other products or features.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="ExePackage" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="MsiPackage" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="MspPackage" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="MsuPackage" />
<xse:remarks>
<html:p>
This element is required for any product, feature, or bundle that will use the Dependency feature to properly reference count
other products or features. It should be authored into a component that is always installed and removed with the
product or features that contain it. This guarantees that product dependencies are not removed before those products that
depend on them.
</html:p>
<html:p>
The @Key attribute should identify a version range for your product that you guarantee will be backward compatible.
This key is designed to persist throughout compatible upgrades so that dependent products do not have to be reinstalled
and will not prevent your product from being upgraded. If this attribute is not authored, the value is the ProductCode
and will not automatically support upgrades.
</html:p>
<html:p>
By default this uses the Product/@Id attribute value, which may be automatically generated.
</html:p>
</xse:remarks>
<xse:howtoRef href="author_product_dependencies.html">How To: Author product dependencies</xse:howtoRef>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Requires" />
<xs:element ref="RequiresRef" />
</xs:choice>
<xs:attribute name="Id" type="xs:string">
<xs:annotation>
<xs:documentation>
Dependency provider identity. If this attribute is not specified, an identifier will be generated automatically.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Key" type="xs:string">
<xs:annotation>
<xs:documentation>
Optional unique registry key name that identifies a product version range on which other products can depend.
This attribute is required in package authoring, but optional for components.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Version" type="VersionType">
<xs:annotation>
<xs:documentation>
The version of the package. For MSI packages, the ProductVersion will be used by default
and this attribute should not be specified.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DisplayName" type="xs:string">
<xs:annotation>
<xs:documentation>
Optional display name of the package. For MSI packages, the ProductName will be used by default.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Requires">
<xs:annotation>
<xs:documentation>
Describes a dependency on a provider for the current component or package.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Bundle" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
<xse:remarks>
<html:p>
This element declares a dependency on any product that uses the Provides element. If that product is uninstalled
before a product that requires it, the uninstall will err or warn the user that other products are installed
which depend on that product. This behavior can be modified by changing the attribute values on the Requires element.
</html:p>
<html:p>
If you do not nest this element under a Provides element, you must specify the @Id attribute
so that it can be referenced by a RequiresRef element nested under a Provides element.
</html:p>
</xse:remarks>
<xse:seeAlso ref="RequiresRef" />
<xse:howtoRef href="author_product_dependencies.html">How To: Author product dependencies</xse:howtoRef>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string">
<xs:annotation>
<xs:documentation>
Dependency requirement identity. If this attribute is not specified, an identifier will be generated automatically.
If this element is not authored under a Provides element, this attribute is required.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ProviderKey" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The unique registry key name for the dependency provider to require during installation of this product.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Minimum" type="VersionType">
<xs:annotation>
<xs:documentation>
The minimum version of the dependency provider required to be installed. The default is unbound.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Maximum" type="VersionType">
<xs:annotation>
<xs:documentation>
The maximum version of the dependency provider required to be installed. The default is unbound.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IncludeMinimum" type="YesNoType">
<xs:annotation>
<xs:documentation>
Set to "yes" to make the range of dependency provider versions required include the value specified in Minimum.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IncludeMaximum" type="YesNoType">
<xs:annotation>
<xs:documentation>
Set to "yes" to make the range of dependency provider versions required include the value specified in Maximum.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="RequiresRef">
<xs:annotation>
<xs:documentation>
References existing authoring for a dependency on a provider for the current component or package.
</xs:documentation>
<xs:appinfo>
<xse:remarks>
<html:p>
This element references a dependency on any product that uses the Provides element. If that product is uninstalled
before a product that requires it, the uninstall will err or warn the user that other products are installed
which depend on that product. This behavior can be modified by changing the attribute values on the Requires element.
</html:p>
</xse:remarks>
<xse:seeAlso ref="Requires" />
<xse:howtoRef href="author_product_dependencies.html">How To: Author product dependencies</xse:howtoRef>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The identifier of the Requires element to reference.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:attribute name="ProviderKey" type="xs:string">
<xs:annotation>
<xs:documentation>
Optional attribute to explicitly author the provider key for the entire bundle.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Bundle" />
<xse:remarks>
<html:p>
This provider key is designed to persist throughout compatible upgrades so that dependent bundles do not have to be reinstalled
and will not prevent your product from being upgraded. If this attribute is not authored, the value is the
automatically-generated bundle ID and will not automatically support upgrades.
</html:p>
<html:p>
Only a single provider key is supported for bundles. To author that your bundle provides additional features via
packages, author different provider keys for your packages.
</html:p>
</xse:remarks>
<xse:seeAlso ref="Provides" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:simpleType name="VersionType">
<xs:annotation>
<xs:documentation>
Values of this type will look like: "x.x.x.x" where x is an integer from 0 to 65534.
This can also be a preprocessor, binder, or WiX variable.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="(\d{1,5}\.){3}\d{1,5}|[!$]\((var|bind|wix)\.[_A-Za-z][\w\.]*\)" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="YesNoType">
<xs:annotation>
<xs:documentation>
Values of this type will either be "yes" or "no".
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="no" />
<xs:enumeration value="yes" />
</xs:restriction>
</xs:simpleType>
</xs:schema>

BIN
doc/WiX.chm Normal file

Binary file not shown.

262
doc/bal.xsd Normal file
View File

@@ -0,0 +1,262 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
targetNamespace="http://schemas.microsoft.com/wix/BalExtension"
xmlns="http://schemas.microsoft.com/wix/BalExtension">
<xs:annotation>
<xs:documentation>
The source code schema for the Windows Installer XML Toolset Burn User Experience Extension.
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
<xs:element name="Condition">
<xs:annotation>
<xs:documentation>
Conditions for a bundle. The condition is specified in the inner text of the element.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Bundle" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>
The condition that must evaluate to true for the installation to continue.
</xs:documentation>
</xs:annotation>
<xs:attribute name="Message" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Set the value to the text to display when the condition fails and the installation must be terminated.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="WixStandardBootstrapperApplication">
<xs:annotation>
<xs:documentation>
Configures WixStandardBootstrapperApplication for a Bundle.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="BootstrapperApplicationRef" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="LaunchTarget" type="xs:string">
<xs:annotation>
<xs:documentation>
If set, the success page will show a Launch button the user can use to launch the application being installed.
The string value can be formatted using Burn variables enclosed in brackets,
to refer to installation directories and so forth.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LaunchTargetElevatedId" type="xs:string">
<xs:annotation>
<xs:documentation>
Id of the target ApprovedExeForElevation element.
If set with LaunchTarget, WixStdBA will launch the application through the Engine's LaunchApprovedExe method instead of through ShellExecute.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LaunchArguments" type="xs:string">
<xs:annotation>
<xs:documentation>
If set, WixStdBA will supply these arguments when launching the application specified by the LaunchTarget attribute.
The string value can be formatted using Burn variables enclosed in brackets,
to refer to installation directories and so forth.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LaunchHidden" type="YesNoType">
<xs:annotation>
<xs:documentation>
If set to "yes", WixStdBA will launch the application specified by the LaunchTarget attribute with the SW_HIDE flag.
This attribute is ignored when the LaunchTargetElevatedId attribute is specified.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LaunchWorkingFolder" type="xs:string">
<xs:annotation>
<xs:documentation>
WixStdBA will use this working folder when launching the specified application.
The string value can be formatted using Burn variables enclosed in brackets,
to refer to installation directories and so forth.
This attribute is ignored when the LaunchTargetElevatedId attribute is specified.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LicenseFile" type="xs:string">
<xs:annotation>
<xs:documentation>Source file of the RTF license file. Cannot be used simultaneously with LicenseUrl.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LicenseUrl" type="xs:string">
<xs:annotation>
<xs:documentation>URL target of the license link. Cannot be used simultaneously with LicenseFile. This attribute can be empty to hide the license link completely.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LogoFile" type="xs:string">
<xs:annotation>
<xs:documentation>Source file of the logo graphic.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LogoSideFile" type="xs:string">
<xs:annotation>
<xs:documentation>Source file of the side logo graphic.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ThemeFile" type="xs:string">
<xs:annotation>
<xs:documentation>Source file of the theme XML.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LocalizationFile" type="xs:string">
<xs:annotation>
<xs:documentation>Source file of the theme localization .wxl file.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SuppressOptionsUI" type="YesNoType">
<xs:annotation>
<xs:documentation>If set to "yes", the Options button will not be shown and the user will not be able to choose an installation directory.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SuppressDowngradeFailure" type="YesNoType">
<xs:annotation>
<xs:documentation>If set to "yes", attempting to installer a downgraded version of a bundle will be treated as a successful do-nothing operation.
The default behavior (or when explicitly set to "no") is to treat downgrade attempts as failures. </xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SuppressRepair" type="YesNoType">
<xs:annotation>
<xs:documentation>If set to "yes", the Repair button will not be shown in the maintenance-mode UI.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ShowVersion" type="YesNoType">
<xs:annotation>
<xs:documentation>If set to "yes", the application version will be displayed on the UI.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SupportCacheOnly" type="YesNoType">
<xs:annotation>
<xs:documentation>If set to "yes", the bundle can be pre-cached using the /cache command line argument.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ShowFilesInUse" type="YesNoType">
<xs:annotation>
<xs:documentation>If set to "yes", WixStdBA will show a page allowing the user to restart applications when files are in use.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:attribute name="PrereqSupportPackage" type="YesNoType">
<xs:annotation>
<xs:documentation>
When set to "yes", the Prereq BA will plan the package to be installed if its InstallCondition is "true" or empty.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="ExePackage" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="MsiPackage" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="MspPackage" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="MsuPackage" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Overridable" type="YesNoType">
<xs:annotation>
<xs:documentation>
When set to "yes", lets the user override the variable's default value by specifying another value on the command line,
in the form Variable=Value. Otherwise, WixStdBA won't overwrite the default value and will log
"Ignoring attempt to set non-overridable variable: 'BAR'."
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Variable" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="UseUILanguages" type="YesNoType">
<xs:annotation>
<xs:documentation>
When set to "yes", causes WixStdBA/Prereq BA to use the user's control panel language settings. Otherwise, the previous API (which uses locale instead of language) is used to maintain compatiblity with previous versions of WiX.
On Vista and newer platforms, this value set to "yes" will search all specified user languages, including fallback languages, in order.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="BootstrapperApplication" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="BootstrapperApplicationRef" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:element name="WixManagedBootstrapperApplicationHost">
<xs:annotation>
<xs:documentation>
Configures the ManagedBootstrapperApplicationHost for a Bundle.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="BootstrapperApplicationRef" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="LicenseFile" type="xs:string">
<xs:annotation>
<xs:documentation>Source file of the RTF license file. Cannot be used simultaneously with LicenseUrl.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LicenseUrl" type="xs:string">
<xs:annotation>
<xs:documentation>URL target of the license link. Cannot be used simultaneously with LicenseFile.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LogoFile" type="xs:string">
<xs:annotation>
<xs:documentation>Source file of the logo graphic.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ThemeFile" type="xs:string">
<xs:annotation>
<xs:documentation>Source file of the theme XML.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LocalizationFile" type="xs:string">
<xs:annotation>
<xs:documentation>Source file of the theme localization .wxl file.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="NetFxPackageId" type="xs:string">
<xs:annotation>
<xs:documentation>
Identifier of the bundle package that contains the .NET Framework. ManagedBootstrapperApplicationHost uses
this identifier to determine whether .NET needs to be installed before the managed bootstrapper application
can be launched.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:simpleType name="YesNoType">
<xs:annotation>
<xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="no"/>
<xs:enumeration value="yes"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

944
doc/complus.xsd Normal file
View File

@@ -0,0 +1,944 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<xs:schema xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
targetNamespace="http://schemas.microsoft.com/wix/ComPlusExtension"
xmlns="http://schemas.microsoft.com/wix/ComPlusExtension">
<xs:annotation>
<xs:documentation>
The source code schema for the Windows Installer XML Toolset COM+ Extension.
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
<xs:element name="ComPlusPartition">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
</xs:appinfo>
<xs:documentation>
Defines a COM+ partition. If this element is a child of a
Component element, the partition will be created in association with this
component. If the element is a child of any of the Fragment, Module or Product
elements it is considered to be a locater, referencing an existing partition.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ComPlusPartitionRole" />
<xs:element ref="ComPlusPartitionUser" />
<xs:element ref="ComPlusApplication" />
</xs:choice>
</xs:sequence>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Identifier for the element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="PartitionId" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
Id for the partition. This attribute can be omitted, in
which case an id will be generated on install. If the element is a locater,
this attribute can be omitted if a value is provided for the Name attribute.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Name" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
Name of the partition. This attribute can be omitted if
the element is a locater, and a value is provided for the PartitionId
attribute.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Changeable" use="optional" type="YesNoType" />
<xs:attribute name="Deleteable" use="optional" type="YesNoType" />
<xs:attribute name="Description" use="optional" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="ComPlusPartitionRole">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
</xs:appinfo>
<xs:documentation>
Defines a COM+ partition role. Partition roles can not be
created; this element can only be used as a locater to reference an existing
role.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ComPlusUserInPartitionRole" />
<xs:element ref="ComPlusGroupInPartitionRole" />
</xs:choice>
</xs:sequence>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Identifier for the element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Partition" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
The id of a ComPlusPartition element representing the partition
the role belongs to.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Name" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Name of the partition role.
</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ComPlusUserInPartitionRole">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
</xs:appinfo>
<xs:documentation>
This element represents a user membership in a partition
role. When the parent component of this element is installed, the user will be
added to the associated partition role.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Identifier for the element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="PartitionRole" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
The id of a ComPlusPartitionRole element representing the
partition the user should be added to.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="User" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Foreign key into the User table.
</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ComPlusGroupInPartitionRole">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
</xs:appinfo>
<xs:documentation>
This element represents a security group membership in a
partition role. When the parent component of this element is installed, the
security group will be added to the associated partition role.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Identifier for the element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="PartitionRole" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
The id of a ComPlusPartitionRole element representing the
partition the user should be added to.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Group" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Foreign key into the Group table.
</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ComPlusPartitionUser">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
</xs:appinfo>
<xs:documentation>
Represents a default partition definition for a user. When
the parent component of this element is installed, the default partition of the
user will be set to the referenced partition.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Identifier for the element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Partition" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
The id of a ComPlusPartition element representing the
partition that will be the default partition for the user.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="User" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Foreign key into the User table.
</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ComPlusApplication">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
</xs:appinfo>
<xs:documentation>
Defines a COM+ application. If this element is a descendent
of a Component element, the application will be created in association with
this component. If the element is a child of any of the Fragment, Module or
Product elements it is considered to be a locater, referencing an existing
application.
If the element is a child of a ComPlusPartition element,
or have its Partition attribute set, the application will be installed under
the referenced partition.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ComPlusApplicationRole" />
<xs:element ref="ComPlusAssembly" />
</xs:choice>
</xs:sequence>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Identifier for the element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Partition" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
If the element is not a child of a ComPlusPartition
element, this attribute can be provided with the id of a ComPlusPartition
element representing the partition the application belongs to.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="ApplicationId" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
Id for the application. This attribute can be omitted, in
which case an id will be generated on install. If the element is a locater,
this attribute can be omitted if a value is provided for the Name attribute.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Name" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
Name of the application. This attribute can be omitted if
the element is a locater, and a value is provided for the PartitionId
attribute.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="ThreeGigSupportEnabled" use="optional" type="YesNoType" />
<xs:attribute name="AccessChecksLevel" use="optional">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="applicationLevel" />
<xs:enumeration value="applicationComponentLevel" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Activation" use="optional">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="inproc" />
<xs:enumeration value="local" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="ApplicationAccessChecksEnabled" use="optional" type="YesNoType" />
<xs:attribute name="ApplicationDirectory" use="optional" type="xs:string" />
<xs:attribute name="Authentication" use="optional">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="default" />
<xs:enumeration value="none" />
<xs:enumeration value="connect" />
<xs:enumeration value="call" />
<xs:enumeration value="packet" />
<xs:enumeration value="integrity" />
<xs:enumeration value="privacy" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="AuthenticationCapability" use="optional">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="none" />
<xs:enumeration value="secureReference" />
<xs:enumeration value="staticCloaking" />
<xs:enumeration value="dynamicCloaking" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Changeable" use="optional" type="YesNoType" />
<xs:attribute name="CommandLine" use="optional" type="xs:string" />
<xs:attribute name="ConcurrentApps" use="optional" type="xs:int" />
<xs:attribute name="CreatedBy" use="optional" type="xs:string" />
<xs:attribute name="CRMEnabled" use="optional" type="YesNoType" />
<xs:attribute name="CRMLogFile" use="optional" type="xs:string" />
<xs:attribute name="Deleteable" use="optional" type="YesNoType" />
<xs:attribute name="Description" use="optional" type="xs:string" />
<xs:attribute name="DumpEnabled" use="optional" type="YesNoType" />
<xs:attribute name="DumpOnException" use="optional" type="YesNoType" />
<xs:attribute name="DumpOnFailfast" use="optional" type="YesNoType" />
<xs:attribute name="DumpPath" use="optional" type="xs:string" />
<xs:attribute name="EventsEnabled" use="optional" type="YesNoType" />
<xs:attribute name="Identity" use="optional" type="xs:string" />
<xs:attribute name="ImpersonationLevel" use="optional">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="anonymous" />
<xs:enumeration value="identify" />
<xs:enumeration value="impersonate" />
<xs:enumeration value="delegate" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="IsEnabled" use="optional" type="YesNoType" />
<xs:attribute name="MaxDumpCount" use="optional" type="xs:int" />
<xs:attribute name="Password" use="optional" type="xs:string" />
<xs:attribute name="QCAuthenticateMsgs" use="optional">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="secureApps" />
<xs:enumeration value="off" />
<xs:enumeration value="on" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="QCListenerMaxThreads" use="optional" type="xs:int" />
<xs:attribute name="QueueListenerEnabled" use="optional" type="YesNoType" />
<xs:attribute name="QueuingEnabled" use="optional" type="YesNoType" />
<xs:attribute name="RecycleActivationLimit" use="optional" type="xs:int" />
<xs:attribute name="RecycleCallLimit" use="optional" type="xs:int" />
<xs:attribute name="RecycleExpirationTimeout" use="optional" type="xs:int" />
<xs:attribute name="RecycleLifetimeLimit" use="optional" type="xs:int" />
<xs:attribute name="RecycleMemoryLimit" use="optional" type="xs:int" />
<xs:attribute name="Replicable" use="optional" type="YesNoType" />
<xs:attribute name="RunForever" use="optional" type="YesNoType" />
<xs:attribute name="ShutdownAfter" use="optional" type="xs:int" />
<xs:attribute name="SoapActivated" use="optional" type="YesNoType" />
<xs:attribute name="SoapBaseUrl" use="optional" type="xs:string" />
<xs:attribute name="SoapMailTo" use="optional" type="xs:string" />
<xs:attribute name="SoapVRoot" use="optional" type="xs:string" />
<xs:attribute name="SRPEnabled" use="optional" type="YesNoType" />
<xs:attribute name="SRPTrustLevel" use="optional">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="disallowed" />
<xs:enumeration value="fullyTrusted" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ComPlusApplicationRole">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
</xs:appinfo>
<xs:documentation>
Defines an application role. If this element is a descendent
of a Component element, the application role will be created in association
with this component. If the element is a child of any of the Fragment, Module
or Product elements it is considered to be a locater, referencing an existing
application role.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ComPlusUserInApplicationRole" />
<xs:element ref="ComPlusGroupInApplicationRole" />
</xs:choice>
</xs:sequence>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Identifier for the element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Application" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
If the element is not a child of a ComPlusApplication
element, this attribute should be provided with the id of a
ComPlusApplication element representing the application the role belongs to.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Name" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Name of the application role.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Description" use="optional" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="ComPlusUserInApplicationRole">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
</xs:appinfo>
<xs:documentation>
This element represents a user membership in an
application role. When the parent component of this element is installed, the
user will be added to the associated application role. This element must be a descendent
of a Component element; it can not be a child of a ComPlusApplicationRole
locater element. To reference a locater element use the ApplicationRole
attribute.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Identifier for the element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="ApplicationRole" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
If the element is not a child of a ComPlusApplicationRole
element, this attribute should be provided with the id of a
ComPlusApplicationRole element representing the application role the user is
to be added to.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="User" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Foreign key into the User table.
</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ComPlusGroupInApplicationRole">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
</xs:appinfo>
<xs:documentation>
This element represents a security group membership in an
application role. When the parent component of this element is installed, the
user will be added to the associated application role. This element must be a
descendent of a Component element; it can not be a child of a
ComPlusApplicationRole locater element. To reference a locater element use the
ApplicationRole attribute.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Identifier for the element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="ApplicationRole" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
If the element is not a child of a ComPlusApplicationRole
element, this attribute should be provided with the id of a
ComPlusApplicationRole element representing the application role the user is
to be added to.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Group" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Foreign key into the Group table.
</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ComPlusAssembly">
<xs:annotation>
<xs:documentation>
Represents a DLL or assembly to be registered with COM+. If
this element is a child of a ComPlusApplication element, the assembly will be
registered in this application. Other ways the Application attribute must be
set to an application. The element must be a descendent of a Component element,
it can not be a child of a ComPlusApplication locator element.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
<xse:remarks>
<html:p>
When installing a native assembly, all components
contained in the assembly must be represented as ComPlusComponent elements
under this element. Any component not listed will not be removed during
uninstall.
</html:p>
<html:p>
The fields DllPath, TlbPath and PSDllPath are formatted
fields that should contain file paths to there respective file types. A typical
value for DllPath for example, should be something like “[#MyAssembly_dll]”,
where “MyAssembly_dll” is the key of the dll file in the File table.
</html:p>
<html:p>
<html:b>Warning</html:b>: The assembly name provided in the AssemblyName
attribute must be a fully specified assembly name, if a partial name is
provided a random assembly matching the partial name will be selected.
</html:p>
</xse:remarks>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ComPlusAssemblyDependency" />
<xs:element ref="ComPlusComponent" />
</xs:choice>
</xs:sequence>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Identifier for the element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Application" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
If the element is not a child of a ComPlusApplication
element, this attribute should be provided with the id of a ComPlusApplication
element representing the application the assembly is to be registered in.
This attribute can be omitted for a .NET assembly even if the application is
not a child of a ComPlusApplication element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="AssemblyName" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
The name of the assembly used to identify the assembly in
the GAC. This attribute can be provided only if DllPathFromGAC is set to
“yes”.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="DllPath" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
The path to locate the assembly DLL during registration.
This attribute should be provided if DllPathFromGAC is not set to “yes”.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="TlbPath" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
An optional path to an external type lib for the assembly.
This attribute must be provided if the Type attribute is set to “.net”.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="PSDllPath" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
An optional path to an external proxy/stub DLL for the assembly.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Type" use="required">
<xs:annotation><xs:documentation>
</xs:documentation></xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="native" />
<xs:enumeration value=".net" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="EventClass" use="optional" type="YesNoType">
<xs:annotation><xs:documentation>
Indicates that the assembly is to be installed as an event
class DLL. This attribute is only valid for native assemblies. The assembly
will be installed with the COM+ catalogs InstallEventClass() function.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="DllPathFromGAC" use="optional" type="YesNoType">
<xs:annotation><xs:documentation>
Indicates that the DLL path should be extracted from the
GAC instead for being provided in the DllPath attribute. If this attribute is
set to “yes”, the name of the assembly can be provided using the AssemblyName
attribute. Or, if this AssemblyName attribute is missing, the name will be
extracted from the MsiAssemblyName table using the id of the parent Component
element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="RegisterInCommit" use="optional" type="YesNoType">
<xs:annotation><xs:documentation>
Indicates that the assembly should be installed in the
commit custom action instead of the normal deferred custom action. This is
necessary when installing .NET assemblies to the GAC in the same
installation, as the assemblies are not visible in the GAC until after the
InstallFinalize action has run.
</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ComPlusAssemblyDependency">
<xs:annotation>
<xs:documentation>
Defines a dependency between two assemblies. This element
affects the order in which assembles are registered. Any assemblies referenced
by this element are guarantied to be registered before, and unregistered after,
the assembly referenced by the parent ComPlusAssembly element.
</xs:documentation>
<xs:appinfo>
<xse:remarks>
It is only necessary to explicitly specify dependencies between
assemblies contained in the same package (MSI or MSM). Assemblies merged in to a
package from a merge module will always be installed before any assemblies
specified in the base package. Assemblies merged in from different merge
modules are sequenced using the ModuleDependency MSI table. It is not possible
to have cross dependencies between merge modules or have an assembly in a merge
module depend on an assembly in the base package.
</xse:remarks>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="RequiredAssembly" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Reference to the id of the assembly required by the parent
ComPlusAssembly element.
</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ComPlusComponent">
<xs:annotation><xs:documentation>
Represents a COM+ component in an assembly.
</xs:documentation></xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ComPlusRoleForComponent" />
<xs:element ref="ComPlusInterface" />
<xs:element ref="ComPlusSubscription" />
</xs:choice>
</xs:sequence>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Identifier for the element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="CLSID" use="required" type="uuid">
<xs:annotation><xs:documentation>
CLSID of the component.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="AllowInprocSubscribers" use="optional" type="YesNoType" />
<xs:attribute name="ComponentAccessChecksEnabled" use="optional" type="YesNoType" />
<xs:attribute name="ComponentTransactionTimeout" use="optional" type="xs:int" />
<xs:attribute name="ComponentTransactionTimeoutEnabled" use="optional" type="YesNoType" />
<xs:attribute name="COMTIIntrinsics" use="optional" type="YesNoType" />
<xs:attribute name="ConstructionEnabled" use="optional" type="YesNoType" />
<xs:attribute name="ConstructorString" use="optional" type="xs:string" />
<xs:attribute name="CreationTimeout" use="optional" type="xs:int" />
<xs:attribute name="Description" use="optional" type="xs:string" />
<xs:attribute name="EventTrackingEnabled" use="optional" type="YesNoType" />
<xs:attribute name="ExceptionClass" use="optional" type="xs:string" />
<xs:attribute name="FireInParallel" use="optional" type="YesNoType" />
<xs:attribute name="IISIntrinsics" use="optional" type="YesNoType" />
<xs:attribute name="InitializesServerApplication" use="optional" type="YesNoType" />
<xs:attribute name="IsEnabled" use="optional" type="YesNoType" />
<xs:attribute name="IsPrivateComponent" use="optional" type="YesNoType" />
<xs:attribute name="JustInTimeActivation" use="optional" type="YesNoType" />
<xs:attribute name="LoadBalancingSupported" use="optional" type="YesNoType" />
<xs:attribute name="MaxPoolSize" use="optional" type="xs:int" />
<xs:attribute name="MinPoolSize" use="optional" type="xs:int" />
<xs:attribute name="MultiInterfacePublisherFilterCLSID" use="optional" type="xs:string" />
<xs:attribute name="MustRunInClientContext" use="optional" type="YesNoType" />
<xs:attribute name="MustRunInDefaultContext" use="optional" type="YesNoType" />
<xs:attribute name="ObjectPoolingEnabled" use="optional" type="YesNoType" />
<xs:attribute name="PublisherID" use="optional" type="xs:string" />
<xs:attribute name="SoapAssemblyName" use="optional" type="xs:string" />
<xs:attribute name="SoapTypeName" use="optional" type="xs:string" />
<xs:attribute name="Synchronization" use="optional">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="ignored" />
<xs:enumeration value="none" />
<xs:enumeration value="supported" />
<xs:enumeration value="required" />
<xs:enumeration value="requiresNew" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Transaction" use="optional">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="ignored" />
<xs:enumeration value="none" />
<xs:enumeration value="supported" />
<xs:enumeration value="required" />
<xs:enumeration value="requiresNew" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="TxIsolationLevel" use="optional">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="any" />
<xs:enumeration value="readUnCommitted" />
<xs:enumeration value="readCommitted" />
<xs:enumeration value="repeatableRead" />
<xs:enumeration value="serializable" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ComPlusRoleForComponent">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
</xs:appinfo>
<xs:documentation>
Represents a role assignment to a COM+ component.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Identifier for the element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Component" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
If the element is not a child of a ComPlusComponent
element, this attribute should be provided with the id of a ComPlusComponent
element representing the component the role is to be added to.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="ApplicationRole" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Id of the ComPlusApplicationRole element representing the
role that shall be granted access to the component.
</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ComPlusInterface">
<xs:annotation><xs:documentation>
Represents an interface for a COM+ component.
</xs:documentation></xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ComPlusRoleForInterface" />
<xs:element ref="ComPlusMethod" />
</xs:choice>
</xs:sequence>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Identifier for the element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="IID" use="required" type="uuid">
<xs:annotation><xs:documentation>
IID of the interface.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Description" use="optional" type="xs:string" />
<xs:attribute name="QueuingEnabled" use="optional" type="YesNoType" />
</xs:complexType>
</xs:element>
<xs:element name="ComPlusRoleForInterface">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
</xs:appinfo>
<xs:documentation>
Represents a role assignment to an interface.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Identifier for the element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Interface" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
If the element is not a child of a ComPlusInterface
element, this attribute should be provided with the id of a ComPlusInterface
element representing the interface the role is to be added to.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="ApplicationRole" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Id of the ComPlusApplicationRole element representing the
role that shall be granted access to the interface.
</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ComPlusMethod">
<xs:annotation>
<xs:documentation>
Represents a method for an interface.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="ComPlusRoleForMethod" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Identifier for the element.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Index" use="optional" type="xs:int">
<xs:annotation>
<xs:documentation>
Dispatch id of the method. If this attribute is not set a
value must be provided for the Name attribute.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Name" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the method. If this attribute is not set a value
must be provided for the Index attribute.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="AutoComplete" use="optional" type="YesNoType" />
<xs:attribute name="Description" use="optional" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="ComPlusRoleForMethod">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
</xs:appinfo>
<xs:documentation>
Represents a role assignment to a COM+ method.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Identifier for the element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Method" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
If the element is not a child of a ComPlusMethod element,
this attribute should be provided with the id of a ComPlusMethod element
representing the method the role is to be added to.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="ApplicationRole" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Id of the ComPlusApplicationRole element representing the
role that shall be granted access to the method.
</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ComPlusSubscription">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
</xs:appinfo>
<xs:documentation>
Defines an event subscription for a COM+ component.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Identifier for the element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Component" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
If the element is not a child of a ComPlusComponent
element, this attribute should be provided with the id of a ComPlusComponent
element representing the component the subscription is to be created for.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="SubscriptionId" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
Id of the subscription. If a value is not provided for
this attribute, an id will be generated during installation.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Name" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Name of the subscription.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="EventCLSID" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
CLSID of the event class for the subscription. If a value
for this attribute is not provided, a value for the PublisherID attribute
must be provided.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="PublisherID" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
Publisher id for the subscription. If a value for this
attribute is not provided, a value for the EventCLSID attribute must be
provided.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Description" use="optional" type="xs:string" />
<xs:attribute name="Enabled" use="optional" type="YesNoType" />
<xs:attribute name="EventClassPartitionID" use="optional" type="xs:string" />
<xs:attribute name="FilterCriteria" use="optional" type="xs:string" />
<xs:attribute name="InterfaceID" use="optional" type="xs:string" />
<xs:attribute name="MachineName" use="optional" type="xs:string" />
<xs:attribute name="MethodName" use="optional" type="xs:string" />
<xs:attribute name="PerUser" use="optional" type="YesNoType" />
<xs:attribute name="Queued" use="optional" type="YesNoType" />
<xs:attribute name="SubscriberMoniker" use="optional" type="xs:string" />
<xs:attribute name="UserName" use="optional" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:simpleType name="YesNoType">
<xs:annotation>
<xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="no" />
<xs:enumeration value="yes" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="uuid">
<xs:annotation>
<xs:documentation>Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF".</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}" />
</xs:restriction>
</xs:simpleType>
</xs:schema>

108
doc/difxapp.xsd Normal file
View File

@@ -0,0 +1,108 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<xs:schema xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
targetNamespace="http://schemas.microsoft.com/wix/DifxAppExtension"
xmlns="http://schemas.microsoft.com/wix/DifxAppExtension">
<xs:annotation>
<xs:documentation>
The source code schema for the Windows Installer XML Toolset Driver Install Frameworks for Applications Extension.
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
<xs:element name="Driver">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
</xs:appinfo>
<xs:documentation>
Installs a driver. To use this element, you need to reference the WixDifxAppExtension extension and add the
.wixlib appropriate for the target platform (difxapp_x86.wixlib or difxapp_x64.wixlib)
to your project.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="AddRemovePrograms" type="YesNoType">
<xs:annotation>
<xs:documentation>
Specifies that the DIFxApp CustomActions should add an entry in the Add/Remove Programs Control
Panel applet. The default is 'yes'.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DeleteFiles" type="YesNoType">
<xs:annotation>
<xs:documentation>
If set to "yes", configures DIFxApp to delete binary files that were copied to the system from the driver
store when a driver package was installed. If this attribute is set to "no" or not present, DIFxApp does not
remove these files from a system. Note that configuring DIFxApp to delete these files is controlled by the
Flags entry value of the component that represents the driver package in the MsiDriverPackages custom table.
Setting DeleteFiles to "yes" sets the corresponding bit in the Flags entry value. Setting DeleteFiles to "no"
clears the corresponding bit in the Flags entry value. If this attribute is not present, DIFxApp uses a
default value of "no".
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ForceInstall" type="YesNoType">
<xs:annotation>
<xs:documentation>
Specifies that the DIFxApp CustomActions should force the installation of a new Plug and Play driver
on a device, even if the currently installed driver on the device is a better match than the new driver.
Specifying 'no' is an excellent way to ensure the DIFxApp CustomActions recognize the Component contains
a driver for installation. The default is null which means the Component does not install a driver via
DIFxApp CustomActions. See <html:a href='http://www.microsoft.com/whdc/driver/install/difxtools.mspx'>http://www.microsoft.com/whdc/driver/install/difxtools.mspx</html:a>
for more information.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Legacy" type="YesNoType">
<xs:annotation>
<xs:documentation>
If set to "yes", configures DIFxApp to install unsigned driver packages and driver packages with missing
files. For more information, see "Installing Unsigned Driver Packages in Legacy Mode" earlier in this paper.
If this attribute is set to "no" or not present, DIFxApp will install only signed driver packages. Note
that configuring DIFxApp to install unsigned drivers is controlled by the Flags entry value of the component
that represents the driver package in the MsiDriverPackages custom table. Setting Legacy to "yes" sets
the corresponding bit in the Flags entry value. Setting Legacy to "no" clears the bit in the Flags
entry value that configures DIFxApp to install unsigned driver packages. If this attribute is not present,
DIFxApp uses a default value of "no".
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="PlugAndPlayPrompt" type="YesNoType">
<xs:annotation>
<xs:documentation>
Specifies that the DIFxApp CustomActions should prompt the user to connect the Plug and Play
device if it is not connected. The default is 'yes'.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Sequence" type="xs:integer">
<xs:annotation>
<xs:documentation>
Specifies an optional installation sequence number. DIFxApp CustomActions install the driver packages in
an installation package in the order of increasing sequence numbers. The same sequence number can be used
for more than one driver; however, the order in which packages with the same sequence number are actually
installed cannot be determined.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:simpleType name="YesNoType">
<xs:annotation>
<xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
</xs:annotation>
<xs:restriction base='xs:NMTOKEN'>
<xs:enumeration value="no"/>
<xs:enumeration value="yes"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

211
doc/firewall.xsd Normal file
View File

@@ -0,0 +1,211 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
targetNamespace="http://schemas.microsoft.com/wix/FirewallExtension"
xmlns="http://schemas.microsoft.com/wix/FirewallExtension">
<xs:annotation>
<xs:documentation>
The source code schema for the Windows Installer XML Toolset Firewall Extension.
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
<xs:element name="FirewallException">
<xs:annotation>
<xs:documentation>
Registers an exception for a program or a specific port and protocol in the Windows Firewall
on Windows XP SP2, Windows Server 2003 SP1, and later. For more information about the Windows
Firewall, see <html:a href="http://msdn.microsoft.com/en-us/library/aa364679.aspx">
About Windows Firewall API</html:a>.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Explicitly-listed remote addresses that this exception allows through the
firewall.
</xs:documentation>
</xs:annotation>
<xs:element ref="RemoteAddress" />
</xs:choice>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Unique ID of this firewall exception.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Name of this firewall exception, visible to the user in the firewall
control panel.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Scope">
<xs:annotation>
<xs:documentation>
The scope of this firewall exception, which indicates whether incoming
connections can come from any computer including those on the Internet
or only those on the local network subnet. To more precisely specify
allowed remote address, specify a custom scope using RemoteAddress
child elements.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="any" />
<xs:enumeration value="localSubnet" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Port" type="xs:string">
<xs:annotation>
<xs:documentation>
Port to allow through the firewall for this exception.
If you use Port and also File or Program in the same
FirewallException element, the exception will fail to install on
Windows XP and Windows Server 2003. IgnoreFailure="yes" can be used to
ignore the resulting failure, but the exception will not be added.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Protocol">
<xs:annotation>
<xs:documentation>
IP protocol used for this firewall exception. If Port is defined,
"tcp" is assumed if the protocol is not specified.
If you use Protocol and also File or Program in the same
FirewallException element, the exception will fail to install on
Windows XP and Windows Server 2003. IgnoreFailure="yes" can be used to
ignore the resulting failure, but the exception will not be added.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="tcp" />
<xs:enumeration value="udp" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="File" type="xs:string">
<xs:annotation>
<xs:documentation>
Identifier of a file to be granted access to all incoming ports and
protocols. If you use File, you cannot also use Program.
If you use File and also Port or Protocol in the same
FirewallException element, the exception will fail to install on
Windows XP and Windows Server 2003. IgnoreFailure="yes" can be used to
ignore the resulting failure, but the exception will not be added.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Program" type="xs:string">
<xs:annotation>
<xs:documentation>
Path to a target program to be granted access to all incoming ports and
protocols. Note that this is a formatted field, so you can use [#fileId]
syntax to refer to a file being installed. If you use Program, you cannot
also use File.
If you use Program and also Port or Protocol in the same
FirewallException element, the exception will fail to install on
Windows XP and Windows Server 2003. IgnoreFailure="yes" can be used to
ignore the resulting failure, but the exception will not be added.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreFailure" type="YesNoType">
<xs:annotation>
<xs:documentation>
If "yes," failures to register this firewall exception will be silently
ignored. If "no" (the default), failures will cause rollback.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Profile">
<xs:annotation>
<xs:documentation>
Profile type for this firewall exception. Default is "all".
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="domain" />
<xs:enumeration value="private" />
<xs:enumeration value="public" />
<xs:enumeration value="all" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Description" type="xs:string">
<xs:annotation>
<xs:documentation>
Description for this firewall rule displayed in Windows Firewall manager in
Windows Vista and later.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="RemoteAddress">
<xs:annotation>
<xs:documentation>
A remote address to which the port or program can listen. Address formats vary
based on the version of Windows and Windows Firewall the program is being installed
on. For Windows XP SP2 and Windows Server 2003 SP1, see
<html:a href="http://msdn.microsoft.com/en-us/library/aa365270.aspx">
RemoteAddresses Property</html:a>.
For Windows Vista and Windows Server 2008, see
<html:a href="http://msdn.microsoft.com/en-us/library/aa365366.aspx">
RemoteAddresses Property</html:a>.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>
A remote address.
</xs:documentation>
</xs:annotation>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:simpleType name="YesNoType">
<xs:annotation>
<xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
</xs:annotation>
<xs:restriction base='xs:NMTOKEN'>
<xs:enumeration value="no"/>
<xs:enumeration value="yes"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

127
doc/gaming.xsd Normal file
View File

@@ -0,0 +1,127 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
targetNamespace="http://schemas.microsoft.com/wix/GamingExtension"
xmlns="http://schemas.microsoft.com/wix/GamingExtension">
<xs:annotation>
<xs:documentation>
The source code schema for the Windows Installer XML Toolset Gaming Extension.
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
<xs:attribute name="IsRichSavedGame">
<xs:annotation>
<xs:documentation>
Registers this extension for the
<html:a href="http://msdn.microsoft.com/library/bb173448.aspx" target="_blank">rich saved games</html:a>
property handler on Windows Vista and later.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Extension" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:element name="Game">
<xs:annotation>
<xs:documentation>
Registers a game in Game Explorer on Windows Vista and later. The executable must have an
embedded Game Definition File. For more information about Game Explorer and GDFs, see
<html:a href="http://msdn.microsoft.com/library/bb173432.aspx" target="_blank">The Windows Vista Game Explorer</html:a>.
This registration is accomplished via custom action.
On Windows XP, this element instead records the same information in the registry so that
later upgrades to Windows Vista register the game in Game Explorer.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Each game can support multiple play and support tasks that are shown in the Game Explorer context menu. PlayTask and SupportTask are not needed when using when authoring the tasks in the GDF using ExtendedProperties\GameTasks available in Windows 7. At least one play task should be created using either PlayTask or the ExtendedProperties\GameTasks\Play in the GDF.</xs:documentation>
</xs:annotation>
<xs:element ref="PlayTask"/>
<xs:element ref="SupportTask"/>
</xs:choice>
<xs:attribute name="Id" type="Guid" use="required">
<xs:annotation>
<xs:documentation>The game's instance ID.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="GdfResourceFile" type="xs:string">
<xs:annotation>
<xs:documentation>Identifier of the file that contains the game's GDF resource, if it doesn't exist in the parent file.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExecutableFile" type="xs:string">
<xs:annotation>
<xs:documentation>Identifier of the file that is the game's executable, if it isn't the parent file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="PlayTask">
<xs:annotation>
<xs:documentation>
Creates a shortcut to the parent File and registers it as a "play task" in Game Explorer. For more information, see
<html:a href="http://msdn.microsoft.com/library/bb173450.aspx" target="_blank">
Game Explorer Tasks
</html:a>. PlayTask should not be used when authoring the tasks in the GDF using ExtendedProperties\GameTasks available in Windows 7.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>User-visible task name Game Explorer shows on its context menu. Note that the first task is named "Play" regardless of the name you provide.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Arguments" type="xs:string">
<xs:annotation>
<xs:documentation>Command-line arguments to be passed to the game executable for this task.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="SupportTask">
<xs:annotation>
<xs:documentation>
Creates an Internet shortcut and registers it as a "support task" in Game Explorer. For more information, see
<html:a href="http://msdn.microsoft.com/library/bb173450.aspx" target="_blank">
Game Explorer Tasks
</html:a>. SupportTask should not be used when authoring the tasks in the GDF using ExtendedProperties\GameTasks available in Windows 7.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>User-visible task name Game Explorer shows on its context menu. Note that the first task is named "Play" regardless of the name you provide.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Address" type="xs:string">
<xs:annotation>
<xs:documentation>URI for this task.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:simpleType name="Guid">
<xs:annotation>
<xs:documentation>Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF" or "{01234567-89AB-CDEF-0123-456789ABCDEF}". Also allows "PUT-GUID-HERE" for use in examples.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-HERE|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)|!\(wix\.[_A-Za-z][0-9A-Za-z_.]*\)"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

148
doc/http.xsd Normal file
View File

@@ -0,0 +1,148 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
targetNamespace="http://schemas.microsoft.com/wix/HttpExtension"
xmlns="http://schemas.microsoft.com/wix/HttpExtension">
<xs:annotation>
<xs:documentation>
The source code schema for the Windows Installer XML Toolset Http Extension.
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
<xs:element name="UrlReservation">
<xs:annotation>
<xs:documentation>
Makes a reservation record for the HTTP Server API configuration store on Windows XP SP2,
Windows Server 2003, and later. For more information about the HTTP Server API, see
<html:a href="http://msdn.microsoft.com/library/windows/desktop/aa364510.aspx">
HTTP Server API
</html:a>.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="ServiceInstall" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
The access control entries for the access control list.
</xs:documentation>
</xs:annotation>
<xs:element ref="UrlAce" />
</xs:choice>
<xs:attribute name="HandleExisting">
<xs:annotation>
<xs:documentation>
Specifies the behavior when trying to install a URL reservation and it already exists.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="replace">
<xs:annotation>
<xs:documentation>
Replaces the existing URL reservation (the default).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="ignore">
<xs:annotation>
<xs:documentation>
Keeps the existing URL reservation.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="fail">
<xs:annotation>
<xs:documentation>
The installation fails.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Id" type="xs:string">
<xs:annotation>
<xs:documentation>
Unique ID of this URL reservation.
If this attribute is not specified, an identifier will be generated automatically.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Sddl" type="xs:string">
<xs:annotation>
<xs:documentation>
Security descriptor to apply to the URL reservation.
Can't be specified when using children UrlAce elements.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Url" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The <html:a href="http://msdn.microsoft.com/library/windows/desktop/aa364698.aspx">UrlPrefix</html:a>
string that defines the portion of the URL namespace to which this reservation pertains.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="UrlAce">
<xs:annotation>
<xs:documentation>
The security principal and which rights to assign to them for the URL reservation.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string">
<xs:annotation>
<xs:documentation>
Unique ID of this URL ACE.
If this attribute is not specified, an identifier will be generated automatically.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SecurityPrincipal" type="xs:string">
<xs:annotation>
<xs:documentation>
The security principal for this ACE. When the UrlReservation is under a ServiceInstall element, this defaults to
"NT SERVICE\ServiceInstallName". This may be either a SID or an account name in a format that
<html:a href="http://msdn.microsoft.com/library/windows/desktop/aa379159.aspx">LookupAccountName</html:a>
supports. When using a SID, an asterisk must be prepended. For example, "*S-1-5-18".
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Rights">
<xs:annotation>
<xs:documentation>
Rights for this ACE. Default is "all".
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="register" />
<xs:enumeration value="delegate" />
<xs:enumeration value="all" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

1104
doc/iis.xsd Normal file

File diff suppressed because it is too large Load Diff

221
doc/lux.xsd Normal file
View File

@@ -0,0 +1,221 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
targetNamespace="http://schemas.microsoft.com/wix/2009/Lux"
xmlns="http://schemas.microsoft.com/wix/2009/Lux">
<xs:annotation>
<xs:documentation>
The source code schema for the Windows Installer XML Toolset Lux Extension.
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
<xs:element name="Mutation">
<xs:annotation>
<xs:documentation>
Test mutations let you author unit tests with different expected results. The mutation
id is passed as the value of the WIXLUX_RUNNING_MUTATION property. Your custom action,
typically in an '#ifdef DEBUG' block, can retrieve the WIXLUX_RUNNING_MUTATION property
and hard-code different behavior based on the mutation. To author test mutations, use
the Mutation element with UnitTest elements as children.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Child UnitTest elements are validated when the parent mutation is being executed.
</xs:documentation>
</xs:annotation>
<xs:element ref="UnitTest"/>
</xs:choice>
<xs:attribute name="Id" type="xs:string">
<xs:annotation>
<xs:documentation>
Value of the WIXLUX_RUNNING_MUTATION property set by the mutation.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="UnitTest">
<xs:annotation>
<xs:documentation>
Describes a unit test to be executed against a particular custom action, resulting in a
particular property value. Single-value properties, multi-value properties, and
name/value-pair properties can all be tested declaratively.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2009/Lux" ref="Mutation" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Child UnitTest elements are used to test multi-value properties. Note that Property
and ValueDelimiter or NameValueDelimiter must be specified in the parent element.
</xs:documentation>
</xs:annotation>
<xs:element ref="Condition"/>
<xs:element ref="Expression"/>
<xs:element ref="UnitTest"/>
</xs:choice>
<xs:attribute name="Id" type="xs:string">
<xs:annotation>
<xs:documentation>
Identifier of the unit test. If you omit this attribute, a stable identifier is generated for you.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="CustomAction" type="xs:string">
<xs:annotation>
<xs:documentation>
Identifier of the custom action to be tested.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Property" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the property set by the custom action.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Operator" default="equal">
<xs:annotation>
<xs:documentation>
The operator to apply to the property and value. Default is "equal."
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="equal">
<xs:annotation>
<xs:documentation>
(Default) Compares Property to Value and succeeds if they are equal.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="notEqual">
<xs:annotation>
<xs:documentation>
Compares Property to Value and succeeds if they are NOT equal.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="caseInsensitiveEqual">
<xs:annotation>
<xs:documentation>
Compares Property to Value and succeeds if they are equal (ignoring case).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="caseInsensitiveNotEqual">
<xs:annotation>
<xs:documentation>
Compares Property to Value and succeeds if they are NOT equal (ignoring case).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Value" type="xs:string">
<xs:annotation>
<xs:documentation>
The value to compare to the property.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ValueSeparator" type="xs:string">
<xs:annotation>
<xs:documentation>
One character that is used to separate values in a multi-value property.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="NameValueSeparator" type="xs:string">
<xs:annotation>
<xs:documentation>
One character that is used to separate values in a name/value-pair multi-value property.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Index" type="xs:string">
<xs:annotation>
<xs:documentation>
A formatted string that evaluates to either an integer index into a multi-value property or a string name of a name/value-pair multi-value property.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Condition">
<xs:annotation>
<xs:documentation>
Conditions for a unit test.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string" />
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Expression">
<xs:annotation>
<xs:documentation>
An expression that must evaluate to true to succeed. Cannot be specified if Property is specified.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string" />
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="UnitTestRef">
<xs:annotation>
<xs:documentation>
Identifies a unit test to be linked into a project.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string">
<xs:annotation>
<xs:documentation>
Identifier of the unit test to be included.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

121
doc/msmq.xsd Normal file
View File

@@ -0,0 +1,121 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<xs:schema xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
targetNamespace="http://schemas.microsoft.com/wix/MsmqExtension"
xmlns="http://schemas.microsoft.com/wix/MsmqExtension">
<xs:annotation>
<xs:documentation>
The source code schema for the Windows Installer XML Toolset MSMQ Extension.
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
<xs:element name="MessageQueue">
<xs:annotation><xs:documentation>
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="MessageQueuePermission" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Authenticate" use="optional" type="YesNoType">
<xs:annotation><xs:documentation>
Default: No.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="BasePriority" use="optional" type="xs:integer" />
<xs:attribute name="Journal" use="optional" type="YesNoType">
<xs:annotation><xs:documentation>
Default: No.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="JournalQuota" use="optional" type="xs:integer" />
<xs:attribute name="Label" use="required" type="xs:string" />
<xs:attribute name="MulticastAddress" use="optional" type="xs:string" />
<xs:attribute name="PathName" use="required" type="xs:string" />
<xs:attribute name="PrivLevel" use="optional">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="none" />
<xs:enumeration value="optional" />
<xs:enumeration value="body" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Quota" use="optional" type="xs:integer" />
<xs:attribute name="Transactional" use="optional" type="YesNoType">
<xs:annotation><xs:documentation>
Default: No.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="ServiceTypeGuid" use="optional" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="MessageQueuePermission">
<xs:annotation><xs:documentation>
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="MessageQueue" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="User" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Group" use="optional" type="xs:string">
<xs:annotation><xs:documentation>
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="DeleteMessage" use="optional" type="YesNoType" />
<xs:attribute name="PeekMessage" use="optional" type="YesNoType" />
<xs:attribute name="WriteMessage" use="optional" type="YesNoType" />
<xs:attribute name="DeleteJournalMessage" use="optional" type="YesNoType" />
<xs:attribute name="SetQueueProperties" use="optional" type="YesNoType" />
<xs:attribute name="GetQueueProperties" use="optional" type="YesNoType" />
<xs:attribute name="DeleteQueue" use="optional" type="YesNoType" />
<xs:attribute name="GetQueuePermissions" use="optional" type="YesNoType" />
<xs:attribute name="ChangeQueuePermissions" use="optional" type="YesNoType" />
<xs:attribute name="TakeQueueOwnership" use="optional" type="YesNoType" />
<xs:attribute name="ReceiveMessage" use="optional" type="YesNoType" />
<xs:attribute name="ReceiveJournalMessage" use="optional" type="YesNoType" />
<xs:attribute name="QueueGenericRead" use="optional" type="YesNoType" />
<xs:attribute name="QueueGenericWrite" use="optional" type="YesNoType" />
<xs:attribute name="QueueGenericExecute" use="optional" type="YesNoType" />
<xs:attribute name="QueueGenericAll" use="optional" type="YesNoType" />
</xs:complexType>
</xs:element>
<xs:simpleType name="YesNoType">
<xs:annotation>
<xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="no" />
<xs:enumeration value="yes" />
</xs:restriction>
</xs:simpleType>
</xs:schema>

235
doc/netfx.xsd Normal file
View File

@@ -0,0 +1,235 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
targetNamespace="http://schemas.microsoft.com/wix/NetFxExtension"
xmlns="http://schemas.microsoft.com/wix/NetFxExtension">
<xs:annotation>
<xs:documentation>
The source code schema for the Windows Installer XML Toolset .NET Framework Extension.
</xs:documentation>
</xs:annotation>
<xs:element name="NativeImage">
<xs:annotation>
<xs:documentation>
Improves the performance of managed applications by creating native images.
Requires the .NET Framework 2.0 or newer to be installed on the target machine since
it runs <html:a href="http://msdn.microsoft.com/en-us/library/6t9t5wcf.aspx">NGen</html:a>.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
<xse:remarks>
<html:p>
Native images are files containing compiled processor-specific machine code, which
are installed into the native image cache on the local computer. The runtime
can use native images from the cache instead using the just-in-time (JIT)
compiler to compile the original assembly.
</html:p>
<html:p>
The native image custom actions are configured to ignore failures so that failing
to generate or remove a native image will not cause setup to fail and roll back.
</html:p>
<html:p>
<html:b>Note for patches:</html:b> if you built your target, or baseline, MSI with
previous versions 3.0 or 3.5 of this extension and want to upgrade to formattable
values for @AssemblyApplication or @AppBaseDirectory you must also include a
BinaryRef to "NetFxCA" to pull in necessary changes. If you do use formattable
values and do not include the binary changes ngen.exe will not optimize your
native images for the specified application.
</html:p>
<html:p>
This should be a rare occurrence, however. Because you cannot remove components
in a patch - and pyro does validate you do not - it is not practical to switch
from using identifiers to formattable values in a patch. One practical possibility
is if you wanted to use a different application to optimize your native images
and that application is not already installed with the MSI to be updated.
</html:p>
</xse:remarks>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The identifier for this NativeImage.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="AppBaseDirectory" type="xs:string">
<xs:annotation>
<xs:documentation>
<html:p>
The directory to use for locating dependent assemblies.
For DLL assemblies and assemblies installed to the Global Assembly Cache (GAC),
this attribute should be set to the directory of the application which loads this
assembly. For EXE assemblies, this attribute does not need to be set because NGen
will use the directory of the assembly file by default.
</html:p>
<html:p>
The value can be in the form of a directory identifier, or a formatted string
that resolves to either a directory identifier or a full path to a directory.
</html:p>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="AssemblyApplication" type="xs:string">
<xs:annotation>
<xs:documentation>
<html:p>
The application which will load this assembly.
For DLL assemblies which are loaded via reflection, this attribute should
be set to indicate the application which will load this assembly.
The configuration of the application (usually specified via an exe.config file) will be used
to determine how to resolve dependencies for this assembly.
</html:p>
<html:p>
The value can be in the form of a file identifier, or a formatted string
that resolves to either a file identifier or a full path to a file.
</html:p>
<html:p>
When a shared component is loaded at run time, using the Load method, the
application's configuration file determines the dependencies that are loaded
for the shared component — for example, the version of a dependency that is loaded.
This attribute gives guidance on which dependencies would be loaded at run time in order
to figure out which dependency assemblies will also need to have native images generated
(assuming the Dependency attribute is not set to "no").
</html:p>
<html:p>
This attribute cannot be set if the AssemblyApplication attribute is set on the parent
File element (please note that these attributes both refer to the same application
assembly but do very different things: specifiying File/@AssemblyApplication will force
an assembly to install to a private location next to the indicated application, whereas
this AssemblyApplication attribute will be used to help resolve dependent assemblies
while generating native images for this assembly).
</html:p>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Debug" type="YesNoType">
<xs:annotation>
<xs:documentation>
Set to "yes" to generate native images that can be used under a debugger.
The default value is "no".
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Dependencies" type="YesNoType">
<xs:annotation>
<xs:documentation>
Set to "no" to generate the minimum number of native images.
The default value is "yes".
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Platform">
<xs:annotation>
<xs:documentation>
Sets the platform(s) for which native images will be generated.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="32bit">
<xs:annotation>
<xs:documentation>
Attempt to generate native images only for the 32-bit version of the .NET Framework
on the target machine. If the 32-bit version of the .NET Framework 2.0 or newer is not
present on the target machine, native image custom actions will not be scheduled.
This is the default value.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="64bit">
<xs:annotation>
<xs:documentation>
Attempt to generate native images only for the 64-bit version of the .NET Framework
on the target machine. If a 64-bit version of the .NET Framework 2.0 or newer is not
present on the target machine, native image custom actions will not be scheduled.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="all">
<xs:annotation>
<xs:documentation>
Attempt to generate native images for the 32-bit and 64-bit versions of the .NET Framework
on the target machine. If a version of the .NET Framework 2.0 or newer is not present on the
target machine for a processor architecture, native image custom actions will not be
scheduled for that processor architecture.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Priority">
<xs:annotation>
<xs:documentation>
Sets the priority of generating the native images for this assembly.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="0">
<xs:annotation>
<xs:documentation>
This is the highest priority, it means that image generation occurs syncronously
during the setup process. This option will slow down setup performance.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="1">
<xs:annotation>
<xs:documentation>
This will queue image generation to the NGen service to occur immediately.
This option will slow down setup performance.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="2">
<xs:annotation>
<xs:documentation>
This will queue image generation to the NGen service to occur after all priority 1
assemblies have completed.
This option will slow down setup performance.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="3">
<xs:annotation>
<xs:documentation>
This is the lowest priority, it will queue image generation to occur when the
machine is idle.
This option should not slow down setup performance.
This is the default value.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Profile" type="YesNoType">
<xs:annotation>
<xs:documentation>
Set to "yes" to generate native images that can be used under a profiler.
The default value is "no".
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:simpleType name="YesNoType">
<xs:annotation>
<xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
</xs:annotation>
<xs:restriction base='xs:NMTOKEN'>
<xs:enumeration value="no"/>
<xs:enumeration value="yes"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

201
doc/ps.xsd Normal file
View File

@@ -0,0 +1,201 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
targetNamespace="http://schemas.microsoft.com/wix/PSExtension"
xmlns="http://schemas.microsoft.com/wix/PSExtension">
<xs:annotation>
<xs:documentation>
The source code schema for the Windows Installer XML Toolset PowerShell Extension.
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
<xs:element name="FormatsFile">
<xs:annotation>
<xs:documentation>
Identifies the parent File as a formats XML file for the referenced PowerShell snap-in.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
<xse:remarks>
A formats XML file that defines output formats for objects on the pipeline.
</xse:remarks>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="FileId" type="xs:string">
<xs:annotation>
<xs:documentation>
Reference to the formats File ID. This is required when nested under the SnapIn element.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SnapIn" type="xs:string">
<xs:annotation>
<xs:documentation>
Reference to the PowerShell snap-in ID for which this formats file is associated. This is required when nested under the File element.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="TypesFile">
<xs:annotation>
<xs:documentation>
Identifies the parent File as a types XML file for the referenced PowerShell snap-in.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
<xse:remarks>
A types XML file used by the extensible type system.
</xse:remarks>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="FileId" type="xs:string">
<xs:annotation>
<xs:documentation>
Reference to the types File ID. This is required when nested under the SnapIn element.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SnapIn" type="xs:string">
<xs:annotation>
<xs:documentation>
Reference to the PowerShell snap-in ID for which this types file is associated. This is required when nested under the File element.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="SnapIn">
<xs:annotation>
<xs:documentation>
Identifies the parent File as a PowerShell snap-in to be registered on the system.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
<xse:remarks>
<html:a href="http://www.microsoft.com/powershell">PowerShell</html:a> snap-ins
allow developers to extend the functionality of of the PowerShell engine.
Add this element to identify the parent File as a PowerShell snap-in that will
get registered on the system.
</xse:remarks>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="FormatsFile" />
<xs:element ref="TypesFile" />
</xs:choice>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The identifier for this PowerShell snap-in.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="AssemblyName" type="xs:string">
<xs:annotation>
<xs:documentation>
The fully-qualified name of the assembly.
</xs:documentation>
<xs:appinfo>
<xse:deprecated />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="CustomSnapInType" type="xs:string">
<xs:annotation>
<xs:documentation>
The full type name of a class that is used to register a list of cmdlets and providers.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Description" type="xs:string">
<xs:annotation>
<xs:documentation>
A brief description of the snap-in.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DescriptionIndirect" type="EmbeddedResource">
<xs:annotation>
<xs:documentation>
An embedded resource that contains a brief description of the snap-in.
This resource must be embedded in the current snap-in assembly.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RequiredPowerShellVersion" type="VersionType">
<xs:annotation>
<xs:documentation>
The required version of PowerShell that must be installed and is associated with the
snap-in registration. The default value is "1.0".
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Vendor" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the snap-in vendor.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VendorIndirect" type="EmbeddedResource">
<xs:annotation>
<xs:documentation>
An embedded resource that contains the name of the snap-in vendor.
This resource must be embedded in the current snap-in assembly.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Version" type="VersionType">
<xs:annotation>
<xs:documentation>
The version of the snapin. If not specified, this is taken from the assembly name.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:attribute name="RequiredVersion" type="xs:string">
<xs:annotation>
<xs:documentation>
The version of this extension required to compile the defining source.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Wix" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:simpleType name="EmbeddedResource">
<xs:annotation>
<xs:documentation>
<html:p>
Values should be in the format <html:i>ResourceName,StringName</html:i>, where <html:i>ResourceName</html:i>
is the name of the embedded resource in your assembly sans the ".resources" extension, and <html:i>StringName</html:i>
is the name of the string resource in the embedded resource.
</html:p>
<html:p>
Example: UtilityMshSnapInResources,Description
</html:p>
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string" />
</xs:simpleType>
<xs:simpleType name="VersionType">
<xs:annotation>
<xs:documentation>
Values of this type will look like: "x", "x.x", "x.x.x", or "x.x.x.x" where x is an integer from 0 to 65534.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="\d{1,5}(\.\d{1,5}){0,3}"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

342
doc/sql.xsd Normal file
View File

@@ -0,0 +1,342 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<xs:schema xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
targetNamespace="http://schemas.microsoft.com/wix/SqlExtension"
xmlns="http://schemas.microsoft.com/wix/SqlExtension">
<xs:annotation>
<xs:documentation>
The source code schema for the Windows Installer XML Toolset SQL Server Extension.
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
<xs:element name="SqlDatabase">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
<xse:remarks>
<html:dl>
<html:dd>Nesting SqlDatabase under a Component element will result in a SqlDatabase being installed to the machine as the package is installed.</html:dd>
<html:dd>
Nesting SqlDatabase under Product, Fragment, or Module
results in a database "locator" record being created in
the SqlDatabase table. This means that the database
itself is neither installed nor uninstalled by the MSI
package. It does make the database available for referencing
from a SqlString or SqlScript record. This allows MSI to install
SqlScripts or SqlStrings to already existing databases on the machine.
The install will fail if the database does not exist in these cases.
</html:dd>
<html:dd>
The User attribute references credentials specified in a User element.
If a user is not specified then Windows Authentication will be used by default
using the credentials of the user performing the install to execute sql
strings, etc.
</html:dd>
</html:dl>
</xse:remarks>
<xse:seeAlso namespace="http://schemas.microsoft.com/wix/UtilExtension" ref="User"/>
</xs:appinfo>
<xs:documentation>SQL Database</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:sequence>
<xs:element ref="SqlFileSpec" minOccurs="0"/>
<xs:element ref="SqlLogFileSpec" minOccurs="0"/>
</xs:sequence>
<xs:element ref="SqlScript"/>
<xs:element ref="SqlString"/>
</xs:choice>
<xs:attribute name="Id" use="required" type="xs:string"/>
<xs:attribute name="Server" use="required" type="xs:string">
</xs:attribute>
<xs:attribute name="Instance" type="xs:string">
</xs:attribute>
<xs:attribute name="Database" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the database. The value can be a literal value or derived from a
Property element using the <html:a href='http://msdn.microsoft.com/library/aa368609.aspx' target='_blank'>Formatted</html:a>
syntax.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="User" type="xs:string">
</xs:attribute>
<xs:attribute name="CreateOnInstall" type="YesNoType">
</xs:attribute>
<xs:attribute name="CreateOnReinstall" type="YesNoType">
<xs:annotation>
<xs:documentation>
Specifies whether to create the database when the associated component is reinstalled. Setting CreateOnInstall to yes does <html:b>not</html:b> imply CreateOnReinstall is set to yes. CreateOnReinstall must be set in addition to CreateOnInstall for it to be created during both install and reinstall.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="CreateOnUninstall" type="YesNoType">
</xs:attribute>
<xs:attribute name="DropOnInstall" type="YesNoType">
</xs:attribute>
<xs:attribute name="DropOnReinstall" type="YesNoType">
<xs:annotation>
<xs:documentation>
Specifies whether to drop the database when the associated component is reinstalled. Setting DropOnInstall to yes does <html:b>not</html:b> imply DropOnReinstall is set to yes. DropOnReinstall must be set in addition to DropOnInstall for it to be dropped during both install and reinstall.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DropOnUninstall" type="YesNoType">
</xs:attribute>
<xs:attribute name="ContinueOnError" type="YesNoType">
</xs:attribute>
<xs:attribute name="ConfirmOverwrite" type="YesNoType">
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="SqlFileSpec">
<xs:annotation>
<xs:documentation>File specification for a Sql database.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>ID of the file specification.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Name" type="xs:string">
<xs:annotation>
<xs:documentation>Specifies the logical name for the database file.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Filename" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>Specifies the operating-system file name for the database file.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Size" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies the size of the database file. The GB, MB and KB suffixes can be used to specify gigabytes,
megabytes or kilobytes. The default is megabytes if no suffix is specified. When a Size is not
supplied for a database file, SQL Server uses the size of the primary file in the model database.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="MaxSize" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies the maximum size to which the database file can grow. The GB, MB and KB suffixes can be used to
to specify gigabytes, megabytes or kilobytes. The default is megabytes if no suffix is specified. If
MaxSize is not specified, the file will grow until the disk is full.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="GrowthSize" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies the growth increment of the database file. The GB, MB and KB and % suffixes can be used to
specify gigabytes, megabytes, kilobytes or a percentage of the current file size to grow. The default is
megabytes if no suffix is specified. The default value is 10% if GrowthSize is not specified, and the
minimum value is 64 KB. The GrowthSize setting for a file cannot exceed the MaxSize setting.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="SqlLogFileSpec">
<xs:annotation>
<xs:documentation>File specification for a Sql database.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string">
<xs:annotation>
<xs:documentation>ID of the log file specification.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Name" type="xs:string">
<xs:annotation>
<xs:documentation>Specifies the logical name for the log file.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Filename" type="xs:string">
<xs:annotation>
<xs:documentation>Specifies the operating-system file name for the log file.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Size" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies the size of the log file. The GB, MB and KB suffixes can be used to specify gigabytes,
megabytes or kilobytes. The default is megabytes if no suffix is specified. When a Size is not
supplied for a log file, SQL Server makes the file 1 MB.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="MaxSize" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies the maximum size to which the log file can grow. The GB, MB and KB suffixes can be used to
to specify gigabytes, megabytes or kilobytes. The default is megabytes if no suffix is specified. If
MaxSize is not specified, the file will grow until the disk is full.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="GrowthSize" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies the growth increment of the log file. The GB, MB and KB and % suffixes can be used to
specify gigabytes, megabytes, kilobytes or a percentage of the current file size to grow. The default is
megabytes if no suffix is specified. The default value is 10% if GrowthSize is not specified, and the
minimum value is 64 KB. The GrowthSize setting for a file cannot exceed the MaxSize setting.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="SqlScript">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
</xs:appinfo>
<xs:documentation>SQL Script</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string"/>
<xs:attribute name="SqlDb" type="xs:string">
<xs:annotation>
<xs:documentation>required when not child of SqlDatabase</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="User" type="xs:string">
</xs:attribute>
<xs:attribute name="BinaryKey" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Reference to Binary stream that contains the SQL script to execute.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExecuteOnInstall" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies to execute the script when the associated component is installed. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExecuteOnReinstall" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies whether to execute the script when the associated component is reinstalled. Setting ExecuteOnInstall to yes does <html:b>not</html:b> imply ExecuteOnReinstall is set to yes. ExecuteOnReinstall must be set in addition to ExecuteOnInstall for it to be executed during both install and reinstall. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExecuteOnUninstall" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies to execute the script when the associated component is uninstalled. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RollbackOnInstall" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies whether to execute the script on rollback if an attempt is made to install the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RollbackOnReinstall" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies whether to execute the script on rollback if an attempt is made to reinstall the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RollbackOnUninstall" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies whether to execute the script on rollback if an attempt is made to uninstall the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ContinueOnError" type="YesNoType">
<xs:annotation>
<xs:documentation>Continue executing scripts even if this one fails.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Sequence" type="xs:integer">
<xs:annotation>
<xs:documentation>Specifes the order to run the SQL Scripts. It is recommended that rollback scripts be scheduled before their complementary execution script. This order is also relative across the SqlString element.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="SqlString">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
</xs:appinfo>
<xs:documentation>SQL String</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
</xs:attribute>
<xs:attribute name="SQL" use="required" type="xs:string">
</xs:attribute>
<xs:attribute name="User" type="xs:string">
</xs:attribute>
<xs:attribute name="SqlDb" type="xs:string">
</xs:attribute>
<xs:attribute name="ExecuteOnInstall" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies to execute the string when the associated component is installed. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExecuteOnReinstall" type="YesNoType">
<xs:annotation>
<xs:documentation>
Specifies whether to execute the string when the associated component is reinstalled. Setting ExecuteOnInstall to yes does <html:b>not</html:b> imply ExecuteOnReinstall is set to yes. ExecuteOnReinstall must be set in addition to ExecuteOnInstall for it to be executed during both install and reinstall. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExecuteOnUninstall" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies to execute the string when the associated component is uninstalled. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RollbackOnInstall" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies whether to execute the string on rollback if an attempt is made to install the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RollbackOnReinstall" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies whether to execute the string on rollback if an attempt is made to reinstall the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RollbackOnUninstall" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies whether to execute the string on rollback if an attempt is made to uninstall the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ContinueOnError" type="YesNoType">
<xs:annotation>
<xs:documentation>Continue executing strings even if this one fails.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Sequence" type="xs:integer">
<xs:annotation>
<xs:documentation>Specifes the order to run the SQL Strings. It is recommended that rollback strings be scheduled before their complementary execution string. This order is also relative across the SqlScript element.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:simpleType name="YesNoType">
<xs:annotation>
<xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
</xs:annotation>
<xs:restriction base='xs:NMTOKEN'>
<xs:enumeration value="no"/>
<xs:enumeration value="yes"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

154
doc/tag.xsd Normal file
View File

@@ -0,0 +1,154 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
targetNamespace="http://schemas.microsoft.com/wix/TagExtension"
xmlns="http://schemas.microsoft.com/wix/TagExtension">
<xs:annotation>
<xs:documentation>
The source code schema for the WiX Toolset Software Id Tag Extension.
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
<xs:element name="Tag">
<xs:annotation>
<xs:documentation>
This extension implements the ISO/IEC 19770-2:2015 specification. A SWID tag file
will be generated an inserted into the Product or Bundle.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Bundle" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Name" type="xs:string">
<xs:annotation>
<xs:documentation>
Name to use in the filename for the software id tag. By default the filename
uses the Bundle/@Name or Product/@Name. If the bundle name or product name contains
invalid filename characters such as ":" or "?", use this attribute to provide
a valid filename.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Regid" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The regid for the software manufacturer. A regid is a URI simplified for the common
case. Namely, if the scheme is "http://", it can be removed. Additionally, the domain
should be minimized as much as possible (for example, remove "www." prefix if unnecessary).
For example, the WiX toolset regid is "wixtoolset.org".
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="InstallDirectory" type="xs:string">
<xs:annotation>
<xs:documentation>
A reference to an existing Directory/@Id where the software is installed. The SWID tag file will be installed in a "swidtag" folder
under that directory as per the specification. This attribute is required on a Tag element found under a Product element.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="InstallPath" type="xs:string">
<xs:annotation>
<xs:documentation>
The path where the software is installed. The SWID tag file will be installed in a "swidtag" folder.
This is a formatted attribute so it is possible to use Variables as the InstallPath by setting
the value to, for example, "[ProgramFilesFolder]CompanyName\Product Name". This attribute is required
on a Tag element found under a Bundle element.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Feature" type="xs:string">
<xs:annotation>
<xs:documentation>Optional attribute to explicitly set the Feature when defining the software id tag
in a Product. By default the software id tag will always be installed by a top-level hidden feature.
It is recommended to <html:strong>not</html:strong> set this attribute.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Win64" type="YesNoTypeUnion">
<xs:annotation>
<xs:documentation>
This attribute facilitates the installation of packages that install both 32-bit and 64-bit files. Set this attribute to 'no'
to indicate the software id tag is installed to a 32-bit location (such as "ProgramFilesFolder") or 'yes' when the tag is
installed to a 64-bit location (such as "ProgramFiles64Folder"). The default default value is based on the platform set by
the -arch switch to candle.exe or the InstallerPlatform property in a .wixproj MSBuild project:
For x86 and ARM, the default value is 'no'.
For x64 and IA64, the default value is 'yes'.
This attribute is only allowed on a Tag element found under a Product element.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Licensed" type="xs:string">
<xs:annotation>
<xs:appinfo>
<xse:deprecated />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Type" type="xs:string">
<xs:annotation>
<xs:appinfo>
<xse:deprecated />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="TagRef">
<xs:annotation>
<xs:documentation>
Allows an ISO/IEC 19770-2:2015 SWID tag file to be referenced in a Patch.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="PatchFamily" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Regid" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The regid for the software manufacturer. A regid is a URI simplified for the common
case. Namely, if the scheme is "http://", it can be removed. Additionally, the domain
should be minimized as much as possible (for example, remove "www." prefix if unnecessary).
For example, the WiX toolset regid is "wixtoolset.org".
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:simpleType name="YesNoTypeUnion">
<xs:annotation>
<xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
</xs:annotation>
<xs:union memberTypes="YesNoType PreprocessorVariables"/>
</xs:simpleType>
<xs:simpleType name="YesNoType">
<xs:annotation>
<xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="no" />
<xs:enumeration value="yes" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PreprocessorVariables">
<xs:annotation>
<xs:documentation>A type that represents that 1 or more preprocessor variables (as they appear in sources on disk, before preprocessor has run).</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="(\$\(\w+\.(\w|[.])+\))+" />
</xs:restriction>
</xs:simpleType>
</xs:schema>

707
doc/thmutil.xsd Normal file
View File

@@ -0,0 +1,707 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
targetNamespace="http://wixtoolset.org/schemas/thmutil/2010"
xmlns="http://wixtoolset.org/schemas/thmutil/2010">
<xs:annotation>
<xs:documentation>
Schema for describing Theme files processed by thmutil.
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://www.w3.org/1999/xhtml" />
<xs:element name="Theme">
<xs:annotation><xs:documentation>
</xs:documentation></xs:annotation>
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="Font" />
<xs:element ref="ImageList" />
<xs:element ref="Page" />
<xs:element ref="Window" />
<xs:group ref="ControlElements" maxOccurs="unbounded" />
</xs:choice>
<xs:attribute name="ImageFile" type="xs:string">
<xs:annotation>
<xs:documentation>Relative path to an image file that can serve as a single source for images in the rest of the
theme. This image is referenced by controls using the SourceX and SourceY attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Font">
<xs:annotation>
<xs:documentation>Defines a font including the size and color.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Theme" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>Name of the font face.</xs:documentation>
</xs:annotation>
<xs:attribute name="Id" type="xs:nonNegativeInteger">
<xs:annotation>
<xs:documentation>Numeric identifier for the font. Due to limitations in thmutil the first Font must start with "0" and each subsequent Font must increment the Id by 1. Failure to ensure the Font identifiers follow this strict ordering will create unexpected behavior or crashes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Height" type="xs:int">
<xs:annotation>
<xs:documentation>Font size. Use negative numbers to specify the font in pixels.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Weight" type="xs:nonNegativeInteger">
<xs:annotation>
<xs:documentation>Font weight.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Foreground" type="xs:hexBinary">
<xs:annotation>
<xs:documentation>Hexadecimal value representing BGR foreground color of the font. "ffffff" is white, "ff0000" is pure blue, "00ff00" is pure green, "0000ff" is pure red and "000000" is black. If this value is absent the foreground will be transparent.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Background" type="xs:hexBinary">
<xs:annotation>
<xs:documentation>Hexadecimal value representing BGR background color of the font. "ffffff" is white, "ff0000" is pure blue, "00ff00" is pure green, "0000ff" is pure red and "000000" is black. If this value is absent the background will be transparent.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Underline" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies whether the font is underlined.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="ImageList">
<xs:annotation>
<xs:documentation>List of images which can be shared between multiple controls.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Theme" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="Image" />
</xs:choice>
<xs:attribute name="Name" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the ImageList, to be referenced by other controls.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Page">
<xs:annotation>
<xs:documentation>Named set of controls that can be shown and hidden collectively.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Theme" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:group ref="ControlElements" maxOccurs="unbounded"/>
<xs:attribute name="Name" type="xs:string">
<xs:annotation>
<xs:documentation>
Optional name for the page.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Window">
<xs:annotation>
<xs:documentation>Defines the overall look of the main window.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Theme" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>Caption for the window.</xs:documentation>
</xs:annotation>
<xs:attribute name="AutoResize" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies whether the ThmUtil default window proc should process WM_SIZE and WM_SIZING events.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="FontId" type="xs:nonNegativeInteger">
<xs:annotation>
<xs:documentation>Numeric identifier to the Font element that serves as the default font for the window.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Height" type="xs:positiveInteger">
<xs:annotation>
<xs:documentation>Height of the window.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="HexStyle" type="xs:hexBinary">
<xs:annotation>
<xs:documentation>
Hexadecimal window style. If this is not specified the default value is: WS_OVERLAPPED | WS_VISIBLE | WS_MINIMIZEBOX | WS_SYSMENU.
If SourceX and SourceY are greater than 0, then WS_OVERLAPPED is replaced with WS_POPUP.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IconFile" type="xs:string">
<xs:annotation>
<xs:documentation>Relative path to an icon file for the window. Mutually exclusive with IconResource and SourceX and SourceY attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IconResource" type="xs:string">
<xs:annotation>
<xs:documentation>Identifier that references icon resource in the module for the window. Mutually exclusive with IconFile and SourceX and SourceY attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="MinimumHeight" type="xs:positiveInteger">
<xs:annotation>
<xs:documentation>Minimum height of the window. Only functions if AutoResize is enabled.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="MinimumWidth" type="xs:positiveInteger">
<xs:annotation>
<xs:documentation>Minimum width of the window. Only functions if AutoResize is enabled.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SourceX" type="xs:nonNegativeInteger">
<xs:annotation>
<xs:documentation>X offset of the window background in the Theme/@ImageFile. Mutually exclusive with IconFile and IconResource.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SourceY" type="xs:nonNegativeInteger">
<xs:annotation>
<xs:documentation>Y offset of the window background in the Theme/@ImageFile. Mutually exclusive with IconFile and IconResource.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Width" type="xs:positiveInteger">
<xs:annotation>
<xs:documentation>Width of the window.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Billboard">
<xs:annotation>
<xs:documentation>Defines a control that rotates through a set of images on a specified interval.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Page" />
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Theme" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="Image" />
</xs:sequence>
<xs:attributeGroup ref="CommonControlAttributes" />
<xs:attribute name="Interval" type="xs:positiveInteger">
<xs:annotation>
<xs:documentation>.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Loop" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies whether the billboard should loop through the images infinitely.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Button">
<xs:annotation>
<xs:documentation>Defines a button.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Page" />
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Theme" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>Text to display in the button.</xs:documentation>
</xs:annotation>
<xs:attributeGroup ref="CommonControlAttributes" />
<xs:attribute name="FontId" type="xs:nonNegativeInteger" use="required">
<xs:annotation>
<xs:documentation>Numeric identifier to the Font element that serves as the font for the control.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ImageFile" type="xs:string">
<xs:annotation>
<xs:documentation>Relative path to an image file to define an graphic button. The image must be 3x the height to represent the button in 3 states: unselected, hover, selected. Mutually exclusive with ImageResource and SourceX and SourceY attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ImageResource" type="xs:string">
<xs:annotation>
<xs:documentation>Identifier that references an image resource in the module for the control. The image must be 3x the height to represent the button in 3 states: unselected, hover, selected. Mutually exclusive with ImageFile and SourceX and SourceY attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Checkbox">
<xs:annotation>
<xs:documentation>Defines a checkbox.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Page" />
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Theme" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>Text to display beside the checkbox.</xs:documentation>
</xs:annotation>
<xs:attributeGroup ref="CommonControlAttributes" />
<xs:attribute name="FontId" type="xs:nonNegativeInteger" use="required">
<xs:annotation>
<xs:documentation>Numeric identifier to the Font element that serves as the font for the control.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Combobox">
<xs:annotation>
<xs:documentation>Defines a combobox.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Page" />
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Theme" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="CommonControlAttributes" />
<xs:attribute name="FontId" type="xs:nonNegativeInteger" use="required">
<xs:annotation>
<xs:documentation>Numeric identifier to the Font element that serves as the font for the control.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Editbox">
<xs:annotation>
<xs:documentation>Defines an edit box.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Page" />
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Theme" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="CommonControlAttributes" />
<xs:attribute name="FileSystemAutoComplete" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies whether the edit box should auto-complete with file system paths.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="FontId" type="xs:nonNegativeInteger" use="required">
<xs:annotation>
<xs:documentation>Numeric identifier to the Font element that serves as the font for the control.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Hyperlink">
<xs:annotation>
<xs:documentation>Defines a hyperlink.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Page" />
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Theme" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>Text to display as the link.</xs:documentation>
</xs:annotation>
<xs:attributeGroup ref="CommonControlAttributes" />
<xs:attribute name="FontId" type="xs:nonNegativeInteger" use="required">
<xs:annotation>
<xs:documentation>Numeric identifier to the Font element that serves as the unselected font.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="HoverFontId" type="xs:nonNegativeInteger" use="required">
<xs:annotation>
<xs:documentation>Numeric identifier to the Font element that serves as the font when the control is hovered over.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SelectedFontId" type="xs:nonNegativeInteger" use="required">
<xs:annotation>
<xs:documentation>Numeric identifier to the Font element that serves as the font when the control is selected.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Hypertext">
<xs:annotation>
<xs:documentation>Defines a text block with support for HTML &lt;a&gt; tags.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Page" />
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Theme" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>Text to display as the link. Use HTML &lt;a href="URL"&gt; to create a link.</xs:documentation>
</xs:annotation>
<xs:attributeGroup ref="CommonControlAttributes" />
<xs:attribute name="FontId" type="xs:nonNegativeInteger" use="required">
<xs:annotation>
<xs:documentation>Numeric identifier to the Font element that serves as the font for the control.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Image">
<xs:annotation>
<xs:documentation>Defines an image.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Page" />
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Theme" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="CommonControlAttributes" />
<xs:attribute name="ImageFile" type="xs:string">
<xs:annotation>
<xs:documentation>Relative path to an image file. Mutually exclusive with ImageResource and SourceX and SourceY attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ImageResource" type="xs:string">
<xs:annotation>
<xs:documentation>Identifier that references an image resource in the module. Mutually exclusive with ImageFile and SourceX and SourceY attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ListView">
<xs:annotation>
<xs:documentation>Defines a listview.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Page" />
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Theme" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="Column" />
</xs:choice>
<xs:attributeGroup ref="CommonControlAttributes" />
<xs:attribute name="FontId" type="xs:nonNegativeInteger">
<xs:annotation>
<xs:documentation>Numeric identifier to the Font element that serves as the default font for the ListView.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="HexExtendedStyle" type="xs:hexBinary">
<xs:annotation>
<xs:documentation>Hexadecimal extended window style.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ImageList" type="xs:string">
<xs:annotation>
<xs:documentation>The name of the Image List to assign to this listview with type LVSIL_NORMAL.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ImageListSmall" type="xs:string">
<xs:annotation>
<xs:documentation>The name of the Image List to assign to this listview with type LVSIL_SMALL.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ImageListState" type="xs:string">
<xs:annotation>
<xs:documentation>The name of the Image List to assign to this listview with type LVSIL_STATE.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ImageListGroupHeader" type="xs:string">
<xs:annotation>
<xs:documentation>The name of the Image List to assign to this listview with type LVSIL_GROUPHEADER.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Progressbar">
<xs:annotation>
<xs:documentation>Defines a progress bar.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Page" />
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Theme" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="CommonControlAttributes" />
<xs:attribute name="ImageFile" type="xs:string">
<xs:annotation>
<xs:documentation>Relative path to an image file for the control. The image must be 4 pixels wide: left pixel is the left side of progress bar, left middle pixel is progress used, right middle pixel is progress unused, right pixel is right side of progress bar. Mutually exclusive with ImageResource and SourceX and SourceY attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ImageResource" type="xs:string">
<xs:annotation>
<xs:documentation>Identifier that references an image resource in the module for the control. The image must be 4 pixels wide: left pixel is the left side of progress bar, left middle pixel is progress used, right middle pixel is progress unused, right pixel is right side of progress bar. Mutually exclusive with ImageFile and SourceX and SourceY attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Richedit">
<xs:annotation>
<xs:documentation>Defines a rich edit control.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Page" />
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Theme" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="CommonControlAttributes" />
<xs:attribute name="FontId" type="xs:nonNegativeInteger" use="required">
<xs:annotation>
<xs:documentation>Numeric identifier to the Font element that serves as the font for the control.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Static">
<xs:annotation>
<xs:documentation>Defines a straight line.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Page" />
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Theme" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="CommonControlAttributes" />
</xs:complexType>
</xs:element>
<xs:element name="Tab">
<xs:annotation>
<xs:documentation>Defines a tab.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>Caption of the tab.</xs:documentation>
</xs:annotation>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Text">
<xs:annotation>
<xs:documentation>Defines text.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Page" />
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="Theme" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>Text to display.</xs:documentation>
</xs:annotation>
<xs:attributeGroup ref="CommonControlAttributes" />
<xs:attribute name="Center" type="YesNoType" use="optional">
<xs:annotation>
<xs:documentation>Specifies whether the text should be centered horizontally in the width of the control. Default is "no".</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DisablePrefix" type="YesNoType" use="optional">
<xs:annotation>
<xs:documentation>By default ampersands (&amp;) in the text will underline the next character and treat it as an accelerator key. Set this attribute to "yes" to disable that behavior. Default is "no".</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="FontId" type="xs:nonNegativeInteger" use="required">
<xs:annotation>
<xs:documentation>Numeric identifier to the Font element that serves as the font for the control.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="TreeView">
<xs:annotation>
<xs:documentation>Defines a treeview.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="CommonControlAttributes"/>
<xs:attribute name="EnableDragDrop">
<xs:annotation>
<xs:documentation>Specifies whether drag and drop is enabled for the treeview.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="FullRowSelect">
<xs:annotation>
<xs:documentation>Specifies whether an entire row is selected for the treeview.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="asButtons">
<xs:annotation>
<xs:documentation>Specifies whether the treeview will show buttons.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="AlwaysShowSelect">
<xs:annotation>
<xs:documentation>Specifies whether the row always appears selected even when the treeview has lost focus.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LinesAtRoot">
<xs:annotation>
<xs:documentation>Specifies whether the root nodes have lines beside them.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="HasLines">
<xs:annotation>
<xs:documentation>Specifies whether lines appear for all treeview items.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Column">
<xs:annotation>
<xs:documentation>A column of a list.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://wixtoolset.org/schemas/thmutil/2010" ref="ListView" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>Text for the column header.</xs:documentation>
</xs:annotation>
<xs:attribute name="Width" type="xs:int">
<xs:annotation>
<xs:documentation>Width of the column.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Expands" type="YesNoType">
<xs:annotation>
<xs:documentation>Whether or not this column can grow to fill available width of the listview.
More than one column can be marked with yes - all expandable columns will share available extra space.
This is especially useful if the Window/@AutoResize is yes.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:group name="ControlElements">
<xs:choice>
<xs:element ref="Billboard" />
<xs:element ref="Button" />
<xs:element ref="Checkbox" />
<xs:element ref="Combobox" />
<xs:element ref="Editbox" />
<xs:element ref="Hyperlink" />
<xs:element ref="Hypertext" />
<xs:element ref="Image" />
<xs:element ref="ListView" />
<xs:element ref="Progressbar" />
<xs:element ref="Richedit" />
<xs:element ref="Static" />
<xs:element ref="Tab" />
<xs:element ref="Text" />
<xs:element ref="TreeView" />
</xs:choice>
</xs:group>
<xs:attributeGroup name="CommonControlAttributes">
<xs:attribute name="Name" type="xs:string">
<xs:annotation>
<xs:documentation>Optional name for the control.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Height" type="xs:int" use="required">
<xs:annotation>
<xs:documentation>Height of the control. Non-positive values extend the control to the bottom of the window minus the value.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="HexStyle" type="xs:hexBinary">
<xs:annotation>
<xs:documentation>Hexadecimal window style for the control.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="HideWhenDisabled" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies whether the control should be hidden when disabled.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TabStop" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies whether the control is part of the tab sequence of controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Visible" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies whether the control is initially visible.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Width" type="xs:int" use="required">
<xs:annotation>
<xs:documentation>Width of the control. Non-positive values extend the control to the right of the window minus the value.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="X" type="xs:int" use="required">
<xs:annotation>
<xs:documentation>X coordinate for the control from the left of the window. Negative values are coordinates from the right of the window minus the width of the control.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Y" type="xs:int" use="required">
<xs:annotation>
<xs:documentation>Y coordinate for the control from the top of the window. Negative values are coordinates from the bottom of the window minus the height of the control.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:simpleType name="YesNoType">
<xs:annotation><xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation></xs:annotation>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="no"/>
<xs:enumeration value="yes"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

1626
doc/util.xsd Normal file

File diff suppressed because it is too large Load Diff

292
doc/vs.xsd Normal file
View File

@@ -0,0 +1,292 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
targetNamespace="http://schemas.microsoft.com/wix/VSExtension"
xmlns="http://schemas.microsoft.com/wix/VSExtension">
<xs:annotation>
<xs:documentation>
The source code schema for the Windows Installer XML Toolset Visual Studio Extension.
</xs:documentation>
</xs:annotation>
<xs:element name="HelpCollection">
<xs:annotation>
<xs:documentation>
Help Namespace for a help collection. The parent file is the key for the HxC (Collection) file.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="HelpFileRef" />
<xs:element ref="HelpFilterRef" />
<xs:element ref="PlugCollectionInto" />
</xs:choice>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation><xs:documentation>Primary Key for HelpNamespace.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Description" type="xs:string">
<xs:annotation><xs:documentation>Friendly name for Namespace.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Name" use="required" type="xs:string">
<xs:annotation><xs:documentation>Internal Microsoft Help ID for this Namespace.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="SuppressCustomActions" type="YesNoType">
<xs:annotation><xs:documentation>Suppress linking Help registration custom actions. Help redistributable merge modules will be required. Use this when building a merge module.</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="HelpFilter">
<xs:annotation>
<xs:documentation>
Filter for Help Namespace.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>Primary Key for HelpFilter.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="FilterDefinition" type="xs:string">
<xs:annotation><xs:documentation>Query String for Help Filter.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Name" use="required" type="xs:string">
<xs:annotation><xs:documentation>Friendly name for Filter.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="SuppressCustomActions" type="YesNoType">
<xs:annotation><xs:documentation>Suppress linking Help registration custom actions. Help redistributable merge modules will be required. Use this when building a merge module.</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="HelpFile">
<xs:annotation>
<xs:documentation>
File for Help Namespace. The parent file is the key for HxS (Title) file.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>Primary Key for HelpFile Table.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="AttributeIndex" type="xs:string">
<xs:annotation><xs:documentation>Key for HxR (Attributes) file.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Index" type="xs:string">
<xs:annotation><xs:documentation>Key for HxI (Index) file.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Language" use="required" type="xs:integer">
<xs:annotation><xs:documentation>Language ID for content file.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Name" use="required" type="xs:string">
<xs:annotation><xs:documentation>Internal Microsoft Help ID for this HelpFile.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="SampleLocation" type="xs:string">
<xs:annotation><xs:documentation>Key for a file that is in the "root" of the samples directory for this HelpFile.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Search" type="xs:string">
<xs:annotation><xs:documentation>Key for HxQ (Query) file.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="SuppressCustomActions" type="YesNoType">
<xs:annotation><xs:documentation>Suppress linking Help registration custom actions. Help redistributable merge modules will be required. Use this when building a merge module.</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="PlugCollectionInto">
<xs:annotation><xs:documentation>Plugin for Help Namespace.</xs:documentation></xs:annotation>
<xs:complexType>
<xs:attribute name="Attributes" type="xs:string">
<xs:annotation><xs:documentation>Key for HxA (Attributes) file of child namespace.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="TableOfContents" type="xs:string">
<xs:annotation><xs:documentation>Key for HxT file of child namespace.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="TargetCollection" use="required" type="xs:string">
<xs:annotation><xs:documentation>
Foriegn Key into HelpNamespace table for the parent namespace into which the child will be inserted.
The following special keys can be used to plug into external namespaces defined outside of the installer.
MS_VSIPCC_v80 : Visual Studio 2005
MS.VSIPCC.v90 : Visual Studio 2008
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="TargetTableOfContents" type="xs:string">
<xs:annotation><xs:documentation>Key for HxT file of parent namespace that now includes the new child namespace.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="TargetFeature" type="xs:string">
<xs:annotation><xs:documentation>Key for the feature parent of this help collection. Required only when plugging into external namespaces.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="SuppressExternalNamespaces" type="YesNoType">
<xs:annotation><xs:documentation>Suppress linking Visual Studio Help namespaces. Help redistributable merge modules will be required. Use this when building a merge module.</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="HelpFileRef">
<xs:annotation><xs:documentation>Create a reference to a HelpFile element in another Fragment.</xs:documentation></xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>Primary Key for HelpFile Table.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:anyAttribute namespace="##other" processContents="lax">
<xs:annotation><xs:documentation>
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
</xs:documentation></xs:annotation>
</xs:anyAttribute>
</xs:complexType>
</xs:element>
<xs:element name="HelpFilterRef">
<xs:annotation><xs:documentation>Create a reference to a HelpFile element in another Fragment.</xs:documentation></xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>Primary Key for HelpFilter.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:anyAttribute namespace="##other" processContents="lax">
<xs:annotation><xs:documentation>
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
</xs:documentation></xs:annotation>
</xs:anyAttribute>
</xs:complexType>
</xs:element>
<xs:element name="HelpCollectionRef">
<xs:annotation>
<xs:documentation>Create a reference to a HelpCollection element in another Fragment.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="HelpFileRef" />
</xs:choice>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation><xs:documentation>Primary Key for HelpNamespace Table.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:anyAttribute namespace="##other" processContents="lax">
<xs:annotation><xs:documentation>
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
</xs:documentation></xs:annotation>
</xs:anyAttribute>
</xs:complexType>
</xs:element>
<xs:element name="VsixPackage">
<xs:annotation>
<xs:documentation>
This element provides the metdata required to install/uninstall a file as
a VSIX Package. The VSIX package file will be installed as part of the MSI
then passed to the VSIX installer to install the VSIX package. To avoid the
duplication, simply use the MSI to install the VSIX package itself.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="File" type="xs:string">
<xs:annotation>
<xs:documentation>
Reference to file identifer. This attribute is required when the element is not a
child of a File element and is invalid when the element is a child of the File element.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="PackageId" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Identity of the VSIX package per its internal manifest. If this value is not correct
the VSIX package will not correctly uninstall.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Permanent" type="YesNoType">
<xs:annotation>
<xs:documentation>
Indicates whether the VSIX package is uninstalled when the parent Component is uninstalled.
The default is 'no'.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Target" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies the SKU of Visual Studio in which to register the extension. If no target
is specified the extension is registered with all installed SKUs. If the Target
attribute is specified the TargetVersion attribute must also be specified. The
following is a list of known Visual Studio targets: integratedShell, professional,
premium, ultimate, vbExpress, vcExpress, vcsExpress, vwdExpress
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TargetVersion" type="VersionType">
<xs:annotation>
<xs:documentation>
Specifies the version of Visual Studio in which to register the extension. This attribute
is required if the Target attribute is specified.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Vital" type="YesNoType">
<xs:annotation>
<xs:documentation>
Indicates whether failure to install the VSIX package causes the installation to rollback.
The default is 'yes'.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VsixInstallerPathProperty" type="xs:string">
<xs:annotation>
<xs:documentation>
Optional reference to a Property element that contains the path to the VsixInstaller.exe.
By default, the latest VsixInstaller.exe on the machine will be used to install the VSIX
package. It is highly recommended that this attribute is *not* used.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:anyAttribute namespace="##other" processContents="lax">
<xs:annotation><xs:documentation>
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
</xs:documentation></xs:annotation>
</xs:anyAttribute>
</xs:complexType>
</xs:element>
<xs:simpleType name="VersionType">
<xs:annotation><xs:documentation>Values of this type will look like: "x.x.x.x" where x is an integer from 0 to 65534.</xs:documentation></xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="(\d{1,5}\.){0,3}\d{1,5}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="YesNoType">
<xs:annotation>
<xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
</xs:annotation>
<xs:restriction base='xs:NMTOKEN'>
<xs:enumeration value="no"/>
<xs:enumeration value="yes"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

13091
doc/wix.xsd Normal file

File diff suppressed because it is too large Load Diff

134
doc/wixloc.xsd Normal file
View File

@@ -0,0 +1,134 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
targetNamespace="http://schemas.microsoft.com/wix/2006/localization"
xmlns="http://schemas.microsoft.com/wix/2006/localization">
<xs:annotation>
<xs:documentation>
Schema for describing Windows Installer Xml Localization files (.wxl).
</xs:documentation>
</xs:annotation>
<xs:element name="WixLocalization">
<xs:annotation>
<xs:appinfo>
<xse:remarks>
<html:p>You can specify any valid Windows code page by integer like 1252, or by web name like Windows-1252 or iso-8859-1. See <a href="~/overview/codepage.html">Code Pages</a> for more information.</html:p>
</xse:remarks>
<xse:howtoRef href="ui_and_localization/build_a_localized_version.html">How To: Build a localized version of your installer</xse:howtoRef>
<xse:howtoRef href="ui_and_localization/make_installer_localizable.html">How To: Make your installer localizable</xse:howtoRef>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="String" />
<xs:element ref="UI" />
</xs:choice>
<xs:attribute name="Codepage" type="xs:string">
<xs:annotation>
<xs:documentation>The code page integer value or web name for the resulting database. You can also specify -1 which will not reset the database code page. See remarks for more information.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Culture" type="xs:string">
<xs:annotation>
<xs:documentation>Culture of the localization strings.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Language" type="xs:integer">
<xs:annotation>
<xs:documentation>The decimal language ID (LCID) for the culture.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="String">
<xs:annotation>
<xs:appinfo>
<xse:howtoRef href="ui_and_localization/build_a_localized_version.html">How To: Build a localized version of your installer</xse:howtoRef>
<xse:howtoRef href="ui_and_localization/make_installer_localizable.html">How To: Make your installer localizable</xse:howtoRef>
</xs:appinfo>
</xs:annotation>
<xs:complexType mixed="true">
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Identity of the resource.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Overridable" type="LocalizationYesNoType">
<xs:annotation>
<xs:documentation>Determines if the localized string may be overridden.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Localizable" type="LocalizationYesNoType">
<xs:annotation>
<xs:documentation>Indicates whether the string is localizable text or a non-localizable string that must be unique per locale. No WiX tools are affected by the value of this attribute; it used as documentation for localizers to ignore things like GUIDs or identifiers that look like text.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="UI">
<xs:annotation>
<xs:documentation>Allows a localization to override the position, size, and text of dialogs and controls. Override the text by specifying the replacement text in the inner text of the UI element.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:attribute name="Dialog" type="xs:string">
<xs:annotation>
<xs:documentation>Identifies the dialog to localize or the dialog that a control to localize is in.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Control" type="xs:string">
<xs:annotation>
<xs:documentation>Combined with the Dialog attribute, identifies the control to localize.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="X" type="xs:integer">
<xs:annotation>
<xs:documentation>For a dialog, overrides the authored horizontal centering. For a control, overrides the authored horizontal coordinate of the upper-left corner of the rectangular boundary. This must be a non-negative number.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Y" type="xs:integer">
<xs:annotation>
<xs:documentation>For a dialog, overrides the authored vertical centering. For a control, overrides the authored vertical coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Width" type="xs:integer">
<xs:annotation>
<xs:documentation>For a dialog, overrides the authored width in dialog units. For a control, overrides the authored width of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Height" type="xs:integer">
<xs:annotation>
<xs:documentation>For a dialog, overrides the authored height in dialog units. For a control, overrides the authored height of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RightToLeft" type="LocalizationYesNoType">
<xs:annotation>
<xs:documentation>Set this attribute to "yes" to cause the Control to display from right to left. Not valid for a dialog.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RightAligned" type="LocalizationYesNoType">
<xs:annotation>
<xs:documentation>Set this attribute to "yes" to cause the Control to be right aligned. Not valid for a dialog.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LeftScroll" type="LocalizationYesNoType">
<xs:annotation>
<xs:documentation>Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control. Not valid for a dialog.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:simpleType name="LocalizationYesNoType">
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="no" />
<xs:enumeration value="yes" />
</xs:restriction>
</xs:simpleType>
</xs:schema>

BIN
heat.exe Normal file

Binary file not shown.

16
heat.exe.config Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<configuration>
<appSettings>
<add key="extensions" value="WixIIsExtension;WixUtilExtension;WixVSExtension"/>
</appSettings>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
<supportedRuntime version="v2.0.50727" />
</startup>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>

BIN
insignia.exe Normal file

Binary file not shown.

10
insignia.exe.config Normal file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
<supportedRuntime version="v2.0.50727" />
</startup>
</configuration>

BIN
light.exe Normal file

Binary file not shown.

13
light.exe.config Normal file
View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
<supportedRuntime version="v2.0.50727" />
</startup>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>

BIN
lit.exe Normal file

Binary file not shown.

13
lit.exe.config Normal file
View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
<supportedRuntime version="v2.0.50727" />
</startup>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>

BIN
lux.exe Normal file

Binary file not shown.

12
lux.exe.config Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<configuration>
<appSettings>
<add key="extensions" value="WixDifxAppExtension;WixDirectXExtension;WixFirewallExtension;WixGamingExtension;WixIIsExtension;WixLuxExtension;WixNetFxExtension;WixSqlExtension;WixUIExtension;WixUtilExtension;WixVSExtension" />
</appSettings>
<startup>
<supportedRuntime version="v4.0" />
</startup>
</configuration>

112
lux.targets Normal file
View File

@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<Project
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
ToolsVersion="3.5">
<UsingTask TaskName="GenerateTestConsumer" AssemblyFile="$(LuxTasksPath)" />
<UsingTask TaskName="Nit" AssemblyFile="$(LuxTasksPath)" />
<PropertyGroup>
<BuildTestPackageDependsOn>Compile;_ScanForUnitTests;_GenerateTestConsumer;Link</BuildTestPackageDependsOn>
<TestDependsOn>$(BuildTestPackageDependsOn)</TestDependsOn>
</PropertyGroup>
<ItemGroup>
<GeneratedTestConsumer Include="$(OutputName)_test.wxs" />
</ItemGroup>
<Target
Name="_ScanForUnitTests">
<!--
So the Link target can do proper up-to-date checking, we need to give it the right list of
.wixobj inputs, which we get by scanning for unit tests and not generating a test consumer.
-->
<GenerateTestConsumer
InputFiles="@(CompileObjOutput);@(WixObject);@(WixLibProjects);@(_ResolvedWixLibraryPaths)"
Extensions="@(_ResolvedWixExtensionPaths)">
<Output TaskParameter="InputFragments" ItemName="FilesThatAreFragments" />
</GenerateTestConsumer>
<ItemGroup>
<CompileObjOutput
Remove="@(CompileObjOutput)" />
<CompileObjOutput
Include="
@(GeneratedTestConsumer -> '$(IntermediateOutputPath)%(Filename)$(IntermediateExt)');
@(FilesThatAreFragments);
" />
</ItemGroup>
<PropertyGroup>
<TargetName>$(OutputName)_test</TargetName>
<SuppressIces>ICE71;$(SuppressIces)</SuppressIces>
<SuppressValidation>true</SuppressValidation>
</PropertyGroup>
</Target>
<Target
Name="_GenerateTestConsumer"
Inputs="@(Compile);
@(Content);
@(_ResolvedWixExtensionPaths);
@(_ResolvedProjectReferencePaths);
$(MSBuildAllProjects)"
Outputs="@(GeneratedTestConsumer -> '$(IntermediateOutputPath)%(Filename)$(IntermediateExt)')">
<GenerateTestConsumer
InputFiles="@(CompileObjOutput);@(WixObject);@(WixLibProjects);@(_ResolvedWixLibraryPaths)"
Extensions="@(_ResolvedWixExtensionPaths)"
OutputFile="@(GeneratedTestConsumer)">
<Output TaskParameter="InputFragments" ItemName="FilesThatAreFragments" />
</GenerateTestConsumer>
<Candle
SourceFiles="@(GeneratedTestConsumer)"
AdditionalOptions="$(CompilerAdditionalOptions)"
DefineConstants="$(DefineConstants);$(SolutionDefineConstants);$(ProjectDefineConstants);$(ProjectReferenceDefineConstants)"
ExtensionDirectory="$(WixExtDir)"
Extensions="@(_ResolvedWixExtensionPaths)"
FipsCompliant="$(FipsCompliant)"
IncludeSearchPaths="$(IncludeSearchPaths)"
InstallerPlatform="$(InstallerPlatform)"
NoLogo="$(CompilerNoLogo)"
OutputFile="$(IntermediateOutputPath)"
Pedantic="$(Pedantic)"
ReferencePaths="$(ReferencePaths)"
RunAsSeparateProcess="$(RunWixToolsOutOfProc)"
ShowSourceTrace="$(ShowSourceTrace)"
SuppressAllWarnings="$(CompilerSuppressAllWarnings)"
SuppressSchemaValidation="$(CompilerSuppressSchemaValidation)"
SuppressSpecificWarnings="$(CompilerSuppressSpecificWarnings)"
ToolPath="$(WixToolPath)"
TreatWarningsAsErrors="$(CompilerTreatWarningsAsErrors)"
TreatSpecificWarningsAsErrors="$(CompilerTreatSpecificWarningsAsErrors)"
VerboseOutput="$(CompilerVerboseOutput)" />
</Target>
<Target
Name="BuildTestPackage"
Inputs="@(CompileObjOutput);
@(WixObject);
@(_ResolvedProjectReferencePaths);
@(_ResolvedWixLibraryPaths);
@(_ResolvedWixExtensionPaths);
$(MSBuildAllProjects)"
Outputs="$(TargetPath)"
DependsOnTargets="$(BuildTestPackageDependsOn)" />
<Target
Name="Test"
DependsOnTargets="$(BuildTestPackageDependsOn)">
<Nit
TestPackages="$(TargetPath)"
ToolPath="$(WixToolPath)" />
</Target>
</Project>

BIN
melt.exe Normal file

Binary file not shown.

13
melt.exe.config Normal file
View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
<supportedRuntime version="v2.0.50727" />
</startup>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>

BIN
mergemod.cub Normal file

Binary file not shown.

BIN
mergemod.dll Normal file

Binary file not shown.

BIN
mspatchc.dll Normal file

Binary file not shown.

BIN
nit.exe Normal file

Binary file not shown.

9
nit.exe.config Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<configuration>
<startup>
<supportedRuntime version="v4.0" />
</startup>
</configuration>

BIN
pyro.exe Normal file

Binary file not shown.

13
pyro.exe.config Normal file
View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
<supportedRuntime version="v2.0.50727" />
</startup>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>

BIN
retina.exe Normal file

Binary file not shown.

12
retina.exe.config Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<configuration>
<appSettings>
</appSettings>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
<supportedRuntime version="v2.0.50727" />
</startup>
</configuration>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<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
sdk/BootstrapperCore.dll Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More