To the more depth going procedure to make the process a success:
+
When you scan, you should know a few basics.
+
Scanning in 600dpi make black/white text only look good, in 300dpi the pixels
+can make the text feel jagged. Remember, you can always scale down, but
+upscaling requires magic like AI, but it's always the best to have high
+resolution scans rather than guesswork from a computer.
+
Stay away from lossy formats like jpg and gif. TIFF and PNG are both very
+good options. TIFF has several choices of compression, of these are CCITT.6 (G4
+Fax) for black and white images, and LZW for the rest -indexed, grayscal and
+color, the best choices. There is the JBIG which compresses
+Black/White better, but it usually also makes the PDF viewer vastly slower.
+
Unfortunately LZW is not usable in PDF/A. PNG can be a good choice as well,
+though it is somewhat slower to open in programs. Sticking to free tools GIMP
+has no problems working with these formats.
+
+
RCEU Make Manual only support TIF files with the 3 letter TIF extension, the
+4 letter TIFF extension, PNG and other formats are currently not supported.
+So make sure to either convert to TIF or rename the extension depending on your
+output.
+
+
So, lets start preparing your project directory, lets call this MyProject. So
+if we use D:\ManualWork as a root directory for all our projects, the example
+directory would be D:\ManualWork\MyProject.
+
Recommended is to have your original scans in origs, so the full directory
+would be D:\ManualWork\MyProject\origs. "origs" can be set in the settings in
+case you want to rename it, so can the other work directories, but lets continue
+with the recommended namings. ScanTailor defaults to output to an "out"
+directory from it's project dir.
+
+
+
+
+
+
diff --git a/PDFWorkflowManager/PDFWorkflowManager/Help/page4.html.txt b/PDFWorkflowManager/PDFWorkflowManager/Help/page4.html.txt
new file mode 100644
index 0000000..494a6f2
--- /dev/null
+++ b/PDFWorkflowManager/PDFWorkflowManager/Help/page4.html.txt
@@ -0,0 +1,89 @@
+
+Getting Started
+
+
+
+
+
+
+
+
+
RCEU Workflow
+Manager
+
+
Getting Started
+
+
Start by opening the project dir D:\ManualWork\MyProject, if you've
+configured correctly and have an origs dir with one or more tif files, you
+should see the first image in the Work tab.
+
+
This will open up the rest of the work field.
+
Clicking "Prepare Work Dir" will create a directory called "work" and the
+files in "origs" will be copied into this folder. If a textfile
+"run_simplex_sorting_script.txt" exists in the root of the project dir, the
+checkbox "Simplex scanned" will be checked.
+
Scanning documents on a simplex scanner scans the odd pages from low to
+high 1,3,5,7... and then you flip the stack around scanning the even pages
+from high to low ...8,6,4,2.
+
Checking the "Simplex scanned" checkbox will copy the files from the "origs"
+folder, sort the files properly so they are ordered into the proper
+sequence 1,2,3,4,5,6,7,8. Make note we only copy from the origs folder, we
+don't write to this folder keeping the originals as is.
+
You need to check the "Simplex scanned" checkbox before clicking on the
+"Prepare Work Dir".
+
If the "Simplex scanned" is checked, a check for even files in the work
+directory will also be made, the "Prepare Work Dir" turns red if the file count
+isn't even. Sometimes document scanners can grab one or more pages. This isn't
+foolproof if the scanner grabs even amount of pages from front and back run.
+
+
Clicking on the "Run ScanTailor" will copy the workdir path to the clipboard
+and open ScanTailor, you can use the clipboard to paste the workpath when
+creating a new project.
+
Do what you need to do in ScanTailor (using ScanTailor isn't part of this
+help guide).
+
+
Now you can do some post work to all the output files if you want/need to do
+this.
+
+
For RCEU products fill out the PDF properties, make sure you select either a
+single language or multiple in case the manual or book is multilingual.
+
Title, Publisher and (non english) language will automatically be added to
+the filename.
+
Clicking "Calc" outside the page count will fetch the amount of pages for
+you.
+
Clicking "Calc" in time spent, will output the amount of minutes calculated
+by the timestamp of the first and last file in the origs dir, and the amount of
+time RCEU Workflow Manager has had it's project open.
+
The "Metadata file" info doesn't do anything to the output.
+
it only saves all the info to a textfile which is used for Retro Commodore's
+website.
+
Well actually, the filename textbox is the only field that is being used, to
+output the filename of the files generated.
+
+
Selecting "Normal Order" and clicking "Convert Files" will take all the files
+in their natural order and convert to OCR'ed PDF pages.
+
Selecting "4,1,2,3 Order" and clicking "Convert Files" - If you've scanned
+magazines or booklets where you've removed staples from the spine, the pages
+scanned would be Front, Back, Side 2 and Side 3 for 1 paper, Front, Back, 3, 6,
+5, 4, 2, 1 for 2 papers. You would then need to split the pages in ScanTailor.
+Selecting this will make sure the
+
magazines or booklets have their pages sorted in the correctorder before OCR
+into PDF files.
+
Selecting Normal or 4,1,2,3 needs to be chosen before "Convert Files".
+
+
A4 Banner/A5 Banner/None: This will add either an A4, A5 or none banners in
+the end of the PDF file. This choice needs to be set before "Make PDF"
+
"Make PDF" will grab all PDFs and gather them into one PDF file. A textfile
+with all the text from the OCR'ed PDF will also be output.
In User, type in your name or handle, this is only used for the metadata
+file.
+
+
Tools section:
+
make sure your tools are in your path environment, or browse to them using
+the buttons.
+
RCEU Workflow Manager uses these tools, pointing to different tools will make
+unwanted results.
+
Links have been made available for easy download of the required tools.
+
+
Work Directories section:
+
These are directories inside your projects directory, changing these to full
+paths will give you undesired results.
+
Origs: This is where your original scans (*.tif) should be located before
+starting the workflow.
+
Work: This is the directory where the originals have been copied to and
+sorted if chosen, this is also the directory that should be used for
+ScanTailor.
+
ScanTailor Out: this is the output directory of ScanTailor, default: out
+(inside the work dir) so "work\out"
+
Temp: This is the temporary directory which RCEU Workflow Manager uses for
+outputting single PDF files. This directory isn't automatically deleted (yet),
+but can be manually deleted once you're satisfied with your product.
+
+
PDF Metadata section:
+
Writing something here will add that text to the Author field of the PDF
+file.
+
+
+
+
+ Extracts multiple files from the archive, optionally extracting
+ only newer files.
+
+ The names of the files in the archive.
+ Each name includes the internal path of the file, if any. File name
+ matching is case-insensitive.
+ This parameter may be null, but if
+ specified it is the root directory for any relative paths in
+ .
+ The paths where the files are to be
+ extracted on disk. If this parameter is null, the files will be
+ extracted with the names from the archive.
+ Handler for receiving progress information;
+ this may be null if progress is not desired.
+
+ If any extracted files already exist on disk, they will be overwritten.
+
The and
+ parameters cannot both be null.
+
+
+
+
+ Extracts multiple files from the archive.
+
+ A mapping from internal file paths to
+ external file paths. Case-senstivity when matching internal paths
+ depends on the IDictionary implementation.
+ This parameter may be null, but if
+ specified it is the root directory for any relative external paths
+ in .
+
+ If any extracted files already exist on disk, they will be overwritten.
+
+
+
+
+ Extracts multiple files from the archive.
+
+ A mapping from internal file paths to
+ external file paths. Case-senstivity when matching internal
+ paths depends on the IDictionary implementation.
+ This parameter may be null, but if
+ specified it is the root directory for any relative external
+ paths in .
+ Handler for receiving progress
+ information; this may be null if progress is not desired.
+
+ If any extracted files already exist on disk, they will be overwritten.
+
+
+
+
+ Opens a file inside the archive for reading without actually
+ extracting the file to disk.
+
+ The name of the file in the archive. Also
+ includes the internal path of the file, if any. File name matching
+ is case-insensitive.
+
+ A stream for reading directly from the packed file. Like any stream
+ this should be closed/disposed as soon as it is no longer needed.
+
+
+
+
+ Opens a file inside the archive for reading text with UTF-8 encoding
+ without actually extracting the file to disk.
+
+ The name of the file in the archive. Also
+ includes the internal path of the file, if any. File name matching
+ is case-insensitive.
+
+ A reader for reading text directly from the packed file. Like any reader
+ this should be closed/disposed as soon as it is no longer needed.
+
+
+ To open an archived text file with different encoding, use the
+ method and pass the returned stream to one of
+ the constructor overloads.
+
+
+
+
+ Compresses all files in a directory into the archive.
+ Does not include subdirectories.
+
+ The directory containing the
+ files to be included.
+
+ Uses maximum compression level.
+
+
+
+
+ Compresses all files in a directory into the archive, optionally
+ including subdirectories.
+
+ This is the root directory
+ for to pack all files.
+ If true, recursively include
+ files in subdirectories.
+ The compression level used when creating
+ the archive.
+ Handler for receiving progress information;
+ this may be null if progress is not desired.
+
+ The files are stored in the archive using their relative file paths in
+ the directory tree, if supported by the archive file format.
+
+
+
+
+ Compresses files into the archive, specifying the names used to
+ store the files in the archive.
+
+ This parameter may be null, but
+ if specified it is the root directory
+ for any relative paths in .
+ The list of files to be included in
+ the archive.
+ The names of the files as they are stored
+ in the archive. Each name
+ includes the internal path of the file, if any. This parameter may
+ be null, in which case the files are stored in the archive with their
+ source file names and no path information.
+
+ Uses maximum compression level.
+
Duplicate items in the array will cause
+ an .
+
+
+
+
+ Compresses files into the archive, specifying the names used to
+ store the files in the archive.
+
+ This parameter may be null, but if
+ specified it is the root directory
+ for any relative paths in .
+ The list of files to be included in
+ the archive.
+ The names of the files as they are stored in
+ the archive. Each name includes the internal path of the file, if any.
+ This parameter may be null, in which case the files are stored in the
+ archive with their source file names and no path information.
+ The compression level used when creating the
+ archive.
+ Handler for receiving progress information;
+ this may be null if progress is not desired.
+
+ Duplicate items in the array will cause
+ an .
+
+
+
+
+ Compresses files into the archive, specifying the names used
+ to store the files in the archive.
+
+ This parameter may be null, but if
+ specified it is the root directory
+ for any relative paths in .
+ A mapping from internal file paths to
+ external file paths.
+
+ Uses maximum compression level.
+
+
+
+
+ Compresses files into the archive, specifying the names used to
+ store the files in the archive.
+
+ This parameter may be null, but if
+ specified it is the root directory
+ for any relative paths in .
+ A mapping from internal file paths to
+ external file paths.
+ The compression level used when creating
+ the archive.
+ Handler for receiving progress information;
+ this may be null if progress is not desired.
+
+
+
+ Given a directory, gets the relative paths of all files in the
+ directory, optionally including all subdirectories.
+
+ The directory to search.
+ True to include subdirectories
+ in the search.
+ A list of file paths relative to the directory.
+
+
+
+ Retrieves information about one file from this archive.
+
+ Path of the file in the archive.
+ File information, or null if the file was not found
+ in the archive.
+
+
+
+ Creates a compression engine that does the low-level work for
+ this object.
+
+ A new compression engine instance that matches the specific
+ subclass of archive.
+
+ Each instance will be d
+ immediately after use.
+
+
+
+
+ Creates a case-insensitive dictionary mapping from one list of
+ strings to the other.
+
+ List of keys.
+ List of values that are mapped 1-to-1 to
+ the keys.
+ A filled dictionary of the strings.
+
+
+
+ Recursive-descent helper function for
+ GetRelativeFilePathsInDirectoryTree.
+
+ The root directory of the search.
+ The relative directory to be
+ processed now.
+ True to descend into
+ subdirectories.
+ List of files found so far.
+
+
+
+ Uses a CompressionEngine to get ArchiveFileInfo objects from this
+ archive, and then associates them with this ArchiveInfo instance.
+
+ Optional predicate that can determine
+ which files to process.
+ A list of objects, each
+ containing information about a file in the archive.
+
+
+
+ Contains the data reported in an archive progress event.
+
+
+
+
+ Creates a new ArchiveProgressEventArgs object from specified event parameters.
+
+ type of status message
+ name of the file being processed
+ number of the current file being processed
+ total number of files to be processed
+ number of bytes processed so far when compressing or extracting a file
+ total number of bytes in the current file
+ name of the current Archive
+ current Archive number, when processing a chained set of Archives
+ total number of Archives in a chained set
+ number of compressed bytes processed so far during an extraction
+ total number of compressed bytes to be processed during an extraction
+ number of uncompressed file bytes processed so far
+ total number of uncompressed file bytes to be processed
+
+
+
+ Gets the type of status message.
+
+ A value indicating what type of progress event occurred.
+
+ The handler may choose to ignore some types of progress events.
+ For example, if the handler will only list each file as it is
+ compressed/extracted, it can ignore events that
+ are not of type .
+
+
+
+
+ Gets the name of the file being processed. (The name of the file within the Archive; not the external
+ file path.) Also includes the internal path of the file, if any. Valid for
+ , ,
+ and messages.
+
+ The name of the file currently being processed, or null if processing
+ is currently at the stream or archive level.
+
+
+
+ Gets the number of the current file being processed. The first file is number 0, and the last file
+ is -1. Valid for ,
+ , and messages.
+
+ The number of the file currently being processed, or the most recent
+ file processed if processing is currently at the stream or archive level.
+
+
+
+ Gets the total number of files to be processed. Valid for all message types.
+
+ The total number of files to be processed that are known so far.
+
+
+
+ Gets the number of bytes processed so far when compressing or extracting a file. Valid for
+ , ,
+ and messages.
+
+ The number of uncompressed bytes processed so far for the current file,
+ or 0 if processing is currently at the stream or archive level.
+
+
+
+ Gets the total number of bytes in the current file. Valid for ,
+ , and messages.
+
+ The uncompressed size of the current file being processed,
+ or 0 if processing is currently at the stream or archive level.
+
+
+
+ Gets the name of the current archive. Not necessarily the name of the archive on disk.
+ Valid for all message types.
+
+ The name of the current archive, or an empty string if no name was specified.
+
+
+
+ Gets the current archive number, when processing a chained set of archives. Valid for all message types.
+
+ The number of the current archive.
+ The first archive is number 0, and the last archive is
+ -1.
+
+
+
+ Gets the total number of known archives in a chained set. Valid for all message types.
+
+ The total number of known archives in a chained set.
+
+ When using the compression option to auto-split into multiple archives based on data size,
+ this value will not be accurate until the end.
+
+
+
+
+ Gets the number of compressed bytes processed so far during extraction
+ of the current archive. Valid for all extraction messages.
+
+ The number of compressed bytes processed so far during extraction
+ of the current archive.
+
+
+
+ Gets the total number of compressed bytes to be processed during extraction
+ of the current archive. Valid for all extraction messages.
+
+ The total number of compressed bytes to be processed during extraction
+ of the current archive.
+
+
+
+ Gets the number of uncompressed bytes processed so far among all files. Valid for all message types.
+
+ The number of uncompressed file bytes processed so far among all files.
+
+ When compared to , this can be used as a measure of overall progress.
+
+
+
+
+ Gets the total number of uncompressed file bytes to be processed. Valid for all message types.
+
+ The total number of uncompressed bytes to be processed among all files.
+
+
+
+ The type of progress event.
+
+
+
PACKING EXAMPLE: The following sequence of events might be received when
+ extracting a simple archive file with 2 files.
+
+ Message TypeDescription
+ StartArchiveBegin extracting archive
+ StartFileBegin extracting first file
+ PartialFileExtracting first file
+ PartialFileExtracting first file
+ FinishFileFinished extracting first file
+ StartFileBegin extracting second file
+ PartialFileExtracting second file
+ FinishFileFinished extracting second file
+ FinishArchiveFinished extracting archive
+
+
+
UNPACKING EXAMPLE: Packing 3 files into 2 archive chunks, where the second file is
+ continued to the second archive chunk.
+
+ Message TypeDescription
+ StartFileBegin compressing first file
+ FinishFileFinished compressing first file
+ StartFileBegin compressing second file
+ PartialFileCompressing second file
+ PartialFileCompressing second file
+ FinishFileFinished compressing second file
+ StartArchiveBegin writing first archive
+ PartialArchiveWriting first archive
+ FinishArchiveFinished writing first archive
+ StartFileBegin compressing third file
+ PartialFileCompressing third file
+ FinishFileFinished compressing third file
+ StartArchiveBegin writing second archive
+ PartialArchiveWriting second archive
+ FinishArchiveFinished writing second archive
+
+
+
+
+ Status message before beginning the packing or unpacking an individual file.
+
+
+ Status message (possibly reported multiple times) during the process of packing or unpacking a file.
+
+
+ Status message after completion of the packing or unpacking an individual file.
+
+
+ Status message before beginning the packing or unpacking an archive.
+
+
+ Status message (possibly reported multiple times) during the process of packing or unpacking an archiv.
+
+
+ Status message after completion of the packing or unpacking of an archive.
+
+
+
+ Provides a basic implementation of the archive pack and unpack stream context
+ interfaces, based on a list of archive files, a default directory, and an
+ optional mapping from internal to external file paths.
+
+
+ This class can also handle creating or extracting chained archive packages.
+
+
+
+
+ Creates a new ArchiveFileStreamContext with a archive file and
+ no default directory or file mapping.
+
+ The path to a archive file that will be
+ created or extracted.
+
+
+
+ Creates a new ArchiveFileStreamContext with a archive file, default
+ directory and mapping from internal to external file paths.
+
+ The path to a archive file that will be
+ created or extracted.
+ The default root directory where files will be
+ located, optional.
+ A mapping from internal file paths to external file
+ paths, optional.
+
+ If the mapping is not null and a file is not included in the mapping,
+ the file will be skipped.
+ If the external path in the mapping is a simple file name or
+ relative file path, it will be concatenated onto the default directory,
+ if one was specified.
+ For more about how the default directory and files mapping are
+ used, see and
+ .
+
+
+
+
+ Creates a new ArchiveFileStreamContext with a list of archive files,
+ a default directory and a mapping from internal to external file paths.
+
+ A list of paths to archive files that will be
+ created or extracted.
+ The default root directory where files will be
+ located, optional.
+ A mapping from internal file paths to external file
+ paths, optional.
+
+ When creating chained archives, the list
+ should include at least enough archives to handle the entire set of
+ input files, based on the maximum archive size that is passed to the
+ ..
+ If the mapping is not null and a file is not included in the mapping,
+ the file will be skipped.
+ If the external path in the mapping is a simple file name or
+ relative file path, it will be concatenated onto the default directory,
+ if one was specified.
+ For more about how the default directory and files mapping are used,
+ see and
+ .
+
+
+
+
+ Gets or sets the list of archive files that are created or extracted.
+
+ The list of archive files that are created or extracted.
+
+
+
+ Gets or sets the default root directory where files are located.
+
+ The default root directory where files are located.
+
+ For details about how the default directory is used,
+ see and .
+
+
+
+
+ Gets or sets the mapping from internal file paths to external file paths.
+
+ A mapping from internal file paths to external file paths.
+
+ For details about how the files mapping is used,
+ see and .
+
+
+
+
+ Gets or sets a flag that can prevent extracted files from overwriting
+ newer files that already exist.
+
+ True to prevent overwriting newer files that already exist
+ during extraction; false to always extract from the archive regardless
+ of existing files.
+
+
+
+ Gets or sets a flag that enables creating or extracting an archive
+ at an offset within an existing file. (This is typically used to open
+ archive-based self-extracting packages.)
+
+ True to search an existing package file for an archive offset
+ or the end of the file;/ false to always create or open a plain
+ archive file.
+
+
+
+ Gets the name of the archive with a specified number.
+
+ The 0-based index of the archive within
+ the chain.
+ The name of the requested archive. May be an empty string
+ for non-chained archives, but may never be null.
+ This method returns the file name of the archive from the
+ list with the specified index, or an empty
+ string if the archive number is outside the bounds of the list. The
+ file name should not include any directory path.
+
+
+
+ Opens a stream for writing an archive.
+
+ The 0-based index of the archive within
+ the chain.
+ The name of the archive that was returned
+ by .
+ True if the stream should be truncated when
+ opened (if it already exists); false if an existing stream is being
+ re-opened for writing additional data.
+ Instance of the compression engine
+ doing the operations.
+ A writable Stream where the compressed archive bytes will be
+ written, or null to cancel the archive creation.
+
+ This method opens the file from the list
+ with the specified index. If the archive number is outside the bounds
+ of the list, this method returns null.
+ If the flag is set, this method
+ will seek to the start of any existing archive in the file, or to the
+ end of the file if the existing file is not an archive.
+
+
+
+
+ Closes a stream where an archive package was written.
+
+ The 0-based index of the archive within
+ the chain.
+ The name of the archive that was previously
+ returned by .
+ A stream that was previously returned by
+ and is now ready to be closed.
+
+
+
+ Opens a stream to read a file that is to be included in an archive.
+
+ The path of the file within the archive.
+ The returned attributes of the opened file,
+ to be stored in the archive.
+ The returned last-modified time of the
+ opened file, to be stored in the archive.
+ A readable Stream where the file bytes will be read from
+ before they are compressed, or null to skip inclusion of the file and
+ continue to the next file.
+
+ This method opens a file using the following logic:
+
+ If the and the mapping
+ are both null, the path is treated as relative to the current directory,
+ and that file is opened.
+ If the is not null but the
+ mapping is null, the path is treated as relative to that directory, and
+ that file is opened.
+ If the is null but the
+ mapping is not null, the path parameter is used as a key into the mapping,
+ and the resulting value is the file path that is opened, relative to the
+ current directory (or it may be an absolute path). If no mapping exists,
+ the file is skipped.
+ If both the and the
+ mapping are specified, the path parameter is used as a key into the
+ mapping, and the resulting value is the file path that is opened, relative
+ to the specified directory (or it may be an absolute path). If no mapping
+ exists, the file is skipped.
+
+
+
+
+
+ Closes a stream that has been used to read a file.
+
+ The path of the file within the archive; the same as
+ the path provided when the stream was opened.
+ A stream that was previously returned by
+ and is now ready to be closed.
+
+
+
+ Gets extended parameter information specific to the compression format
+ being used.
+
+ Name of the option being requested.
+ Parameters for the option; for per-file options,
+ the first parameter is typically the internal file path.
+ Option value, or null to use the default behavior.
+
+ This implementation does not handle any options. Subclasses may override
+ this method to allow for non-default behavior.
+
+
+
+
+ Opens the archive stream for reading.
+
+ The zero-based index of the archive to
+ open.
+ The name of the archive being opened.
+ Instance of the compression engine
+ doing the operations.
+ A stream from which archive bytes are read, or null to cancel
+ extraction of the archive.
+
+ This method opens the file from the list with
+ the specified index. If the archive number is outside the bounds of the
+ list, this method returns null.
+ If the flag is set, this method will
+ seek to the start of any existing archive in the file, or to the end of
+ the file if the existing file is not an archive.
+
+
+
+
+ Closes a stream where an archive was read.
+
+ The archive number of the stream
+ to close.
+ The name of the archive being closed.
+ The stream that was previously returned by
+ and is now ready to be closed.
+
+
+
+ Opens a stream for writing extracted file bytes.
+
+ The path of the file within the archive.
+ The uncompressed size of the file to be
+ extracted.
+ The last write time of the file to be
+ extracted.
+ A stream where extracted file bytes are to be written, or null
+ to skip extraction of the file and continue to the next file.
+
+ This method opens a file using the following logic:
+
+ If the and the mapping
+ are both null, the path is treated as relative to the current directory,
+ and that file is opened.
+ If the is not null but the
+ mapping is null, the path is treated as relative to that directory, and
+ that file is opened.
+ If the is null but the
+ mapping is not null, the path parameter is used as a key into the mapping,
+ and the resulting value is the file path that is opened, relative to the
+ current directory (or it may be an absolute path). If no mapping exists,
+ the file is skipped.
+ If both the and the
+ mapping are specified, the path parameter is used as a key into the
+ mapping, and the resulting value is the file path that is opened,
+ relative to the specified directory (or it may be an absolute path).
+ If no mapping exists, the file is skipped.
+
+ If the flag is set, the file
+ is skipped if a file currently exists in the same path with an equal
+ or newer write time.
+
+
+
+
+ Closes a stream where an extracted file was written.
+
+ The path of the file within the archive.
+ The stream that was previously returned by
+ and is now ready to be closed.
+ The attributes of the extracted file.
+ The last write time of the file.
+
+ After closing the extracted file stream, this method applies the date
+ and attributes to that file.
+
+
+
+
+ Translates an internal file path to an external file path using the
+ and the mapping, according to
+ rules documented in and
+ .
+
+ The path of the file with the archive.
+ The external path of the file, or null if there is no
+ valid translation.
+
+
+
+ Stream context used to extract a single file from an archive into a memory stream.
+
+
+
+
+ Creates a new BasicExtractStreamContext that reads from the specified archive stream.
+
+ Archive stream to read from.
+
+
+
+ Gets the stream for the extracted file, or null if no file was extracted.
+
+
+
+
+ Opens the archive stream for reading. Returns a DuplicateStream instance,
+ so the stream may be virtually opened multiple times.
+
+ The archive number to open (ignored; 0 is assumed).
+ The name of the archive being opened.
+ Instance of the compression engine doing the operations.
+ A stream from which archive bytes are read.
+
+
+
+ Does *not* close the stream. The archive stream should be managed by
+ the code that invokes the archive extraction.
+
+ The archive number of the stream to close.
+ The name of the archive being closed.
+ The stream being closed.
+
+
+
+ Opens a stream for writing extracted file bytes. The returned stream is a MemoryStream
+ instance, so the file is extracted straight into memory.
+
+ Path of the file within the archive.
+ The uncompressed size of the file to be extracted.
+ The last write time of the file.
+ A stream where extracted file bytes are to be written.
+
+
+
+ Does *not* close the file stream. The file stream is saved in memory so it can
+ be read later.
+
+ Path of the file within the archive.
+ The file stream to be closed.
+ The attributes of the extracted file.
+ The last write time of the file.
+
+
+
+ Base class for an engine capable of packing and unpacking a particular
+ compressed file format.
+
+
+
+
+ Creates a new instance of the compression engine base class.
+
+
+
+
+ Disposes the compression engine.
+
+
+
+
+ Occurs when the compression engine reports progress in packing
+ or unpacking an archive.
+
+
+
+
+
+ Gets or sets a flag indicating whether temporary files are created
+ and used during compression.
+
+ True if temporary files are used; false if compression is done
+ entirely in-memory.
+ The value of this property is true by default. Using temporary
+ files can greatly reduce the memory requirement of compression,
+ especially when compressing large archives. However, setting this property
+ to false may yield slightly better performance when creating small
+ archives. Or it may be necessary if the process does not have sufficient
+ privileges to create temporary files.
+
+
+
+ Compression level to use when compressing files.
+
+ A compression level ranging from minimum to maximum compression,
+ or no compression.
+
+
+
+ Disposes of resources allocated by the compression engine.
+
+
+
+
+ Creates an archive.
+
+ A context interface to handle opening
+ and closing of archive and file streams.
+ The paths of the files in the archive
+ (not external file paths).
+ The archive could not be
+ created.
+
+ The stream context implementation may provide a mapping from the
+ file paths within the archive to the external file paths.
+
+
+
+
+ Creates an archive or chain of archives.
+
+ A context interface to handle opening
+ and closing of archive and file streams.
+ The paths of the files in the archive (not
+ external file paths).
+ The maximum number of bytes for one
+ archive before the contents are chained to the next archive, or zero
+ for unlimited archive size.
+ The archive could not be
+ created.
+
+ The stream context implementation may provide a mapping from the file
+ paths within the archive to the external file paths.
+
+
+
+
+ Checks whether a Stream begins with a header that indicates
+ it is a valid archive.
+
+ Stream for reading the archive file.
+ True if the stream is a valid archive
+ (with no offset); false otherwise.
+
+
+
+ Gets the offset of an archive that is positioned 0 or more bytes
+ from the start of the Stream.
+
+ A stream for reading the archive.
+ The offset in bytes of the archive,
+ or -1 if no archive is found in the Stream.
+ The archive must begin on a 4-byte boundary.
+
+
+
+ Gets information about all files in an archive stream.
+
+ A stream for reading the archive.
+ Information about all files in the archive stream.
+ The stream is not a valid
+ archive.
+
+
+
+ Gets information about files in an archive or archive chain.
+
+ A context interface to handle opening
+ and closing of archive and file streams.
+ A predicate that can determine
+ which files to process, optional.
+ Information about files in the archive stream.
+ The archive provided
+ by the stream context is not valid.
+
+ The predicate takes an internal file
+ path and returns true to include the file or false to exclude it.
+
+
+
+
+ Gets the list of files in an archive Stream.
+
+ A stream for reading the archive.
+ A list of the paths of all files contained in the
+ archive.
+ The stream is not a valid
+ archive.
+
+
+
+ Gets the list of files in an archive or archive chain.
+
+ A context interface to handle opening
+ and closing of archive and file streams.
+ A predicate that can determine
+ which files to process, optional.
+ An array containing the names of all files contained in
+ the archive or archive chain.
+ The archive provided
+ by the stream context is not valid.
+
+ The predicate takes an internal file
+ path and returns true to include the file or false to exclude it.
+
+
+
+
+ Reads a single file from an archive stream.
+
+ A stream for reading the archive.
+ The path of the file within the archive
+ (not the external file path).
+ A stream for reading the extracted file, or null
+ if the file does not exist in the archive.
+ The stream is not a valid
+ archive.
+ The entire extracted file is cached in memory, so this
+ method requires enough free memory to hold the file.
+
+
+
+ Extracts files from an archive or archive chain.
+
+ A context interface to handle opening
+ and closing of archive and file streams.
+ An optional predicate that can determine
+ which files to process.
+ The archive provided
+ by the stream context is not valid.
+
+ The predicate takes an internal file
+ path and returns true to include the file or false to exclude it.
+
+
+
+
+ Called by sublcasses to distribute a packing or unpacking progress
+ event to listeners.
+
+ Event details.
+
+
+
+ Disposes of resources allocated by the compression engine.
+
+ If true, the method has been called
+ directly or indirectly by a user's code, so managed and unmanaged
+ resources will be disposed. If false, the method has been called by
+ the runtime from inside the finalizer, and only unmanaged resources
+ will be disposed.
+
+
+
+ Compresion utility function for converting old-style
+ date and time values to a DateTime structure.
+
+
+
+
+ Compresion utility function for converting a DateTime structure
+ to old-style date and time values.
+
+
+
+
+ Specifies the compression level ranging from minimum compresion to
+ maximum compression, or no compression at all.
+
+
+ Although only four values are enumerated, any integral value between
+ and can also be used.
+
+
+
+ Do not compress files, only store.
+
+
+ Minimum compression; fastest.
+
+
+ A compromize between speed and compression efficiency.
+
+
+ Maximum compression; slowest.
+
+
+
+ Wraps a source stream and carries additional items that are disposed when the stream is closed.
+
+
+
+
+ Creates a new a cargo stream.
+
+ source of the stream
+ List of additional items that are disposed when the stream is closed.
+ The order of the list is the order in which the items are disposed.
+
+
+
+ Gets the source stream of the cargo stream.
+
+
+
+
+ Gets the list of additional items that are disposed when the stream is closed.
+ The order of the list is the order in which the items are disposed. The contents can be modified any time.
+
+
+
+
+ Gets a value indicating whether the source stream supports reading.
+
+ true if the stream supports reading; otherwise, false.
+
+
+
+ Gets a value indicating whether the source stream supports writing.
+
+ true if the stream supports writing; otherwise, false.
+
+
+
+ Gets a value indicating whether the source stream supports seeking.
+
+ true if the stream supports seeking; otherwise, false.
+
+
+
+ Gets the length of the source stream.
+
+
+
+
+ Gets or sets the position of the source stream.
+
+
+
+
+ Flushes the source stream.
+
+
+
+
+ Sets the length of the source stream.
+
+ The desired length of the stream in bytes.
+
+
+
+ Closes the source stream and also closes the additional objects that are carried.
+
+
+
+
+ Reads from the source stream.
+
+ An array of bytes. When this method returns, the buffer
+ contains the specified byte array with the values between offset and
+ (offset + count - 1) replaced by the bytes read from the source.
+ The zero-based byte offset in buffer at which to begin
+ storing the data read from the stream.
+ The maximum number of bytes to be read from the stream.
+ The total number of bytes read into the buffer. This can be less
+ than the number of bytes requested if that many bytes are not currently available,
+ or zero (0) if the end of the stream has been reached.
+
+
+
+ Writes to the source stream.
+
+ An array of bytes. This method copies count
+ bytes from buffer to the stream.
+ The zero-based byte offset in buffer at which
+ to begin copying bytes to the stream.
+ The number of bytes to be written to the stream.
+
+
+
+ Changes the position of the source stream.
+
+ A byte offset relative to the origin parameter.
+ A value of type SeekOrigin indicating the reference
+ point used to obtain the new position.
+ The new position within the stream.
+
+
+
+ Duplicates a source stream by maintaining a separate position.
+
+
+ WARNING: duplicate streams are not thread-safe with respect to each other or the original stream.
+ If multiple threads use duplicate copies of the same stream, they must synchronize for any operations.
+
+
+
+
+ Creates a new duplicate of a stream.
+
+ source of the duplicate
+
+
+
+ Gets the original stream that was used to create the duplicate.
+
+
+
+
+ Gets a value indicating whether the source stream supports reading.
+
+ true if the stream supports reading; otherwise, false.
+
+
+
+ Gets a value indicating whether the source stream supports writing.
+
+ true if the stream supports writing; otherwise, false.
+
+
+
+ Gets a value indicating whether the source stream supports seeking.
+
+ true if the stream supports seeking; otherwise, false.
+
+
+
+ Gets the length of the source stream.
+
+
+
+
+ Gets or sets the position of the current stream,
+ ignoring the position of the source stream.
+
+
+
+
+ Retrieves the original stream from a possible duplicate stream.
+
+ Possible duplicate stream.
+ If the stream is a DuplicateStream, returns
+ the duplicate's source; otherwise returns the same stream.
+
+
+
+ Flushes the source stream.
+
+
+
+
+ Sets the length of the source stream.
+
+ The desired length of the stream in bytes.
+
+
+
+ Closes the underlying stream, effectively closing ALL duplicates.
+
+
+
+
+ Reads from the source stream while maintaining a separate position
+ and not impacting the source stream's position.
+
+ An array of bytes. When this method returns, the buffer
+ contains the specified byte array with the values between offset and
+ (offset + count - 1) replaced by the bytes read from the current source.
+ The zero-based byte offset in buffer at which to begin
+ storing the data read from the current stream.
+ The maximum number of bytes to be read from the current stream.
+ The total number of bytes read into the buffer. This can be less
+ than the number of bytes requested if that many bytes are not currently available,
+ or zero (0) if the end of the stream has been reached.
+
+
+
+ Writes to the source stream while maintaining a separate position
+ and not impacting the source stream's position.
+
+ An array of bytes. This method copies count
+ bytes from buffer to the current stream.
+ The zero-based byte offset in buffer at which
+ to begin copying bytes to the current stream.
+ The number of bytes to be written to the
+ current stream.
+
+
+
+ Changes the position of this stream without impacting the
+ source stream's position.
+
+ A byte offset relative to the origin parameter.
+ A value of type SeekOrigin indicating the reference
+ point used to obtain the new position.
+ The new position within the current stream.
+
+
+
+ This interface provides the methods necessary for the
+ to open and close streams for archives
+ and files. The implementor of this interface can use any kind of logic
+ to determine what kind of streams to open and where.
+
+
+
+
+ Gets the name of the archive with a specified number.
+
+ The 0-based index of the archive
+ within the chain.
+ The name of the requested archive. May be an empty string
+ for non-chained archives, but may never be null.
+ The archive name is the name stored within the archive, used for
+ identification of the archive especially among archive chains. That
+ name is often, but not necessarily the same as the filename of the
+ archive package.
+
+
+
+ Opens a stream for writing an archive package.
+
+ The 0-based index of the archive within
+ the chain.
+ The name of the archive that was returned
+ by .
+ True if the stream should be truncated when
+ opened (if it already exists); false if an existing stream is being
+ re-opened for writing additional data.
+ Instance of the compression engine
+ doing the operations.
+ A writable Stream where the compressed archive bytes will be
+ written, or null to cancel the archive creation.
+
+ If this method returns null, the archive engine will throw a
+ FileNotFoundException.
+
+
+
+
+ Closes a stream where an archive package was written.
+
+ The 0-based index of the archive within
+ the chain.
+ The name of the archive that was previously
+ returned by
+ .
+ A stream that was previously returned by
+ and is now ready to be closed.
+
+ If there is another archive package in the chain, then after this stream
+ is closed a new stream will be opened.
+
+
+
+
+ Opens a stream to read a file that is to be included in an archive.
+
+ The path of the file within the archive. This is often,
+ but not necessarily, the same as the relative path of the file outside
+ the archive.
+ Returned attributes of the opened file, to be
+ stored in the archive.
+ Returned last-modified time of the opened file,
+ to be stored in the archive.
+ A readable Stream where the file bytes will be read from before
+ they are compressed, or null to skip inclusion of the file and continue to
+ the next file.
+
+
+
+ Closes a stream that has been used to read a file.
+
+ The path of the file within the archive; the same as
+ the path provided
+ when the stream was opened.
+ A stream that was previously returned by
+ and is now ready to be closed.
+
+
+
+ Gets extended parameter information specific to the compression
+ format being used.
+
+ Name of the option being requested.
+ Parameters for the option; for per-file options,
+ the first parameter is typically the internal file path.
+ Option value, or null to use the default behavior.
+
+ This method provides a way to set uncommon options during packaging, or a
+ way to handle aspects of compression formats not supported by the base library.
+ For example, this may be used by the zip compression library to
+ specify different compression methods/levels on a per-file basis.
+ The available option names, parameters, and expected return values
+ should be documented by each compression library.
+
+
+
+
+ This interface provides the methods necessary for the to open
+ and close streams for archives and files. The implementor of this interface can use any
+ kind of logic to determine what kind of streams to open and where
+
+
+
+
+ Opens the archive stream for reading.
+
+ The zero-based index of the archive to open.
+ The name of the archive being opened.
+ Instance of the compression engine doing the operations.
+ A stream from which archive bytes are read, or null to cancel extraction
+ of the archive.
+
+ When the first archive in a chain is opened, the name is not yet known, so the
+ provided value will be an empty string. When opening further archives, the
+ provided value is the next-archive name stored in the previous archive. This
+ name is often, but not necessarily, the same as the filename of the archive
+ package to be opened.
+ If this method returns null, the archive engine will throw a
+ FileNotFoundException.
+
+
+
+
+ Closes a stream where an archive package was read.
+
+ The archive number of the stream to close.
+ The name of the archive being closed.
+ The stream that was previously returned by
+ and is now ready to be closed.
+
+
+
+ Opens a stream for writing extracted file bytes.
+
+ The path of the file within the archive. This is often, but
+ not necessarily, the same as the relative path of the file outside the archive.
+ The uncompressed size of the file to be extracted.
+ The last write time of the file to be extracted.
+ A stream where extracted file bytes are to be written, or null to skip
+ extraction of the file and continue to the next file.
+
+ The implementor may use the path, size and date information to dynamically
+ decide whether or not the file should be extracted.
+
+
+
+
+ Closes a stream where an extracted file was written.
+
+ The path of the file within the archive.
+ The stream that was previously returned by
+ and is now ready to be closed.
+ The attributes of the extracted file.
+ The last write time of the file.
+
+ The implementor may wish to apply the attributes and date to the newly-extracted file.
+
+
+
+
+ Wraps a source stream and offsets all read/write/seek calls by a given value.
+
+
+ This class is used to trick archive an packing or unpacking process
+ into reading or writing at an offset into a file, primarily for
+ self-extracting packages.
+
+
+
+
+ Creates a new OffsetStream instance from a source stream
+ and using a specified offset.
+
+ Underlying stream for which all calls will be offset.
+ Positive or negative number of bytes to offset.
+
+
+
+ Gets the underlying stream that this OffsetStream calls into.
+
+
+
+
+ Gets the number of bytes to offset all calls before
+ redirecting to the underlying stream.
+
+
+
+
+ Gets a value indicating whether the source stream supports reading.
+
+ true if the stream supports reading; otherwise, false.
+
+
+
+ Gets a value indicating whether the source stream supports writing.
+
+ true if the stream supports writing; otherwise, false.
+
+
+
+ Gets a value indicating whether the source stream supports seeking.
+
+ true if the stream supports seeking; otherwise, false.
+
+
+
+ Gets the effective length of the stream, which is equal to
+ the length of the source stream minus the offset.
+
+
+
+
+ Gets or sets the effective position of the stream, which
+ is equal to the position of the source stream minus the offset.
+
+
+
+
+ Reads a sequence of bytes from the source stream and advances
+ the position within the stream by the number of bytes read.
+
+ An array of bytes. When this method returns, the buffer
+ contains the specified byte array with the values between offset and
+ (offset + count - 1) replaced by the bytes read from the current source.
+ The zero-based byte offset in buffer at which to begin
+ storing the data read from the current stream.
+ The maximum number of bytes to be read from the current stream.
+ The total number of bytes read into the buffer. This can be less
+ than the number of bytes requested if that many bytes are not currently available,
+ or zero (0) if the end of the stream has been reached.
+
+
+
+ Writes a sequence of bytes to the source stream and advances the
+ current position within this stream by the number of bytes written.
+
+ An array of bytes. This method copies count
+ bytes from buffer to the current stream.
+ The zero-based byte offset in buffer at which
+ to begin copying bytes to the current stream.
+ The number of bytes to be written to the
+ current stream.
+
+
+
+ Reads a byte from the stream and advances the position within the
+ source stream by one byte, or returns -1 if at the end of the stream.
+
+ The unsigned byte cast to an Int32, or -1 if at the
+ end of the stream.
+
+
+
+ Writes a byte to the current position in the source stream and
+ advances the position within the stream by one byte.
+
+ The byte to write to the stream.
+
+
+
+ Flushes the source stream.
+
+
+
+
+ Sets the position within the current stream, which is
+ equal to the position within the source stream minus the offset.
+
+ A byte offset relative to the origin parameter.
+ A value of type SeekOrigin indicating
+ the reference point used to obtain the new position.
+ The new position within the current stream.
+
+
+
+ Sets the effective length of the stream, which is equal to
+ the length of the source stream minus the offset.
+
+ The desired length of the
+ current stream in bytes.
+
+
+
+ Closes the underlying stream.
+
+
+
+
+ Distribution specific strings.
+
+
+
+
+ News URL for the distribution.
+
+
+
+
+ Short product name for the distribution.
+
+
+
+
+ Support URL for the distribution.
+
+
+
+
+ Telemetry URL format for the distribution.
+
+
+
+
+ VS Extensions Landing page Url for the distribution.
+
+
+
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.Resources.dll b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.Resources.dll
new file mode 100644
index 0000000..3a91427
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.Resources.dll differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.Resources.xml b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.Resources.xml
new file mode 100644
index 0000000..40396a0
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.Resources.xml
@@ -0,0 +1,541 @@
+
+
+
+ Microsoft.Deployment.Resources
+
+
+
+
+ A subclass of Resource which provides specific methods for manipulating the resource data.
+
+
+ The resource is of type (RT_GROUPICON).
+
+
+
+
+ Creates a new BitmapResource object without any data. The data can be later loaded from a file.
+
+ Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".
+ Locale of the resource
+
+
+
+ Creates a new BitmapResource object with data. The data can be later saved to a file.
+
+ Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".
+ Locale of the resource
+ Raw resource data
+
+
+
+ Reads the bitmap from a .bmp file.
+
+ Path to a bitmap file (.bmp).
+
+
+
+ A subclass of Resource which provides specific methods for manipulating the resource data.
+
+
+ The resource is of type (RT_GROUPICON).
+
+
+
+
+ Creates a new GroupIconResource object without any data. The data can be later loaded from a file.
+
+ Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".
+ Locale of the resource
+
+
+
+ Creates a new GroupIconResource object with data. The data can be later saved to a file.
+
+ Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".
+ Locale of the resource
+ Raw resource data
+
+
+
+ Gets or sets the raw data of the resource. The data is in the format of the RT_GROUPICON resource structure.
+
+
+
+
+ Enumerates the the icons in the icon group.
+
+
+
+
+ Reads the icon group from a .ico file.
+
+ Path to an icon file (.ico).
+
+
+
+ Represents a Win32 resource which can be loaded from and saved to a PE file.
+
+
+
+
+ Creates a new Resource object without any data. The data can be later loaded from a file.
+
+ Type of the resource; may be one of the ResourceType constants or a user-defined type.
+ Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".
+ Locale of the resource
+
+
+
+ Creates a new Resource object with data. The data can be later saved to a file.
+
+ Type of the resource; may be one of the ResourceType constants or a user-defined type.
+ Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".
+ Locale of the resource
+ Raw resource data
+
+
+
+ Gets or sets the type of the resource. This may be one of the ResourceType constants
+ or a user-defined type name.
+
+
+
+
+ Gets or sets the name of the resource. For a numeric resource identifier, the decimal number is prefixed with a "#".
+
+
+
+
+ Gets or sets the locale of the resource.
+
+
+
+
+ Gets or sets the raw data of the resource.
+
+
+
+
+ Loads the resource data from a file. The file is searched for a resource with matching type, name, and locale.
+
+ Win32 PE file containing the resource
+
+
+
+ Saves the resource to a file. Any existing resource data with matching type, name, and locale is overwritten.
+
+ Win32 PE file to contain the resource
+
+
+
+ Tests if type, name, and locale of this Resource object match another Resource object.
+
+ Resource object to be compared
+ True if the objects represent the same resource; false otherwise.
+
+
+
+ Gets a hash code for this Resource object.
+
+ Hash code generated from the resource type, name, and locale.
+
+
+
+ Allows reading and editing of resource data in a Win32 PE file.
+
+
+ To use this class:
+ Create a new ResourceCollection
+ Locate resources for the collection by calling one of the methods
+ Load data of one or more s from a file by calling the method of the
+ Resource class, or load them all at once (more efficient) with the method of the ResourceCollection.
+ Read and/or edit data of the individual Resource objects using the methods on that class.
+ Save data of one or more s to a file by calling the method of the
+ Resource class, or save them all at once (more efficient) with the method of the ResourceCollection.
+
+
+
+
+
+ Creates a new, empty ResourceCollection.
+
+
+
+
+ Locates all resources in a file, including all resource types and languages. For each located resource,
+ a instance (or subclass) is added to the collection.
+
+ The file to be searched for resources.
+ resources could not be read from the file
+
+
+
+ Locates all resources in a file of a given type, including all languages. For each located resource,
+ a instance (or subclass) is added to the collection.
+
+ The file to be searched for resources.
+ The type of resource to search for; may be one of the ResourceType constants or a user-defined type.
+ resources could not be read from the file
+
+
+
+ Locates all resources in a file of a given type and language. For each located resource,
+ a instance (or subclass) is added to the collection.
+
+ The file to be searched for resources.
+ The type of resource to search for; may be one of the ResourceType constants or a user-defined type.
+ The name of the resource to search for.
+ resources could not be read from the file
+
+
+
+ For all resources in the collection, loads their data from a resource file.
+
+ The file from which resources are loaded.
+
+
+
+ For all resources in the collection, saves their data to a resource file.
+
+ The file to which resources are saved.
+
+
+
+ Gets or sets the element at the specified index.
+
+
+
+
+ Adds a new item to the collection.
+
+ The Resource to add.
+
+
+
+ Removes an item to the collection.
+
+ The Resource to remove.
+
+
+
+ Gets the index of an item in the collection.
+
+ The Resource to search for.
+ The index of the item, or -1 if not found.
+
+
+
+ Inserts a item into the collection.
+
+ The insertion index.
+ The Resource to insert.
+
+
+
+ Tests if the collection contains an item.
+
+ The Resource to search for.
+ true if the item is found; false otherwise
+
+
+
+ Copies the collection into an array.
+
+ The array to copy into.
+ The starting index in the destination array.
+
+
+
+ Removes all resources from the collection.
+
+
+
+
+ Gets the number of resources in the collection.
+
+
+
+
+ Gets an enumerator over all resources in the collection.
+
+
+
+
+
+ Represents either a standard integer resource type or a custom resource type name.
+
+
+
+
+ Creates a new resource type from a string resource name.
+
+ String resource name,
+ or an integer resource type prefixed by a #.
+
+
+
+ Creates a new integer resource type.
+
+ Integer value of a well-known resource type.
+
+
+
+ Gets a flag indicating whether the resource type is an integer type.
+
+
+
+
+ Gets the integer value of the resource type, or -1 if the resource type is not an integer.
+
+
+
+
+ Gets a string representation of the resource type.
+
+ The custom resource name, or the name of a well-known resource type.
+
+
+
+ Tests whether one resource type equals another object.
+
+ Other object.
+ True if equal, else false.
+
+
+
+ Tests whether one resource type equals another.
+
+ Other resource type.
+ True if equal, else false.
+
+
+
+ Gets a hash code suitable for using the resource type as a dictionary key.
+
+ Hash code based on the resource type string.
+
+
+
+ Implicitly converts a string to a ResourceType.
+
+ String resource type to convert.
+ ResourceType object.
+
+
+
+ Explicitly converts a ResourceType to a string.
+
+ ResourceType object to convert.
+ The resource type string.
+
+ Unlike , this conversion does not return
+ the common name of well-known integer resource types. Therefore,
+ the returned string is suitable for passing directly to Win32
+ resource APIs that accept resource type strings.
+
+
+
+
+ Identifies build types of a versioned file.
+
+
+
+
+ Identifies the type of a versioned file.
+
+
+
+
+ Identifies the sub-type of a versioned file.
+
+
+
+
+ A subclass of Resource which provides specific methods for manipulating the resource data.
+
+
+ The resource is of type (RT_VERSION).
+
+
+
+
+ Creates a new VersionResource object without any data. The data can be later loaded from a file.
+
+ Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".
+ Locale of the resource
+
+
+
+ Creates a new VersionResource object with data. The data can be later saved to a file.
+
+ Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".
+ Locale of the resource
+ Raw resource data
+
+
+
+ Gets or sets the raw data of the resource. The data is in the format of the VS_VERSIONINFO structure.
+
+
+
+
+ Gets or sets the binary locale-independent file version of the version resource.
+
+
+
+
+ Gets or sets the binary locale-independent product version of the version resource.
+
+
+
+
+ Gets or sets a bitmask that specifies the build types of the file.
+
+
+
+
+ Gets or sets the general type of the file.
+
+
+
+
+ Gets or sets the specific type of the file.
+
+
+
+
+ Gets or sets the binary creation date and time.
+
+
+
+
+ Gets the string table for a specific locale, or null if there is no table for that locale.
+
+
+
+
+
+
+ Adds a new version string table for a locale.
+
+ Locale of the table
+ The new string table, or the existing table if the locale already existed.
+
+
+
+ Removes a version string table for a locale.
+
+ Locale of the table
+
+
+
+ Checks if a version string table exists for a given locale.
+
+ Locale to search for
+ True if a string table was found for the locale; false otherwise.
+
+
+
+ Gets the number string tables in the version resource.
+
+
+
+
+ Removes all string tables from the version resource.
+
+
+
+
+ Copies the version string tables to an array, starting at a particular array index.
+
+ The one-dimensional Array that is the destination of the elements copied
+ from the collection. The Array must have zero-based indexing.
+ The zero-based index in array at which copying begins.
+
+
+
+ Gets an enumerator that can iterate over the version string tables in the collection.
+
+ An enumerator that returns objects.
+
+
+
+ Gets an enumerator that can iterate over the version string tables in the collection.
+
+ An enumerator that returns objects.
+
+
+
+ Represents a string table of a file version resource.
+
+
+
+
+ Gets the locale (LCID) of the string table.
+
+
+
+
+ Gets or sets a string value.
+
+ Name of the string.
+
+
+
+ Removes all strings from the string table.
+
+
+
+
+ Gets a collection of all the names of the strings in the table.
+
+
+
+
+ Gets a collection of all the values in the table.
+
+
+
+
+ Gets the number of strings in the table.
+
+
+
+
+ Gets an enumeration over all strings in the table.
+
+ Enumeration of string name and value pairs
+
+
+
+ Distribution specific strings.
+
+
+
+
+ News URL for the distribution.
+
+
+
+
+ Short product name for the distribution.
+
+
+
+
+ Support URL for the distribution.
+
+
+
+
+ Telemetry URL format for the distribution.
+
+
+
+
+ VS Extensions Landing page Url for the distribution.
+
+
+
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.Linq.dll b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.Linq.dll
new file mode 100644
index 0000000..b11dfc1
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.Linq.dll differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.Linq.xml b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.Linq.xml
new file mode 100644
index 0000000..cfe9d97
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.Linq.xml
@@ -0,0 +1,464 @@
+
+
+
+ Microsoft.Deployment.WindowsInstaller.Linq
+
+
+
+
+ Apply to a subclass of QRecord to indicate the name of
+ the table the record type is to be used with.
+
+
+ If this attribute is not used on a record type, the default
+ table name will be derived from the record type name. (An
+ optional underscore suffix is stripped.)
+
+
+
+
+ Creates a new DatabaseTableAttribute for the specified table.
+
+ name of the table associated with the record type
+
+
+
+ Gets or sets the table associated with the record type.
+
+
+
+
+ Apply to a property on a subclass of QRecord to indicate
+ the name of the column the property is to be associated with.
+
+
+ If this attribute is not used on a property, the default
+ column name will be the same as the property name.
+
+
+
+
+ Creates a new DatabaseColumnAttribute which maps a
+ record property to a column.
+
+ name of the column associated with the property
+
+
+
+ Gets or sets the column associated with the record property.
+
+
+
+
+ Allows any Database instance to be converted into a queryable database.
+
+
+
+
+ Converts any Database instance into a queryable database.
+
+
+ Queryable database instance that operates on the same
+ MSI handle.
+
+ This extension method is meant for convenient on-the-fly conversion.
+ If the existing database instance already happens to be a QDatabase,
+ then it is returned unchanged. Otherwise since the new database
+ carries the same MSI handle, only one of the instances needs to be
+ closed, not both.
+
+
+
+
+ Queryable MSI database - extends the base Database class with
+ LINQ query functionality along with predefined entity types
+ for common tables.
+
+
+
+
+ Opens an existing database in read-only mode.
+
+ Path to the database file.
+ the database could not be created/opened
+
+ Because this constructor initiates database access, it cannot be used with a
+ running installation.
+ The Database object should be d after use.
+ The finalizer will close the handle if it is still open, however due to the nondeterministic
+ nature of finalization it is best that the handle be closed manually as soon as it is no
+ longer needed, as leaving lots of unused handles open can degrade performance.
+
+
+
+
+ Opens an existing database with another database as output.
+
+ Path to the database to be read.
+ Open mode for the database
+ Database object representing the created or opened database
+ the database could not be created/opened
+
+ When a database is opened as the output of another database, the summary information stream
+ of the output database is actually a read-only mirror of the original database and thus cannot
+ be changed. Additionally, it is not persisted with the database. To create or modify the
+ summary information for the output database it must be closed and re-opened.
+ The returned Database object should be d after use.
+ The finalizer will close the handle if it is still open, however due to the nondeterministic
+ nature of finalization it is best that the handle be closed manually as soon as it is no
+ longer needed, as leaving lots of unused handles open can degrade performance.
+
+
+
+
+ Opens an existing database or creates a new one.
+
+ Path to the database file. If an empty string
+ is supplied, a temporary database is created that is not persisted.
+ Open mode for the database
+ the database could not be created/opened
+
+ To make and save changes to a database first open the database in transaction,
+ create or, or direct mode. After making the changes, always call the Commit method
+ before closing the database handle. The Commit method flushes all buffers.
+ Always call the Commit method on a database that has been opened in direct
+ mode before closing the database. Failure to do this may corrupt the database.
+ Because this constructor initiates database access, it cannot be used with a
+ running installation.
+ The Database object should be d after use.
+ The finalizer will close the handle if it is still open, however due to the nondeterministic
+ nature of finalization it is best that the handle be closed manually as soon as it is no
+ longer needed, as leaving lots of unused handles open can degrade performance.
+
+
+
+
+ Creates a new database from an MSI handle.
+
+ Native MSI database handle.
+ True if the handle should be closed
+ when the database object is disposed
+ Path of the database file, if known
+ Mode the handle was originally opened in
+
+
+
+ Gets or sets a log where all MSI SQL queries are written.
+
+
+ The log can be useful for debugging, or simply to watch the LINQ magic in action.
+
+
+
+
+ Gets a queryable table from the datbaase.
+
+ name of the table
+
+
+ Queryable standard table with predefined specialized record type.
+
+
+ Queryable standard table with predefined specialized record type.
+
+
+ Queryable standard table with predefined specialized record type.
+
+
+ Queryable standard table with predefined specialized record type.
+
+
+ Queryable standard table with predefined specialized record type.
+
+
+ Queryable standard table with predefined specialized record type.
+
+
+ Queryable standard table with predefined specialized record type.
+
+
+ Queryable standard table with predefined specialized record type.
+
+
+ Queryable standard table with predefined specialized record type.
+
+
+ Queryable standard table with predefined specialized record type.
+
+
+ Queryable standard table with predefined specialized record type.
+
+
+ Queryable standard table with predefined specialized record type.
+
+
+ Queryable standard table with predefined specialized record type.
+
+
+ Queryable standard table with predefined specialized record type.
+
+
+ Queryable standard table with predefined specialized record type.
+
+
+ Queryable standard table with predefined specialized record type.
+
+
+
+ Generic record entity for queryable databases,
+ and base for strongly-typed entity subclasses.
+
+
+ Several predefined specialized subclasses are provided for common
+ standard tables. Subclasses for additional standard tables
+ or custom tables are not necessary, but they are easy to create
+ and make the coding experience much nicer.
+ When creating subclasses, the following attributes may be
+ useful: ,
+
+
+
+
+
+ Do not call. Use QTable.NewRecord() instead.
+
+
+ Subclasses must also provide a public parameterless constructor.
+ QRecord constructors are only public due to implementation
+ reasons (to satisfy the new() constraint on the QTable generic
+ class). They are not intended to be called by user code other than
+ a subclass constructor. If the constructor is invoked directly,
+ the record instance will not be properly initialized (associated
+ with a database table) and calls to methods on the instance
+ will throw a NullReferenceException.
+
+
+
+
+
+ Gets the number of fields in the record.
+
+
+
+
+ Gets or sets a record field.
+
+ column name of the field
+
+ Setting a field value will automatically update the database.
+
+
+
+
+ Gets or sets a record field.
+
+ zero-based column index of the field
+
+ Setting a field value will automatically update the database.
+
+
+
+
+ Used by subclasses to get a field as an integer.
+
+ zero-based column index of the field
+
+
+
+ Used by subclasses to get a field as a nullable integer.
+
+ zero-based column index of the field
+
+
+
+ Dumps all record fields to a string.
+
+
+
+
+ Update multiple fields in the record (and the database).
+
+ column names of fields to update
+ new values for each field being updated
+
+
+
+ Update multiple fields in the record (and the database).
+
+ column indexes of fields to update
+ new values for each field being updated
+
+ The record (primary keys) must already exist in the table.
+ Updating primary key fields is not yet implemented; use Delete()
+ and Insert() instead.
+
+
+
+
+ Inserts the record in the database.
+
+
+ The record (primary keys) may not already exist in the table.
+ Use to get a new
+ record. Prmary keys and all required fields
+ must be filled in before insertion.
+
+
+
+
+ Inserts the record into the table.
+
+ true if the record is temporarily
+ inserted, to be visible only as long as the database is open
+
+ The record (primary keys) may not already exist in the table.
+ Use to get a new
+ record. Prmary keys and all required fields
+ must be filled in before insertion.
+
+
+
+
+ Deletes the record from the table if it exists.
+
+
+
+
+ Not yet implemented.
+
+
+
+
+ Not yet implemented.
+
+
+
+
+ Not yet implemented.
+
+
+
+
+ Not yet implemented.
+
+
+
+
+ Not yet implemented.
+
+
+
+
+ Not yet implemented.
+
+
+
+
+ Not yet implemented.
+
+
+
+
+ Represents one table in a LINQ-queryable Database.
+
+ type that represents one record in the table
+
+ This class is the primary gateway to all LINQ to MSI query functionality.
+ The TRecord generic parameter may be the general
+ class, or a specialized subclass of QRecord.
+
+
+
+
+ Infers the name of the table this instance will be
+ associated with.
+
+ table name
+
+ The table name is retrieved from a DatabaseTableAttribute
+ on the record type if it exists; otherwise the name is
+ derived from the name of the record type itself.
+ (An optional underscore suffix on the record type name is dropped.)
+
+
+
+
+ Creates a new QTable, inferring the table name
+ from the name of the record type parameter.
+
+ database that contains the table
+
+
+
+ Creates a new QTable with an explicit table name.
+
+ database that contains the table
+ name of the table
+
+
+
+ Gets schema information about the table.
+
+
+
+
+ Gets the database this table is associated with.
+
+
+
+
+ Enumerates over all records in the table.
+
+
+
+
+
+ Creates a new record that can be inserted into this table.
+
+ a record with all fields initialized to null
+
+ Primary keys and required fields must be filled in with
+ non-null values before the record can be inserted.
+ The record is tied to this table in this database;
+ it cannot be inserted into another table or database.
+
+
+
+
+ Implements the LINQ to MSI query functionality.
+
+ the result type of the current query --
+ either some kind of QRecord, or some projection of record data
+
+
+
+ Distribution specific strings.
+
+
+
+
+ News URL for the distribution.
+
+
+
+
+ Short product name for the distribution.
+
+
+
+
+ Support URL for the distribution.
+
+
+
+
+ Telemetry URL format for the distribution.
+
+
+
+
+ VS Extensions Landing page Url for the distribution.
+
+
+
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.Package.dll b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.Package.dll
new file mode 100644
index 0000000..a17ac82
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.Package.dll differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.Package.xml b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.Package.xml
new file mode 100644
index 0000000..e94bbbe
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.Package.xml
@@ -0,0 +1,729 @@
+
+
+
+ Microsoft.Deployment.WindowsInstaller.Package
+
+
+
+
+ Handles status messages generated when operations are performed on an
+ or .
+
+
+ installPackage.Message += new InstallPackageMessageHandler(Console.WriteLine);
+
+
+
+
+ Provides access to powerful build, maintenance, and analysis operations on an
+ installation package (.MSI or .MSM).
+
+
+
+
+ Creates a new InstallPackage object. The file source directory and working
+ directory are the same as the location as the package file.
+
+ Path to the install package to be created or opened
+ Open mode for the database
+
+
+
+ Creates a new InstallPackage object, specifying an alternate file source
+ directory and/or working directory.
+
+ Path to the install package to be created or opened
+ Open mode for the database
+ Location to obtain source files and cabinets when extracting
+ or updating files in the working directory. This is often the location of an original
+ copy of the package that is not meant to be modified. If this parameter is null, it
+ defaults to the directory of .
+ Location where files will be extracted to/updated from. Also
+ the location where a temporary folder is created during some operations. If this
+ parameter is null, it defaults to the directory of .
+ If the source location is different than the working directory, then
+ no files will be modified at the source location.
+
+
+
+
+ Handle this event to receive status messages when operations are performed
+ on the install package.
+
+
+ installPackage.Message += new InstallPackageMessageHandler(Console.WriteLine);
+
+
+
+
+ Sends a message to the event-handler.
+
+ Message string, containing 0 or more format items
+ Items to be formatted
+
+
+
+ Gets or sets the location to obtain source files and cabinets when
+ extracting or updating files in the working directory. This is often
+ the location of an original copy of the package that is not meant
+ to be modified.
+
+
+
+
+ Gets or sets the location where files will be extracted to/updated from. Also
+ the location where a temporary folder is created during some operations.
+
+
+
+
+ Gets the list of file keys that have the specified long file name.
+
+ File name to search for (case-insensitive)
+ Array of file keys, or a 0-length array if none are found
+
+
+
+ Gets the list of file keys whose long file names match a specified
+ regular-expression search pattern.
+
+ Regular expression search pattern
+ Array of file keys, or a 0-length array if none are found
+
+
+
+ Extracts all files to the . The files are extracted
+ to the relative directory matching their .
+
+ If any files have the uncompressed attribute, they will be copied
+ from the .
+
+
+
+ Extracts a specified list of files to the . The files
+ are extracted to the relative directory matching their .
+
+ List of file key strings to extract
+ If any files have the uncompressed attribute, they will be copied
+ from the .
+
+
+
+ Provides a key (filename) / value (full path) pair where the Binary files can be worked with
+
+ The path to search for files in. This is NOT recursive.
+ The explicit names to search for. All will be returned if nothing specified.
+ A of the filename/fullpath key value pairs of the directory given.
+
+
+
+ Updates the install package with new files from the . The
+ files must be in the relative directory matching their .
+ This method re-compresses and packages the files if necessary, and also updates the
+ following data: File.FileSize, File.Version, File.Language, MsiFileHash.HashPart*
+
+
+ The cabinet compression level used during re-cabbing can be configured with the
+ property.
+
+
+
+
+ Updates the install package with new files from the . The
+ files must be in the relative directory matching their .
+ This method re-compresses and packages the files if necessary, and also updates the
+ following data: File.FileSize, File.Version, File.Language, MsiFileHash.HashPart?.
+
+ List of file key strings to update
+
+ This method does not change the media structure of the package, so it may require extracting
+ and re-compressing a large cabinet just to update one file.
+
The cabinet compression level used during re-cabbing can be configured with the
+ property.
+
+
+
+
+ Consolidates a package by combining and re-compressing all files into a single
+ internal or external cabinet.
+
+
+ If an installation package was built from many merge modules, this
+ method can somewhat decrease package size, complexity, and installation time.
+
This method will also convert a package with all or mostly uncompressed
+ files into a package where all files are compressed.
+
If the package contains any not-yet-applied binary file patches (for
+ example, a package generated by a call to ) then
+ this method will apply the patches before compressing the updated files.
+
This method edits the database summary information and the File, Media
+ and Patch tables as necessary to maintain a valid installation package.
+
The cabinet compression level used during re-cabbing can be configured with the
+ property.
+
+
+
+
+ Clears the +R flag on the specified files in the directory of your choice.
+
+
+ This base path is prepended to each item in the collection.
+
+
+ A collection of filePaths. If the objects within override ToString to return a valid path relative to
+ this method will work.
+
+
+
+
+ Rebuilds the cached directory structure information accessed by the
+ and properties. This
+ should be done after modifying the File, Component, or Directory
+ tables, or else the cached information may no longer be accurate.
+
+
+
+
+ Gets a mapping from Directory keys to source/target paths.
+
+
+ If the Directory table is modified, this mapping
+ will be outdated until you call .
+
+
+
+
+ Gets a mapping from File keys to source/target paths.
+
+
+ If the File, Component, or Directory tables are modified, this mapping
+ may be outdated until you call .
+
+
+
+
+ Gets or sets the compression level used by
+ and .
+
+
+ If the Directory table is modified, this mapping will be outdated
+ until you close and reopen the install package.
+
+
+
+
+ Applies a patch package to the database, resulting in an installation package that
+ has the patch built-in.
+
+ The patch package to be applied
+ Optional name of the specific transform to apply.
+ This parameter is usually left null, which causes the patch to be searched for
+ a transform that is valid to apply to this database.
+
+ If the patch contains any binary file patches, they will not immediately be applied
+ to the target files, though they will at installation time.
+
After calling this method you can use to apply
+ the file patches immediately and also discard any outdated files from the package.
+
+
+
+
+ Accessor for getting and setting properties of the InstallPackage database.
+
+
+
+
+ Accessor for getting and setting properties of the database.
+
+
+
+
+ Gets or sets a property in the database. When getting a property
+ that does not exist in the database, an empty string is returned.
+ To remove a property from the database, set it to an empty string.
+
+
+ This has the same results as direct SQL queries on the Property table; it's only
+ meant to be a more convenient way of access.
+
+
+
+
+ Represents the installation path of a file or directory from an installer product database.
+
+
+
+
+ Creates a new InstallPath, specifying a filename.
+
+ The name of the file or directory. Not a full path.
+
+
+
+ Creates a new InstallPath, parsing out either the short or long filename.
+
+ The name of the file or directory, in short|long syntax for a filename
+ or targetshort|targetlong:sourceshort|sourcelong syntax for a directory.
+ true to parse the short part of the combined filename; false to parse the long part
+
+
+
+ Gets the path of the parent directory.
+
+
+
+
+ Gets the set of child paths if this InstallPath object represents a a directory.
+
+
+
+
+ Gets or sets the source name of the InstallPath.
+
+
+
+
+ Gets or sets the target name of the install path.
+
+
+
+
+ Gets the full source path.
+
+
+
+
+ Gets the full target path.
+
+
+
+
+ Gets the full source path.
+
+
+
+
+
+ Represents a collection of InstallPaths that are the child paths of the same parent directory.
+
+
+
+
+ Gets or sets the element at the specified index.
+
+
+
+
+ Adds a new child path to the collection.
+
+ The InstallPath to add.
+
+
+
+ Removes a child path to the collection.
+
+ The InstallPath to remove.
+
+
+
+ Gets the index of a child path in the collection.
+
+ The InstallPath to search for.
+ The index of the item, or -1 if not found.
+
+
+
+ Inserts a child path into the collection.
+
+ The insertion index.
+ The InstallPath to insert.
+
+
+
+ Tests if the collection contains a child path.
+
+ The InstallPath to search for.
+ true if the item is found; false otherwise
+
+
+
+ Copies the collection into an array.
+
+ The array to copy into.
+ The starting index in the destination array.
+
+
+
+ Removes an item from the collection.
+
+ The index of the item to remove.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Gets the number of items in the collection.
+
+
+
+
+ Gets an enumerator over all items in the collection.
+
+ An enumerator for the collection.
+
+
+
+ Represents a mapping of install paths for all directories, components, or files in
+ an installation database.
+
+
+
+
+ Builds a mapping from File keys to installation paths.
+
+ Installation database.
+ Component mapping returned by .
+ true to use short file names; false to use long names
+ An InstallPathMap with the described mapping.
+
+
+
+ Builds a mapping from Component keys to installation paths.
+
+ Installation database.
+ Directory mapping returned by
+ .
+ An InstallPathMap with the described mapping.
+
+
+
+ Builds a mapping from Directory keys to installation paths.
+
+ Installation database.
+ true to use short directory names; false to use long names
+ An InstallPathMap with the described mapping.
+
+
+
+ Builds a mapping of Directory keys to directory paths, specifying root directories
+ for the source and target paths.
+
+ Database containing the Directory table.
+ true to use short directory names; false to use long names
+ The root directory path of all source paths, or null to leave them relative.
+ The root directory path of all source paths, or null to leave them relative.
+ An InstallPathMap with the described mapping.
+
+
+
+ Creates a new empty InstallPathMap.
+
+
+
+
+ Gets a mapping from keys to source paths.
+
+
+
+
+ Gets a mapping from keys to target paths.
+
+
+
+
+ Gets or sets an install path for a direcotry, component, or file key.
+
+ Depending on the type of InstallPathMap, this is the primary key from the
+ either the Directory, Component, or File table.
+
+ Changing an install path does not modify the Database used to generate this InstallPathMap.
+
+
+
+
+ Gets the collection of keys in the InstallPathMap. Depending on the type of InstallPathMap,
+ they are all directory, component, or file key strings.
+
+
+
+
+ Gets the collection of InstallPath values in the InstallPathMap.
+
+
+
+
+ Sets an install path for a direcotry, component, or file key.
+
+ Depending on the type of InstallPathMap, this is the primary key from the
+ either the Directory, Component, or File table.
+ The install path of the key item.
+
+ Changing an install path does not modify the Database used to generate this InstallPathMap.
+
+
+
+
+ Removes an install path from the map.
+
+ Depending on the type of InstallPathMap, this is the primary key from the
+ either the Directory, Component, or File table.
+ true if the item was removed, false if it did not exist
+
+ Changing an install path does not modify the Database used to generate this InstallPathMap.
+
+
+
+
+ Tests whether a direcotry, component, or file key exists in the map.
+
+ Depending on the type of InstallPathMap, this is the primary key from the
+ either the Directory, Component, or File table.
+ true if the key is found; false otherwise
+
+
+
+ Attempts to get a value from the dictionary.
+
+ The key to lookup.
+ Receives the value, or null if they key was not found.
+ True if the value was found, else false.
+
+
+
+ Removes all entries from the dictionary.
+
+
+
+
+ Gets the number of entries in the dictionary.
+
+
+
+
+ Gets an enumerator over all entries in the dictionary.
+
+ An enumerator for the dictionary.
+
+
+
+ Provides access to convenient properties and operations on a patch package (.MSP).
+
+
+
+
+ Creates a new patch package object; opening the patch database in read-only mode.
+
+ Path to the patch package (.MSP)
+ The PatchPackage object only opens the patch database in read-only mode, because
+ transforms (sub-storages) cannot be read if the database is open in read-write mode.
+
+
+
+ Handle this event to receive status messages when operations are performed on the patch package.
+
+
+ patchPackage.Message += new InstallPackageMessageHandler(Console.WriteLine);
+
+
+
+
+ Sends a message to the event-handler.
+
+ Message string, containing 0 or more format items
+ Items to be formatted
+
+
+
+ Gets the patch code (GUID) of the patch package.
+
+
+ The patch code is stored in the RevisionNumber field of the patch summary information.
+
+
+
+
+ Gets the list of patch codes that are replaced by this patch package.
+
+ Array of replaced patch codes (GUIDs)
+
+ The list of replaced patch codes is stored in the RevisionNumber field of the patch summary information.
+
+
+
+
+ Gets the list of product codes of products targeted by this patch package.
+
+ Array of product codes (GUIDs)
+
+ The list of target product codes is stored in the Template field of the patch summary information.
+
+
+
+
+ Gets the names of the transforms included in the patch package.
+
+ Array of transform names
+
+ The returned list does not include the "patch special transforms" that are prefixed with "#"
+
The list of transform names is stored in the LastSavedBy field of the patch summary information.
+
+
+
+
+ Gets the names of the transforms included in the patch package.
+
+ Specifies whether to include the
+ "patch special transforms" that are prefixed with "#"
+ Array of transform names
+
+ The list of transform names is stored in the LastSavedBy field of the patch summary information.
+
+
+
+
+ Gets information about the transforms included in the patch package.
+
+ Array containing information about each transform
+
+ The returned info does not include the "patch special transforms" that are prefixed with "#"
+
+
+
+
+ Gets information about the transforms included in the patch package.
+
+ Specifies whether to include the
+ "patch special transforms" that are prefixed with "#"
+ Array containing information about each transform
+
+
+
+ Gets information about a transforms included in the patch package.
+
+ Name of the transform to extract; this may optionally be a
+ special transform prefixed by "#"
+ Information about the transform
+
+
+
+ Analyzes the transforms included in the patch package to find the ones that
+ are applicable to an install package.
+
+ The install package to validate the transforms against
+ Array of valid transform names
+
+ The returned list does not include the "patch special transforms" that
+ are prefixed with "#" If a transform is valid, then its corresponding
+ special transform is assumed to be valid as well.
+
+
+
+
+ Extracts a transform (.MST) from a patch package.
+
+ Name of the transform to extract; this may optionally be a
+ special transform prefixed by "#"
+ Location where the transform will be extracted
+
+
+
+ Contains properties of a transform package (.MST).
+
+
+
+
+ Reads transform information from a transform package.
+
+ Path to a transform package (.MST file).
+
+
+
+ Reads transform information from the summary information of a transform package.
+
+ Filename of the transform (optional).
+ Handle to the summary information of a transform package (.MST file).
+
+
+
+ Gets the filename of the transform.
+
+
+
+
+ Gets the target product code of the transform.
+
+
+
+
+ Gets the target product version of the transform.
+
+
+
+
+ Gets the upgrade product code of the transform.
+
+
+
+
+ Gets the upgrade product version of the transform.
+
+
+
+
+ Gets the upgrade code of the transform.
+
+
+
+
+ Gets the target platform of the transform.
+
+
+
+
+ Gets the target language of the transform, or 0 if the transform is language-neutral.
+
+
+
+
+ Gets the validation flags specified when the transform was generated.
+
+
+
+
+ Returns the name of the transform.
+
+
+
+
+ Distribution specific strings.
+
+
+
+
+ News URL for the distribution.
+
+
+
+
+ Short product name for the distribution.
+
+
+
+
+ Support URL for the distribution.
+
+
+
+
+ Telemetry URL format for the distribution.
+
+
+
+
+ VS Extensions Landing page Url for the distribution.
+
+
+
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.dll b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.dll
new file mode 100644
index 0000000..8079bec
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.dll differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.xml b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.xml
new file mode 100644
index 0000000..ed23de3
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/Microsoft.Deployment.WindowsInstaller.xml
@@ -0,0 +1,7414 @@
+
+
+
+ Microsoft.Deployment.WindowsInstaller
+
+
+
+
+ Collection of column information related to a or
+ .
+
+
+
+
+ Creates a new ColumnCollection based on a specified list of columns.
+
+ columns to be added to the new collection
+
+
+
+ Creates a new ColumnCollection that is associated with a database table.
+
+ view that contains the columns
+
+
+
+ Gets the number of columns in the collection.
+
+ number of columns in the collection
+
+
+
+ Gets a boolean value indicating whether the collection is read-only.
+ A ColumnCollection is read-only if it is associated with a
+ or a read-only .
+
+ read-only status of the collection
+
+
+
+ Gets information about a specific column in the collection.
+
+ 1-based index into the column collection
+ is less
+ than 1 or greater than the number of columns in the collection
+
+
+
+ Gets information about a specific column in the collection.
+
+ case-sensitive name of a column collection
+ does
+ not exist in the collection
+
+
+
+ Not supported because the collection is read-only.
+
+ information about the column being added
+ the collection is read-only
+
+
+
+ Not supported because the collection is read-only.
+
+ the collection is read-only
+
+
+
+ Checks if a column with a given name exists in the collection.
+
+ case-sensitive name of the column to look for
+ true if the column exists in the collection, false otherwise
+
+
+
+ Checks if a column with a given name exists in the collection.
+
+ column to look for, with case-sensitive name
+ true if the column exists in the collection, false otherwise
+
+
+
+ Gets the index of a column within the collection.
+
+ case-sensitive name of the column to look for
+ 0-based index of the column, or -1 if not found
+
+
+
+ Copies the columns from this collection into an array.
+
+ destination array to be filed
+ offset into the destination array where copying begins
+
+
+
+ Not supported because the collection is read-only.
+
+ column to remove
+ true if the column was removed, false if it was not found
+ the collection is read-only
+
+
+
+ Gets an enumerator over the columns in the collection.
+
+ An enumerator of ColumnInfo objects.
+
+
+
+ Gets a string suitable for printing all the values of a record containing these columns.
+
+
+
+
+ Gets an enumerator over the columns in the collection.
+
+ An enumerator of ColumnInfo objects.
+
+
+
+ Creates ColumnInfo objects for the associated view.
+
+ dynamically-generated list of columns
+
+
+
+ Gets a list of column names or column-definition-strings for the
+ associated view.
+
+ the view to that defines the columns
+ true to return types (column definition strings),
+ false to return names
+ list of column names or types
+
+
+
+ Available values for the Attributes column of the Component table.
+
+
+
+
+ Local only - Component cannot be run from source.
+
+
+ Set this value for all components belonging to a feature to prevent the feature from being run-from-network or
+ run-from-source. Note that if a feature has no components, the feature always shows run-from-source and
+ run-from-my-computer as valid options.
+
+
+
+
+ Component can only be run from source.
+
+
+ Set this bit for all components belonging to a feature to prevent the feature from being run-from-my-computer.
+ Note that if a feature has no components, the feature always shows run-from-source and run-from-my-computer
+ as valid options.
+
+
+
+
+ Component can run locally or from source.
+
+
+
+
+ If this bit is set, the value in the KeyPath column is used as a key into the Registry table.
+
+
+ If the Value field of the corresponding record in the Registry table is null, the Name field in that record
+ must not contain "+", "-", or "*". For more information, see the description of the Name field in Registry
+ table.
+
Setting this bit is recommended for registry entries written to the HKCU hive. This ensures the installer
+ writes the necessary HKCU registry entries when there are multiple users on the same machine.
+
+
+
+
+ If this bit is set, the installer increments the reference count in the shared DLL registry of the component's
+ key file. If this bit is not set, the installer increments the reference count only if the reference count
+ already exists.
+
+
+
+
+ If this bit is set, the installer does not remove the component during an uninstall. The installer registers
+ an extra system client for the component in the Windows Installer registry settings.
+
+
+
+
+ If this bit is set, the value in the KeyPath column is a key into the ODBCDataSource table.
+
+
+
+
+ If this bit is set, the installer reevaluates the value of the statement in the Condition column upon a reinstall.
+ If the value was previously False and has changed to true, the installer installs the component. If the value
+ was previously true and has changed to false, the installer removes the component even if the component has
+ other products as clients.
+
+
+
+
+ If this bit is set, the installer does not install or reinstall the component if a key path file or a key path
+ registry entry for the component already exists. The application does register itself as a client of the component.
+
+
+ Use this flag only for components that are being registered by the Registry table. Do not use this flag for
+ components registered by the AppId, Class, Extension, ProgId, MIME, and Verb tables.
+
+
+
+
+ Set this bit to mark this as a 64-bit component. This attribute facilitates the installation of packages that
+ include both 32-bit and 64-bit components. If this bit is not set, the component is registered as a 32-bit component.
+
+
+ If this is a 64-bit component replacing a 32-bit component, set this bit and assign a new GUID in the
+ ComponentId column.
+
+
+
+
+ Set this bit to disable registry reflection on all existing and new registry keys affected by this component.
+
+
+ If this bit is set, the Windows Installer calls the RegDisableReflectionKey on each key being accessed by the component.
+ This bit is available with Windows Installer version 4.0 and is ignored on 32-bit systems.
+
+
+
+
+ [MSI 4.5] Set this bit for a component in a patch package to prevent leaving orphan components on the computer.
+
+
+ If a subsequent patch is installed, marked with the SupersedeEarlier flag in its MsiPatchSequence
+ table to supersede the first patch, Windows Installer 4.5 can unregister and uninstall components marked with the
+ UninstallOnSupersedence value. If the component is not marked with this bit, installation of a superseding patch can leave
+ behind an unused component on the computer.
+
+
+
+
+ [MSI 4.5] If a component is marked with this attribute value in at least one package installed on the system,
+ the installer treats the component as marked in all packages. If a package that shares the marked component
+ is uninstalled, Windows Installer 4.5 can continue to share the highest version of the component on the system,
+ even if that highest version was installed by the package that is being uninstalled.
+
+
+
+
+ Defines flags for the Attributes column of the Control table.
+
+
+
+ If this bit is set, the control is visible on the dialog box.
+
+
+ specifies if the given control is enabled or disabled. Most controls appear gray when disabled.
+
+
+ If this bit is set, the control is displayed with a sunken, three dimensional look.
+
+
+ The Indirect control attribute specifies whether the value displayed or changed by this control is referenced indirectly.
+
+
+ If this bit is set on a control, the associated property specified in the Property column of the Control table is an integer.
+
+
+ If this bit is set the text in the control is displayed in a right-to-left reading order.
+
+
+ If this style bit is set, text in the control is aligned to the right.
+
+
+ If this bit is set, the scroll bar is located on the left side of the control, otherwise it is on the right.
+
+
+ This is a combination of the RightToLeftReadingOrder, RightAligned, and LeftScroll attributes.
+
+
+ If this bit is set on a text control, the control is displayed transparently with the background showing through the control where there are no characters.
+
+
+ If this bit is set on a text control, the occurrence of the character "&" in a text string is displayed as itself.
+
+
+ If this bit is set the text in the control is displayed on a single line.
+
+
+ If this bit is set for a text control, the control will automatically attempt to format the displayed text as a number representing a count of bytes.
+
+
+ If this bit is set, fonts are created using the user's default UI code page. Otherwise it is created using the database code page.
+
+
+ If this bit is set on an Edit control, the installer creates a multiple line edit control with a vertical scroll bar.
+
+
+ This attribute creates an edit control for entering passwords. The control displays each character as an asterisk (*) as they are typed into the control.
+
+
+ If this bit is set on a ProgressBar control, the bar is drawn as a series of small rectangles in Microsoft Windows 95-style. Otherwise it is drawn as a single continuous rectangle.
+
+
+ If this bit is set, the control shows removable volumes.
+
+
+ If this bit is set, the control shows fixed internal hard drives.
+
+
+ If this bit is set, the control shows remote volumes.
+
+
+ If this bit is set, the control shows CD-ROM volumes.
+
+
+ If this bit is set, the control shows RAM disk volumes.
+
+
+ If this bit is set, the control shows floppy volumes.
+
+
+ Specifies whether or not the rollback backup files are included in the costs displayed by the VolumeCostList control.
+
+
+ If this bit is set, the items listed in the control are displayed in a specified order. Otherwise, items are displayed in alphabetical order.
+
+
+ If this bit is set on a combo box, the edit field is replaced by a static text field. This prevents a user from entering a new value and requires the user to choose only one of the predefined values.
+
+
+ If this bit is set on a check box or a radio button group, the button is drawn with the appearance of a push button, but its logic stays the same.
+
+
+ If this bit is set, the text in the control is replaced by a bitmap image. The Text column in the Control table is a foreign key into the Binary table.
+
+
+ If this bit is set, text is replaced by an icon image and the Text column in the Control table is a foreign key into the Binary table.
+
+
+ If this bit is set, the picture is cropped or centered in the control without changing its shape or size.
+
+
+ Specifies which size of the icon image to load. If none of the bits are set, the first image is loaded.
+
+
+ Specifies which size of the icon image to load. If none of the bits are set, the first image is loaded.
+
+
+ Specifies which size of the icon image to load. If none of the bits are set, the first image is loaded.
+
+
+ If this bit is set, and the installation is not yet running with elevated privileges, the control is created with a UAC icon.
+
+
+ If this bit is set, the RadioButtonGroup has text and a border displayed around it.
+
+
+
+ Defines flags for the Type column of the CustomAction table.
+
+
+
+ Unspecified custom action type.
+
+
+ Target = entry point name
+
+
+ Target = command line args
+
+
+ Target = text string to be formatted and set into property
+
+
+ Target = entry point name, null if none to call
+
+
+ Target = entry point name, null if none to call
+
+
+ Target = property list for nested engine initialization
+
+
+ Source = File.File, file part of installation
+
+
+ Source = Directory.Directory, folder containing existing file
+
+
+ Source = Property.Property, full path to executable
+
+
+ Ignore action return status, continue running
+
+
+ Run asynchronously
+
+
+ Skip if UI sequence already run
+
+
+ Skip if UI sequence already run in same process
+
+
+ Run on client only if UI already run on client
+
+
+ Queue for execution within script
+
+
+ In conjunction with InScript: queue in Rollback script
+
+
+ In conjunction with InScript: run Commit ops from script on success
+
+
+ No impersonation, run in system context
+
+
+ Impersonate for per-machine installs on TS machines
+
+
+ Script requires 64bit process
+
+
+ Don't record the contents of the Target field in the log file
+
+
+ The custom action runs only when a patch is being uninstalled
+
+
+
+ Defines flags for the Attributes column of the Dialog table.
+
+
+
+ If this bit is set, the dialog is originally created as visible, otherwise it is hidden.
+
+
+ If this bit is set, the dialog box is modal, other dialogs of the same application cannot be put on top of it, and the dialog keeps the control while it is running.
+
+
+ If this bit is set, the dialog box can be minimized. This bit is ignored for modal dialog boxes, which cannot be minimized.
+
+
+ If this style bit is set, the dialog box will stop all other applications and no other applications can take the focus.
+
+
+ If this bit is set, the other dialogs stay alive when this dialog box is created.
+
+
+ If this bit is set, the dialog box periodically calls the installer. If the property changes, it notifies the controls on the dialog.
+
+
+ If this bit is set, the pictures on the dialog box are created with the custom palette (one per dialog received from the first control created).
+
+
+ If this style bit is set the text in the dialog box is displayed in right-to-left-reading order.
+
+
+ If this style bit is set, the text is aligned on the right side of the dialog box.
+
+
+ If this style bit is set, the scroll bar is located on the left side of the dialog box.
+
+
+ This is a combination of the RightToLeftReadingOrder, RightAligned, and the LeftScroll dialog style bits.
+
+
+ If this bit is set, the dialog box is an error dialog.
+
+
+
+ Available values for the Attributes column of the Feature table.
+
+
+
+
+ Favor local - Components of this feature that are not marked for installation from source are installed locally.
+
+
+ A component shared by two or more features, some of which are set to FavorLocal and some to FavorSource,
+ is installed locally. Components marked in the Component
+ table are always run from the source CD/server. The bits FavorLocal and FavorSource work with features not
+ listed by the ADVERTISE property.
+
+
+
+
+ Components of this feature not marked for local installation are installed to run from the source
+ CD-ROM or server.
+
+
+ A component shared by two or more features, some of which are set to FavorLocal and some to FavorSource,
+ is installed to run locally. Components marked (local-only) in the
+ Component table are always installed locally. The bits FavorLocal and FavorSource work with features
+ not listed by the ADVERTISE property.
+
+
+
+
+ Set this attribute and the state of the feature is the same as the state of the feature's parent.
+ You cannot use this option if the feature is located at the root of a feature tree.
+
+
+ Omit this attribute and the feature state is determined according to DisallowAdvertise and
+ FavorLocal and FavorSource.
+
To guarantee that the child feature's state always follows the state of its parent, even when the
+ child and parent are initially set to absent in the SelectionTree control, you must include both
+ FollowParent and UIDisallowAbsent in the attributes of the child feature.
+
Note that if you set FollowParent without setting UIDisallowAbsent, the installer cannot force
+ the child feature out of the absent state. In this case, the child feature matches the parent's
+ installation state only if the child is set to something other than absent.
+
Set FollowParent and UIDisallowAbsent to ensure a child feature follows the state of the parent feature.
+
+
+
+
+ Set this attribute and the feature state is Advertise.
+
+
+ If the feature is listed by the ADDDEFAULT property this bit is ignored and the feature state is determined
+ according to FavorLocal and FavorSource.
+
Omit this attribute and the feature state is determined according to DisallowAdvertise and FavorLocal
+ and FavorSource.
+
+
+
+
+ Set this attribute to prevent the feature from being advertised.
+
+
+ Note that this bit works only with features that are listed by the ADVERTISE property.
+
Set this attribute and if the listed feature is not a parent or child, the feature is installed according to
+ FavorLocal and FavorSource.
+
Set this attribute for the parent of a listed feature and the parent is installed.
+
Set this attribute for the child of a listed feature and the state of the child is Absent.
+
Omit this attribute and if the listed feature is not a parent or child, the feature state is Advertise.
+
Omit this attribute and if the listed feature is a parent or child, the state of both features is Advertise.
+
+
+
+
+ Set this attribute and the user interface does not display an option to change the feature state
+ to Absent. Setting this attribute forces the feature to the installation state, whether or not the
+ feature is visible in the UI.
+
+
+ Omit this attribute and the user interface displays an option to change the feature state to Absent.
+
Set FollowParent and UIDisallowAbsent to ensure a child feature follows the state of the parent feature.
+
Setting this attribute not only affects the UI, but also forces the feature to the install state whether
+ the feature is visible in the UI or not.
+
+
+
+
+ Set this attribute and advertising is disabled for the feature if the operating system shell does not
+ support Windows Installer descriptors.
+
+
+
+
+ Available values for the Attributes column of the File table.
+
+
+
+ No attributes.
+
+
+ Read-only.
+
+
+ Hidden.
+
+
+ System.
+
+
+ The file is vital for the proper operation of the component to which it belongs.
+
+
+ The file contains a valid checksum. A checksum is required to repair a file that has become corrupted.
+
+
+ This bit must only be added by a patch and if the file is being added by the patch.
+
+
+
+ The file's source type is uncompressed. If set, ignore the WordCount summary information property. If neither
+ Noncompressed nor Compressed are set, the compression state of the file is specified by the WordCount summary
+ information property. Do not set both Noncompressed and Compressed.
+
+
+
+
+ The file's source type is compressed. If set, ignore the WordCount summary information property. If neither
+ Noncompressed or Compressed are set, the compression state of the file is specified by the WordCount summary
+ information property. Do not set both Noncompressed and Compressed.
+
+
+
+
+ Defines values for the Action column of the IniFile and RemoveIniFile tables.
+
+
+
+ Creates or updates a .ini entry.
+
+
+ Creates a .ini entry only if the entry does not already exist.
+
+
+ Deletes .ini entry.
+
+
+ Creates a new entry or appends a new comma-separated value to an existing entry.
+
+
+ Deletes a tag from a .ini entry.
+
+
+
+ Defines values for the Type column of the CompLocator, IniLocator, and RegLocator tables.
+
+
+
+ Key path is a directory.
+
+
+ Key path is a file name.
+
+
+ Key path is a registry value.
+
+
+ Set this bit to have the installer search the 64-bit portion of the registry.
+
+
+
+ Defines values for the Root column of the Registry, RemoveRegistry, and RegLocator tables.
+
+
+
+ HKEY_CURRENT_USER for a per-user installation,
+ or HKEY_LOCAL_MACHINE for a per-machine installation.
+
+
+ HKEY_CLASSES_ROOT
+
+
+ HKEY_CURRENT_USER
+
+
+ HKEY_LOCAL_MACHINE
+
+
+ HKEY_USERS
+
+
+
+ Defines values for the InstallMode column of the RemoveFile table.
+
+
+
+ Never remove.
+
+
+ Remove when the associated component is being installed (install state = local or source).
+
+
+ Remove when the associated component is being removed (install state = absent).
+
+
+
+ Defines values for the ServiceType, StartType, and ErrorControl columns of the ServiceInstall table.
+
+
+
+ No flags.
+
+
+ A Win32 service that runs its own process.
+
+
+ A Win32 service that shares a process.
+
+
+ A Win32 service that interacts with the desktop.
+ This value cannot be used alone and must be added to either
+ or .
+
+
+ Service starts during startup of the system.
+
+
+ Service starts when the service control manager calls the StartService function.
+
+
+ Specifies a service that can no longer be started.
+
+
+ Logs the error, displays a message box and continues the startup operation.
+
+
+ Logs the error if it is possible and the system is restarted with the last configuration
+ known to be good. If the last-known-good configuration is being started, the startup operation fails.
+
+
+ When combined with other error flags, specifies that the overall install should fail if
+ the service cannot be installed into the system.
+
+
+
+ Defines values for the Event column of the ServiceControl table.
+
+
+
+ No control events.
+
+
+ During an install, starts the service during the StartServices action.
+
+
+ During an install, stops the service during the StopServices action.
+
+
+ During an install, deletes the service during the DeleteServices action.
+
+
+ During an uninstall, starts the service during the StartServices action.
+
+
+ During an uninstall, stops the service during the StopServices action.
+
+
+ During an uninstall, deletes the service during the DeleteServices action.
+
+
+
+ Defines values for the StyleBits column of the TextStyle table.
+
+
+
+ Bold
+
+
+ Italic
+
+
+ Underline
+
+
+ Strike out
+
+
+
+ Defines values for the Attributes column of the Upgrade table.
+
+
+
+ Migrates feature states by enabling the logic in the MigrateFeatureStates action.
+
+
+ Detects products and applications but does not remove.
+
+
+ Continues installation upon failure to remove a product or application.
+
+
+ Detects the range of versions including the value in VersionMin.
+
+
+ Dectects the range of versions including the value in VersionMax.
+
+
+ Detects all languages, excluding the languages listed in the Language column.
+
+
+
+ Defines a single column of a table in an installer database.
+
+ Once created, a ColumnInfo object is immutable.
+
+
+
+ Creates a new ColumnInfo object from a column definition.
+
+ name of the column
+ column definition string
+
+
+
+
+ Creates a new ColumnInfo object from a list of parameters.
+
+ name of the column
+ type of the column; must be one of the following:
+ Int16, Int32, String, or Stream
+ the maximum number of characters for String columns;
+ ignored for other column types
+ true if the column is required to have a non-null value
+
+
+
+ Creates a new ColumnInfo object from a list of parameters.
+
+ name of the column
+ type of the column; must be one of the following:
+ Int16, Int32, String, or Stream
+ the maximum number of characters for String columns;
+ ignored for other column types
+ true if the column is required to have a non-null value
+ true to if the column is only in-memory and
+ not persisted with the database
+ for String columns, indicates the column
+ is localizable; ignored for other column types
+
+
+
+ Gets the name of the column.
+
+ name of the column
+
+
+
+ Gets the type of the column as a System.Type. This is one of the following: Int16, Int32, String, or Stream
+
+ type of the column
+
+
+
+ Gets the type of the column as an integer that can be cast to a System.Data.DbType. This is one of the following: Int16, Int32, String, or Binary
+
+ equivalent DbType of the column as an integer
+
+
+
+ Gets the size of the column.
+
+ The size of integer columns this is either 2 or 4. For string columns this is the maximum
+ recommended length of the string, or 0 for unlimited length. For stream columns, 0 is returned.
+
+
+
+ Gets a value indicating whether the column must be non-null when inserting a record.
+
+ required status of the column
+
+
+
+ Gets a value indicating whether the column is temporary. Temporary columns are not persisted
+ when the database is saved to disk.
+
+ temporary status of the column
+
+
+
+ Gets a value indicating whether the column is a string column that is localizable.
+
+ localizable status of the column
+
+
+
+ Gets an SQL fragment that can be used to create this column within a CREATE TABLE statement.
+
+ SQL fragment to be used for creating the column
+
+ Examples:
+
+ LONG
+ SHORT TEMPORARY
+ CHAR(0) LOCALIZABLE
+ CHAR(72) NOT NULL LOCALIZABLE
+ OBJECT
+
+
+
+
+
+ Gets a short string defining the type and size of the column.
+
+
+ The definition string consists
+ of a single letter representing the data type followed by the width of the column (in characters
+ when applicable, bytes otherwise). A width of zero designates an unbounded width (for example,
+ long text fields and streams). An uppercase letter indicates that null values are allowed in
+ the column.
+
+
+
+
+
+ Gets the name of the column.
+
+ Name of the column.
+
+
+
+ Accessor for information about components within the context of an installation session.
+
+
+
+
+ Gets information about a component within the context of an installation session.
+
+ name of the component
+ component object
+
+
+
+ Checks if the collection contains a component.
+
+ name of the component
+ true if the component is in the collection, else false
+
+
+
+ Copies the features into an array.
+
+ array that receives the features
+ offset into the array
+
+
+
+ Gets the number of components defined for the product.
+
+
+
+
+ Enumerates the components in the collection.
+
+ an enumerator over all features in the collection
+
+
+
+ Provides access to information about a component within the context of an installation session.
+
+
+
+
+ Gets the name of the component (primary key in the Component table).
+
+
+
+
+ Gets the current install state of the designated Component.
+
+ the Session handle is invalid
+ an unknown Component was requested
+
+
+
+
+ Gets or sets the action state of the designated Component.
+
+ the Session handle is invalid
+ an unknown Component was requested
+ the user exited the installation
+
+
+
+
+ Gets disk space per drive required to install a component.
+
+ Requested component state
+ A list of InstallCost structures, specifying the cost for each drive for the component
+
+
+
+
+ Represents an instance of a registered component.
+
+
+
+
+ Gets the set of installed components for all products.
+
+ The installer configuration data is corrupt
+
+
+
+
+ Creates a new ComponentInstallation, automatically detecting the
+ product that the component is a part of.
+
+ component GUID
+ context user SID
+ user contexts
+
+
+
+ Creates a new ComponentInstallation for a component installed by a
+ specific product.
+
+ component GUID
+ ProductCode GUID
+
+
+
+ Creates a new ComponentInstallation for a component installed by a
+ specific product.
+
+ component GUID
+ ProductCode GUID
+ context user SID
+ user contexts
+
+
+
+ Gets the component code (GUID) of the component.
+
+
+
+
+ Gets all client products of a specified component.
+
+ enumeration over all client products of the component
+ The installer configuration data is corrupt
+
+ Because clients are not ordered, any new component has an arbitrary index.
+ This means that the property may return clients in any order.
+
+
+
+
+ Gets the installed state of a component.
+
+ the installed state of the component, or InstallState.Unknown
+ if this component is not part of a product
+
+
+
+
+ Gets the full path to an installed component. If the key path for the component is a
+ registry key then the registry key is returned.
+
+ The file or registry keypath to the component, or null if the component is not available.
+ An unknown product or component was specified
+ The installer configuration data is corrupt
+
+ If the component is a registry key, the registry roots are represented numerically.
+ For example, a registry path of "HKEY_CURRENT_USER\SOFTWARE\Microsoft" would be returned
+ as "01:\SOFTWARE\Microsoft". The registry roots returned are defined as follows:
+ HKEY_CLASSES_ROOT=00, HKEY_CURRENT_USER=01, HKEY_LOCAL_MACHINE=02, HKEY_USERS=03,
+ HKEY_PERFORMANCE_DATA=04
+
+
+
+
+ Gets the set of registered qualifiers for the component.
+
+ Enumeration of the qulifiers for the component.
+ The installer configuration data is corrupt
+
+ Because qualifiers are not ordered, any new qualifier has an arbitrary index,
+ meaning the function can return qualifiers in any order.
+
+
+
+
+ Gets the qualifier code.
+
+
+
+
+ Gets the qualifier data.
+
+
+
+
+ Marks a method as a custom action entry point.
+
+
+ A custom action method must be defined as public and static,
+ take a single object as a parameter,
+ and return an enumeration value.
+
+
+
+
+ Name of the custom action entrypoint, or null if the same as the method name.
+
+
+
+
+ Marks a method as a custom action entry point.
+
+
+
+
+ Marks a method as a custom action entry point.
+
+ Name of the function to be exported,
+ defaults to the name of this method
+
+
+
+ Gets or sets the name of the custom action entrypoint. A null
+ value defaults to the name of the method.
+
+ name of the custom action entrypoint, or null if none was specified
+
+
+
+ Contains a collection of key-value pairs suitable for passing between
+ immediate and deferred/rollback/commit custom actions.
+
+
+ Call the method to get a string
+ suitable for storing in a property and reconstructing the custom action data later.
+
+
+
+
+
+
+ "CustomActionData" literal property name.
+
+
+
+
+ Creates a new empty custom action data object.
+
+
+
+
+ Reconstructs a custom action data object from data that was previously
+ persisted in a string.
+
+ Previous output from .
+
+
+
+ Adds a key and value to the data collection.
+
+ Case-sensitive data key.
+ Data value (may be null).
+ the key does not consist solely of letters,
+ numbers, and the period, underscore, and space characters.
+
+
+
+ Adds a value to the data collection, using XML serialization to persist the object as a string.
+
+ Case-sensitive data key.
+ Data value (may be null).
+ the key does not consist solely of letters,
+ numbers, and the period, underscore, and space characters.
+ The value type does not support XML serialization.
+ The value could not be serialized.
+
+
+
+ Gets a value from the data collection, using XML serialization to load the object from a string.
+
+ Case-sensitive data key.
+ The value could not be deserialized.
+
+
+
+ Determines whether the data contains an item with the specified key.
+
+ Case-sensitive data key.
+ true if the data contains an item with the key; otherwise, false
+
+
+
+ Gets a collection object containing all the keys of the data.
+
+
+
+
+ Removes the item with the specified key from the data.
+
+ Case-sensitive data key.
+ true if the item was successfully removed from the data;
+ false if an item with the specified key was not found
+
+
+
+ Gets the value with the specified key.
+
+ Case-sensitive data key.
+ Value associated with the specified key, or
+ null if an item with the specified key was not found
+ true if the data contains an item with the specified key; otherwise, false.
+
+
+
+ Gets a collection containing all the values of the data.
+
+
+
+
+ Gets or sets a data value with a specified key.
+
+ Case-sensitive data key.
+ the key does not consist solely of letters,
+ numbers, and the period, underscore, and space characters.
+
+
+
+ Adds an item with key and value to the data collection.
+
+ Case-sensitive data key, with a data value that may be null.
+ the key does not consist solely of letters,
+ numbers, and the period, underscore, and space characters.
+
+
+
+ Removes all items from the data.
+
+
+
+
+ Determines whether the data contains a specified item.
+
+ The data item to locate.
+ true if the data contains the item; otherwise, false
+
+
+
+ Copies the data to an array, starting at a particular array index.
+
+ Destination array.
+ Index in the array at which copying begins.
+
+
+
+ Gets the number of items in the data.
+
+
+
+
+ Gets a value indicating whether the data is read-only.
+
+
+
+
+ Removes an item from the data.
+
+ The item to remove.
+ true if the item was successfully removed from the data;
+ false if the item was not found
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+ An enumerator that can be used to iterate through the collection.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+ An enumerator that can be used to iterate through the collection.
+
+
+
+ Gets a string representation of the data suitable for persisting in a property.
+
+ Data string in the form "Key1=Value1;Key2=Value2"
+
+
+
+ Ensures that a key contains valid characters.
+
+ key to be validated
+ the key does not consist solely of letters,
+ numbers, and the period, underscore, and space characters.
+
+
+
+ Serializes a value into an XML string.
+
+ Type of the value.
+ Value to be serialized.
+ Serialized value data as a string.
+
+
+
+ Deserializes a value from an XML string.
+
+ Expected type of the value.
+ Serialized value data.
+ Deserialized value object.
+
+
+
+ Escapes a value string by doubling any data-separator (semicolon) characters.
+
+
+ Escaped value string
+
+
+
+ Unescapes a value string by undoubling any doubled data-separator (semicolon) characters.
+
+
+ Unescaped value string
+
+
+
+ Loads key-value pairs from a string into the data collection.
+
+ key-value pair list of the form returned by
+
+
+
+ Managed-code portion of the custom action proxy.
+
+
+
+
+ Invokes a managed custom action method.
+
+ Integer handle to the installer session.
+ Name of the custom action entrypoint. This must
+ either map to an entrypoint definition in the customActions
+ config section, or be an explicit entrypoint of the form:
+ "AssemblyName!Namespace.Class.Method"
+ Pointer to a delegate used to
+ make remote API calls, if this custom action is running out-of-proc.
+ The value returned by the custom action method,
+ or ERROR_INSTALL_FAILURE if the custom action could not be invoked.
+
+
+
+ Checks the "MMsiBreak" environment variable for any matching custom action names.
+
+ List of names to search for in the environment
+ variable string.
+ True if a match was found, else false.
+
+
+
+ Locates and parses an entrypoint mapping in CustomAction.config.
+
+ Installer session handle, just used for logging.
+ Custom action entrypoint name: the key value
+ in an item in the customActions section of the config file.
+ Returned display name of the assembly from
+ the entrypoint mapping.
+ Returned class name of the entrypoint mapping.
+ Returned method name of the entrypoint mapping.
+ True if the entrypoint was found, false if not or if some error
+ occurred.
+
+
+
+ Uses reflection to load the assembly and class and find the method.
+
+ Installer session handle, just used for logging.
+ Display name of the assembly containing the
+ custom action method.
+ Fully-qualified name of the class containing the
+ custom action method.
+ Name of the custom action method.
+ The method, or null if not found.
+
+
+
+ Checks if a method has the right return and paramater types
+ for a custom action, and that it is marked by a CustomActionAttribute.
+
+ Method to be checked.
+ True if the method is a valid custom action, else false.
+
+
+
+ Accesses a Windows Installer database.
+
+
+ The method must be called before the Database is closed to write out all
+ persistent changes. If the Commit method is not called, the installer performs an implicit
+ rollback upon object destruction.
+
+ The client can use the following procedure for data access:
+ Obtain a Database object using one of the Database constructors.
+ Initiate a query using a SQL string by calling the
+ method of the Database.
+ Set query parameters in a and execute the database
+ query by calling the method of the . This
+ produces a result that can be fetched or updated.
+ Call the method of the View repeatedly to return
+ Records.
+ Update database rows of a Record object obtained by the Fetch method using
+ one of the methods of the View.
+ Release the query and any unfetched records by calling the
+ method of the View.
+ Persist any database updates by calling the Commit method of the Database.
+
+
+
+
+
+
+ Opens an existing database in read-only mode.
+
+ Path to the database file.
+ the database could not be created/opened
+
+ Because this constructor initiates database access, it cannot be used with a
+ running installation.
+
+ The Database object should be d after use.
+ It is best that the handle be closed manually as soon as it is no longer
+ needed, as leaving lots of unused handles open can degrade performance.
+
+
+
+
+ Opens an existing database with another database as output.
+
+ Path to the database to be read.
+ Open mode for the database
+ Database object representing the created or opened database
+ the database could not be created/opened
+
+ When a database is opened as the output of another database, the summary information stream
+ of the output database is actually a read-only mirror of the original database and thus cannot
+ be changed. Additionally, it is not persisted with the database. To create or modify the
+ summary information for the output database it must be closed and re-opened.
+
+ The Database object should be d after use.
+ It is best that the handle be closed manually as soon as it is no longer
+ needed, as leaving lots of unused handles open can degrade performance.
+
+ The database is opened in mode, and will be
+ automatically commited when it is closed.
+
+
+
+
+ Opens an existing database or creates a new one.
+
+ Path to the database file. If an empty string
+ is supplied, a temporary database is created that is not persisted.
+ Open mode for the database
+ the database could not be created/opened
+
+ Because this constructor initiates database access, it cannot be used with a
+ running installation.
+
+ The database object should be d after use.
+ The finalizer will close the handle if it is still open, however due to the nondeterministic
+ nature of finalization it is best that the handle be closed manually as soon as it is no
+ longer needed, as leaving lots of unused handles open can degrade performance.
+
+ A database opened in or
+ mode will be automatically commited when it is
+ closed. However a database opened in or
+ mode must have the method
+ called before it is closed, otherwise no changes will be persisted.
+
+
+
+
+ Creates a new database from an MSI handle.
+
+ Native MSI database handle.
+ True if the handle should be closed
+ when the database object is disposed
+ Path of the database file, if known
+ Mode the handle was originally opened in
+
+
+
+ Gets the file path the Database was originally opened from, or null if not known.
+
+
+
+
+ Gets the open mode for the database.
+
+
+
+
+ Gets a boolean value indicating whether this database was opened in read-only mode.
+
+
+
+
+
+ Gets the collection of tables in the Database.
+
+
+
+
+ Gets or sets the code page of the Database.
+
+ error exporting/importing the codepage data
+ the Database handle is invalid
+
+ Getting or setting the code page is a slow operation because it involves an export or import
+ of the codepage data to/from a temporary file.
+
+
+
+
+ Gets the SummaryInfo object for this database that can be used to examine and modify properties
+ to the summary information stream.
+
+ the Database handle is invalid
+
+ The object returned from this property does not need to be explicitly persisted or closed.
+ Any modifications will be automatically saved when the database is committed.
+
+
+
+
+ Creates a new Database object from an integer database handle.
+
+
+ This method is only provided for interop purposes. A Database object
+ should normally be obtained from or
+ a public Database constructor.
+
+ Integer database handle
+ true to close the handle when this object is disposed
+
+
+
+ Schedules a file or directory for deletion after the database handle is closed.
+
+ File or directory path to be deleted. All files and subdirectories
+ under a directory are deleted.
+
+ Once an item is scheduled, it cannot be unscheduled.
+
+ The items cannot be deleted if the Database object is auto-disposed by the
+ garbage collector; the handle must be explicitly closed.
+
+ Files which are read-only or otherwise locked cannot be deleted,
+ but they will not cause an exception to be thrown.
+
+
+
+
+ Merges another database with this database.
+
+ The database to be merged into this database
+ Optional name of table to contain the names of the tables containing
+ merge conflicts, the number of conflicting rows within the table, and a reference to the table
+ with the merge conflict.
+ merge failed due to a schema difference or data conflict
+ the Database handle is invalid
+
+ Merge does not copy over embedded cabinet files or embedded transforms from the
+ reference database into the target database. Embedded data streams that are listed in the
+ Binary table or Icon table are copied from the reference database to the target database.
+ Storage embedded in the reference database are not copied to the target database.
+
+ The Merge method merges the data of two databases. These databases must have the same
+ codepage. The merge fails if any tables or rows in the databases conflict. A conflict exists
+ if the data in any row in the first database differs from the data in the corresponding row
+ of the second database. Corresponding rows are in the same table of both databases and have
+ the same primary key in both databases. The tables of non-conflicting databases must have
+ the same number of primary keys, same number of columns, same column types, same column names,
+ and the same data in rows with identical primary keys. Temporary columns however don't matter
+ in the column count and corresponding tables can have a different number of temporary columns
+ without creating conflict as long as the persistent columns match.
+
+ If the number, type, or name of columns in corresponding tables are different, the
+ schema of the two databases are incompatible and the installer will stop processing tables
+ and the merge fails. The installer checks that the two databases have the same schema before
+ checking for row merge conflicts. If the schemas are incompatible, the databases have be
+ modified.
+
+ If the data in particular rows differ, this is a row merge conflict, the merge fails
+ and creates a new table with the specified name. The first column of this table is the name
+ of the table having the conflict. The second column gives the number of rows in the table
+ having the conflict.
+
+
+
+
+ Merges another database with this database.
+
+ The database to be merged into this database
+ merge failed due to a schema difference or data conflict
+ the Database handle is invalid
+
+ MsiDatabaseMerge does not copy over embedded cabinet files or embedded transforms from
+ the reference database into the target database. Embedded data streams that are listed in
+ the Binary table or Icon table are copied from the reference database to the target database.
+ Storage embedded in the reference database are not copied to the target database.
+
+ The Merge method merges the data of two databases. These databases must have the same
+ codepage. The merge fails if any tables or rows in the databases conflict. A conflict exists
+ if the data in any row in the first database differs from the data in the corresponding row
+ of the second database. Corresponding rows are in the same table of both databases and have
+ the same primary key in both databases. The tables of non-conflicting databases must have
+ the same number of primary keys, same number of columns, same column types, same column names,
+ and the same data in rows with identical primary keys. Temporary columns however don't matter
+ in the column count and corresponding tables can have a different number of temporary columns
+ without creating conflict as long as the persistent columns match.
+
+ If the number, type, or name of columns in corresponding tables are different, the
+ schema of the two databases are incompatible and the installer will stop processing tables
+ and the merge fails. The installer checks that the two databases have the same schema before
+ checking for row merge conflicts. If the schemas are incompatible, the databases have be
+ modified.
+
+
+
+
+ Checks whether a table exists and is persistent in the database.
+
+ The table to the checked
+ true if the table exists and is persistent in the database; false otherwise
+ the table is unknown
+ the Database handle is invalid
+
+ To check whether a table exists regardless of persistence,
+ use .
+
+
+
+
+ Checks whether a table contains a persistent column with a given name.
+
+ The table to the checked
+ The name of the column to be checked
+ true if the column exists in the table; false if the column is temporary or does not exist.
+ the View could not be executed
+ the Database handle is invalid
+
+ To check whether a column exists regardless of persistence,
+ use .
+
+
+
+
+ Gets the count of all rows in the table.
+
+ Name of the table whose rows are to be counted
+ The count of all rows in the table
+ the View could not be executed
+ the Database handle is invalid
+
+
+
+ Gets the count of all rows in the table that satisfy a given condition.
+
+ Name of the table whose rows are to be counted
+ Conditional expression, such as could be placed on the end of a SQL WHERE clause
+ The count of all rows in the table satisfying the condition
+ the SQL WHERE syntax is invalid
+ the View could not be executed
+ the Database handle is invalid
+
+
+
+ Finalizes the persistent form of the database. All persistent data is written
+ to the writeable database, and no temporary columns or rows are written.
+
+ the Database handle is invalid
+
+ For a database open in mode, this method has no effect.
+
+ For a database open in or
+ mode, it is not necessary to call this method because the database will be automatically committed
+ when it is closed. However this method may be called at any time to persist the current state of tables
+ loaded into memory.
+
+ For a database open in or
+ mode, no changes will be persisted until this method is called. If the database object is closed without
+ calling this method, the database file remains unmodified.
+
+
+
+
+ Copies the structure and data from a specified table to a text archive file.
+
+ Name of the table to be exported
+ Path to the file to be created
+ the file path is invalid
+ the Database handle is invalid
+
+
+
+
+ Imports a database table from a text archive file, dropping any existing table.
+
+ Path to the file to be imported.
+ The table name is specified within the file.
+ the file path is invalid
+ the Database handle is invalid
+
+
+
+
+ Exports all database tables, streams, and summary information to archive files.
+
+ Path to the directory where archive files will be created
+ the directory path is invalid
+ the Database handle is invalid
+
+ The directory will be created if it does not already exist.
+
+
+
+
+ Imports all database tables, streams, and summary information from archive files.
+
+ Path to the directory from which archive files will be imported
+ the directory path is invalid
+ the Database handle is invalid
+
+
+
+
+ Creates a new record object with the requested number of fields.
+
+ Required number of fields, which may be 0.
+ The maximum number of fields in a record is limited to 65535.
+ A new record object that can be used with the database.
+
+ This method is equivalent to directly calling the
+ constructor in all cases outside of a custom action context. When in a
+ custom action session, this method allows creation of a record that can
+ work with a database other than the session database.
+
+ The Record object should be d after use.
+ It is best that the handle be closed manually as soon as it is no longer
+ needed, as leaving lots of unused handles open can degrade performance.
+
+
+
+
+ Returns the file path of this database, or the handle value if a file path was not specified.
+
+
+
+
+ Closes the database handle. After closing a handle, further method calls may throw .
+
+ If true, the method has been called directly or
+ indirectly by a user's code, so managed and unmanaged resources will be
+ disposed. If false, only unmanaged resources will be disposed.
+
+
+
+ Returns the value of the specified property.
+
+ Name of the property to retrieve.
+
+
+
+ Gets a View object representing the query specified by a SQL string.
+
+ SQL query string, which may contain format items
+ Zero or more objects to format
+ A View object representing the query specified by a SQL string
+ the SQL syntax is invalid
+ the Database handle is invalid
+
+ The parameter is formatted using .
+
+ The View object should be d after use.
+ It is best that the handle be closed manually as soon as it is no longer
+ needed, as leaving lots of unused handles open can degrade performance.
+
+
+
+
+ Executes the query specified by a SQL string. The query may not be a SELECT statement.
+
+ SQL query string, which may contain format items
+ Zero or more objects to format
+ the SQL syntax is invalid
+ the View could not be executed
+ the Database handle is invalid
+
+
+
+
+ Executes the query specified by a SQL string. The query may not be a SELECT statement.
+
+ SQL query string
+ Optional Record object containing the values that replace
+ the parameter tokens (?) in the SQL query.
+ the SQL syntax is invalid
+ the View could not be executed
+ the Database handle is invalid
+
+
+
+
+ Executes the specified SQL SELECT query and returns all results.
+
+ SQL query string, which may contain format items
+ Zero or more objects to format
+ All results combined into an array
+ the SQL syntax is invalid
+ the View could not be executed
+ the Database handle is invalid
+
+ The parameter is formatted using
+ .
+
+ Multiple rows columns will be collapsed into a single one-dimensional list.
+
+
+
+
+ Executes the specified SQL SELECT query and returns all results.
+
+ SQL SELECT query string
+ Optional Record object containing the values that replace
+ the parameter tokens (?) in the SQL query.
+ All results combined into an array
+ the SQL syntax is invalid
+ the View could not be executed
+ the Database handle is invalid
+
+ Multiple rows columns will be collapsed into a single one-dimensional list.
+
+
+
+
+ Executes the specified SQL SELECT query and returns all results as integers.
+
+ SQL query string, which may contain format items
+ Zero or more objects to format
+ All results combined into an array
+ the SQL syntax is invalid
+ the View could not be executed
+ the Database handle is invalid
+
+ The parameter is formatted using
+ .
+
+ Multiple rows columns will be collapsed into a single one-dimensional list.
+
+
+
+
+ Executes the specified SQL SELECT query and returns all results as integers.
+
+ SQL SELECT query string
+ Optional Record object containing the values that replace
+ the parameter tokens (?) in the SQL query.
+ All results combined into an array
+ the SQL syntax is invalid
+ the View could not be executed
+ the Database handle is invalid
+
+ Multiple rows columns will be collapsed into a single one-dimensional list.
+
+
+
+
+ Executes the specified SQL SELECT query and returns all results as strings.
+
+ SQL query string, which may contain format items
+ Zero or more objects to format
+ All results combined into an array
+ the SQL syntax is invalid
+ the View could not be executed
+ the Database handle is invalid
+
+ The parameter is formatted using
+ .
+
+ Multiple rows columns will be collapsed into a single on-dimensional list.
+
+
+
+
+ Executes the specified SQL SELECT query and returns all results as strings.
+
+ SQL SELECT query string
+ Optional Record object containing the values that replace
+ the parameter tokens (?) in the SQL query.
+ All results combined into an array
+ the SQL syntax is invalid
+ the View could not be executed
+ the Database handle is invalid
+
+ Multiple rows columns will be collapsed into a single on-dimensional list.
+
+
+
+
+ Executes the specified SQL SELECT query and returns a single result.
+
+ SQL query string, which may contain format items
+ Zero or more objects to format
+ First field of the first result
+ the SQL syntax is invalid
+ the View could not be executed
+ or the query returned 0 results
+ the Database handle is invalid
+
+
+
+
+ Executes the specified SQL SELECT query and returns a single result.
+
+ SQL SELECT query string
+ Optional Record object containing the values that replace
+ the parameter tokens (?) in the SQL query.
+ First field of the first result
+ the SQL syntax is invalid
+ the View could not be executed
+ or the query returned 0 results
+ the Database handle is invalid
+
+
+
+
+ Creates a transform that, when applied to the object database, results in the reference database.
+
+ Database that does not include the changes
+ Name of the generated transform file, or null to only
+ check whether or not the two database are identical
+ true if a transform is generated, or false if a transform is not generated
+ because there are no differences between the two databases.
+ the transform could not be generated
+ a Database handle is invalid
+
+ A transform can add non-primary key columns to the end of a table. A transform cannot
+ be created that adds primary key columns to a table. A transform cannot be created that
+ changes the order, names, or definitions of columns.
+
+ If the transform is to be applied during an installation you must use the
+ method to populate the
+ summary information stream.
+
+
+
+
+ Creates and populates the summary information stream of an existing transform file, and
+ fills in the properties with the base and reference ProductCode and ProductVersion.
+
+ Database that does not include the changes
+ Name of the generated transform file
+ Error conditions that should be suppressed
+ when the transform is applied
+ Defines which properties should be validated
+ to verify that this transform can be applied to a database.
+ the transform summary info could not be
+ generated
+ a Database handle is invalid
+
+
+
+
+ Apply a transform to the database, recording the changes in the "_TransformView" table.
+
+ Path to the transform file
+ the transform could not be applied
+ the Database handle is invalid
+
+
+
+
+ Apply a transform to the database, suppressing any error conditions
+ specified by the transform's summary information.
+
+ Path to the transform file
+ the transform could not be applied
+ the Database handle is invalid
+
+
+
+
+ Apply a transform to the database, specifying error conditions to suppress.
+
+ Path to the transform file
+ Error conditions that are to be suppressed
+ the transform could not be applied
+ the Database handle is invalid
+
+
+
+
+ Checks whether a transform is valid for this Database, according to its validation data and flags.
+
+ Path to the transform file
+ true if the transform can be validly applied to this Database; false otherwise
+ the transform could not be applied
+ the Database handle is invalid
+
+
+
+ Checks whether a transform is valid for this Database, according to its SummaryInfo data.
+
+ SummaryInfo data of a transform file
+ true if the transform can be validly applied to this Database; false otherwise
+ error processing summary info
+ the Database or SummaryInfo handle is invalid
+
+
+
+ Managed-code portion of the embedded UI proxy.
+
+
+
+
+ Initializes managed embedded UI by loading the UI class and invoking its Initialize method.
+
+ Integer handle to the installer session.
+ Name of the class that implements the embedded UI. This must
+ be of the form: "AssemblyName!Namespace.Class"
+ On entry, contains the current UI level for the installation. After this
+ method returns, the installer resets the UI level to the returned value of this parameter.
+ 0 if the embedded UI was successfully loaded and initialized,
+ ERROR_INSTALL_USEREXIT if the user canceled the installation during initialization,
+ or ERROR_INSTALL_FAILURE if the embedded UI could not be initialized.
+
+ Due to interop limitations, the successful resulting UILevel is actually returned
+ as the high-word of the return value instead of via a ref parameter.
+
+
+
+
+ Passes a progress message to the UI class.
+
+ Installer message type and message box options.
+ Handle to a record containing message data.
+ Return value returned by the UI class.
+
+
+
+ Passes a shutdown message to the UI class.
+
+
+
+
+ Instantiates a UI class from a given assembly and class name.
+
+ Installer session, for logging.
+ Name of the class that implements the embedded UI. This must
+ be of the form: "AssemblyName!Namespace.Class"
+ Interface on the UI class for handling UI messages.
+
+
+
+ Specifies a return status value for custom actions.
+
+
+
+ Action completed successfully.
+
+
+ Skip remaining actions, not an error.
+
+
+ User terminated prematurely.
+
+
+ Unrecoverable error or unhandled exception occurred.
+
+
+ Action not executed.
+
+
+
+ Specifies the open mode for a .
+
+
+
+ Open a database read-only, no persistent changes.
+
+
+ Open a database read/write in transaction mode.
+
+
+ Open a database direct read/write without transaction.
+
+
+ Create a new database, transact mode read/write.
+
+
+ Create a new database, direct mode read/write.
+
+
+
+ Log modes available for
+ and .
+
+
+
+ Disable logging.
+
+
+ Log out of memory or fatal exit information.
+
+
+ Log error messages.
+
+
+ Log warning messages.
+
+
+ Log user requests.
+
+
+ Log status messages that are not displayed.
+
+
+ Log request to determine a valid source location.
+
+
+ Log insufficient disk space error.
+
+
+ Log the start of installation actions.
+
+
+ Log the data record for installation actions.
+
+
+ Log parameters for user-interface initialization.
+
+
+ Log the property values at termination.
+
+
+
+ Sends large amounts of information to log file not generally useful to users.
+ May be used for support.
+
+
+
+
+ Log extra debugging information.
+
+
+
+
+ Log only on error.
+
+
+
+
+ Log progress bar information. This message includes information on units so far and total number
+ of units. See for an explanation of the message format. This message
+ is only sent to an external user interface and is not logged.
+
+
+
+
+ If this is not a quiet installation, then the basic UI has been initialized. If this is a full
+ UI installation, the Full UI is not yet initialized. This message is only sent to an external
+ user interface and is not logged.
+
+
+
+
+ If a full UI is being used, the full UI has ended. If this is not a quiet installation, the basic
+ UI has not yet ended. This message is only sent to an external user interface and is not logged.
+
+
+
+
+ Sent prior to display of the Full UI dialog. This message is only sent to an external user
+ interface and is not logged.
+
+
+
+
+ List of files in use that need to be replaced.
+
+
+
+
+ [MSI 4.0] List of apps that the user can request Restart Manager to shut down and restart.
+
+
+
+
+ Type of message to be processed by ,
+ , or .
+
+
+
+ Premature termination, possibly fatal OOM.
+
+
+ Formatted error message.
+
+
+ Formatted warning message.
+
+
+ User request message.
+
+
+ Informative message for log.
+
+
+ List of files in use that need to be replaced.
+
+
+ Request to determine a valid source location.
+
+
+ Insufficient disk space message.
+
+
+ Start of action: action name & description.
+
+
+ Formatted data associated with individual action item.
+
+
+ Progress gauge info: units so far, total.
+
+
+ Product info for dialog: language Id, dialog caption.
+
+
+ Sent prior to UI initialization, no string data.
+
+
+ Sent after UI termination, no string data.
+
+
+ Sent prior to display or authored dialog or wizard.
+
+
+ [MSI 4.0] List of apps that the user can request Restart Manager to shut down and restart.
+
+
+ [MSI 4.5] Sent prior to install of a product.
+
+
+ [MSI 4.5] Sent after install of a product.
+
+
+
+ Specifies the install mode for or .
+
+
+
+ Provide the component only if the feature's installation state is .
+
+
+ Only check that the component is registered, without verifying that the key file of the component exists.
+
+
+ Provide the component only if the feature exists.
+
+
+ Provide the component and perform any installation necessary to provide the component.
+
+
+
+ Specifies the run mode for .
+
+
+
+ The administrative mode is installing, or the product is installing.
+
+
+ The advertisements are installing or the product is installing or updating.
+
+
+ An existing installation is being modified or there is a new installation.
+
+
+ Rollback is enabled.
+
+
+ The log file is active. It was enabled prior to the installation session.
+
+
+ Execute operations are spooling or they are in the determination phase.
+
+
+ A reboot is necessary after a successful installation (settable).
+
+
+ A reboot is necessary to continue the installation (settable).
+
+
+ Files from cabinets and Media table files are installing.
+
+
+ The source LongFileNames is suppressed through the PID_MSISOURCE summary property.
+
+
+ The target LongFileNames is suppressed through the SHORTFILENAMES property.
+
+
+ The operating system is Windows 95, Windows 98, or Windows ME.
+
+
+ The operating system supports demand installation.
+
+
+ A custom action called from install script execution.
+
+
+ A custom action called from rollback execution script.
+
+
+ A custom action called from commit execution script.
+
+
+
+ Installed state of a Component or Feature.
+
+
+
+ The component is disabled.
+
+
+ The installation configuration data is corrupt.
+
+
+ The installation is suspended or in progress.
+
+
+ Component is set to run from source, but source is unavailable.
+
+
+ The buffer overflow is returned.
+
+
+ An invalid parameter was passed to the function.
+
+
+ An unrecognized product or feature name was passed to the function.
+
+
+ The component is broken.
+
+
+ The feature is advertised.
+
+
+ The component is being removed. In action state and not settable.
+
+
+ The component is not installed, or action state is absent but clients remain.
+
+
+ The component is installed on the local drive.
+
+
+ The component will run from the source, CD, or network.
+
+
+ The component will be installed in the default location: local or source.
+
+
+
+ Specifies the type of installation for .
+
+
+
+ Searches system for products to patch.
+
+
+ Indicates a administrative installation.
+
+
+ Indicates a particular instance.
+
+
+
+ Level of the installation user interface, specified with
+ .
+
+
+
+ Does not change UI level.
+
+
+ Uses Default UI level.
+
+
+ Silent installation.
+
+
+ Simple progress and error handling.
+
+
+ Authored UI, wizard dialogs suppressed.
+
+
+ Authored UI with wizards, progress, and errors.
+
+
+
+ When combined with the value, the installer does not display
+ the cancel button in the progress dialog.
+
+
+
+
+ When combined with the value, the installer displays progress
+ dialog boxes but does not display any modal dialog boxes or error dialog boxes.
+
+
+
+
+ When combined with another value, the installer displays a modal dialog
+ box at the end of a successful installation or if there has been an error.
+ No dialog box is displayed if the user cancels.
+
+
+
+
+ Forces display of the source resolution dialog even if the UI is otherwise silent.
+
+
+
+
+ [MSI 5.0] Forces display of the UAC dialog even if the UI is otherwise silent.
+
+
+
+
+ Specifies a return status value for message handlers. These values are returned by
+ , , and .
+
+
+
+ An error was found in the message handler.
+
+
+ No action was taken.
+
+
+ IDOK
+
+
+ IDCANCEL
+
+
+ IDABORT
+
+
+ IDRETRY
+
+
+ IDIGNORE
+
+
+ IDYES
+
+
+ IDNO
+
+
+
+ Specifies constants defining which buttons to display for a message. This can be cast to
+ the MessageBoxButtons enum in System.Windows.Forms and System.Windows.
+
+
+
+
+ The message contains an OK button.
+
+
+
+
+ The message contains OK and Cancel buttons.
+
+
+
+
+ The message contains Abort, Retry, and Ignore buttons.
+
+
+
+
+ The message contains Yes, No, and Cancel buttons.
+
+
+
+
+ The message contains Yes and No buttons.
+
+
+
+
+ The message contains Retry and Cancel buttons.
+
+
+
+
+ Specifies constants defining which information to display. This can be cast to
+ the MessageBoxIcon enum in System.Windows.Forms and System.Windows.
+
+
+
+
+ The message contain no symbols.
+
+
+
+
+ The message contains a symbol consisting of white X in a circle with a red background.
+
+
+
+
+ The message contains a symbol consisting of a white X in a circle with a red background.
+
+
+
+
+ The message contains a symbol consisting of white X in a circle with a red background.
+
+
+
+
+ The message contains a symbol consisting of a question mark in a circle.
+
+
+
+
+ The message contains a symbol consisting of an exclamation point in a triangle with a yellow background.
+
+
+
+
+ The message contains a symbol consisting of an exclamation point in a triangle with a yellow background.
+
+
+
+
+ The message contains a symbol consisting of a lowercase letter i in a circle.
+
+
+
+
+ The message contains a symbol consisting of a lowercase letter i in a circle.
+
+
+
+
+ Specifies constants defining the default button on a message. This can be cast to
+ the MessageBoxDefaultButton enum in System.Windows.Forms and System.Windows.
+
+
+
+
+ The first button on the message is the default button.
+
+
+
+
+ The second button on the message is the default button.
+
+
+
+
+ The third button on the message is the default button.
+
+
+
+
+ Additional styles for use with message boxes.
+
+
+
+
+ The message box is created with the WS_EX_TOPMOST window style.
+
+
+
+
+ The caller is a service notifying the user of an event.
+ The function displays a message box on the current active desktop, even if there is no user logged on to the computer.
+
+
+
+
+ Specifies the different patch states for .
+
+
+
+ Invalid value.
+
+
+ Patches applied to a product.
+
+
+ Patches that are superseded by other patches.
+
+
+ Patches that are obsolesced by other patches.
+
+
+ Patches that are registered to a product but not applied.
+
+
+ All valid patch states.
+
+
+
+ Specifies the reinstall mode for or .
+
+
+
+ Reinstall only if file is missing.
+
+
+ Reinstall if file is missing, or older version.
+
+
+ Reinstall if file is missing, or equal or older version.
+
+
+ Reinstall if file is missing, or not exact version.
+
+
+ Checksum executables, reinstall if missing or corrupt.
+
+
+ Reinstall all files, regardless of version.
+
+
+ Insure required machine reg entries.
+
+
+ Insure required user reg entries.
+
+
+ Validate shortcuts items.
+
+
+ Use re-cache source install package.
+
+
+
+ Attributes for methods.
+
+
+
+ No attributes.
+
+
+ Request that the Windows Installer not shutdown the embedded UI until the transaction is complete.
+
+
+ Request that the Windows Installer transfer the embedded UI from the original installation.
+
+
+
+ Transform error conditions available for or
+ .
+
+
+
+ No error conditions.
+
+
+ Adding a row that already exists.
+
+
+ Deleting a row that doesn't exist.
+
+
+ Adding a table that already exists.
+
+
+ Deleting a table that doesn't exist.
+
+
+ Updating a row that doesn't exist.
+
+
+ Transform and database code pages do not match and neither code page is neutral.
+
+
+ Create the temporary _TransformView table when applying the transform.
+
+
+
+ Transform validation flags available for .
+
+
+
+ Validate no properties.
+
+
+ Default language must match base database.
+
+
+ Product must match base database.
+
+
+ Check major version only.
+
+
+ Check major and minor versions only.
+
+
+ Check major, minor, and update versions.
+
+
+ Installed version < base version.
+
+
+ Installed version <= base version.
+
+
+ Installed version = base version.
+
+
+ Installed version >= base version.
+
+
+ Installed version > base version.
+
+
+ UpgradeCode must match base database.
+
+
+
+ Specifies the installation context for s,
+ es, and
+
+
+
+
+ Not installed.
+
+
+ User managed install context.
+
+
+ User non-managed context.
+
+
+ Per-machine context.
+
+
+ All contexts, or all valid values.
+
+
+ All user-managed contexts.
+
+
+
+ Defines the type of error encountered by the , ,
+ or methods of the class.
+
+
+
+ No error.
+
+
+ The new record duplicates primary keys of the existing record in a table.
+
+
+ There are no null values allowed, or the column is about to be deleted but is referenced by another row.
+
+
+ The corresponding record in a foreign table was not found.
+
+
+ The data is greater than the maximum value allowed.
+
+
+ The data is less than the minimum value allowed.
+
+
+ The data is not a member of the values permitted in the set.
+
+
+ An invalid version string was supplied.
+
+
+ The case was invalid. The case must be all uppercase or all lowercase.
+
+
+ An invalid GUID was supplied.
+
+
+ An invalid wildcard file name was supplied, or the use of wildcards was invalid.
+
+
+ An invalid identifier was supplied.
+
+
+ Invalid language IDs were supplied.
+
+
+ An invalid file name was supplied.
+
+
+ An invalid path was supplied.
+
+
+ An invalid conditional statement was supplied.
+
+
+ An invalid format string was supplied.
+
+
+ An invalid template string was supplied.
+
+
+ An invalid string was supplied in the DefaultDir column of the Directory table.
+
+
+ An invalid registry path string was supplied.
+
+
+ An invalid string was supplied in the CustomSource column of the CustomAction table.
+
+
+ An invalid property string was supplied.
+
+
+ The _Validation table is missing a reference to a column.
+
+
+ The category column of the _Validation table for the column is invalid.
+
+
+ The table in the Keytable column of the _Validation table was not found or loaded.
+
+
+ The value in the MaxValue column of the _Validation table is less than the value in the MinValue column.
+
+
+ An invalid cabinet name was supplied.
+
+
+ An invalid shortcut target name was supplied.
+
+
+ The string is too long for the length specified by the column definition.
+
+
+ An invalid localization attribute was supplied. (Primary keys cannot be localized.)
+
+
+
+ Specifies the modify mode for .
+
+
+
+
+ Refreshes the information in the supplied record without changing the position
+ in the result set and without affecting subsequent fetch operations.
+
+
+
+ Refreshes the data in a Record.
+
+
+ Inserts a Record into the view.
+
+
+ Updates the View with new data from the Record.
+
+
+ Updates or inserts a Record into the View.
+
+
+ Updates or deletes and inserts a Record into the View.
+
+
+ Inserts or validates a record.
+
+
+ Deletes a Record from the View.
+
+
+ Inserts a Record into the View. The inserted data is not persistent.
+
+
+ Validates a record.
+
+
+ Validates a new record.
+
+
+ Validates fields of a fetched or new record. Can validate one or more fields of an incomplete record.
+
+
+ Validates a record that will be deleted later.
+
+
+
+ Base class for Windows Installer exceptions.
+
+
+
+
+ Creates a new InstallerException with a specified error message and a reference to the
+ inner exception that is the cause of this exception.
+
+ The message that describes the error.
+ The exception that is the cause of the current exception. If the
+ innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
+ is raised in a catch block that handles the inner exception.
+
+
+
+ Creates a new InstallerException with a specified error message.
+
+ The message that describes the error.
+
+
+
+ Creates a new InstallerException.
+
+
+
+
+ Initializes a new instance of the InstallerException class with serialized data.
+
+ The SerializationInfo that holds the serialized object data about the exception being thrown.
+ The StreamingContext that contains contextual information about the source or destination.
+
+
+
+ Gets the system error code that resulted in this exception, or 0 if not applicable.
+
+
+
+
+ Gets a message that describes the exception. This message may contain detailed
+ formatted error data if it was available.
+
+
+
+
+ Sets the SerializationInfo with information about the exception.
+
+ The SerializationInfo that holds the serialized object data about the exception being thrown.
+ The StreamingContext that contains contextual information about the source or destination.
+
+
+
+ Gets extended information about the error, or null if no further information
+ is available.
+
+ A Record object. Field 1 of the Record contains the installer
+ message code. Other fields contain data specific to the particular error.
+
+ If the record is passed to , it is formatted
+ by looking up the string in the current database. If there is no installation
+ session, the formatted error message may be obtained by a query on the Error table using
+ the error code, followed by a call to .
+ Alternatively, the standard MSI message can by retrieved by calling the
+ method.
+
+ The Record object should be d after use.
+ It is best that the handle be closed manually as soon as it is no longer
+ needed, as leaving lots of unused handles open can degrade performance.
+
+
+
+
+ User Canceled the installation.
+
+
+
+
+ Creates a new InstallCanceledException with a specified error message and a reference to the
+ inner exception that is the cause of this exception.
+
+ The message that describes the error.
+ The exception that is the cause of the current exception. If the
+ innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
+ is raised in a catch block that handles the inner exception.
+
+
+
+ Creates a new InstallCanceledException with a specified error message.
+
+ The message that describes the error.
+
+
+
+ Creates a new InstallCanceledException.
+
+
+
+
+ Initializes a new instance of the InstallCanceledException class with serialized data.
+
+ The SerializationInfo that holds the serialized object data about the exception being thrown.
+ The StreamingContext that contains contextual information about the source or destination.
+
+
+
+ A bad SQL query string was passed to or .
+
+
+
+
+ Creates a new BadQuerySyntaxException with a specified error message and a reference to the
+ inner exception that is the cause of this exception.
+
+ The message that describes the error.
+ The exception that is the cause of the current exception. If the
+ innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
+ is raised in a catch block that handles the inner exception.
+
+
+
+ Creates a new BadQuerySyntaxException with a specified error message.
+
+ The message that describes the error.
+
+
+
+ Creates a new BadQuerySyntaxException.
+
+
+
+
+ Initializes a new instance of the BadQuerySyntaxException class with serialized data.
+
+ The SerializationInfo that holds the serialized object data about the exception being thrown.
+ The StreamingContext that contains contextual information about the source or destination.
+
+
+
+ A method was called on an invalid installer handle. The handle may have been already closed.
+
+
+
+
+ Creates a new InvalidHandleException with a specified error message and a reference to the
+ inner exception that is the cause of this exception.
+
+ The message that describes the error.
+ The exception that is the cause of the current exception. If the
+ innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
+ is raised in a catch block that handles the inner exception.
+
+
+
+ Creates a new InvalidHandleException with a specified error message.
+
+ The message that describes the error.
+
+
+
+ Creates a new InvalidHandleException.
+
+
+
+
+ Initializes a new instance of the InvalidHandleException class with serialized data.
+
+ The SerializationInfo that holds the serialized object data about the exception being thrown.
+ The StreamingContext that contains contextual information about the source or destination.
+
+
+
+ A failure occurred when executing . The exception may contain
+ details about the merge conflict.
+
+
+
+
+ Creates a new MergeException with a specified error message and a reference to the
+ inner exception that is the cause of this exception.
+
+ The message that describes the error.
+ The exception that is the cause of the current exception. If the
+ innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
+ is raised in a catch block that handles the inner exception.
+
+
+
+ Creates a new MergeException with a specified error message.
+
+ The message that describes the error.
+
+
+
+ Creates a new MergeException.
+
+
+
+
+ Initializes a new instance of the MergeException class with serialized data.
+
+ The SerializationInfo that holds the serialized object data about the exception being thrown.
+ The StreamingContext that contains contextual information about the source or destination.
+
+
+
+ Gets the number of merge conflicts in each table, corresponding to the tables returned by
+ .
+
+
+
+
+ Gets the list of tables containing merge conflicts.
+
+
+
+
+ Gets a message that describes the merge conflits.
+
+
+
+
+ Sets the SerializationInfo with information about the exception.
+
+ The SerializationInfo that holds the serialized object data about the exception being thrown.
+ The StreamingContext that contains contextual information about the source or destination.
+
+
+
+ Defines a callback function that the installer calls for progress notification and error messages.
+
+
+
+
+ [MSI 3.1] Defines a callback function that the installer calls for record-based progress notification and error messages.
+
+
+
+
+ Provides static methods for installing and configuring products and patches.
+
+
+
+
+ Enables an external user-interface handler. This external UI handler is called before the
+ normal internal user-interface handler. The external UI handler has the option to suppress
+ the internal UI by returning a non-zero value to indicate that it has handled the messages.
+
+ A callback delegate that handles the UI messages
+ Specifies which messages to handle using the external message handler.
+ If the external handler returns a non-zero result, then that message will not be sent to the UI,
+ instead the message will be logged if logging has been enabled.
+ The previously set external handler, or null if there was no previously set handler
+
+ To restore the previous UI handler, a second call is made to SetExternalUI using the
+ ExternalUIHandler returned by the first call to SetExternalUI and specifying
+ as the message filter.
+
+ The external user interface handler does not have full control over the external user
+ interface unless is called with the uiLevel parameter set to
+ . If SetInternalUI is not called, the internal user
+ interface level defaults to . As a result, any message not
+ handled by the external user interface handler is handled by Windows Installer. The initial
+ "Preparing to install..." dialog always appears even if the external user interface
+ handler handles all messages.
+
+ SetExternalUI should only be called from a bootstrapping application. You cannot call
+ it from a custom action
+
+
+
+
+ [MSI 3.1] Enables a record-based external user-interface handler. This external UI handler is called
+ before the normal internal user-interface handler. The external UI handler has the option to suppress
+ the internal UI by returning a non-zero value to indicate that it has handled the messages.
+
+ A callback delegate that handles the UI messages
+ Specifies which messages to handle using the external message handler.
+ If the external handler returns a non-zero result, then that message will not be sent to the UI,
+ instead the message will be logged if logging has been enabled.
+ The previously set external handler, or null if there was no previously set handler
+
+ To restore the previous UI handler, a second call is made to SetExternalUI using the
+ ExternalUIHandler returned by the first call to SetExternalUI and specifying
+ as the message filter.
+
+ The external user interface handler does not have full control over the external user
+ interface unless is called with the uiLevel parameter set to
+ . If SetInternalUI is not called, the internal user
+ interface level defaults to . As a result, any message not
+ handled by the external user interface handler is handled by Windows Installer. The initial
+ "Preparing to install..." dialog always appears even if the external user interface
+ handler handles all messages.
+
+ SetExternalUI should only be called from a bootstrapping application. You cannot call
+ it from a custom action
+
+
+
+
+ Indicates whether a system reboot is required after running an installation or configuration operation.
+
+
+
+
+ Indicates whether a system reboot has been initiated after running an installation or configuration operation.
+
+
+
+
+ Enables the installer's internal user interface. Then this user interface is used
+ for all subsequent calls to user-interface-generating installer functions in this process.
+
+ Specifies the level of complexity of the user interface
+ Handle to a window, which becomes the owner of any user interface created.
+ A pointer to the previous owner of the user interface is returned.
+ The previous user interface level
+
+
+
+
+ Enables the installer's internal user interface. Then this user interface is used
+ for all subsequent calls to user-interface-generating installer functions in this process.
+ The owner of the user interface does not change.
+
+ Specifies the level of complexity of the user interface
+ The previous user interface level
+
+
+
+
+ Enables logging of the selected message type for all subsequent install sessions in
+ the current process space.
+
+ One or more mode flags specifying the type of messages to log
+ Full path to the log file. A null path disables logging,
+ in which case the logModes paraneter is ignored.
+ an invalid log mode was specified
+ This method takes effect on any new installation processes. Calling this
+ method from within a custom action will not start logging for that installation.
+
+
+
+ Enables logging of the selected message type for all subsequent install sessions in
+ the current process space.
+
+ One or more mode flags specifying the type of messages to log
+ Full path to the log file. A null path disables logging,
+ in which case the logModes paraneter is ignored.
+ If true, the log lines will be appended to any existing file content.
+ If false, the log file will be truncated if it exists. The default is false.
+ If true, the log will be flushed after every line.
+ If false, the log will be flushed every 20 lines. The default is true.
+ an invalid log mode was specified
+
+ This method takes effect on any new installation processes. Calling this
+ method from within a custom action will not start logging for that installation.
+
+
+
+
+ increments the usage count for a particular feature and returns the installation state for
+ that feature. This method should be used to indicate an application's intent to use a feature.
+
+ The product code of the product.
+ The feature to be used.
+ Must have the value .
+ The installed state of the feature.
+
+ The UseFeature method should only be used on features known to be published. The application
+ should determine the status of the feature by calling either the FeatureState method or
+ Features method.
+
+
+
+
+ Opens an installer package for use with functions that access the product database and install engine,
+ returning an Session object.
+
+ Path to the package
+ Specifies whether or not the create a Session object that ignores the
+ computer state and that is incapable of changing the current computer state. A value of false yields
+ the normal behavior. A value of true creates a "safe" Session object that cannot change of the current
+ machine state.
+ A Session object allowing access to the product database and install engine
+ The product could not be opened
+ The installer configuration data is corrupt
+
+ Note that only one Session object can be opened by a single process. OpenPackage cannot be used in a
+ custom action because the active installation is the only session allowed.
+
+ A "safe" Session object ignores the current computer state when opening the package and prevents
+ changes to the current computer state.
+
+ The Session object should be d after use.
+ It is best that the handle be closed manually as soon as it is no longer
+ needed, as leaving lots of unused handles open can degrade performance.
+
+
+
+
+ Opens an installer package for use with functions that access the product database and install engine,
+ returning an Session object.
+
+ Database used to create the session
+ Specifies whether or not the create a Session object that ignores the
+ computer state and that is incapable of changing the current computer state. A value of false yields
+ the normal behavior. A value of true creates a "safe" Session object that cannot change of the current
+ machine state.
+ A Session object allowing access to the product database and install engine
+ The product could not be opened
+ The installer configuration data is corrupt
+
+ Note that only one Session object can be opened by a single process. OpenPackage cannot be used in a
+ custom action because the active installation is the only session allowed.
+
+ A "safe" Session object ignores the current computer state when opening the package and prevents
+ changes to the current computer state.
+
+ The Session object should be d after use.
+ It is best that the handle be closed manually as soon as it is no longer
+ needed, as leaving lots of unused handles open can degrade performance.
+
+
+
+
+ Opens an installer package for an installed product using the product code.
+
+ Product code of the installed product
+ A Session object allowing access to the product database and install engine,
+ or null if the specified product is not installed.
+ An unknown product was requested
+ The product could not be opened
+ The installer configuration data is corrupt
+
+ Note that only one Session object can be opened by a single process. OpenProduct cannot be
+ used in a custom action because the active installation is the only session allowed.
+
+ The Session object should be d after use.
+ It is best that the handle be closed manually as soon as it is no longer
+ needed, as leaving lots of unused handles open can degrade performance.
+
+
+
+
+ Gets the full component path, performing any necessary installation. This method prompts for source if
+ necessary and increments the usage count for the feature.
+
+ Product code for the product that contains the feature with the necessary component
+ Feature ID of the feature with the necessary component
+ Component code of the necessary component
+ Installation mode; this can also include bits from
+ Path to the component
+
+
+
+
+ Gets the full component path for a qualified component that is published by a product and
+ performs any necessary installation. This method prompts for source if necessary and increments
+ the usage count for the feature.
+
+ Specifies the component ID for the requested component. This may not be the
+ GUID for the component itself but rather a server that provides the correct functionality, as in the
+ ComponentId column of the PublishComponent table.
+ Specifies a qualifier into a list of advertising components (from PublishComponent Table).
+ Installation mode; this can also include bits from
+ Optional; specifies the product to match that has published the qualified component.
+ Path to the component
+
+
+
+
+ Gets the full path to a Windows Installer component containing an assembly. This method prompts for a source and
+ increments the usage count for the feature.
+
+ Assembly name
+ Set to null for global assemblies. For private assemblies, set to the full path of the
+ application configuration file (.cfg file) or executable file (.exe) of the application to which the assembly
+ has been made private.
+ Installation mode; this can also include bits from
+ True if this is a Win32 assembly, false if it is a .NET assembly
+ Path to the assembly
+
+
+
+
+ Installs files that are unexpectedly missing.
+
+ Product code for the product that owns the component to be installed
+ Component to be installed
+ Specifies the way the component should be installed.
+ the user exited the installation
+
+
+
+
+ Installs files that are unexpectedly missing.
+
+ Product code for the product that owns the file to be installed
+ File to be installed
+ the user exited the installation
+
+
+
+
+ Reinstalls a feature.
+
+ Product code for the product containing the feature to be reinstalled
+ Feature to be reinstalled
+ Reinstall modes
+ the user exited the installation
+
+
+
+
+ Opens an installer package and initializes an install session.
+
+ path to the patch package
+ command line property settings
+ There was an error installing the product
+
+ To completely remove a product, set REMOVE=ALL in .
+
+ This method displays the user interface with the current settings and
+ log mode. You can change user interface settings with the
+ and functions. You can set the log mode with the
+ function.
+
+ The and properties should be
+ tested after calling this method.
+
+
+
+
+ Installs or uninstalls a product.
+
+ Product code of the product to be configured.
+ Specifies the default installation configuration of the
+ product. The parameter is ignored and all features
+ are installed if the parameter is set to any other
+ value than . This parameter must be either 0
+ (install using authored feature levels), 65535 (install all features), or a value
+ between 0 and 65535 to install a subset of available features.
+ Specifies the installation state for the product.
+ Specifies the command line property settings. This should
+ be a list of the format Property=Setting Property=Setting.
+ There was an error configuring the product
+
+ This method displays the user interface with the current settings and
+ log mode. You can change user interface settings with the
+ and functions. You can set the log mode with the
+ function.
+
+ The and properties should be
+ tested after calling this method.
+
+
+
+
+ Configures the installed state for a product feature.
+
+ Product code of the product to be configured.
+ Specifies the feature ID for the feature to be configured.
+ Specifies the installation state for the feature.
+ There was an error configuring the feature
+
+ The and properties should be
+ tested after calling this method.
+
+
+
+
+ For each product listed by the patch package as eligible to receive the patch, ApplyPatch invokes
+ an installation and sets the PATCH property to the path of the patch package.
+
+ path to the patch package
+ optional command line property settings
+ There was an error applying the patch
+
+ The and properties should be
+ tested after calling this method.
+
+
+
+
+ For each product listed by the patch package as eligible to receive the patch, ApplyPatch invokes
+ an installation and sets the PATCH property to the path of the patch package.
+
+ path to the patch package
+ path to the product to be patched, if installType
+ is set to
+ type of installation to patch
+ optional command line property settings
+ There was an error applying the patch
+
+ The and properties should be
+ tested after calling this method.
+
+
+
+
+ Removes one or more patches from a single product. To remove a patch from
+ multiple products, RemovePatches must be called for each product.
+
+ List of patches to remove. Each patch can be specified by the GUID
+ of the patch or the full path to the patch package.
+ The ProductCode (GUID) of the product from which the patches
+ are removed. This parameter cannot be null.
+ optional command line property settings
+ There was an error removing the patches
+
+ The and properties should be
+ tested after calling this method.
+
+
+
+
+ Determines which patches apply to a specified product MSI and in what sequence.
+
+ Full path to an MSI file that is the target product
+ for the set of patches.
+ An array of strings specifying the patches to be checked. Each item
+ may be the path to an MSP file, the path an XML file, or just an XML blob.
+ Callback to be invoked for each inapplicable patch, reporting the
+ reason the patch is not applicable. This value may be left null if that information is not
+ desired.
+ An array of selected patch strings from , indicating
+ the set of applicable patches. The items are re-ordered to be in the best sequence.
+
+ If an item in is a file path but does not end in .MSP or .XML,
+ it is assumed to be an MSP file.
+
+ As this overload uses InstallContext.None, it does not consider the current state of
+ the system.
+
+
+
+
+ Determines which patches apply to a specified product and in what sequence. If
+ the product is installed, this method accounts for patches that have already been applied to
+ the product and accounts for obsolete and superceded patches.
+
+ The product that is the target for the set of patches. This may be
+ either a ProductCode (GUID) of a product that is currently installed, or the path to a an
+ MSI file.
+ An array of strings specifying the patches to be checked. Each item
+ may be the path to an MSP file, the path an XML file, or just an XML blob.
+ Callback to be invoked for each inapplicable patch, reporting the
+ reason the patch is not applicable. This value may be left null if that information is not
+ desired.
+ Specifies a security identifier (SID) of a user. This parameter restricts
+ the context of enumeration for this user account. This parameter cannot be the special SID
+ strings s-1-1-0 (everyone) or s-1-5-18 (local system). If is set to
+ or , then
+ must be null. For the current user context,
+ can be null and can be set to
+ or .
+ Restricts the enumeration to per-user-unmanaged, per-user-managed,
+ or per-machine context, or (if referring to an MSI) to no system context at all. This
+ parameter can be , ,
+ , or .
+ An array of selected patch strings from , indicating
+ the set of applicable patches. The items are re-ordered to be in the best sequence.
+
+ If an item in is a file path but does not end in .MSP or .XML,
+ it is assumed to be an MSP file.
+
+ Passing an InstallContext of None only analyzes the MSI file; it does not consider the
+ current state of the system. You cannot use InstallContext.None with a ProductCode GUID.
+
+
+
+
+ Applies one or more patches to products that are eligible to receive the patch.
+ For each product listed by the patch package as eligible to receive the patch, ApplyPatch invokes
+ an installation and sets the PATCH property to the path of the patch package.
+
+ The set of patch packages to be applied.
+ Each item is the full path to an MSP file.
+ Provides the ProductCode of the product being patched. If this parameter
+ is null, the patches are applied to all products that are eligible to receive these patches.
+ optional command line property settings
+
+
+
+
+ Extracts information from a patch that can be used to determine whether the patch
+ applies on a target system. The method returns an XML string that can be provided to
+
+ instead of the full patch file.
+
+ Full path to the patch being queried.
+ XML string containing patch data.
+
+
+
+
+ [MSI 3.1] Migrates a user's application configuration data to a new SID.
+
+ Previous user SID that data is to be migrated from
+ New user SID that data is to be migrated to
+
+
+
+
+ Advertises a product to the local computer.
+
+ Path to the package of the product being advertised
+ True if the product is user-assigned; false if it is machine-assigned.
+ Semi-colon delimited list of transforms to be applied. This parameter may be null.
+ The language to use if the source supports multiple languages
+ the specified package file does not exist
+
+
+
+
+
+ Generates an advertise script. The method enables the installer to write to a
+ script the registry and shortcut information used to assign or publish a product.
+
+ Path to the package of the product being advertised
+ path to script file to be created with the advertise information
+ Semi-colon delimited list of transforms to be applied. This parameter may be null.
+ The language to use if the source supports multiple languages
+ the specified package file does not exist
+
+
+
+
+
+ Generates an advertise script. The method enables the installer to write to a
+ script the registry and shortcut information used to assign or publish a product.
+
+ Path to the package of the product being advertised
+ path to script file to be created with the advertise information
+ Semi-colon delimited list of transforms to be applied. This parameter may be null.
+ The language to use if the source supports multiple languages
+ Targeted processor architecture.
+ True to install multiple instances through product code changing transform.
+ Advertises a new instance of the product. Requires that the parameter
+ includes the instance transform that changes the product code.
+
+
+
+
+
+ Copies an advertise script file to the local computer.
+
+ Path to a script file generated by
+
+ Flags controlling advertisement
+ True if specified items are to be removed instead of being created
+
+ The process calling this function must be running under the LocalSystem account. To advertise an
+ application for per-user installation to a targeted user, the thread that calls this function must
+ impersonate the targeted user. If the thread calling this function is not impersonating a targeted
+ user, the application is advertised to all users for installation with elevated privileges.
+
+
+
+
+ Processes an advertise script file into the specified locations.
+
+ Path to a script file generated by
+
+ An optional path to a folder in which advertised icon files and transform
+ files are located. If this parameter is null, no icon or transform files are written.
+ True if shortcuts should be created
+ True if specified items are to be removed instead of created
+
+ The process calling this function must be running under the LocalSystem account. To advertise an
+ application for per-user installation to a targeted user, the thread that calls this function must
+ impersonate the targeted user. If the thread calling this function is not impersonating a targeted
+ user, the application is advertised to all users for installation with elevated privileges.
+
+
+
+
+ Gets product information for an installer script file.
+
+ Path to a script file generated by
+
+ ProductInstallation stub with advertise-related properties filled in.
+ An invalid product property was requested
+
+ Only the following properties will be filled in in the returned object:
+
+
+
+ Gets the current version of the installer.
+
+
+
+
+ Gets a Windows Installer error message in the system default language.
+
+ The error number.
+ The message string, or null if the error message is not found.
+
+ The returned string may have tokens such as [2] and [3] that are meant to be substituted
+ with context-specific values.
+
+ Error numbers greater than 2000 refer to MSI "internal" errors, and are always
+ returned in English.
+
+
+
+
+ Gets a Windows Installer error message in a specified language.
+
+ The error number.
+ The locale for the message.
+ The message string, or null if the error message or locale is not found.
+
+ The returned string may have tokens such as [2] and [3] that are meant to be substituted
+ with context-specific values.
+
+ Error numbers greater than 2000 refer to MSI "internal" errors, and are always
+ returned in English.
+
+
+
+
+ Gets a formatted Windows Installer error message in the system default language.
+
+ Error record containing the error number in the first field, and
+ error-specific parameters in the other fields.
+ The message string, or null if the error message is not found.
+
+ Error numbers greater than 2000 refer to MSI "internal" errors, and are always
+ returned in English.
+
+
+
+
+ Gets a formatted Windows Installer error message in a specified language.
+
+ Error record containing the error number in the first field, and
+ error-specific parameters in the other fields.
+ The locale for the message.
+ The message string, or null if the error message or locale is not found.
+
+ Error numbers greater than 2000 refer to MSI "internal" errors, and are always
+ returned in English.
+
+
+
+
+ Gets the version string of the path specified using the format that the installer
+ expects to find it in in the database.
+
+ Path to the file
+ Version string in the "#.#.#.#" format, or an empty string if the file
+ does not contain version information
+ the file does not exist or could not be read
+
+
+
+
+ Gets the language string of the path specified using the format that the installer
+ expects to find them in in the database.
+
+ Path to the file
+ Language string in the form of a decimal language ID, or an empty string if the file
+ does not contain a language ID
+ the file does not exist or could not be read
+
+
+
+
+ Gets a 128-bit hash of the specified file.
+
+ Path to the file
+ Integer array of length 4 which receives the
+ four 32-bit parts of the hash value.
+ the file does not exist or
+ could not be read
+
+
+
+
+ Examines a shortcut and returns its product, feature name, and component if available.
+
+ Full path to a shortcut
+ ShortcutTarget structure containing target product code, feature, and component code
+
+
+
+
+ Verifies that the given file is an installation package.
+
+ Path to the package
+ True if the file is an installation package; false otherwise.
+ the specified package file does not exist
+ the package file could not be opened
+
+
+
+
+ [MSI 4.0] Gets the list of files that can be updated by one or more patches.
+
+ ProductCode (GUID) of the product which is
+ the target of the patches
+ list of file paths of one or more patches to be
+ analyzed
+ List of absolute paths of files that can be updated when the
+ patches are applied on this system.
+
+
+
+
+ Accessor for information about features within the context of an installation session.
+
+
+
+
+ Gets information about a feature within the context of an installation session.
+
+ name of the feature
+ feature object
+
+
+
+ Checks if the collection contains a feature.
+
+ name of the feature
+ true if the feature is in the collection, else false
+
+
+
+ Copies the features into an array.
+
+ array that receives the features
+ offset into the array
+
+
+
+ Gets the number of features defined for the product.
+
+
+
+
+ Enumerates the features in the collection.
+
+ an enumerator over all features in the collection
+
+
+
+ Provides access to information about a feature within the context of an installation session.
+
+
+
+
+ Gets the name of the feature (primary key in the Feature table).
+
+
+
+
+ Gets the current install state of the feature.
+
+ the Session handle is invalid
+ an unknown feature was requested
+
+
+
+
+ Gets or sets the action state of the feature.
+
+ the Session handle is invalid
+ an unknown feature was requested
+
+ When changing the feature action, the action state of all the Components linked to the changed
+ Feature records are also updated appropriately, based on the new feature Select state.
+ All Features can be configured at once by specifying the keyword ALL instead of a specific feature name.
+
+ Since the lpAttributes paramter of
+ MsiGetFeatureInfo
+ does not contain an equivalent flag for , this flag will
+ not be retrieved.
+
+ Since the dwAttributes parameter of
+ MsiSetFeatureAttributes
+ does not contain an equivalent flag for , the presence
+ of this flag will be ignored.
+
+
+
+
+ Gets the title of the feature.
+
+ the Session handle is invalid
+ an unknown feature was requested
+
+
+
+
+ Calculates the disk space required by the feature and its selected children and parent features.
+
+ If true, the parent features are included in the cost.
+ If true, the child features are included in the cost.
+ Specifies the installation state.
+ The disk space requirement in bytes.
+
+
+
+
+ Represents an instance of a feature of an installed product.
+
+
+
+
+ Creates a new FeatureInstallation instance for a feature of a product.
+
+ feature name
+ ProductCode GUID
+
+
+
+ Gets the name of the feature.
+
+
+
+
+ Gets the installed state of the feature.
+
+
+
+
+
+ Gets the parent of the feature, or null if the feature has no parent (it is a root feature).
+
+
+ Invocation of this property may be slightly costly for products with many features,
+ because it involves an enumeration of all the features in the product.
+
+
+
+
+ Gets the usage metrics for the feature.
+
+
+ If no usage metrics are recorded, the value is 0.
+
+
+
+
+ Holds data about the usage of a feature.
+
+
+
+
+ Gets count of the number of times the feature has been used.
+
+
+
+
+ Gets the date the feature was last used.
+
+
+
+
+ Base class for Windows Installer handle types (Database, View, Record, SummaryInfo).
+
+
+ These classes implement the interface, because they
+ hold unmanaged resources (MSI handles) that should be properly disposed
+ when no longer needed.
+
+
+
+
+ Constructs a handle object from a native integer handle.
+
+ Native integer handle.
+ true to close the handle when this object is disposed or finalized
+
+
+
+ Gets the native integer handle.
+
+
+
+
+ Checks if the handle is closed. When closed, method calls on the handle object may throw an .
+
+
+
+
+ Closes the handle. After closing a handle, further method calls may throw an .
+
+
+ The finalizer of this class will NOT close the handle if it is still open,
+ because finalization can run on a separate thread from the application,
+ resulting in potential problems if handles are closed from that thread.
+ It is best that the handle be closed manually as soon as it is no longer needed,
+ as leaving lots of unused handles open can degrade performance.
+
+
+
+
+
+ Closes the handle. After closing a handle, further method calls may throw an .
+
+
+ The finalizer of this class will NOT close the handle if it is still open,
+ because finalization can run on a separate thread from the application,
+ resulting in potential problems if handles are closed from that thread.
+ It is best that the handle be closed manually as soon as it is no longer needed,
+ as leaving lots of unused handles open can degrade performance.
+
+ This method is merely an alias for the method.
+
+
+
+
+ Tests whether this handle object is equal to another handle object. Two handle objects are equal
+ if their types are the same and their native integer handles are the same.
+
+ The handle object to compare with the current handle object.
+ true if the specified handle object is equal to the current handle object; otherwise false
+
+
+
+ Gets a hash value for the handle object.
+
+ A hash code for the handle object.
+
+ The hash code is derived from the native integer handle.
+
+
+
+
+ Gets an object that can be used internally for safe syncronization.
+
+
+
+
+ Closes the handle. After closing a handle, further method calls may throw an .
+
+ If true, the method has been called directly or indirectly by a user's code,
+ so managed and unmanaged resources will be disposed. If false, the method has been called by the
+ runtime from inside the finalizer, and only unmanaged resources will be disposed.
+
+
+
+ [MSI 4.5] Interface for an embedded external user interface for an installation.
+
+
+ Classes which implement this interface must have a public constructor that takes no parameters.
+
+
+
+
+ Initializes the embedded UI.
+
+ Handle to the installer which can be used to get and set properties.
+ The handle is only valid for the duration of this method call.
+ Path to the directory that contains all the files from the MsiEmbeddedUI table.
+ On entry, contains the current UI level for the installation. After this
+ method returns, the installer resets the UI level to the returned value of this parameter.
+ True if the embedded UI was successfully initialized; false if the installation
+ should continue without the embedded UI.
+ The installation was canceled by the user.
+ The embedded UI failed to initialize and
+ causes the installation to fail.
+
+
+
+
+ Processes information and progress messages sent to the user interface.
+
+ Message type.
+ Record that contains message data.
+ Message buttons.
+ Message box icon.
+ Message box default button.
+ Result of processing the message.
+
+
+
+
+ Shuts down the embedded UI at the end of the installation.
+
+
+ If the installation was canceled during initialization, this method will not be called.
+ If the installation was canceled or failed at any later point, this method will be called at the end.
+
+
+
+
+ Subclasses of this abstract class represent a unique instance of a
+ registered product or patch installation.
+
+
+
+
+ Gets the user security identifier (SID) under which this product or patch
+ installation is available.
+
+
+
+
+ Gets the user context of this product or patch installation.
+
+
+
+
+ Gets the source list of this product or patch installation.
+
+
+
+
+ Gets a value indicating whether this product or patch is installed on the current system.
+
+
+
+
+ Gets a property about the product or patch installation.
+
+ Name of the property being retrieved.
+
+
+
+
+ Subclasses of this abstract class represent an instance
+ of a registered feature or component.
+
+
+
+
+ Gets the product that this item is a part of.
+
+
+
+
+ Gets the current installation state of the item.
+
+
+
+
+ Represents a per-drive disk space cost for an installation.
+
+
+
+
+ Creates a new InstallCost object.
+
+ name of the drive this cost data applies to
+ installation cost on this drive, as a number of bytes
+ temporary disk space required on this drive, as a number of bytes
+
+
+
+ The name of the drive this cost data applies to.
+
+
+
+
+ The installation cost on this drive, as a number of bytes.
+
+
+
+
+ The temporary disk space required on this drive, as a number of bytes.
+
+
+ This temporary space requirement is space needed only for the duration
+ of the installation, over the final footprint on disk.
+
+
+
+
+ Receives an exception from
+
+ indicating the reason a particular patch is not applicable to a product.
+
+ MSP file path, XML file path, or XML blob that was passed to
+
+ exception indicating the reason the patch is not applicable
+
+ If is an or subclass, then
+ its and
+ properties will indicate a more specific reason the patch was not applicable.
+
+ The could also be a FileNotFoundException if the
+ patch string was a file path.
+
+
+
+
+ [MSI 4.5] Handle to a multi-session install transaction.
+
+
+
+
+
+ [MSI 4.5] Begins transaction processing of a multi-package installation.
+
+ Name of the multi-package installation.
+ Select optional behavior when beginning the transaction.
+ The transaction could not be initialized.
+
+
+
+
+ Internal constructor.
+
+
+ The second parameter is an array in order to receive multiple values from the initialization method.
+
+
+
+
+ Creates a new Transaction object from an integer handle.
+
+ Integer transaction handle
+ true to close the handle when this object is disposed
+
+
+
+ Gets the name of the transaction.
+
+
+
+
+ Notifies listeners when the process that owns the transaction changed.
+
+
+
+
+ Makes the current process the owner of the multi-package installation transaction.
+
+ Select optional behavior when joining the transaction.
+ The transaction handle is not valid.
+ The transaction could not be joined.
+
+
+
+
+ Ends the install transaction and commits all changes to the system belonging to the transaction.
+
+ The transaction could not be committed.
+
+ Runs any Commit Custom Actions and commits to the system any changes to Win32 or common language
+ runtime assemblies. Deletes the rollback script, and after using this option, the transaction's
+ changes can no longer be undone with a Rollback Installation.
+
+ This method can only be called by the current owner of the transaction.
+
+
+
+
+ Represents a media disk source of a product or a patch.
+
+
+
+
+ Creates a new media disk.
+
+
+
+
+
+
+
+ Gets or sets the disk id of the media disk.
+
+
+
+
+ Gets or sets the volume label of the media disk.
+
+
+
+
+ Gets or sets the disk prompt of the media disk.
+
+
+
+
+ The Patch object represents a unique instance of a patch that has been
+ registered or applied.
+
+
+
+
+ Enumerates all patch installations on the system.
+
+ Enumeration of patch objects.
+
+
+
+
+ Enumerates patch installations based on certain criteria.
+
+ PatchCode (GUID) of the patch to be enumerated. Only
+ instances of patches within the scope of the context specified by the
+ and parameters will be
+ enumerated. This parameter may be set to null to enumerate all patches in the specified
+ context.
+ ProductCode (GUID) product whose patches are to be
+ enumerated. If non-null, patch enumeration is restricted to instances of this product
+ within the specified context. If null, the patches for all products under the specified
+ context are enumerated.
+ Specifies a security identifier (SID) that restricts the context
+ of enumeration. A SID value other than s-1-1-0 is considered a user SID and restricts
+ enumeration to the current user or any user in the system. The special SID string
+ s-1-1-0 (Everyone) specifies enumeration across all users in the system. This parameter
+ can be set to null to restrict the enumeration scope to the current user. When
+ must be null.
+ Specifies the user context.
+ The of patches to return.
+
+
+
+
+ Creates a new object for accessing information about a patch installation on the current system.
+
+ Patch code (GUID) of the patch.
+ ProductCode (GUID) the patch has been applied to.
+ This parameter may be null for patches that are registered only and not yet
+ applied to any product.
+
+ All available user contexts will be queried.
+
+
+
+
+ Creates a new object for accessing information about a patch installation on the current system.
+
+ Registered patch code (GUID) of the patch.
+ ProductCode (GUID) the patch has been applied to.
+ This parameter may be null for patches that are registered only and not yet
+ applied to any product.
+ The specific user, when working in a user context. This
+ parameter may be null to indicate the current user. The parameter must be null
+ when working in a machine context.
+ The user context. The calling process must have administrative
+ privileges to get information for a product installed for a user other than the
+ current user.
+
+ If the is null, the Patch object may
+ only be used to read and update the patch's SourceList information.
+
+
+
+
+ Gets the patch code (GUID) of the patch.
+
+
+
+
+ Gets the ProductCode (GUID) of the product.
+
+
+
+
+ Gets a value indicating whether this patch is currently installed.
+
+
+
+
+ Gets a value indicating whether this patch is marked as obsolte.
+
+
+
+
+ Gets a value indicating whether this patch is present but has been
+ superseded by a more recent installed patch.
+
+
+
+
+ Gets the installation state of this instance of the patch.
+
+ An unknown patch was requested
+ The installer configuration data is corrupt
+
+
+
+ Gets the cached patch file that the product uses.
+
+
+
+
+ Gets the set of patch transforms that the last patch
+ installation applied to the product.
+
+
+ This value may not be available for per-user, non-managed applications
+ if the user is not logged on.
+
+
+
+
+ Gets the date and time when the patch is applied to the product.
+
+
+
+
+ True patch is marked as possible to uninstall from the product.
+
+
+ Even if this property is true, the installer can still block the
+ uninstallation if this patch is required by another patch that
+ cannot be uninstalled.
+
+
+
+
+ Get the registered display name for the patch.
+
+
+
+
+ Gets the registered support information URL for the patch.
+
+
+
+
+ Gets information about a specific patch installation.
+
+ The property being retrieved; see remarks for valid properties.
+ The property value, or an empty string if the property is not set for the patch.
+ An unknown patch or property was requested
+ The installer configuration data is corrupt
+
+
+
+
+ Represents a unique instance of a product that
+ is either advertised, installed or unknown.
+
+
+
+
+ Gets the set of all products with a specified upgrade code. This method lists the
+ currently installed and advertised products that have the specified UpgradeCode
+ property in their Property table.
+
+ Upgrade code of related products
+ Enumeration of product codes
+
+
+
+
+ Enumerates product installations based on certain criteria.
+
+ ProductCode (GUID) of the product instances to be enumerated. Only
+ instances of products within the scope of the context specified by the
+ and parameters will be
+ enumerated. This parameter may be set to null to enumerate all products in the specified
+ context.
+ Specifies a security identifier (SID) that restricts the context
+ of enumeration. A SID value other than s-1-1-0 is considered a user SID and restricts
+ enumeration to the current user or any user in the system. The special SID string
+ s-1-1-0 (Everyone) specifies enumeration across all users in the system. This parameter
+ can be set to null to restrict the enumeration scope to the current user. When
+ is set to the machine context only,
+ must be null.
+ Specifies the user context.
+ An enumeration of product objects for enumerated product instances.
+
+
+
+
+ Creates a new object for accessing information about a product installation on the current system.
+
+ ProductCode (GUID) of the product.
+
+ All available user contexts will be queried.
+
+
+
+
+ Creates a new object for accessing information about a product installation on the current system.
+
+ ProductCode (GUID) of the product.
+ The specific user, when working in a user context. This
+ parameter may be null to indicate the current user. The parameter must be null
+ when working in a machine context.
+ The user context. The calling process must have administrative
+ privileges to get information for a product installed for a user other than the
+ current user.
+
+
+
+ Gets the set of published features for the product.
+
+ Enumeration of published features for the product.
+ The installer configuration data is corrupt
+
+ Because features are not ordered, any new feature has an arbitrary index, meaning
+ this property can return features in any order.
+
+
+
+
+ Gets the ProductCode (GUID) of the product.
+
+
+
+
+ Gets a value indicating whether this product is installed on the current system.
+
+
+
+
+ Gets a value indicating whether this product is advertised on the current system.
+
+
+
+
+ Checks whether the product is installed with elevated privileges. An application is called
+ a "managed application" if elevated (system) privileges are used to install the application.
+
+ True if the product is elevated; false otherwise
+
+ Note that this property does not take into account policies such as AlwaysInstallElevated,
+ but verifies that the local system owns the product's registry data.
+
+
+
+
+ Gets the source list of this product installation.
+
+
+
+
+ The support link.
+
+
+
+
+ The support telephone.
+
+
+
+
+ Date and time the product was installed.
+
+
+
+
+ The installed product name.
+
+
+
+
+ The installation location.
+
+
+
+
+ The installation source.
+
+
+
+
+ The local cached package.
+
+
+
+
+ The publisher.
+
+
+
+
+ URL about information.
+
+
+
+
+ The URL update information.
+
+
+
+
+ The product version.
+
+
+
+
+ The product identifier.
+
+
+
+
+
+ The company that is registered to use the product.
+
+
+
+
+ The owner who is registered to use the product.
+
+
+
+
+ Transforms.
+
+
+
+
+ Product language.
+
+
+
+
+ Human readable product name.
+
+
+
+
+ True if the product is advertised per-machine;
+ false if it is per-user or not advertised.
+
+
+
+
+ Identifier of the package that a product is installed from.
+
+
+
+
+ Version of the advertised product.
+
+
+
+
+ Primary icon for the package.
+
+
+
+
+ Name of the installation package for the advertised product.
+
+
+
+
+ True if the advertised product can be serviced by
+ non-administrators without elevation.
+
+
+
+
+ Gets information about an installation of a product.
+
+ Name of the property being retrieved.
+ An unknown product or property was requested
+ The installer configuration data is corrupt
+
+
+
+
+ Gets the installed state for a product feature.
+
+ The feature being queried; identifier from the
+ Feature table
+ Installation state of the feature for the product instance: either
+ , ,
+ or .
+
+
+
+
+ Gets the installed state for a product component.
+
+ The component being queried; GUID of the component
+ as found in the ComponentId column of the Component table.
+ Installation state of the component for the product instance: either
+ or .
+
+
+
+
+ Obtains and stores the user information and product ID from an installation wizard.
+
+
+ This method is typically called by an application during the first run of the application. The application
+ first gets the or .
+ If those properties are missing, the application calls CollectUserInfo.
+ CollectUserInfo opens the product's installation package and invokes a wizard sequence that collects
+ user information. Upon completion of the sequence, user information is registered. Since this API requires
+ an authored user interface, the user interface level should be set to full by calling
+ as .
+
+ The CollectUserInfo method invokes a FirstRun dialog from the product installation database.
+
+
+
+
+ Some products might write some invalid/nonstandard version strings to the registry.
+ This method tries to get the best data it can.
+
+ Version string retrieved from the registry.
+ Version object, or null if the version string is completely invalid.
+
+
+
+ The Record object is a container for holding and transferring a variable number of values.
+ Fields within the record are numerically indexed and can contain strings, integers, streams,
+ and null values. Record fields are indexed starting with 1. Field 0 is a special format field.
+
+
+ Most methods on the Record class have overloads that allow using either a number
+ or a name to designate a field. However note that field names only exist when the
+ Record is directly returned from a query on a database. For other records, attempting
+ to access a field by name will result in an InvalidOperationException.
+
+
+
+
+ IsFormatStringInvalid is set from several View methods that invalidate the FormatString
+ and used to determine behavior during Record.ToString().
+
+
+
+
+ Creates a new record object with the requested number of fields.
+
+ Required number of fields, which may be 0.
+ The maximum number of fields in a record is limited to 65535.
+
+ The Record object should be d after use.
+ It is best that the handle be closed manually as soon as it is no longer
+ needed, as leaving lots of unused handles open can degrade performance.
+
+
+
+
+ Creates a new record object, providing values for an arbitrary number of fields.
+
+ The values of the record fields. The parameters should be of type Int16, Int32 or String
+
+ The Record object should be d after use.
+ It is best that the handle be closed manually as soon as it is no longer
+ needed, as leaving lots of unused handles open can degrade performance.
+
+
+
+
+ Gets or sets field 0 of the Record, which is the format string.
+
+
+
+
+ Gets or sets a record field value.
+
+ Specifies the name of the field of the Record to get or set.
+ The name does not match any known field of the Record.
+
+ When getting a field, the type of the object returned depends on the type of the Record field.
+ The object will be one of: Int16, Int32, String, Stream, or null.
+
+ When setting a field, the type of the object provided will be converted to match the View
+ query that returned the record, or if Record was not returned from a view then the type of
+ the object provided will determine the type of the Record field. The object should be one of:
+ Int16, Int32, String, Stream, or null.
+
+
+
+
+ Gets or sets a record field value.
+
+ Specifies the field of the Record to get or set.
+ The field is less than 0 or greater than the
+ number of fields in the Record.
+
+ Record fields are indexed starting with 1. Field 0 is a special format field.
+
+ When getting a field, the type of the object returned depends on the type of the Record field.
+ The object will be one of: Int16, Int32, String, Stream, or null. If the Record was returned
+ from a View, the type will match that of the field from the View query. Otherwise, the type
+ will match the type of the last value set for the field.
+
+ When setting a field, the type of the object provided will be converted to match the View
+ query that returned the Record, or if Record was not returned from a View then the type of
+ the object provided will determine the type of the Record field. The object should be one of:
+ Int16, Int32, String, Stream, or null.
+
+ The type-specific getters and setters are slightly more efficient than this property, since
+ they don't have to do the extra work to infer the value's type every time.
+
+
+
+
+ Reports whether a record field is null.
+
+ Specifies the field to check.
+ True if the field is null, false otherwise.
+ The field is less than 0 or greater than the
+ number of fields in the Record.
+
+
+
+
+ Reports whether a record field is null.
+
+ Specifies the field to check.
+ True if the field is null, false otherwise.
+ The field name does not match any
+ of the named fields in the Record.
+
+
+
+ Gets the length of a record field. The count does not include the terminating null.
+
+ The field is less than 0 or greater than the
+ number of fields in the Record.
+
+ The returned data size is 0 if the field is null, non-existent,
+ or an internal object pointer. The method also returns 0 if the handle is not a valid
+ Record handle.
+
+ If the data is in integer format, the property returns 2 or 4.
+
+ If the data is in string format, the property returns the character count
+ (not including the NULL terminator).
+
+ If the data is in stream format, the property returns the byte count.
+
+
+
+
+ Gets the length of a record field. The count does not include the terminating null.
+
+ Specifies the field to check.
+ The field name does not match any
+ of the named fields in the Record.
+
The returned data size is 0 if the field is null, non-existent,
+ or an internal object pointer. The method also returns 0 if the handle is not a valid
+ Record handle.
+
+ If the data is in integer format, the property returns 2 or 4.
+
+ If the data is in string format, the property returns the character count
+ (not including the NULL terminator).
+
+ If the data is in stream format, the property returns the byte count.
+
+
+
+
+ Gets a field value as an integer.
+
+ Specifies the field to retrieve.
+ Integer value of the field, or 0 if the field is null.
+ The field is less than 0 or greater than the
+ number of fields in the Record.
+
+
+
+
+
+ Gets a field value as an integer.
+
+ Specifies the field to retrieve.
+ Integer value of the field, or 0 if the field is null.
+ The field name does not match any
+ of the named fields in the Record.
+
+
+
+
+ Gets a field value as an integer.
+
+ Specifies the field to retrieve.
+ Integer value of the field, or null if the field is null.
+ The field is less than 0 or greater than the
+ number of fields in the Record.
+
+
+
+
+
+ Gets a field value as an integer.
+
+ Specifies the field to retrieve.
+ Integer value of the field, or null if the field is null.
+ The field name does not match any
+ of the named fields in the Record.
+
+
+
+
+ Sets the value of a field to an integer.
+
+ Specifies the field to set.
+ new value of the field
+ The field is less than 0 or greater than the
+ number of fields in the Record.
+
+
+
+
+
+ Sets the value of a field to an integer.
+
+ Specifies the field to set.
+ new value of the field
+ The field name does not match any
+ of the named fields in the Record.
+
+
+
+
+ Sets the value of a field to a nullable integer.
+
+ Specifies the field to set.
+ new value of the field
+ The field is less than 0 or greater than the
+ number of fields in the Record.
+
+
+
+
+
+ Sets the value of a field to a nullable integer.
+
+ Specifies the field to set.
+ new value of the field
+ The field name does not match any
+ of the named fields in the Record.
+
+
+
+
+ Gets a field value as a string.
+
+ Specifies the field to retrieve.
+ String value of the field, or an empty string if the field is null.
+ The field is less than 0 or greater than the
+ number of fields in the Record.
+
+
+
+
+ Gets a field value as a string.
+
+ Specifies the field to retrieve.
+ String value of the field, or an empty string if the field is null.
+ The field name does not match any
+ of the named fields in the Record.
+
+
+
+ Sets the value of a field to a string.
+
+ Specifies the field to set.
+ new value of the field
+ The field is less than 0 or greater than the
+ number of fields in the Record.
+
+
+
+
+ Sets the value of a field to a string.
+
+ Specifies the field to set.
+ new value of the field
+ The field name does not match any
+ of the named fields in the Record.
+
+
+
+ Reads a record stream field into a file.
+
+ Specifies the field of the Record to get.
+ Specifies the path to the file to contain the stream.
+ The field is less than 0 or greater than the
+ number of fields in the Record.
+ Attempt to extract a storage from a database open
+ in read-write mode, or from a database without an associated file path
+
+ This method is capable of directly extracting substorages. To do so, first select both the
+ `Name` and `Data` column of the `_Storages` table, then get the stream of the `Data` field.
+ However, substorages may only be extracted from a database that is open in read-only mode.
+
+
+
+
+ Reads a record stream field into a file.
+
+ Specifies the field of the Record to get.
+ Specifies the path to the file to contain the stream.
+ The field name does not match any
+ of the named fields in the Record.
+ Attempt to extract a storage from a database open
+ in read-write mode, or from a database without an associated file path
+
+ This method is capable of directly extracting substorages. To do so, first select both the
+ `Name` and `Data` column of the `_Storages` table, then get the stream of the `Data` field.
+ However, substorages may only be extracted from a database that is open in read-only mode.
+
+
+
+
+ Gets a record stream field.
+
+ Specifies the field of the Record to get.
+ A Stream that reads the field data.
+ The field is less than 0 or greater than the
+ number of fields in the Record.
+
+ This method is not capable of reading substorages. To extract a substorage,
+ use .
+
+
+
+
+ Gets a record stream field.
+
+ Specifies the field of the Record to get.
+ A Stream that reads the field data.
+ The field name does not match any
+ of the named fields in the Record.
+
+ This method is not capable of reading substorages. To extract a substorage,
+ use .
+
+
+
+
+ Sets a record stream field from a file. Stream data cannot be inserted into temporary fields.
+
+ Specifies the field of the Record to set.
+ Specifies the path to the file containing the stream.
+ The field is less than 0 or greater than the
+ number of fields in the Record.
+
+ The contents of the specified file are read into a stream object. The stream persists if
+ the Record is inserted into the Database and the Database is committed.
+
+ To reset the stream to its beginning you must pass in null for filePath.
+ Do not pass an empty string, "", to reset the stream.
+
+ Setting a stream with this method is more efficient than setting a field to a
+ FileStream object.
+
+
+
+
+ Sets a record stream field from a file. Stream data cannot be inserted into temporary fields.
+
+ Specifies the field name of the Record to set.
+ Specifies the path to the file containing the stream.
+ The field name does not match any
+ of the named fields in the Record.
+
+ The contents of the specified file are read into a stream object. The stream persists if
+ the Record is inserted into the Database and the Database is committed.
+ To reset the stream to its beginning you must pass in null for filePath.
+ Do not pass an empty string, "", to reset the stream.
+
+ Setting a stream with this method is more efficient than setting a field to a
+ FileStream object.
+
+
+
+
+ Sets a record stream field from a Stream object. Stream data cannot be inserted into temporary fields.
+
+ Specifies the field of the Record to set.
+ Specifies the stream data.
+ The field is less than 0 or greater than the
+ number of fields in the Record.
+
+ The stream persists if the Record is inserted into the Database and the Database is committed.
+
+
+
+
+ Sets a record stream field from a Stream object. Stream data cannot be inserted into temporary fields.
+
+ Specifies the field name of the Record to set.
+ Specifies the stream data.
+ The field name does not match any
+ of the named fields in the Record.
+
+ The stream persists if the Record is inserted into the Database and the Database is committed.
+
+
+
+
+ Gets a formatted string representation of the Record.
+
+ A formatted string representation of the Record.
+
+ If field 0 of the Record is set to a nonempty string, it is used to format the data in the Record.
+
+
+
+
+
+
+ Gets a formatted string representation of the Record, optionally using a Session to format properties.
+
+ an optional Session instance that will be used to lookup any
+ properties in the Record's format string
+ A formatted string representation of the Record.
+
+ If field 0 of the Record is set to a nonempty string, it is used to format the data in the Record.
+
+
+
+
+
+
+ Gets a formatted string representation of the Record.
+
+ String to be used to format the data in the Record,
+ instead of the Record's format string.
+ A formatted string representation of the Record.
+
+
+
+
+ Gets a formatted string representation of the Record, optionally using a Session to format properties.
+
+ String to be used to format the data in the Record,
+ instead of the Record's format string.
+ an optional Session instance that will be used to lookup any
+ properties in the Record's format string
+ A formatted string representation of the Record.
+
+
+
+
+
+
+ Assigns ID numbers to the MSI APIs that are remotable.
+
+
+ This enumeration MUST stay in sync with the
+ unmanaged equivalent in RemoteMsiSession.h!
+
+
+
+
+ Defines the signature of the native function
+ in SfxCA.dll that implements the remoting call.
+
+
+
+
+ Redirects native API calls to either the normal NativeMethods class
+ or to out-of-proc calls via the remoting channel.
+
+
+
+
+ Checks if the current process is using remoting to access the
+ MSI session and database APIs.
+
+
+
+
+ Sets a delegate that is used to make remote API calls.
+
+
+ The implementation of this delegate is provided by the
+ custom action host DLL.
+
+
+
+
+ The Session object controls the installation process. It opens the
+ install database, which contains the installation tables and data.
+
+
+ This object is associated with a standard set of action functions,
+ each performing particular operations on data from one or more tables. Additional
+ custom actions may be added for particular product installations. The basic engine
+ function is a sequencer that fetches sequential records from a designated sequence
+ table, evaluates any specified condition expression, and executes the designated
+ action. Actions not recognized by the engine are deferred to the UI handler object
+ for processing, usually dialog box sequences.
+
+ Note that only one Session object can be opened by a single process.
+
+
+
+
+ Gets the Database for the install session.
+
+ the Session handle is invalid
+ the Database cannot be accessed
+
+ Normally there is no need to close this Database object. The same object can be
+ used throughout the lifetime of the Session, and it will be closed when the Session
+ is closed.
+
+
+
+
+ Gets or sets the string value of a named installer property, as maintained by the
+ Session object in the in-memory Property table, or, if it is prefixed with a percent
+ sign (%), the value of a system environment variable for the current process.
+
+ the Session handle is invalid
+
+
+
+
+ Creates a new Session object from an integer session handle.
+
+ Integer session handle
+ true to close the handle when this object is disposed or finalized
+
+ This method is only provided for interop purposes. A Session object
+ should normally be obtained by calling
+ or .
+
+
+
+
+ Performs any enabled logging operations and defers execution to the UI handler
+ object associated with the engine.
+
+ Type of message to be processed
+ Contains message-specific fields
+ A message-dependent return value
+ the Session or Record handle is invalid
+ an invalid message kind is specified
+ the user exited the installation
+ the message-handler failed for an unknown reason
+
+ Logging may be selectively enabled for the various message types.
+ See the method.
+
+ If record field 0 contains a formatting string, it is used to format the data in
+ the other fields. Else if the message is an error, warning, or user message, an attempt
+ is made to find a message template in the Error table for the current database using the
+ error number found in field 1 of the record for message types and return values.
+
+ The parameter may also include message-box flags from
+ the following enumerations: System.Windows.Forms.MessageBoxButtons,
+ System.Windows.Forms.MessageBoxDefaultButton, System.Windows.Forms.MessageBoxIcon. These
+ flags can be combined with the InstallMessage with a bitwise OR.
+
+ Note, this method never returns Cancel or Error values. Instead, appropriate
+ exceptions are thrown in those cases.
+
+
+
+
+ Writes a formatted message to the log, if logging is enabled.
+
+ The line to be written to the log, containing 0 or more format specifiers
+ An array containing 0 or more objects to be formatted
+
+
+
+
+ Evaluates a logical expression containing symbols and values.
+
+ conditional expression
+ The result of the condition evaluation
+ the Session handle is invalid
+ the condition is null or empty
+ the conditional expression is invalid
+
+
+
+
+ Evaluates a logical expression containing symbols and values, specifying a default
+ value to be returned in case the condition is empty.
+
+ conditional expression
+ value to return if the condition is empty
+ The result of the condition evaluation
+ the Session handle is invalid
+ the conditional expression is invalid
+
+
+
+
+ Formats a string containing installer properties.
+
+ A format string containing property tokens
+ A formatted string containing property data
+ the Record handle is invalid
+
+
+
+
+ Returns a formatted string from record data.
+
+ Record object containing a template and data to be formatted.
+ The template string must be set in field 0 followed by any referenced data parameters.
+ A formatted string containing the record data
+ the Record handle is invalid
+
+
+
+
+ Returns a formatted string from record data using a specified format.
+
+ Record object containing a template and data to be formatted
+ Format string to be used instead of field 0 of the Record
+ A formatted string containing the record data
+ the Record handle is invalid
+
+
+
+
+ Retrieves product properties (not session properties) from the product database.
+
+ Value of the property, or an empty string if the property is not set.
+
+ Note this is not the correct method for getting ordinary session properties. For that,
+ see the indexer on the Session class.
+
+
+
+
+ Gets an accessor for components in the current session.
+
+
+
+
+ Gets an accessor for features in the current session.
+
+
+
+
+ Checks to see if sufficient disk space is present for the current installation.
+
+ True if there is sufficient disk space; false otherwise.
+
+
+
+
+ Gets the designated mode flag for the current install session.
+
+ The type of mode to be checked.
+ The value of the designated mode flag.
+ the Session handle is invalid
+ an invalid mode flag was specified
+
+ Note that only the following run modes are available to read from
+ a deferred custom action:
+
+
+
+
+
+
+
+
+ Sets the designated mode flag for the current install session.
+
+ The type of mode to be set.
+ The desired value of the mode.
+ the Session handle is invalid
+ an invalid mode flag was specified
+ the mode cannot not be set
+
+
+
+
+ Gets the full path to the designated folder on the source media or server image.
+
+ the folder was not found in the Directory table
+ the Session handle is invalid
+
+
+
+
+ Gets the full path to the designated folder on the installation target drive.
+
+ the folder was not found in the Directory table
+ the Session handle is invalid
+
+
+
+
+ Sets the full path to the designated folder on the installation target drive.
+
+ the folder was not found in the Directory table
+ the Session handle is invalid
+
+ Setting the target path of a directory changes the path specification for the directory
+ in the in-memory Directory table. Also, the path specifications of all other path objects
+ in the table that are either subordinate or equivalent to the changed path are updated
+ to reflect the change. The properties for each affected path are also updated.
+
+ If an error occurs in this function, all updated paths and properties revert to
+ their previous values. Therefore, it is safe to treat errors returned by this function
+ as non-fatal.
+
+ Do not attempt to configure the target path if the components using those paths
+ are already installed for the current user or for a different user. Check the
+ ProductState property before setting the target path to determine if the product
+ containing this component is installed.
+
+
+
+
+ Sets the install level for the current installation to a specified value and
+ recalculates the Select and Installed states for all features in the Feature
+ table. Also sets the Action state of each component in the Component table based
+ on the new level.
+
+ New install level
+ the Session handle is invalid
+
+ The SetInstallLevel method sets the following:
+ The installation level for the current installation to a specified value
+ The Select and Installed states for all features in the Feature table
+ The Action state of each component in the Component table, based on the new level
+
+ If 0 or a negative number is passed in the ilnstallLevel parameter,
+ the current installation level does not change, but all features are still
+ updated based on the current installation level.
+
+
+
+
+ Executes a built-in action, custom action, or user-interface wizard action.
+
+ Name of the action to execute. Case-sensitive.
+ the Session handle is invalid
+ the user exited the installation
+
+ The DoAction method executes the action that corresponds to the name supplied. If the
+ name is not recognized by the installer as a built-in action or as a custom action in
+ the CustomAction table, the name is passed to the user-interface handler object, which
+ can invoke a function or a dialog box. If a null action name is supplied, the installer
+ uses the upper-case value of the ACTION property as the action to perform. If no property
+ value is defined, the default action is performed, defined as "INSTALL".
+
+ Actions that update the system, such as the InstallFiles and WriteRegistryValues
+ actions, cannot be run by calling MsiDoAction. The exception to this rule is if DoAction
+ is called from a custom action that is scheduled in the InstallExecuteSequence table
+ between the InstallInitialize and InstallFinalize actions. Actions that do not update the
+ system, such as AppSearch or CostInitialize, can be called.
+
+
+
+
+ Executes a built-in action, custom action, or user-interface wizard action.
+
+ Name of the action to execute. Case-sensitive.
+ Optional data to be passed to a deferred custom action.
+ the Session handle is invalid
+ the user exited the installation
+
+ The DoAction method executes the action that corresponds to the name supplied. If the
+ name is not recognized by the installer as a built-in action or as a custom action in
+ the CustomAction table, the name is passed to the user-interface handler object, which
+ can invoke a function or a dialog box. If a null action name is supplied, the installer
+ uses the upper-case value of the ACTION property as the action to perform. If no property
+ value is defined, the default action is performed, defined as "INSTALL".
+
+ Actions that update the system, such as the InstallFiles and WriteRegistryValues
+ actions, cannot be run by calling MsiDoAction. The exception to this rule is if DoAction
+ is called from a custom action that is scheduled in the InstallExecuteSequence table
+ between the InstallInitialize and InstallFinalize actions. Actions that do not update the
+ system, such as AppSearch or CostInitialize, can be called.
+
+ If the called action is a deferred, rollback, or commit custom action, then the supplied
+ will be available via the
+ property of that custom action's session.
+
+
+
+
+ Executes an action sequence described in the specified table.
+
+ Name of the table containing the action sequence.
+ the Session handle is invalid
+ the user exited the installation
+
+ This method queries the specified table, ordering the actions by the numbers in the Sequence column.
+ For each row retrieved, an action is executed, provided that any supplied condition expression does
+ not evaluate to FALSE.
+
+ An action sequence containing any actions that update the system, such as the InstallFiles and
+ WriteRegistryValues actions, cannot be run by calling DoActionSequence. The exception to this rule is if
+ DoActionSequence is called from a custom action that is scheduled in the InstallExecuteSequence table
+ between the InstallInitialize and InstallFinalize actions. Actions that do not update the system, such
+ as AppSearch or CostInitialize, can be called.
+
+
+
+
+ Gets custom action data for the session that was supplied by the caller.
+
+
+
+
+
+ Implements formatting for data.
+
+ Type of format object to get.
+ The the current instance, if is the same type
+ as the current instance; otherwise, null.
+
+
+
+ Closes the session handle. Also closes the active database handle, if it is open.
+ After closing a handle, further method calls may throw an .
+
+ If true, the method has been called directly
+ or indirectly by a user's code, so managed and unmanaged resources will
+ be disposed. If false, only unmanaged resources will be disposed.
+
+
+
+ Gets the (short) list of properties that are available from non-immediate custom actions.
+
+
+
+
+ Throws an exception if the custom action is not able to access immedate session details.
+
+
+
+
+ Holds information about the target of a shortcut file.
+
+
+
+
+ Gets the target product code of the shortcut, or null if not available.
+
+
+
+
+ Gets the name of the target feature of the shortcut, or null if not available.
+
+
+
+
+ Gets the target component code of the shortcut, or null if not available.
+
+
+
+
+ Tests whether two shortcut targets have the same product code, feature, and/or component code.
+
+ The first shortcut target to compare.
+ The second shortcut target to compare.
+ True if all parts of the targets are the same, else false.
+
+
+
+ Tests whether two shortcut targets have the same product code, feature, and/or component code.
+
+ The first shortcut target to compare.
+ The second shortcut target to compare.
+ True if any parts of the targets are different, else false.
+
+
+
+ Tests whether two shortcut targets have the same product code, feature, and/or component code.
+
+ The shortcut target to compare to the current object.
+ True if is a shortcut target and all parts of the targets are the same, else false.
+
+
+
+ Generates a hash code using all parts of the shortcut target.
+
+ An integer suitable for hashing the shortcut target.
+
+
+
+ A list of sources for an installed product or patch.
+
+
+
+
+ Gets the list of disks registered for the media source of
+ the patch or product installation.
+
+
+
+
+ Gets the number of network and URL sources in the list.
+
+
+
+
+ Gets a boolean value indicating whether the list is read-only.
+ A SourceList is never read-only.
+
+ read-only status of the list
+
+
+
+ Adds a network or URL source to the source list of the installed product.
+
+ Path to the source to be added. This parameter is
+ expected to contain only the path without the filename.
+
+ If this method is called with a new source, the installer adds the source
+ to the end of the source list.
+
+ If this method is called with a source already existing in the source
+ list, it has no effect.
+
+
+
+
+
+ Adds or reorders a network or URL source for the product or patch.
+
+ Path to the source to be added. This parameter is
+ expected to contain only the path without the filename.
+ Specifies the priority order in which the source
+ will be inserted
+
+ If this method is called with a new source and
+ is set to 0, the installer adds the source to the end of the source list.
+
+ If this method is called with a source already existing in the source
+ list and is set to 0, the installer retains the
+ source's existing index.
+
+ If the method is called with an existing source in the source list
+ and is set to a non-zero value, the source is
+ removed from its current location in the list and inserted at the position
+ specified by Index, before any source that already exists at that position.
+
+ If the method is called with a new source and Index is set to a
+ non-zero value, the source is inserted at the position specified by
+ , before any source that already exists at
+ that position. The index value for all sources in the list after the
+ index specified by Index are updated to ensure unique index values and
+ the pre-existing order is guaranteed to remain unchanged.
+
+ If is greater than the number of sources
+ in the list, the source is placed at the end of the list with an index
+ value one larger than any existing source.
+
+
+
+
+ Checks if the specified source exists in the list.
+
+ case-insensitive source to look for
+ true if the source exists in the list, false otherwise
+
+
+
+ Copies the network and URL sources from this list into an array.
+
+ destination array to be filed
+ offset into the destination array where copying begins
+
+
+
+ Removes a network or URL source.
+
+
+
+
+
+ Forces the installer to search the source list for a valid
+ source the next time a source is required. For example, when the
+ installer performs an installation or reinstallation, or when it
+ requires the path for a component that is set to run from source.
+
+
+
+
+
+ Gets or sets the path relative to the root of the installation media.
+
+
+
+
+ Gets or sets the prompt template that is used when prompting the user
+ for installation media.
+
+
+
+
+ Gets or sets the most recently used source location for the product.
+
+
+
+
+ Gets or sets the name of the Windows Installer package or patch package
+ on the source.
+
+
+
+
+ Gets the type of the last-used source.
+
+
+
+
"n" = network location
+
"u" = URL location
+
"m" = media location
+
(empty string) = no last used source
+
+
+
+
+
+ Gets or sets source list information properties of a product or patch installation.
+
+ The source list information property name.
+ An unknown product, patch, or property was requested
+
+
+
+
+ A list of source media for an installed product or patch.
+
+
+
+
+ Gets the number of source media in the list.
+
+
+
+
+ Gets a boolean value indicating whether the list is read-only.
+ A SourceMediaList is never read-only.
+
+ read-only status of the list
+
+
+
+ Adds or updates a disk of the media source for the product or patch.
+
+
+
+
+
+ Checks if the specified media disk id exists in the list.
+
+ disk id of the media to look for
+ true if the media exists in the list, false otherwise
+
+
+
+ Copies the source media info from this list into an array.
+
+ destination array to be filed
+ offset into the destination array where copying begins
+
+
+
+ Removes a specified disk from the set of registered disks.
+
+ ID of the disk to remove
+
+
+
+
+ Provides access to summary information of a Windows Installer database.
+
+
+
+
+ Gets a SummaryInfo object that can be used to examine, update, and add
+ properties to the summary information stream of a package or transform.
+
+ Path to the package (database) or transform
+ True to reserve resources for writing summary information properties.
+ the package does not exist or could not be read
+ the package is an invalid format
+
+ The SummaryInfo object should be d after use.
+ It is best that the handle be closed manually as soon as it is no longer
+ needed, as leaving lots of unused handles open can degrade performance.
+
+
+
+ Gets or sets the Title summary information property.
+
+ The Title summary information property briefly describes the type of installer package. Phrases
+ such as "Installation Database" or "Transform" or "Patch" may be used for this property.
+
+
+
+ Gets or sets the Subject summary information property.
+
+ The Subject summary information property conveys to a file browser the product that can be installed using
+ the logic and data in this installer database. For example, the value of the summary property for
+ Microsoft Office 97 would be "Microsoft Office 97 Professional". This value is typically set from the
+ installer property ProductName.
+
+
+
+ Gets or sets the Author summary information property.
+
+ The Author summary information property conveys to a file browser the manufacturer of the installation
+ database. This value is typically set from the installer property Manufacturer.
+
+
+
+ Gets or sets the Keywords summary information property.
+
+ The Keywords summary information property is used by file browsers to hold keywords that permit the
+ database file to be found in a keyword search. The set of keywords typically includes "Installer" as
+ well as product-specific keywords, and may be localized.
+
+
+
+ Gets or sets the Comments summary information property.
+
+ The Comments summary information property conveys the general purpose of the installer database. By convention,
+ the value for this summary property is set to the following:
+
+ "This installer database contains the logic and data required to install <product name>."
+
+ where <product name> is the name of the product being installed. In general the value for this summary
+ property only changes in the product name, nothing else.
+
+
+
+ Gets or sets the Template summary information property.
+
+ The Template summary information propery indicates the platform and language versions supported by the database.
+
+ The syntax of the Template Summary property information is:
+ [platform property][,platform property][,...];[language id][,language id][,...]
+
+ For example, the following are all valid values for the Template Summary property:
+
+ Intel;1033
+ Intel64;1033
+ ;1033
+ ;
+ Intel ;1033,2046
+ Intel64;1033,2046
+ Intel;0
+
+
+ If this is a 64-bit Windows Installer, enter Intel64 in the Template summary information property. Note that an
+ installation package cannot have both the Intel and Intel64 properties set.
+
+ If the current platform does not match one of the platforms specified then the installer will not process the
+ package. Not specifying a platform implies that the package is platform-independent.
+
+ Entering 0 in the language ID field of the Template summary information property, or leaving this field empty,
+ indicates that the package is language neutral.
+
+ There are variations of this property depending on whether it is in a source installer database or a transform.
+
+ Source Installer Database - Only one language can be specified in a source installer database. Merge Modules are
+ the only packages that may have multiple languages. For more information, see Multiple Language Merge Modules.
+
+ Transform - In a transform file, only one language may be specified. The specified platform and language determine
+ whether a transform can be applied to a particular database. The platform property and the language property can
+ be left blank if no transform restriction relies on them to validate the transform.
+
+
+
+ Gets or sets the LastSavedBy summary information property.
+
+ The installer sets the Last Saved By summary information property to the value of the LogonUser property during
+ an administrative installation. The installer never uses this property and a user never needs to modify it.
+ Developers of a database editing tool may use this property to track the last person to modify the database.
+ This property should be left set to null in a final shipping database.
+
+ In a transform, this summary property contains the platform and language ID(s) that a database should have
+ after it has been transformed. The property specifies to what the Template should be set in the new database.
+
+
+
+ Gets or sets the RevisionNumber summary information property.
+
+ The Revision Number summary information property contains the package code for the installer package. The
+ package code is a unique identifier of the installer package.
+
+ The Revision Number summary information property of a patch package specifies the GUID patch code for
+ the patch. This is followed by a list of patch code GUIDs for obsolete patches that are removed when this
+ patch is applied. The patch codes are concatenated with no delimiters separating GUIDs in the list.
+
+ The Revision Number summary information property of a transform package lists the product code GUIDs
+ and version of the new and original products and the upgrade code GUID. The list is separated with
+ semicolons as follows.
+
+
+
+ Gets or sets the CreatingApp summary information property.
+
+ The CreatingApp summary information property conveys which application created the installer database.
+ In general the value for this summary property is the name of the software used to author this database.
+
+
+
+ Gets or sets the LastPrintTime summary information property.
+
+ The LastPrintTime summary information property can be set to the date and time during an administrative
+ installation to record when the administrative image was created. For non-administrative installations
+ this property is the same as the CreateTime summary information property.
+
+
+
+ Gets or sets the LastSaveTime summary information property.
+
+ The LastSaveTime summary information property conveys when the last time the installer database was
+ modified. Each time a user changes an installation the value for this summary property is updated to
+ the current system time/date at the time the installer database was saved. Initially the value for
+ this summary property is set to null to indicate that no changes have yet been made.
+
+
+
+ Gets or sets the CodePage summary information property.
+
+ The Codepage summary information property is the numeric value of the ANSI code page used for any
+ strings that are stored in the summary information. Note that this is not the same code page for
+ strings in the installation database. The Codepage summary information property is used to translate
+ the strings in the summary information into Unicode when calling the Unicode API functions. The
+ Codepage summary information property must be set before any string properties are set in the
+ summary information.
+
+
+
+ Gets or sets the PageCount summary information property.
+
+ For an installation package, the PageCount summary information property contains the minimum
+ installer version required. For Windows Installer version 1.0, this property must be set to the
+ integer 100. For 64-bit Windows Installer Packages, this property must be set to the integer 200.
+
+ For a transform package, the PageCount summary information property contains minimum installer
+ version required to process the transform. Set to the greater of the two PageCount summary information
+ property values belonging to the databases used to generate the transform.
+
+ The PageCount summary information property is set to null in patch packages.
+
+
+
+ Gets or sets the WordCount summary information property.
+
+ The WordCount summary information property indicates the type of source file image. If this property is
+ not present, it defaults to 0. Note that this property is stored in place of the standard Count property.
+
+ This property is a bit field. New bits may be added in the future. At present the following bits are
+ available:
+
+ Bit 0: 0 = long file names, 1 = short file names
+ Bit 1: 0 = source is uncompressed, 1 = source is compressed
+ Bit 2: 0 = source is original media, 1 = source is administrative installation
+ [MSI 4.0] Bit 3: 0 = elevated privileges can be required to install, 1 = elevated privileges are not required to install
+
+
+ These are combined to give the WordCount summary information property one of the following values
+ indicating a type of source file image:
+
+ 0 - Original source using long file names. Matches tree in Directory table.
+ 1 - Original source using short file names. Matches tree in Directory table.
+ 2 - Compressed source files using long file names. Matches cabinets and files in the Media table.
+ 3 - Compressed source files using short file names. Matches cabinets and files in the Media table.
+ 4 - Administrative image using long file names. Matches tree in Directory table.
+ 5 - Administrative image using short file names. Matches tree in Directory table.
+
+
+ Note that if the package is marked as compressed (bit 1 is set), the installer only installs files
+ located at the root of the source. In this case, even files marked as uncompressed in the File table must
+ be located at the root to be installed. To specify a source image that has both a cabinet file (compressed
+ files) and uncompressed files that match the tree in the Directory table, mark the package as uncompressed
+ by leaving bit 1 unset (value=0) in the WordCount summary information property and set
+ (value=16384) in the Attributes column of the File table
+ for each file in the cabinet.
+
+ For a patch package, the WordCount summary information property specifies the patch engine that was used
+ to create the patch files. The default value is 1 and indicates that MSPATCH was used to create the patch
+ A value of "2" means that the patch is using smaller, optimized, files available only with Windows Installer
+ version 1.2 or later. A patch with a WordCount of "2" fails immediately if used with a Windows Installer
+ version earlier than 1.2. A patch with a WordCount of "3" fails immediately if used with a Windows Installer
+ version earlier than 2.0.
+
+
+
+ Gets or sets the CharacterCount summary information property.
+
+ The CharacterCount summary information property is only used in transforms. This part of the summary
+ information stream is divided into two 16-bit words. The upper word contains the transform validation
+ flags. The lower word contains the transform error condition flags.
+
+
+
+ Gets or sets the Security summary information property.
+
+ The Security summary information property conveys whether the package should be opened as read-only. The database
+ editing tool should not modify a read-only enforced database and should issue a warning at attempts to modify a
+ read-only recommended database. The following values of this property are applicable to Windows Installer files:
+
+ 0 - no restriction
+ 2 - read only recommended
+ 4 - read only enforced
+
+
+ This property should be set to read-only recommended (2) for an installation database and to read-only
+ enforced (4) for a transform or patch.
+
+
+
+
+ Formats and writes the previously stored properties into the standard summary information stream.
+
+ The stream cannot be successfully written.
+
+ This method may only be called once after all the property values have been set. Properties may
+ still be read after the stream is written.
+
+
+
+
+ Contains information about all the tables in a Windows Installer database.
+
+
+
+
+ Gets the number of tables in the database.
+
+
+
+
+ Gets a boolean value indicating whether the collection is read-only.
+ A TableCollection is read-only when the database is read-only.
+
+ read-only status of the collection
+
+
+
+ Gets information about a given table.
+
+ case-sensitive name of the table
+ information about the requested table, or null if the table does not exist in the database
+
+
+
+ Adds a new table to the database.
+
+ information about the table to be added
+ a table with the same name already exists in the database
+
+
+
+ Removes all tables (and all data) from the database.
+
+
+
+
+ Checks if the database contains a table with the given name.
+
+ case-sensitive name of the table to search for
+ True if the table exists, false otherwise.
+
+
+
+ Copies the table information from this collection into an array.
+
+ destination array to be filed
+ offset into the destination array where copying begins
+
+
+
+ Removes a table from the database.
+
+ case-sensitive name of the table to be removed
+ true if the table was removed, false if the table did not exist
+
+
+
+ Enumerates the tables in the database.
+
+
+
+
+ Defines a table in an installation database.
+
+
+
+
+ Creates a table definition.
+
+ Name of the table.
+ Columns in the table.
+ The primary keys of the table.
+
+
+
+ Gets the name of the table.
+
+
+
+
+ Gets information about the columns in this table.
+
+
+ This property queries the database every time it is called,
+ to ensure the returned values are up-to-date. For best performance,
+ hold onto the returned collection if using it more than once.
+
+
+
+
+ Gets the names of the columns that are primary keys of the table.
+
+
+
+
+ Gets an SQL CREATE string that can be used to create the table.
+
+
+
+
+ Gets an SQL INSERT string that can be used insert a new record into the table.
+
+
+ The values are expressed as question-mark tokens, to be supplied by the record.
+
+
+
+
+ Gets an SQL SELECT string that can be used to select all columns of the table.
+
+
+ The columns are listed explicitly in the SELECT string, as opposed to using "SELECT *".
+
+
+
+
+ Gets a string representation of the table.
+
+ The name of the table.
+
+
+
+ Contains specific information about an error encountered by the ,
+ , or methods of the
+ class.
+
+
+
+
+ Gets the type of validation error encountered.
+
+
+
+
+ Gets the column containing the error, or null if the error applies to the whole row.
+
+
+
+
+ A View represents a result set obtained when processing a query using the
+ method of a
+ . Before any data can be transferred,
+ the query must be executed using the method, passing to
+ it all replaceable parameters designated within the SQL query string.
+
+
+
+
+ Gets the Database on which this View was opened.
+
+
+
+
+ Gets the SQL query string used to open this View.
+
+
+
+
+ Gets the set of tables that were included in the SQL query for this View.
+
+
+
+
+ Gets the set of columns that were included in the query for this View,
+ or null if this view is not a SELECT query.
+
+ the View is not in an active state
+ the View handle is invalid
+
+
+
+
+ Executes a SQL View query and supplies any required parameters. The query uses the
+ question mark token to represent parameters as described in SQL Syntax. The values of
+ these parameters are passed in as the corresponding fields of a parameter record.
+
+ Optional Record that supplies the parameters. This
+ Record contains values to replace the parameter tokens in the SQL query.
+ the View could not be executed
+ the View handle is invalid
+
+
+
+
+ Fetches the next sequential record from the view, or null if there are no more records.
+
+ the View is not in an active state
+ the View handle is invalid
+
+ The Record object should be d after use.
+ It is best that the handle be closed manually as soon as it is no longer
+ needed, as leaving lots of unused handles open can degrade performance.
+
+
+
+
+ Updates a fetched Record.
+
+ specifies the modify mode
+ the Record to modify
+ the modification failed,
+ or a validation was requested and the data did not pass
+ the View handle is invalid
+
+ You can update or delete a record immediately after inserting, or seeking provided you
+ have NOT modified the 0th field of the inserted or sought record.
+
+ To execute any SQL statement, a View must be created. However, a View that does not
+ create a result set, such as CREATE TABLE, or INSERT INTO, cannot be used with any of
+ the Modify methods to update tables though the view.
+
+ You cannot fetch a record containing binary data from one database and then use
+ that record to insert the data into another database. To move binary data from one database
+ to another, you should export the data to a file and then import it into the new database
+ using a query and the . This ensures that each database has
+ its own copy of the binary data.
+
+ Note that custom actions can only add, modify, or remove temporary rows, columns,
+ or tables from a database. Custom actions cannot modify persistent data in a database,
+ such as data that is a part of the database stored on disk.
+
+
+
+
+ Updates the View with new data from the Record.
+
+ the new data
+ the update failed
+ the View handle is invalid
+
+ Only non-primary keys can be updated. The Record must have been obtained by calling
+ . Fails with a deleted Record. Works only with read-write Records.
+
+
+
+
+ Updates or inserts a Record into the View.
+
+ the Record to be assigned
+ the assignment failed
+ the View handle is invalid
+
+ Updates record if the primary keys match an existing row and inserts if they do not match.
+ Fails with a read-only database. This method cannot be used with a View containing joins.
+
+
+
+
+ Updates or deletes and inserts a Record into the View.
+
+ the Record to be replaced
+ the replacement failed
+ the View handle is invalid
+
+ The Record must have been obtained by calling . Updates record if the
+ primary keys are unchanged. Deletes old row and inserts new if primary keys have changed.
+ Fails with a read-only database. This method cannot be used with a View containing joins.
+
+
+
+
+ Deletes a Record from the View.
+
+ the Record to be deleted
+ the deletion failed
+ the View handle is invalid
+
+ The Record must have been obtained by calling . Fails if the row has been
+ deleted. Works only with read-write records. This method cannot be used with a View containing joins.
+
+
+
+
+ Inserts a Record into the View. The inserted data is not persistent.
+
+ the Record to be inserted
+ the insertion failed
+ the View handle is invalid
+
+ Fails if a row with the same primary key exists. Works only with read-write records.
+ This method cannot be used with a View containing joins.
+
+
+
+
+ Refreshes the information in the supplied record without changing the position
+ in the result set and without affecting subsequent fetch operations.
+
+ the Record to be filled with the result of the seek
+ the seek failed
+ the View handle is invalid
+
+ After seeking, the Record may then be used for subsequent Update, Delete, and Refresh
+ operations. All primary key columns of the table must be in the query and the Record must
+ have at least as many fields as the query. Seek cannot be used with multi-table queries.
+ This method cannot be used with a View containing joins.
+
+
+
+
+ Inserts or validates a record.
+
+ the Record to be merged
+ true if the record was inserted or validated, false if there is an existing
+ record with the same primary keys that is not identical
+ the merge failed (for a reason other than invalid data)
+ the View handle is invalid
+
+ Works only with read-write records. This method cannot be used with a
+ View containing joins.
+
+
+
+
+ Validates a record, returning information about any errors.
+
+ the Record to be validated
+ null if the record was validated; if there is an existing record with
+ the same primary keys that has conflicting data then error information is returned
+ the validation failed (for a reason other than invalid data)
+ the View handle is invalid
+
+ The Record must have been obtained by calling .
+ Works with read-write and read-only records. This method cannot be used
+ with a View containing joins.
+
+
+
+
+ Validates a new record, returning information about any errors.
+
+ the Record to be validated
+ null if the record was validated; if there is an existing
+ record with the same primary keys then error information is returned
+ the validation failed (for a reason other than invalid data)
+ the View handle is invalid
+
+ Checks for duplicate keys. The Record must have been obtained by
+ calling . Works with read-write and read-only records.
+ This method cannot be used with a View containing joins.
+
+
+
+
+ Validates fields of a fetched or new record, returning information about any errors.
+ Can validate one or more fields of an incomplete record.
+
+ the Record to be validated
+ null if the record was validated; if there is an existing record with
+ the same primary keys that has conflicting data then error information is returned
+ the validation failed (for a reason other than invalid data)
+ the View handle is invalid
+
+ Works with read-write and read-only records. This method cannot be used with
+ a View containing joins.
+
+
+
+
+ Validates a record that will be deleted later, returning information about any errors.
+
+ the Record to be validated
+ null if the record is safe to delete; if another row refers to
+ the primary keys of this row then error information is returned
+ the validation failed (for a reason other than invalid data)
+ the View handle is invalid
+
+ Validation does not check for the existence of the primary keys of this row in properties
+ or strings. Does not check if a column is a foreign key to multiple tables. Works with
+ read-write and read-only records. This method cannot be used with a View containing joins.
+
+
+
+
+ Enumerates over the Records retrieved by the View.
+
+ An enumerator of Record objects.
+ The View was not d before attempting the enumeration.
+
+ Each Record object should be d after use.
+ It is best that the handle be closed manually as soon as it is no longer
+ needed, as leaving lots of unused handles open can degrade performance.
+ However, note that it is not necessary to complete the enumeration just
+ for the purpose of closing handles, because Records are fetched lazily
+ on each step of the enumeration.
+
+
+
+
+ Distribution specific strings.
+
+
+
+
+ News URL for the distribution.
+
+
+
+
+ Short product name for the distribution.
+
+
+
+
+ Support URL for the distribution.
+
+
+
+
+ Telemetry URL format for the distribution.
+
+
+
+
+ VS Extensions Landing page Url for the distribution.
+
+
+
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/MsgGen.exe b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/MsgGen.exe
new file mode 100644
index 0000000..bc8532b
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/MsgGen.exe differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/XsdGen.exe b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/XsdGen.exe
new file mode 100644
index 0000000..b63effc
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/XsdGen.exe differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/XsdStitch.exe b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/XsdStitch.exe
new file mode 100644
index 0000000..76bce2d
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/XsdStitch.exe differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/BalBaseBootstrapperApplication.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/BalBaseBootstrapperApplication.h
new file mode 100644
index 0000000..9b31ee4
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/BalBaseBootstrapperApplication.h
@@ -0,0 +1,695 @@
+// 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.
+
+#include
+#include
+
+#include "IBootstrapperEngine.h"
+#include "IBootstrapperApplication.h"
+
+#include "balutil.h"
+#include "balretry.h"
+
+class CBalBaseBootstrapperApplication : public IBootstrapperApplication
+{
+public: // IUnknown
+ virtual STDMETHODIMP QueryInterface(
+ __in REFIID riid,
+ __out LPVOID *ppvObject
+ )
+ {
+ if (!ppvObject)
+ {
+ return E_INVALIDARG;
+ }
+
+ *ppvObject = NULL;
+
+ if (::IsEqualIID(__uuidof(IBootstrapperApplication), riid))
+ {
+ *ppvObject = static_cast(this);
+ }
+ else if (::IsEqualIID(IID_IUnknown, riid))
+ {
+ *ppvObject = static_cast(this);
+ }
+ else // no interface for requested iid
+ {
+ return E_NOINTERFACE;
+ }
+
+ AddRef();
+ return S_OK;
+ }
+
+ virtual STDMETHODIMP_(ULONG) AddRef()
+ {
+ return ::InterlockedIncrement(&this->m_cReferences);
+ }
+
+ virtual STDMETHODIMP_(ULONG) Release()
+ {
+ long l = ::InterlockedDecrement(&this->m_cReferences);
+ if (0 < l)
+ {
+ return l;
+ }
+
+ delete this;
+ return 0;
+ }
+
+public: // IBootstrapperApplication
+ virtual STDMETHODIMP OnStartup()
+ {
+ return S_OK;
+ }
+
+ virtual STDMETHODIMP_(int) OnShutdown()
+ {
+ return IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnSystemShutdown(
+ __in DWORD dwEndSession,
+ __in int /*nRecommendation*/
+ )
+ {
+ // Allow requests to shut down when critical or not applying.
+ if (ENDSESSION_CRITICAL & dwEndSession || !m_fApplying)
+ {
+ return IDOK;
+ }
+
+ return IDCANCEL;
+ }
+
+ virtual STDMETHODIMP_(int) OnDetectBegin(
+ __in BOOL /*fInstalled*/,
+ __in DWORD /*cPackages*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnDetectForwardCompatibleBundle(
+ __in_z LPCWSTR /*wzBundleId*/,
+ __in BOOTSTRAPPER_RELATION_TYPE /*relationType*/,
+ __in_z LPCWSTR /*wzBundleTag*/,
+ __in BOOL /*fPerMachine*/,
+ __in DWORD64 /*dw64Version*/,
+ __in int nRecommendation
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : nRecommendation;
+ }
+
+ virtual STDMETHODIMP_(int) OnDetectUpdateBegin(
+ __in_z LPCWSTR /*wzUpdateLocation*/,
+ __in int nRecommendation
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : nRecommendation;
+ }
+
+ virtual STDMETHODIMP_(int) OnDetectUpdate(
+ __in_z LPCWSTR /*wzUpdateLocation*/,
+ __in DWORD64 /*dw64Size*/,
+ __in DWORD64 /*dw64Version*/,
+ __in_z LPCWSTR /*wzTitle*/,
+ __in_z LPCWSTR /*wzSummary*/,
+ __in_z LPCWSTR /*wzContentType*/,
+ __in_z LPCWSTR /*wzContent*/,
+ __in int nRecommendation
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : nRecommendation;
+ }
+
+ virtual STDMETHODIMP_(void) OnDetectUpdateComplete(
+ __in HRESULT /*hrStatus*/,
+ __in_z_opt LPCWSTR /*wzUpdateLocation*/
+ )
+ {
+ }
+
+ virtual STDMETHODIMP_(int) OnDetectCompatiblePackage(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __in_z LPCWSTR /*wzCompatiblePackageId*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnDetectPriorBundle(
+ __in_z LPCWSTR /*wzBundleId*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnDetectPackageBegin(
+ __in_z LPCWSTR /*wzPackageId*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnDetectRelatedBundle(
+ __in_z LPCWSTR /*wzBundleId*/,
+ __in BOOTSTRAPPER_RELATION_TYPE /*relationType*/,
+ __in_z LPCWSTR /*wzBundleTag*/,
+ __in BOOL /*fPerMachine*/,
+ __in DWORD64 /*dw64Version*/,
+ __in BOOTSTRAPPER_RELATED_OPERATION /*operation*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnDetectRelatedMsiPackage(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __in_z LPCWSTR /*wzProductCode*/,
+ __in BOOL /*fPerMachine*/,
+ __in DWORD64 /*dw64Version*/,
+ __in BOOTSTRAPPER_RELATED_OPERATION /*operation*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnDetectTargetMsiPackage(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __in_z LPCWSTR /*wzProductCode*/,
+ __in BOOTSTRAPPER_PACKAGE_STATE /*patchState*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnDetectMsiFeature(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __in_z LPCWSTR /*wzFeatureId*/,
+ __in BOOTSTRAPPER_FEATURE_STATE /*state*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(void) OnDetectPackageComplete(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __in HRESULT /*hrStatus*/,
+ __in BOOTSTRAPPER_PACKAGE_STATE /*state*/
+ )
+ {
+ }
+
+ virtual STDMETHODIMP_(void) OnDetectComplete(
+ __in HRESULT /*hrStatus*/
+ )
+ {
+ }
+
+ virtual STDMETHODIMP_(int) OnPlanBegin(
+ __in DWORD /*cPackages*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnPlanRelatedBundle(
+ __in_z LPCWSTR /*wzBundleId*/,
+ __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestedState*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnPlanPackageBegin(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnPlanCompatiblePackage(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestedState*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnPlanTargetMsiPackage(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __in_z LPCWSTR /*wzProductCode*/,
+ __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestedState*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnPlanMsiFeature(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __in_z LPCWSTR /*wzFeatureId*/,
+ __inout BOOTSTRAPPER_FEATURE_STATE* /*pRequestedState*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(void) OnPlanPackageComplete(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __in HRESULT /*hrStatus*/,
+ __in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
+ __in BOOTSTRAPPER_REQUEST_STATE /*requested*/,
+ __in BOOTSTRAPPER_ACTION_STATE /*execute*/,
+ __in BOOTSTRAPPER_ACTION_STATE /*rollback*/
+ )
+ {
+ }
+
+ virtual STDMETHODIMP_(void) OnPlanComplete(
+ __in HRESULT /*hrStatus*/
+ )
+ {
+ }
+
+ virtual STDMETHODIMP_(int) OnApplyBegin()
+ {
+ m_fApplying = TRUE;
+
+ m_dwProgressPercentage = 0;
+ m_dwOverallProgressPercentage = 0;
+
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ // DEPRECATED: this will be merged with OnApplyBegin in wix4.
+ virtual STDMETHODIMP_(void) OnApplyPhaseCount(
+ __in DWORD /*dwPhaseCount*/
+ )
+ {
+ }
+
+ virtual STDMETHODIMP_(int) OnElevate()
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnRegisterBegin()
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(void) OnRegisterComplete(
+ __in HRESULT /*hrStatus*/
+ )
+ {
+ return;
+ }
+
+ virtual STDMETHODIMP_(void) OnUnregisterBegin()
+ {
+ return;
+ }
+
+ virtual STDMETHODIMP_(void) OnUnregisterComplete(
+ __in HRESULT /*hrStatus*/
+ )
+ {
+ return;
+ }
+
+ virtual STDMETHODIMP_(int) OnApplyComplete(
+ __in HRESULT /*hrStatus*/,
+ __in BOOTSTRAPPER_APPLY_RESTART restart
+ )
+ {
+ m_fApplying = FALSE;
+ return BOOTSTRAPPER_APPLY_RESTART_REQUIRED == restart ? IDRESTART : CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnCacheBegin()
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnCachePackageBegin(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __in DWORD /*cCachePayloads*/,
+ __in DWORD64 /*dw64PackageCacheSize*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnCacheAcquireBegin(
+ __in_z LPCWSTR wzPackageOrContainerId,
+ __in_z_opt LPCWSTR wzPayloadId,
+ __in BOOTSTRAPPER_CACHE_OPERATION /*operation*/,
+ __in_z LPCWSTR /*wzSource*/
+ )
+ {
+ BalRetryStartPackage(BALRETRY_TYPE_CACHE, wzPackageOrContainerId, wzPayloadId);
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnCacheAcquireProgress(
+ __in_z LPCWSTR /*wzPackageOrContainerId*/,
+ __in_z_opt LPCWSTR /*wzPayloadId*/,
+ __in DWORD64 /*dw64Progress*/,
+ __in DWORD64 /*dw64Total*/,
+ __in DWORD /*dwOverallPercentage*/
+ )
+ {
+ HRESULT hr = S_OK;
+ int nResult = IDNOACTION;
+
+ // Send progress even though we don't update the numbers to at least give the caller an opportunity
+ // to cancel.
+ if (BOOTSTRAPPER_DISPLAY_EMBEDDED == m_display)
+ {
+ hr = m_pEngine->SendEmbeddedProgress(m_dwProgressPercentage, m_dwOverallProgressPercentage, &nResult);
+ BalExitOnFailure(hr, "Failed to send embedded cache progress.");
+ }
+
+ LExit:
+ return FAILED(hr) ? IDERROR : CheckCanceled() ? IDCANCEL : nResult;
+ }
+
+ virtual STDMETHODIMP_(int) OnCacheAcquireComplete(
+ __in_z LPCWSTR wzPackageOrContainerId,
+ __in_z_opt LPCWSTR wzPayloadId,
+ __in HRESULT hrStatus,
+ __in int nRecommendation
+ )
+ {
+ int nResult = CheckCanceled() ? IDCANCEL : BalRetryEndPackage(BALRETRY_TYPE_CACHE, wzPackageOrContainerId, wzPayloadId, hrStatus);
+ return IDNOACTION == nResult ? nRecommendation : nResult;
+ }
+
+ virtual STDMETHODIMP_(int) OnCacheVerifyBegin(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __in_z LPCWSTR /*wzPayloadId*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnCacheVerifyComplete(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __in_z LPCWSTR /*wzPayloadId*/,
+ __in HRESULT /*hrStatus*/,
+ __in int nRecommendation
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : nRecommendation;
+ }
+
+ virtual STDMETHODIMP_(int) OnCachePackageComplete(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __in HRESULT /*hrStatus*/,
+ __in int nRecommendation
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : nRecommendation;
+ }
+
+ virtual STDMETHODIMP_(void) OnCacheComplete(
+ __in HRESULT /*hrStatus*/
+ )
+ {
+ }
+
+ virtual STDMETHODIMP_(int) OnExecuteBegin(
+ __in DWORD /*cExecutingPackages*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnExecutePackageBegin(
+ __in_z LPCWSTR wzPackageId,
+ __in BOOL fExecute
+ )
+ {
+ // Only track retry on execution (not rollback).
+ if (fExecute)
+ {
+ BalRetryStartPackage(BALRETRY_TYPE_EXECUTE, wzPackageId, NULL);
+ }
+
+ m_fRollingBack = !fExecute;
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnExecutePatchTarget(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __in_z LPCWSTR /*wzTargetProductCode*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnError(
+ __in BOOTSTRAPPER_ERROR_TYPE errorType,
+ __in_z LPCWSTR wzPackageId,
+ __in DWORD dwCode,
+ __in_z LPCWSTR /*wzError*/,
+ __in DWORD /*dwUIHint*/,
+ __in DWORD /*cData*/,
+ __in_ecount_z_opt(cData) LPCWSTR* /*rgwzData*/,
+ __in int nRecommendation
+ )
+ {
+ BalRetryErrorOccurred(wzPackageId, dwCode);
+
+ if (BOOTSTRAPPER_DISPLAY_FULL == m_display)
+ {
+ if (BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_SERVER == errorType ||BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_PROXY == errorType)
+ {
+ nRecommendation = IDTRYAGAIN;
+ }
+ }
+
+ return CheckCanceled() ? IDCANCEL : nRecommendation;
+ }
+
+ virtual STDMETHODIMP_(int) OnProgress(
+ __in DWORD dwProgressPercentage,
+ __in DWORD dwOverallProgressPercentage
+ )
+ {
+ HRESULT hr = S_OK;
+ int nResult = IDNOACTION;
+
+ m_dwProgressPercentage = dwProgressPercentage;
+ m_dwOverallProgressPercentage = dwOverallProgressPercentage;
+
+ if (BOOTSTRAPPER_DISPLAY_EMBEDDED == m_display)
+ {
+ hr = m_pEngine->SendEmbeddedProgress(m_dwProgressPercentage, m_dwOverallProgressPercentage, &nResult);
+ BalExitOnFailure(hr, "Failed to send embedded overall progress.");
+ }
+
+ LExit:
+ return FAILED(hr) ? IDERROR : CheckCanceled() ? IDCANCEL : nResult;
+ }
+
+ virtual STDMETHODIMP_(int) OnDownloadPayloadBegin(
+ __in_z LPCWSTR /*wzPayloadId*/,
+ __in_z LPCWSTR /*wzPayloadFileName*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnDownloadPayloadComplete(
+ __in_z LPCWSTR /*wzPayloadId*/,
+ __in_z LPCWSTR /*wzPayloadFileName*/,
+ __in HRESULT /*hrStatus*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnExecuteProgress(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __in DWORD /*dwProgressPercentage*/,
+ __in DWORD /*dwOverallProgressPercentage*/
+ )
+ {
+ HRESULT hr = S_OK;
+ int nResult = IDNOACTION;
+
+ // Send progress even though we don't update the numbers to at least give the caller an opportunity
+ // to cancel.
+ if (BOOTSTRAPPER_DISPLAY_EMBEDDED == m_display)
+ {
+ hr = m_pEngine->SendEmbeddedProgress(m_dwProgressPercentage, m_dwOverallProgressPercentage, &nResult);
+ BalExitOnFailure(hr, "Failed to send embedded execute progress.");
+ }
+
+ LExit:
+ return FAILED(hr) ? IDERROR : CheckCanceled() ? IDCANCEL : nResult;
+ }
+
+ virtual STDMETHODIMP_(int) OnExecuteMsiMessage(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __in INSTALLMESSAGE /*mt*/,
+ __in UINT /*uiFlags*/,
+ __in_z LPCWSTR /*wzMessage*/,
+ __in DWORD /*cData*/,
+ __in_ecount_z_opt(cData) LPCWSTR* /*rgwzData*/,
+ __in int nRecommendation
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : nRecommendation;
+ }
+
+ virtual STDMETHODIMP_(int) OnExecuteFilesInUse(
+ __in_z LPCWSTR /*wzPackageId*/,
+ __in DWORD /*cFiles*/,
+ __in_ecount_z(cFiles) LPCWSTR* /*rgwzFiles*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnExecutePackageComplete(
+ __in_z LPCWSTR wzPackageId,
+ __in HRESULT hrExitCode,
+ __in BOOTSTRAPPER_APPLY_RESTART /*restart*/,
+ __in int nRecommendation
+ )
+ {
+ int nResult = CheckCanceled() ? IDCANCEL : CheckCanceled() ? IDCANCEL : BalRetryEndPackage(BALRETRY_TYPE_EXECUTE, wzPackageId, NULL, hrExitCode);
+ return IDNOACTION == nResult ? nRecommendation : nResult;
+ }
+
+ virtual STDMETHODIMP_(void) OnExecuteComplete(
+ __in HRESULT /*hrStatus*/
+ )
+ {
+ }
+
+ virtual STDMETHODIMP_(int) OnResolveSource(
+ __in_z LPCWSTR /*wzPackageOrContainerId*/,
+ __in_z_opt LPCWSTR /*wzPayloadId*/,
+ __in_z LPCWSTR /*wzLocalSource*/,
+ __in_z_opt LPCWSTR /*wzDownloadSource*/
+ )
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(int) OnLaunchApprovedExeBegin()
+ {
+ return CheckCanceled() ? IDCANCEL : IDNOACTION;
+ }
+
+ virtual STDMETHODIMP_(void) OnLaunchApprovedExeComplete(
+ __in HRESULT /*hrStatus*/,
+ __in DWORD /*dwProcessId*/
+ )
+ {
+ }
+
+protected:
+ //
+ // PromptCancel - prompts the user to close (if not forced).
+ //
+ virtual BOOL PromptCancel(
+ __in HWND hWnd,
+ __in BOOL fForceCancel,
+ __in_z_opt LPCWSTR wzMessage,
+ __in_z_opt LPCWSTR wzCaption
+ )
+ {
+ ::EnterCriticalSection(&m_csCanceled);
+
+ // Only prompt the user to close if we have not canceled already.
+ if (!m_fCanceled)
+ {
+ if (fForceCancel)
+ {
+ m_fCanceled = TRUE;
+ }
+ else
+ {
+ m_fCanceled = (IDYES == ::MessageBoxW(hWnd, wzMessage, wzCaption, MB_YESNO | MB_ICONEXCLAMATION));
+ }
+ }
+
+ ::LeaveCriticalSection(&m_csCanceled);
+
+ return m_fCanceled;
+ }
+
+ //
+ // CheckCanceled - waits if the cancel dialog is up and checks to see if the user canceled the operation.
+ //
+ BOOL CheckCanceled()
+ {
+ ::EnterCriticalSection(&m_csCanceled);
+ ::LeaveCriticalSection(&m_csCanceled);
+ return m_fRollingBack ? FALSE : m_fCanceled;
+ }
+
+ BOOL IsRollingBack()
+ {
+ return m_fRollingBack;
+ }
+
+ BOOL IsCanceled()
+ {
+ return m_fCanceled;
+ }
+
+ CBalBaseBootstrapperApplication(
+ __in IBootstrapperEngine* pEngine,
+ __in const BOOTSTRAPPER_COMMAND* pCommand,
+ __in DWORD dwRetryCount = 0,
+ __in DWORD dwRetryTimeout = 1000
+ )
+ {
+ m_cReferences = 1;
+ m_display = pCommand->display;
+ m_restart = pCommand->restart;
+
+ pEngine->AddRef();
+ m_pEngine = pEngine;
+
+ ::InitializeCriticalSection(&m_csCanceled);
+ m_fCanceled = FALSE;
+ m_fApplying = FALSE;
+ m_fRollingBack = FALSE;
+
+ BalRetryInitialize(dwRetryCount, dwRetryTimeout);
+ }
+
+ virtual ~CBalBaseBootstrapperApplication()
+ {
+ BalRetryUninitialize();
+ ::DeleteCriticalSection(&m_csCanceled);
+
+ ReleaseNullObject(m_pEngine);
+ }
+
+protected:
+ CRITICAL_SECTION m_csCanceled;
+ BOOL m_fCanceled;
+
+private:
+ long m_cReferences;
+ BOOTSTRAPPER_DISPLAY m_display;
+ BOOTSTRAPPER_RESTART m_restart;
+ IBootstrapperEngine* m_pEngine;
+
+ BOOL m_fApplying;
+ BOOL m_fRollingBack;
+
+ DWORD m_dwProgressPercentage;
+ DWORD m_dwOverallProgressPercentage;
+};
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/IBootstrapperApplication.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/IBootstrapperApplication.h
new file mode 100644
index 0000000..0b8393c
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/IBootstrapperApplication.h
@@ -0,0 +1,755 @@
+#pragma once
+// 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.
+
+
+enum BOOTSTRAPPER_DISPLAY
+{
+ BOOTSTRAPPER_DISPLAY_UNKNOWN,
+ BOOTSTRAPPER_DISPLAY_EMBEDDED,
+ BOOTSTRAPPER_DISPLAY_NONE,
+ BOOTSTRAPPER_DISPLAY_PASSIVE,
+ BOOTSTRAPPER_DISPLAY_FULL,
+};
+
+
+enum BOOTSTRAPPER_RESTART
+{
+ BOOTSTRAPPER_RESTART_UNKNOWN,
+ BOOTSTRAPPER_RESTART_NEVER,
+ BOOTSTRAPPER_RESTART_PROMPT,
+ BOOTSTRAPPER_RESTART_AUTOMATIC,
+ BOOTSTRAPPER_RESTART_ALWAYS,
+};
+
+
+enum BOOTSTRAPPER_RESUME_TYPE
+{
+ BOOTSTRAPPER_RESUME_TYPE_NONE,
+ BOOTSTRAPPER_RESUME_TYPE_INVALID, // resume information is present but invalid
+ BOOTSTRAPPER_RESUME_TYPE_INTERRUPTED, // relaunched after an unexpected interruption
+ BOOTSTRAPPER_RESUME_TYPE_REBOOT_PENDING, // reboot has not taken place yet
+ BOOTSTRAPPER_RESUME_TYPE_REBOOT, // relaunched after reboot
+ BOOTSTRAPPER_RESUME_TYPE_SUSPEND, // relaunched after suspend
+ BOOTSTRAPPER_RESUME_TYPE_ARP, // launched from ARP
+};
+
+
+enum BOOTSTRAPPER_ERROR_TYPE
+{
+ BOOTSTRAPPER_ERROR_TYPE_ELEVATE, // error occurred trying to elevate.
+ BOOTSTRAPPER_ERROR_TYPE_WINDOWS_INSTALLER, // error came from windows installer.
+ BOOTSTRAPPER_ERROR_TYPE_EXE_PACKAGE, // error came from an exe package.
+ BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_SERVER, // error occurred trying to authenticate with HTTP server.
+ BOOTSTRAPPER_ERROR_TYPE_HTTP_AUTH_PROXY, // error occurred trying to authenticate with HTTP proxy.
+ BOOTSTRAPPER_ERROR_TYPE_APPLY, // error occurred during apply.
+};
+
+
+enum BOOTSTRAPPER_RELATED_OPERATION
+{
+ BOOTSTRAPPER_RELATED_OPERATION_NONE,
+ BOOTSTRAPPER_RELATED_OPERATION_DOWNGRADE,
+ BOOTSTRAPPER_RELATED_OPERATION_MINOR_UPDATE,
+ BOOTSTRAPPER_RELATED_OPERATION_MAJOR_UPGRADE,
+ BOOTSTRAPPER_RELATED_OPERATION_REMOVE,
+ BOOTSTRAPPER_RELATED_OPERATION_INSTALL,
+ BOOTSTRAPPER_RELATED_OPERATION_REPAIR,
+};
+
+
+enum BOOTSTRAPPER_CACHE_OPERATION
+{
+ BOOTSTRAPPER_CACHE_OPERATION_COPY,
+ BOOTSTRAPPER_CACHE_OPERATION_DOWNLOAD,
+ BOOTSTRAPPER_CACHE_OPERATION_EXTRACT,
+};
+
+
+enum BOOTSTRAPPER_APPLY_RESTART
+{
+ BOOTSTRAPPER_APPLY_RESTART_NONE,
+ BOOTSTRAPPER_APPLY_RESTART_REQUIRED,
+ BOOTSTRAPPER_APPLY_RESTART_INITIATED,
+};
+
+
+enum BOOTSTRAPPER_RELATION_TYPE
+{
+ BOOTSTRAPPER_RELATION_NONE,
+ BOOTSTRAPPER_RELATION_DETECT,
+ BOOTSTRAPPER_RELATION_UPGRADE,
+ BOOTSTRAPPER_RELATION_ADDON,
+ BOOTSTRAPPER_RELATION_PATCH,
+ BOOTSTRAPPER_RELATION_DEPENDENT,
+ BOOTSTRAPPER_RELATION_UPDATE,
+};
+
+
+struct BOOTSTRAPPER_COMMAND
+{
+ BOOTSTRAPPER_ACTION action;
+ BOOTSTRAPPER_DISPLAY display;
+ BOOTSTRAPPER_RESTART restart;
+
+ LPWSTR wzCommandLine;
+ int nCmdShow;
+
+ BOOTSTRAPPER_RESUME_TYPE resumeType;
+ HWND hwndSplashScreen;
+
+ // If this was run from a related bundle, specifies the relation type
+ BOOTSTRAPPER_RELATION_TYPE relationType;
+ BOOL fPassthrough;
+
+ LPWSTR wzLayoutDirectory;
+};
+
+
+DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-AB06-099D717C67FE")
+{
+ // OnStartup - called when the engine is ready for the bootstrapper application to start.
+ //
+ STDMETHOD(OnStartup)() = 0;
+
+ // OnShutdown - called after the bootstrapper application quits the engine.
+ //
+ // Return:
+ // IDRESTART instructs the engine to restart. The engine will not launch again after the machine
+ // is rebooted. Ignored if reboot was already initiated by OnExecutePackageComplete().
+ //
+ // IDRELOAD_BOOTSTRAPPER instructs the engine to unload the bootstrapper application and restart
+ // the engine which will load the bootstrapper application again. Typically
+ // used to switch from a native bootstrapper application to a managed one.
+ //
+ // All other return codes are ignored.
+ STDMETHOD_(int, OnShutdown)() = 0;
+
+ // OnSystemShutdown - called when the operating system is instructed to shutdown the machine.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to block the shutdown of the machine.
+ //
+ // All other return codes allow the shutdown to commence.
+ STDMETHOD_(int, OnSystemShutdown)(
+ __in DWORD dwEndSession,
+ __in int nRecommendation
+ ) = 0;
+
+ // OnDetectBegin - called when the engine begins detection.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop detection.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnDetectBegin)(
+ __in BOOL fInstalled,
+ __in DWORD cPackages
+ ) = 0;
+
+ // OnDetectForwardCompatibleBundle - called when the engine detects a forward compatible bundle.
+ //
+ // Return:
+ // IDOK instructs the engine to use the forward compatible bundle.
+ //
+ // IDCANCEL instructs the engine to stop detection.
+ //
+ // IDNOACTION instructs the engine to not use the forward compatible bundle.
+ STDMETHOD_(int, OnDetectForwardCompatibleBundle)(
+ __in_z LPCWSTR wzBundleId,
+ __in BOOTSTRAPPER_RELATION_TYPE relationType,
+ __in_z LPCWSTR wzBundleTag,
+ __in BOOL fPerMachine,
+ __in DWORD64 dw64Version,
+ __in int nRecommendation
+ ) = 0;
+
+ // OnDetectUpdateBegin - called when the engine begins detection for bundle update.
+ //
+ // Return:
+ // IDOK instructs the engine to attempt update detection.
+ //
+ // IDCANCEL instructs the engine to stop detection.
+ //
+ // IDNOACTION instructs the engine to skip update detection.
+ STDMETHOD_(int, OnDetectUpdateBegin)(
+ __in_z LPCWSTR wzUpdateLocation,
+ __in int nRecommendation
+ ) = 0;
+
+ // OnDetectUpdate - called when the engine has an update candidate for bundle update.
+ //
+ // Return:
+ // IDOK instructs the engine to stop further update detection.
+ //
+ // IDCANCEL instructs the engine to stop detection.
+ //
+ // IDNOACTION instructs the engine to process further update candidates.
+ STDMETHOD_(int, OnDetectUpdate)(
+ __in_z_opt LPCWSTR wzUpdateLocation,
+ __in DWORD64 dw64Size,
+ __in DWORD64 dw64Version,
+ __in_z_opt LPCWSTR wzTitle,
+ __in_z_opt LPCWSTR wzSummary,
+ __in_z_opt LPCWSTR wzContentType,
+ __in_z_opt LPCWSTR wzContent,
+ __in int nRecommendation
+ ) = 0;
+
+ // OnDetectUpdateComplete - called when the engine completes detection for bundle update.
+ //
+ // Remarks:
+ // wzUpdateLocation is null if no update was available.
+ STDMETHOD_(void, OnDetectUpdateComplete)(
+ __in HRESULT hrStatus,
+ __in_z_opt LPCWSTR wzUpdateLocation
+ ) = 0;
+
+ // OnDetectRelatedBundle - called when the engine detects a related bundle.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop detection.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnDetectRelatedBundle)(
+ __in_z LPCWSTR wzBundleId,
+ __in BOOTSTRAPPER_RELATION_TYPE relationType,
+ __in_z LPCWSTR wzBundleTag,
+ __in BOOL fPerMachine,
+ __in DWORD64 dw64Version,
+ __in BOOTSTRAPPER_RELATED_OPERATION operation
+ ) = 0;
+
+ // OnDetectPackageBegin - called when the engine begins detecting a package.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop detection.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnDetectPackageBegin)(
+ __in_z LPCWSTR wzPackageId
+ ) = 0;
+
+ // OnDetectCompatiblePackage - called when the engine detects that a package is not installed but a newer package using the same provider key is.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop detection.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnDetectCompatiblePackage)(
+ __in_z LPCWSTR wzPackageId,
+ __in_z LPCWSTR wzCompatiblePackageId
+ ) = 0;
+
+ // OnDetectRelatedMsiPackage - called when the engine begins detects a related package.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop detection.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnDetectRelatedMsiPackage)(
+ __in_z LPCWSTR wzPackageId,
+ __in_z LPCWSTR wzProductCode,
+ __in BOOL fPerMachine,
+ __in DWORD64 dw64Version,
+ __in BOOTSTRAPPER_RELATED_OPERATION operation
+ ) = 0;
+
+ // OnDetectTargetMsiPackage - called when the engine detects a target MSI package for
+ // an MSP package.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop detection.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnDetectTargetMsiPackage)(
+ __in_z LPCWSTR wzPackageId,
+ __in_z LPCWSTR wzProductCode,
+ __in BOOTSTRAPPER_PACKAGE_STATE patchState
+ ) = 0;
+
+ // OnDetectMsiFeature - called when the engine detects a feature in an MSI package.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop detection.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnDetectMsiFeature)(
+ __in_z LPCWSTR wzPackageId,
+ __in_z LPCWSTR wzFeatureId,
+ __in BOOTSTRAPPER_FEATURE_STATE state
+ ) = 0;
+
+ // OnDetectPackageComplete - called after the engine detects a package.
+ //
+ STDMETHOD_(void, OnDetectPackageComplete)(
+ __in_z LPCWSTR wzPackageId,
+ __in HRESULT hrStatus,
+ __in BOOTSTRAPPER_PACKAGE_STATE state
+ ) = 0;
+
+ // OnDetectPackageComplete - called after the engine completes detection.
+ //
+ STDMETHOD_(void, OnDetectComplete)(
+ __in HRESULT hrStatus
+ ) = 0;
+
+ // OnPlanBegin - called when the engine begins planning.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop planning.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnPlanBegin)(
+ __in DWORD cPackages
+ ) = 0;
+
+ // OnPlanRelatedBundle - called when the engine begins planning a related bundle.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop planning.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnPlanRelatedBundle)(
+ __in_z LPCWSTR wzBundleId,
+ __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState
+ ) = 0;
+
+ // OnPlanPackageBegin - called when the engine begins planning a package.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop planning.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnPlanPackageBegin)(
+ __in_z LPCWSTR wzPackageId,
+ __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState
+ ) = 0;
+
+ // OnPlanCompatiblePackage - called when the engine plans a newer, compatible package using the same provider key.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop planning.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnPlanCompatiblePackage)(
+ __in_z LPCWSTR wzPackageId,
+ __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState
+ ) = 0;
+
+ // OnPlanTargetMsiPackage - called when the engine plans an MSP package
+ // to apply to an MSI package.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop planning.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnPlanTargetMsiPackage)(
+ __in_z LPCWSTR wzPackageId,
+ __in_z LPCWSTR wzProductCode,
+ __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState
+ ) = 0;
+
+ // OnPlanMsiFeature - called when the engine plans a feature in an
+ // MSI package.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop planning.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnPlanMsiFeature)(
+ __in_z LPCWSTR wzPackageId,
+ __in_z LPCWSTR wzFeatureId,
+ __inout BOOTSTRAPPER_FEATURE_STATE* pRequestedState
+ ) = 0;
+
+ // OnPlanPackageComplete - called after the engine plans a package.
+ //
+ STDMETHOD_(void, OnPlanPackageComplete)(
+ __in_z LPCWSTR wzPackageId,
+ __in HRESULT hrStatus,
+ __in BOOTSTRAPPER_PACKAGE_STATE state,
+ __in BOOTSTRAPPER_REQUEST_STATE requested,
+ __in BOOTSTRAPPER_ACTION_STATE execute,
+ __in BOOTSTRAPPER_ACTION_STATE rollback
+ ) = 0;
+
+ // OnPlanComplete - called when the engine completes planning.
+ //
+ STDMETHOD_(void, OnPlanComplete)(
+ __in HRESULT hrStatus
+ ) = 0;
+
+ // OnApplyBegin - called when the engine begins applying the plan.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop applying.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnApplyBegin)() = 0;
+
+ // DEPRECATED: In wix4, this will be merged with OnApplyBegin.
+ // OnApplyPhaseCount - called right after OnApplyBegin.
+ //
+ STDMETHOD_(void, OnApplyPhaseCount)(
+ __in DWORD dwPhaseCount
+ ) = 0;
+
+ // OnElevate - called before the engine displays an elevation prompt.
+ // Will only happen once per execution of the engine.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to abort elevation and stop applying.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnElevate)() = 0;
+
+ // OnProgress - called when the engine makes progress.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop applying.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnProgress)(
+ __in DWORD dwProgressPercentage,
+ __in DWORD dwOverallPercentage
+ ) = 0;
+
+ // OnError - called when the engine encounters an error.
+ //
+ // Return:
+ // uiFlags is a combination of valid ID* return values appropriate for
+ // the error.
+ //
+ // IDNOACTION instructs the engine to pass the error through to default
+ // handling which usually results in the apply failing.
+ STDMETHOD_(int, OnError)(
+ __in BOOTSTRAPPER_ERROR_TYPE errorType,
+ __in_z_opt LPCWSTR wzPackageId,
+ __in DWORD dwCode,
+ __in_z_opt LPCWSTR wzError,
+ __in DWORD uiFlags,
+ __in DWORD cData,
+ __in_ecount_z_opt(cData) LPCWSTR* rgwzData,
+ __in int nRecommendation
+ ) = 0;
+
+ // OnRegisterBegin - called when the engine registers the bundle.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop applying.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnRegisterBegin)() = 0;
+
+ // OnRegisterComplete - called when the engine registration is
+ // complete.
+ //
+ STDMETHOD_(void, OnRegisterComplete)(
+ __in HRESULT hrStatus
+ ) = 0;
+
+ // OnCacheBegin - called when the engine begins caching.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop caching.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnCacheBegin)() = 0;
+
+ // OnCachePackageBegin - called when the engine begins caching
+ // a package.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop caching.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnCachePackageBegin)(
+ __in_z LPCWSTR wzPackageId,
+ __in DWORD cCachePayloads,
+ __in DWORD64 dw64PackageCacheSize
+ ) = 0;
+
+ // OnCacheAcquireBegin - called when the engine begins copying or
+ // downloading a payload to the working folder.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop caching.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnCacheAcquireBegin)(
+ __in_z_opt LPCWSTR wzPackageOrContainerId,
+ __in_z_opt LPCWSTR wzPayloadId,
+ __in BOOTSTRAPPER_CACHE_OPERATION operation,
+ __in_z LPCWSTR wzSource
+ ) = 0;
+
+ // OnCacheAcquireProgress - called when the engine makes progresss copying
+ // or downloading a payload to the working folder.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop caching.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnCacheAcquireProgress)(
+ __in_z_opt LPCWSTR wzPackageOrContainerId,
+ __in_z_opt LPCWSTR wzPayloadId,
+ __in DWORD64 dw64Progress,
+ __in DWORD64 dw64Total,
+ __in DWORD dwOverallPercentage
+ ) = 0;
+
+ // OnResolveSource - called when a payload or container cannot be found locally.
+ //
+ // Parameters:
+ // wzPayloadId will be NULL when resolving a container.
+ // wzDownloadSource will be NULL if the container or payload does not provide a DownloadURL.
+ //
+ // Return:
+ // IDRETRY instructs the engine to try the local source again.
+ //
+ // IDDOWNLOAD instructs the engine to try the download source.
+ //
+ // All other return codes result in an error.
+ //
+ // Notes:
+ // It is expected the BA may call IBurnCore::SetLocalSource() or IBurnCore::SetDownloadSource()
+ // to update the source location before returning IDRETRY or IDDOWNLOAD.
+ STDMETHOD_(int, OnResolveSource)(
+ __in_z LPCWSTR wzPackageOrContainerId,
+ __in_z_opt LPCWSTR wzPayloadId,
+ __in_z LPCWSTR wzLocalSource,
+ __in_z_opt LPCWSTR wzDownloadSource
+ ) = 0;
+
+ // OnCacheAcquireComplete - called after the engine copied or downloaded
+ // a payload to the working folder.
+ //
+ // Return:
+ // IDRETRY instructs the engine to try the copy or download of the payload again.
+ //
+ // All other return codes are ignored.
+ STDMETHOD_(int, OnCacheAcquireComplete)(
+ __in_z_opt LPCWSTR wzPackageOrContainerId,
+ __in_z_opt LPCWSTR wzPayloadId,
+ __in HRESULT hrStatus,
+ __in int nRecommendation
+ ) = 0;
+
+ // OnCacheVerifyBegin - called when the engine begins to verify then copy
+ // a payload or container to the package cache folder.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop caching.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnCacheVerifyBegin)(
+ __in_z_opt LPCWSTR wzPackageOrContainerId,
+ __in_z_opt LPCWSTR wzPayloadId
+ ) = 0;
+
+ // OnCacheVerifyComplete - called after the engine verifies and copies
+ // a payload or container to the package cache folder.
+ //
+ // Return:
+ // IDRETRY instructs the engine to try the verification of the payload again.
+ // Ignored if hrStatus is success.
+ //
+ // IDTRYAGAIN instructs the engine to acquire the payload again. Ignored if
+ // hrStatus is success.
+ //
+ // All other return codes are ignored.
+ STDMETHOD_(int, OnCacheVerifyComplete)(
+ __in_z_opt LPCWSTR wzPackageOrContainerId,
+ __in_z_opt LPCWSTR wzPayloadId,
+ __in HRESULT hrStatus,
+ __in int nRecommendation
+ ) = 0;
+
+ // OnCachePackageComplete - called after the engine attempts to copy or download all
+ // payloads of a package into the package cache folder.
+ //
+ // Return:
+ // IDIGNORE instructs the engine to ignore non-vital package failures and continue with the
+ // caching. Ignored if hrStatus is a success or the package is vital.
+ //
+ // IDRETRY instructs the engine to try the acquisition and verification of the package
+ // again. Ignored if hrStatus is a success.
+ //
+ // All other return codes are ignored.
+ STDMETHOD_(int, OnCachePackageComplete)(
+ __in_z LPCWSTR wzPackageId,
+ __in HRESULT hrStatus,
+ __in int nRecommendation
+ ) = 0;
+
+ // OnCacheComplete - called when the engine caching is complete.
+ //
+ STDMETHOD_(void, OnCacheComplete)(
+ __in HRESULT hrStatus
+ ) = 0;
+
+ // OnExecuteBegin - called when the engine begins executing the plan.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop applying.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnExecuteBegin)(
+ __in DWORD cExecutingPackages
+ ) = 0;
+
+ // OnExecuteBegin - called when the engine begins executing a package.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop applying.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnExecutePackageBegin)(
+ __in_z LPCWSTR wzPackageId,
+ __in BOOL fExecute
+ ) = 0;
+
+ // OnExecutePatchTarget - called when the engine executes one or more patches targeting
+ // a product.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop applying.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnExecutePatchTarget)(
+ __in_z LPCWSTR wzPackageId,
+ __in_z LPCWSTR wzTargetProductCode
+ ) = 0;
+
+ // OnExecuteProgress - called when the engine makes progress executing a package.
+ //
+ // Return:
+ // IDCANCEL instructs the engine to stop applying.
+ //
+ // IDNOACTION instructs the engine to continue.
+ STDMETHOD_(int, OnExecuteProgress)(
+ __in_z LPCWSTR wzPackageId,
+ __in DWORD dwProgressPercentage,
+ __in DWORD dwOverallPercentage
+ ) = 0;
+
+ // OnExecuteMsiMessage - called when the engine receives an MSI package message.
+ //
+ // Return:
+ // uiFlags is a combination of valid ID* return values appropriate for
+ // the message.
+ //
+ // IDNOACTION instructs the engine to pass the message through to default
+ // handling which usually results in the execution continuing.
+ STDMETHOD_(int, OnExecuteMsiMessage)(
+ __in_z LPCWSTR wzPackageId,
+ __in INSTALLMESSAGE mt,
+ __in UINT uiFlags,
+ __in_z LPCWSTR wzMessage,
+ __in DWORD cData,
+ __in_ecount_z_opt(cData) LPCWSTR* rgwzData,
+ __in int nRecommendation
+ ) = 0;
+
+ // OnExecuteFilesInUse - called when the engine encounters files in use while
+ // executing a package.
+ //
+ // Return:
+ // IDOK instructs the engine to let the Restart Manager attempt to close the
+ // applications to avoid a restart.
+ //
+ // IDCANCEL instructs the engine to abort the execution and start rollback.
+ //
+ // IDIGNORE instructs the engine to ignore the running applications. A restart will be
+ // required.
+ //
+ // IDRETRY instructs the engine to check if the applications are still running again.
+ //
+ // IDNOACTION is equivalent to ignoring the running applications. A restart will be
+ // required.
+ STDMETHOD_(int, OnExecuteFilesInUse)(
+ __in_z LPCWSTR wzPackageId,
+ __in DWORD cFiles,
+ __in_ecount_z(cFiles) LPCWSTR* rgwzFiles
+ ) = 0;
+
+ // OnExecutePackageComplete - called when a package execution is complete.
+ //
+ // Parameters:
+ // restart will indicate whether this package requires a reboot or initiated the reboot already.
+ //
+ // Return:
+ // IDIGNORE instructs the engine to ignore non-vital package failures and continue with the
+ // install. Ignored if hrStatus is a success or the package is vital.
+ //
+ // IDRETRY instructs the engine to try the execution of the package again. Ignored if hrStatus
+ // is a success.
+ //
+ // IDRESTART instructs the engine to stop processing the chain and restart. The engine will
+ // launch again after the machine is restarted.
+ //
+ // IDSUSPEND instructs the engine to stop processing the chain and suspend the current state.
+ //
+ // All other return codes are ignored.
+ STDMETHOD_(int, OnExecutePackageComplete)(
+ __in_z LPCWSTR wzPackageId,
+ __in HRESULT hrStatus,
+ __in BOOTSTRAPPER_APPLY_RESTART restart,
+ __in int nRecommendation
+ ) = 0;
+
+ // OnExecuteComplete - called when the engine execution is complete.
+ //
+ STDMETHOD_(void, OnExecuteComplete)(
+ __in HRESULT hrStatus
+ ) = 0;
+
+ // OnUnregisterBegin - called when the engine unregisters the bundle.
+ //
+ STDMETHOD_(void, OnUnregisterBegin)() = 0;
+
+ // OnUnregisterComplete - called when the engine unregistration is complete.
+ //
+ STDMETHOD_(void, OnUnregisterComplete)(
+ __in HRESULT hrStatus
+ ) = 0;
+
+ // OnApplyComplete - called after the plan has been applied.
+ //
+ // Parameters:
+ // restart will indicate whether any package required a reboot or initiated the reboot already.
+ //
+ // Return:
+ // IDRESTART instructs the engine to restart. The engine will not launch again after the machine
+ // is rebooted. Ignored if reboot was already initiated by OnExecutePackageComplete().
+ //
+ // All other return codes are ignored.
+ STDMETHOD_(int, OnApplyComplete)(
+ __in HRESULT hrStatus,
+ __in BOOTSTRAPPER_APPLY_RESTART restart
+ ) = 0;
+
+ // OnLaunchApprovedExeBegin - called before trying to launch the preapproved executable.
+ //
+ STDMETHOD_(int, OnLaunchApprovedExeBegin)() = 0;
+
+
+ // OnLaunchApprovedExeComplete - called after trying to launch the preapproved executable.
+ //
+ // Parameters:
+ // dwProcessId is only valid if the operation succeeded.
+ //
+ STDMETHOD_(void, OnLaunchApprovedExeComplete)(
+ __in HRESULT hrStatus,
+ __in DWORD dwProcessId
+ ) = 0;
+};
+
+
+extern "C" typedef HRESULT (WINAPI *PFN_BOOTSTRAPPER_APPLICATION_CREATE)(
+ __in IBootstrapperEngine* pEngine,
+ __in const BOOTSTRAPPER_COMMAND* pCommand,
+ __out IBootstrapperApplication** ppApplication
+ );
+
+extern "C" typedef void (WINAPI *PFN_BOOTSTRAPPER_APPLICATION_DESTROY)();
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/IBootstrapperBAFunction.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/IBootstrapperBAFunction.h
new file mode 100644
index 0000000..ff9ec24
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/IBootstrapperBAFunction.h
@@ -0,0 +1,29 @@
+#pragma once
+// 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.
+
+
+#include
+
+#include "IBootstrapperEngine.h"
+
+interface IBootstrapperBAFunction
+{
+ STDMETHOD(OnDetect)() = 0;
+ STDMETHOD(OnDetectComplete)() = 0;
+ STDMETHOD(OnPlan)() = 0;
+ STDMETHOD(OnPlanComplete)() = 0;
+};
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef HRESULT (WINAPI *PFN_BOOTSTRAPPER_BA_FUNCTION_CREATE)(
+ __in IBootstrapperEngine* pEngine,
+ __in HMODULE hModule,
+ __out IBootstrapperBAFunction** ppBAFunction
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/IBootstrapperEngine.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/IBootstrapperEngine.h
new file mode 100644
index 0000000..4de57e2
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/IBootstrapperEngine.h
@@ -0,0 +1,221 @@
+#pragma once
+// 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.
+
+
+#define IDERROR -1
+#define IDNOACTION 0
+
+#define IDDOWNLOAD 101 // Only valid as a return code from OnResolveSource() to instruct the engine to use the download source.
+#define IDRESTART 102
+#define IDSUSPEND 103
+#define IDRELOAD_BOOTSTRAPPER 104
+
+// Note that ordering of the enumeration values is important.
+// Some code paths use < or > comparisions and simply reording values will break those comparisons.
+enum BOOTSTRAPPER_ACTION
+{
+ BOOTSTRAPPER_ACTION_UNKNOWN,
+ BOOTSTRAPPER_ACTION_HELP,
+ BOOTSTRAPPER_ACTION_LAYOUT,
+ BOOTSTRAPPER_ACTION_UNINSTALL,
+ BOOTSTRAPPER_ACTION_CACHE,
+ BOOTSTRAPPER_ACTION_INSTALL,
+ BOOTSTRAPPER_ACTION_MODIFY,
+ BOOTSTRAPPER_ACTION_REPAIR,
+ BOOTSTRAPPER_ACTION_UPDATE_REPLACE,
+ BOOTSTRAPPER_ACTION_UPDATE_REPLACE_EMBEDDED,
+};
+
+enum BOOTSTRAPPER_ACTION_STATE
+{
+ BOOTSTRAPPER_ACTION_STATE_NONE,
+ BOOTSTRAPPER_ACTION_STATE_UNINSTALL,
+ BOOTSTRAPPER_ACTION_STATE_INSTALL,
+ BOOTSTRAPPER_ACTION_STATE_ADMIN_INSTALL,
+ BOOTSTRAPPER_ACTION_STATE_MODIFY,
+ BOOTSTRAPPER_ACTION_STATE_REPAIR,
+ BOOTSTRAPPER_ACTION_STATE_MINOR_UPGRADE,
+ BOOTSTRAPPER_ACTION_STATE_MAJOR_UPGRADE,
+ BOOTSTRAPPER_ACTION_STATE_PATCH,
+};
+
+enum BOOTSTRAPPER_PACKAGE_STATE
+{
+ BOOTSTRAPPER_PACKAGE_STATE_UNKNOWN,
+ BOOTSTRAPPER_PACKAGE_STATE_OBSOLETE,
+ BOOTSTRAPPER_PACKAGE_STATE_ABSENT,
+ BOOTSTRAPPER_PACKAGE_STATE_CACHED,
+ BOOTSTRAPPER_PACKAGE_STATE_PRESENT,
+ BOOTSTRAPPER_PACKAGE_STATE_SUPERSEDED,
+};
+
+enum BOOTSTRAPPER_REQUEST_STATE
+{
+ BOOTSTRAPPER_REQUEST_STATE_NONE,
+ BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT,
+ BOOTSTRAPPER_REQUEST_STATE_ABSENT,
+ BOOTSTRAPPER_REQUEST_STATE_CACHE,
+ BOOTSTRAPPER_REQUEST_STATE_PRESENT,
+ BOOTSTRAPPER_REQUEST_STATE_REPAIR,
+};
+
+enum BOOTSTRAPPER_FEATURE_STATE
+{
+ BOOTSTRAPPER_FEATURE_STATE_UNKNOWN,
+ BOOTSTRAPPER_FEATURE_STATE_ABSENT,
+ BOOTSTRAPPER_FEATURE_STATE_ADVERTISED,
+ BOOTSTRAPPER_FEATURE_STATE_LOCAL,
+ BOOTSTRAPPER_FEATURE_STATE_SOURCE,
+};
+
+enum BOOTSTRAPPER_FEATURE_ACTION
+{
+ BOOTSTRAPPER_FEATURE_ACTION_NONE,
+ BOOTSTRAPPER_FEATURE_ACTION_ADDLOCAL,
+ BOOTSTRAPPER_FEATURE_ACTION_ADDSOURCE,
+ BOOTSTRAPPER_FEATURE_ACTION_ADDDEFAULT,
+ BOOTSTRAPPER_FEATURE_ACTION_REINSTALL,
+ BOOTSTRAPPER_FEATURE_ACTION_ADVERTISE,
+ BOOTSTRAPPER_FEATURE_ACTION_REMOVE,
+};
+
+enum BOOTSTRAPPER_LOG_LEVEL
+{
+ BOOTSTRAPPER_LOG_LEVEL_NONE, // turns off report (only valid for XXXSetLevel())
+ BOOTSTRAPPER_LOG_LEVEL_STANDARD, // written if reporting is on
+ BOOTSTRAPPER_LOG_LEVEL_VERBOSE, // written only if verbose reporting is on
+ BOOTSTRAPPER_LOG_LEVEL_DEBUG, // reporting useful when debugging code
+ BOOTSTRAPPER_LOG_LEVEL_ERROR, // always gets reported, but can never be specified
+};
+
+enum BOOTSTRAPPER_UPDATE_HASH_TYPE
+{
+ BOOTSTRAPPER_UPDATE_HASH_TYPE_NONE,
+ BOOTSTRAPPER_UPDATE_HASH_TYPE_SHA1,
+};
+
+
+DECLARE_INTERFACE_IID_(IBootstrapperEngine, IUnknown, "6480D616-27A0-44D7-905B-81512C29C2FB")
+{
+ STDMETHOD(GetPackageCount)(
+ __out DWORD* pcPackages
+ ) = 0;
+
+ STDMETHOD(GetVariableNumeric)(
+ __in_z LPCWSTR wzVariable,
+ __out LONGLONG* pllValue
+ ) = 0;
+
+ STDMETHOD(GetVariableString)(
+ __in_z LPCWSTR wzVariable,
+ __out_ecount_opt(*pcchValue) LPWSTR wzValue,
+ __inout DWORD* pcchValue
+ ) = 0;
+
+ STDMETHOD(GetVariableVersion)(
+ __in_z LPCWSTR wzVariable,
+ __out DWORD64* pqwValue
+ ) = 0;
+
+ STDMETHOD(FormatString)(
+ __in_z LPCWSTR wzIn,
+ __out_ecount_opt(*pcchOut) LPWSTR wzOut,
+ __inout DWORD* pcchOut
+ ) = 0;
+
+ STDMETHOD(EscapeString)(
+ __in_z LPCWSTR wzIn,
+ __out_ecount_opt(*pcchOut) LPWSTR wzOut,
+ __inout DWORD* pcchOut
+ ) = 0;
+
+ STDMETHOD(EvaluateCondition)(
+ __in_z LPCWSTR wzCondition,
+ __out BOOL* pf
+ ) = 0;
+
+ STDMETHOD(Log)(
+ __in BOOTSTRAPPER_LOG_LEVEL level,
+ __in_z LPCWSTR wzMessage
+ ) = 0;
+
+ STDMETHOD(SendEmbeddedError)(
+ __in DWORD dwErrorCode,
+ __in_z_opt LPCWSTR wzMessage,
+ __in DWORD dwUIHint,
+ __out int* pnResult
+ ) = 0;
+
+ STDMETHOD(SendEmbeddedProgress)(
+ __in DWORD dwProgressPercentage,
+ __in DWORD dwOverallProgressPercentage,
+ __out int* pnResult
+ ) = 0;
+
+ STDMETHOD(SetUpdate)(
+ __in_z_opt LPCWSTR wzLocalSource,
+ __in_z_opt LPCWSTR wzDownloadSource,
+ __in DWORD64 qwSize,
+ __in BOOTSTRAPPER_UPDATE_HASH_TYPE hashType,
+ __in_bcount_opt(cbHash) BYTE* rgbHash,
+ __in DWORD cbHash
+ ) = 0;
+
+ STDMETHOD(SetLocalSource)(
+ __in_z LPCWSTR wzPackageOrContainerId,
+ __in_z_opt LPCWSTR wzPayloadId,
+ __in_z LPCWSTR wzPath
+ ) = 0;
+
+ STDMETHOD(SetDownloadSource)(
+ __in_z LPCWSTR wzPackageOrContainerId,
+ __in_z_opt LPCWSTR wzPayloadId,
+ __in_z LPCWSTR wzUrl,
+ __in_z_opt LPCWSTR wzUser,
+ __in_z_opt LPCWSTR wzPassword
+ ) = 0;
+
+ STDMETHOD(SetVariableNumeric)(
+ __in_z LPCWSTR wzVariable,
+ __in LONGLONG llValue
+ ) = 0;
+
+ STDMETHOD(SetVariableString)(
+ __in_z LPCWSTR wzVariable,
+ __in_z_opt LPCWSTR wzValue
+ ) = 0;
+
+ STDMETHOD(SetVariableVersion)(
+ __in_z LPCWSTR wzVariable,
+ __in DWORD64 qwValue
+ ) = 0;
+
+ STDMETHOD(CloseSplashScreen)() = 0;
+
+ STDMETHOD(Detect)(
+ __in_opt HWND hwndParent = NULL
+ ) = 0;
+
+ STDMETHOD(Plan)(
+ __in BOOTSTRAPPER_ACTION action
+ ) = 0;
+
+ STDMETHOD(Elevate)(
+ __in_opt HWND hwndParent
+ ) = 0;
+
+ STDMETHOD(Apply)(
+ __in_opt HWND hwndParent
+ ) = 0;
+
+ STDMETHOD(Quit)(
+ __in DWORD dwExitCode
+ ) = 0;
+
+ STDMETHOD(LaunchApprovedExe)(
+ __in_opt HWND hwndParent,
+ __in_z LPCWSTR wzApprovedExeForElevationId,
+ __in_z_opt LPCWSTR wzArguments,
+ __in DWORD dwWaitForInputIdleTimeout
+ ) = 0;
+};
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/aclutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/aclutil.h
new file mode 100644
index 0000000..02d60af
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/aclutil.h
@@ -0,0 +1,153 @@
+#pragma once
+// 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.
+
+
+#include
+#include
+
+#define ReleaseSid(x) if (x) { AclFreeSid(x); }
+#define ReleaseNullSid(x) if (x) { AclFreeSid(x); x = NULL; }
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// structs
+struct ACL_ACCESS
+{
+ BOOL fDenyAccess;
+ DWORD dwAccessMask;
+
+ // TODO: consider using a union
+ LPCWSTR pwzAccountName; // NOTE: the last three items in this structure are ignored if this is not NULL
+
+ SID_IDENTIFIER_AUTHORITY sia; // used if pwzAccountName is NULL
+ BYTE nSubAuthorityCount;
+ DWORD nSubAuthority[8];
+};
+
+struct ACL_ACE
+{
+ DWORD dwFlags;
+ DWORD dwMask;
+ PSID psid;
+};
+
+
+// functions
+HRESULT DAPI AclCheckAccess(
+ __in HANDLE hToken,
+ __in ACL_ACCESS* paa
+ );
+HRESULT DAPI AclCheckAdministratorAccess(
+ __in HANDLE hToken
+ );
+HRESULT DAPI AclCheckLocalSystemAccess(
+ __in HANDLE hToken
+ );
+
+HRESULT DAPI AclGetWellKnownSid(
+ __in WELL_KNOWN_SID_TYPE wkst,
+ __deref_out PSID* ppsid
+ );
+HRESULT DAPI AclGetAccountSid(
+ __in_opt LPCWSTR wzSystem,
+ __in_z LPCWSTR wzAccount,
+ __deref_out PSID* ppsid
+ );
+HRESULT DAPI AclGetAccountSidString(
+ __in_z LPCWSTR wzSystem,
+ __in_z LPCWSTR wzAccount,
+ __deref_out_z LPWSTR* ppwzSid
+ );
+
+HRESULT DAPI AclCreateDacl(
+ __in_ecount(cDeny) ACL_ACE rgaaDeny[],
+ __in DWORD cDeny,
+ __in_ecount(cAllow) ACL_ACE rgaaAllow[],
+ __in DWORD cAllow,
+ __deref_out ACL** ppAcl
+ );
+HRESULT DAPI AclAddToDacl(
+ __in ACL* pAcl,
+ __in_ecount_opt(cDeny) const ACL_ACE rgaaDeny[],
+ __in DWORD cDeny,
+ __in_ecount_opt(cAllow) const ACL_ACE rgaaAllow[],
+ __in DWORD cAllow,
+ __deref_out ACL** ppAclNew
+ );
+HRESULT DAPI AclMergeDacls(
+ __in const ACL* pAcl1,
+ __in const ACL* pAcl2,
+ __deref_out ACL** ppAclNew
+ );
+HRESULT DAPI AclCreateDaclOld(
+ __in_ecount(cAclAccesses) ACL_ACCESS* paa,
+ __in DWORD cAclAccesses,
+ __deref_out ACL** ppAcl
+ );
+HRESULT DAPI AclCreateSecurityDescriptor(
+ __in_ecount(cAclAccesses) ACL_ACCESS* paa,
+ __in DWORD cAclAccesses,
+ __deref_out SECURITY_DESCRIPTOR** ppsd
+ );
+HRESULT DAPI AclCreateSecurityDescriptorFromDacl(
+ __in ACL* pACL,
+ __deref_out SECURITY_DESCRIPTOR** ppsd
+ );
+HRESULT __cdecl AclCreateSecurityDescriptorFromString(
+ __deref_out SECURITY_DESCRIPTOR** ppsd,
+ __in_z __format_string LPCWSTR wzSddlFormat,
+ ...
+ );
+HRESULT DAPI AclDuplicateSecurityDescriptor(
+ __in SECURITY_DESCRIPTOR* psd,
+ __deref_out SECURITY_DESCRIPTOR** ppsd
+ );
+HRESULT DAPI AclGetSecurityDescriptor(
+ __in_z LPCWSTR wzObject,
+ __in SE_OBJECT_TYPE sot,
+ __in SECURITY_INFORMATION securityInformation,
+ __deref_out SECURITY_DESCRIPTOR** ppsd
+ );
+HRESULT DAPI AclSetSecurityWithRetry(
+ __in_z LPCWSTR wzObject,
+ __in SE_OBJECT_TYPE sot,
+ __in SECURITY_INFORMATION securityInformation,
+ __in_opt PSID psidOwner,
+ __in_opt PSID psidGroup,
+ __in_opt PACL pDacl,
+ __in_opt PACL pSacl,
+ __in DWORD cRetry,
+ __in DWORD dwWaitMilliseconds
+ );
+
+HRESULT DAPI AclFreeSid(
+ __in PSID psid
+ );
+HRESULT DAPI AclFreeDacl(
+ __in ACL* pACL
+ );
+HRESULT DAPI AclFreeSecurityDescriptor(
+ __in SECURITY_DESCRIPTOR* psd
+ );
+
+HRESULT DAPI AclAddAdminToSecurityDescriptor(
+ __in SECURITY_DESCRIPTOR* pSecurity,
+ __deref_out SECURITY_DESCRIPTOR** ppSecurityNew
+ );
+
+// Following code in acl2util.cpp due to dependency on crypt32.dll.
+HRESULT DAPI AclCalculateServiceSidString(
+ __in LPCWSTR wzServiceName,
+ __in int cchServiceName,
+ __deref_out_z LPWSTR* psczSid
+ );
+HRESULT DAPI AclGetAccountSidStringEx(
+ __in_z LPCWSTR wzSystem,
+ __in_z LPCWSTR wzAccount,
+ __deref_out_z LPWSTR* psczSid
+ );
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/apputil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/apputil.h
new file mode 100644
index 0000000..1a1e14f
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/apputil.h
@@ -0,0 +1,45 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// functions
+
+/********************************************************************
+AppFreeCommandLineArgs - frees argv from AppParseCommandLine.
+
+********************************************************************/
+void DAPI AppFreeCommandLineArgs(
+ __in LPWSTR* argv
+ );
+
+void DAPI AppInitialize(
+ __in_ecount(cSafelyLoadSystemDlls) LPCWSTR rgsczSafelyLoadSystemDlls[],
+ __in DWORD cSafelyLoadSystemDlls
+ );
+
+/********************************************************************
+AppInitializeUnsafe - initializes without the full standard safety
+ precautions for an application.
+
+********************************************************************/
+void DAPI AppInitializeUnsafe();
+
+/********************************************************************
+AppParseCommandLine - parses the command line using CommandLineToArgvW.
+ The caller must free the value of pArgv on success
+ by calling AppFreeCommandLineArgs.
+
+********************************************************************/
+DAPI_(HRESULT) AppParseCommandLine(
+ __in LPCWSTR wzCommandLine,
+ __in int* argc,
+ __in LPWSTR** pArgv
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/apuputil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/apuputil.h
new file mode 100644
index 0000000..6764bde
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/apuputil.h
@@ -0,0 +1,86 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseApupChain(p) if (p) { ApupFreeChain(p); p = NULL; }
+#define ReleaseNullApupChain(p) if (p) { ApupFreeChain(p); p = NULL; }
+
+
+const LPCWSTR APPLICATION_SYNDICATION_NAMESPACE = L"http://appsyndication.org/2006/appsyn";
+
+typedef enum APUP_HASH_ALGORITHM
+{
+ APUP_HASH_ALGORITHM_UNKNOWN,
+ APUP_HASH_ALGORITHM_MD5,
+ APUP_HASH_ALGORITHM_SHA1,
+ APUP_HASH_ALGORITHM_SHA256,
+} APUP_HASH_ALGORITHM;
+
+
+struct APPLICATION_UPDATE_ENCLOSURE
+{
+ LPWSTR wzUrl;
+ LPWSTR wzLocalName;
+ DWORD64 dw64Size;
+
+ BYTE* rgbDigest;
+ DWORD cbDigest;
+ APUP_HASH_ALGORITHM digestAlgorithm;
+
+ BOOL fInstaller;
+};
+
+
+struct APPLICATION_UPDATE_ENTRY
+{
+ LPWSTR wzApplicationId;
+ LPWSTR wzApplicationType;
+ LPWSTR wzTitle;
+ LPWSTR wzSummary;
+ LPWSTR wzContentType;
+ LPWSTR wzContent;
+
+ LPWSTR wzUpgradeId;
+ BOOL fUpgradeExclusive;
+ DWORD64 dw64Version;
+ DWORD64 dw64UpgradeVersion;
+
+ DWORD64 dw64TotalSize;
+
+ DWORD cEnclosures;
+ APPLICATION_UPDATE_ENCLOSURE* rgEnclosures;
+};
+
+
+struct APPLICATION_UPDATE_CHAIN
+{
+ LPWSTR wzDefaultApplicationId;
+ LPWSTR wzDefaultApplicationType;
+
+ DWORD cEntries;
+ APPLICATION_UPDATE_ENTRY* rgEntries;
+};
+
+
+HRESULT DAPI ApupAllocChainFromAtom(
+ __in ATOM_FEED* pFeed,
+ __out APPLICATION_UPDATE_CHAIN** ppChain
+ );
+
+HRESULT DAPI ApupFilterChain(
+ __in APPLICATION_UPDATE_CHAIN* pChain,
+ __in DWORD64 dw64Version,
+ __out APPLICATION_UPDATE_CHAIN** ppFilteredChain
+ );
+
+void DAPI ApupFreeChain(
+ __in APPLICATION_UPDATE_CHAIN* pChain
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/atomutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/atomutil.h
new file mode 100644
index 0000000..ff869c4
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/atomutil.h
@@ -0,0 +1,146 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseAtomFeed(p) if (p) { AtomFreeFeed(p); }
+#define ReleaseNullAtomFeed(p) if (p) { AtomFreeFeed(p); p = NULL; }
+
+
+struct ATOM_UNKNOWN_ATTRIBUTE
+{
+ LPWSTR wzNamespace;
+ LPWSTR wzAttribute;
+ LPWSTR wzValue;
+
+ ATOM_UNKNOWN_ATTRIBUTE* pNext;
+};
+
+struct ATOM_UNKNOWN_ELEMENT
+{
+ LPWSTR wzNamespace;
+ LPWSTR wzElement;
+ LPWSTR wzValue;
+
+ ATOM_UNKNOWN_ATTRIBUTE* pAttributes;
+ ATOM_UNKNOWN_ELEMENT* pNext;
+};
+
+struct ATOM_LINK
+{
+ LPWSTR wzRel;
+ LPWSTR wzTitle;
+ LPWSTR wzType;
+ LPWSTR wzUrl;
+ LPWSTR wzValue;
+ DWORD64 dw64Length;
+
+ ATOM_UNKNOWN_ATTRIBUTE* pUnknownAttributes;
+ ATOM_UNKNOWN_ELEMENT* pUnknownElements;
+};
+
+struct ATOM_CONTENT
+{
+ LPWSTR wzType;
+ LPWSTR wzUrl;
+ LPWSTR wzValue;
+
+ ATOM_UNKNOWN_ELEMENT* pUnknownElements;
+};
+
+struct ATOM_AUTHOR
+{
+ LPWSTR wzName;
+ LPWSTR wzEmail;
+ LPWSTR wzUrl;
+};
+
+struct ATOM_CATEGORY
+{
+ LPWSTR wzLabel;
+ LPWSTR wzScheme;
+ LPWSTR wzTerm;
+
+ ATOM_UNKNOWN_ELEMENT* pUnknownElements;
+};
+
+struct ATOM_ENTRY
+{
+ LPWSTR wzId;
+ LPWSTR wzSummary;
+ LPWSTR wzTitle;
+ FILETIME ftPublished;
+ FILETIME ftUpdated;
+
+ ATOM_CONTENT* pContent;
+
+ DWORD cAuthors;
+ ATOM_AUTHOR* rgAuthors;
+
+ DWORD cCategories;
+ ATOM_CATEGORY* rgCategories;
+
+ DWORD cLinks;
+ ATOM_LINK* rgLinks;
+
+ IXMLDOMNode* pixn;
+ ATOM_UNKNOWN_ELEMENT* pUnknownElements;
+};
+
+struct ATOM_FEED
+{
+ LPWSTR wzGenerator;
+ LPWSTR wzIcon;
+ LPWSTR wzId;
+ LPWSTR wzLogo;
+ LPWSTR wzSubtitle;
+ LPWSTR wzTitle;
+ FILETIME ftUpdated;
+
+ DWORD cAuthors;
+ ATOM_AUTHOR* rgAuthors;
+
+ DWORD cCategories;
+ ATOM_CATEGORY* rgCategories;
+
+ DWORD cEntries;
+ ATOM_ENTRY* rgEntries;
+
+ DWORD cLinks;
+ ATOM_LINK* rgLinks;
+
+ IXMLDOMNode* pixn;
+ ATOM_UNKNOWN_ELEMENT* pUnknownElements;
+};
+
+HRESULT DAPI AtomInitialize(
+ );
+
+void DAPI AtomUninitialize(
+ );
+
+HRESULT DAPI AtomParseFromString(
+ __in_z LPCWSTR wzAtomString,
+ __out ATOM_FEED **ppFeed
+ );
+
+HRESULT DAPI AtomParseFromFile(
+ __in_z LPCWSTR wzAtomFile,
+ __out ATOM_FEED **ppFeed
+ );
+
+HRESULT DAPI AtomParseFromDocument(
+ __in IXMLDOMDocument* pixdDocument,
+ __out ATOM_FEED **ppFeed
+ );
+
+void DAPI AtomFreeFeed(
+ __in_xcount(pFeed->cItems) ATOM_FEED *pFEED
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/balcondition.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/balcondition.h
new file mode 100644
index 0000000..677c593
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/balcondition.h
@@ -0,0 +1,58 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _BAL_CONDITION
+{
+ LPWSTR sczCondition;
+ LPWSTR sczMessage;
+} BAL_CONDITION;
+
+
+typedef struct _BAL_CONDITIONS
+{
+ BAL_CONDITION* rgConditions;
+ DWORD cConditions;
+} BAL_CONDITIONS;
+
+
+/*******************************************************************
+ BalConditionsParseFromXml - loads the conditions from the UX manifest.
+
+********************************************************************/
+DAPI_(HRESULT) BalConditionsParseFromXml(
+ __in BAL_CONDITIONS* pConditions,
+ __in IXMLDOMDocument* pixdManifest,
+ __in_opt WIX_LOCALIZATION* pWixLoc
+ );
+
+
+/*******************************************************************
+ BalConditionEvaluate - evaluates condition against the provided IBurnCore.
+
+ NOTE: psczMessage is optional.
+********************************************************************/
+DAPI_(HRESULT) BalConditionEvaluate(
+ __in BAL_CONDITION* pCondition,
+ __in IBootstrapperEngine* pEngine,
+ __out BOOL* pfResult,
+ __out_z_opt LPWSTR* psczMessage
+ );
+
+
+/*******************************************************************
+ BalConditionsUninitialize - uninitializes any conditions previously loaded.
+
+********************************************************************/
+DAPI_(void) BalConditionsUninitialize(
+ __in BAL_CONDITIONS* pConditions
+ );
+
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/balinfo.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/balinfo.h
new file mode 100644
index 0000000..be4b75d
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/balinfo.h
@@ -0,0 +1,107 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum BAL_INFO_PACKAGE_TYPE
+{
+ BAL_INFO_PACKAGE_TYPE_UNKNOWN,
+ BAL_INFO_PACKAGE_TYPE_EXE,
+ BAL_INFO_PACKAGE_TYPE_MSI,
+ BAL_INFO_PACKAGE_TYPE_MSP,
+ BAL_INFO_PACKAGE_TYPE_MSU,
+ BAL_INFO_PACKAGE_TYPE_BUNDLE_UPGRADE,
+ BAL_INFO_PACKAGE_TYPE_BUNDLE_ADDON,
+ BAL_INFO_PACKAGE_TYPE_BUNDLE_PATCH,
+} BAL_INFO_PACKAGE_TYPE;
+
+typedef enum BAL_INFO_CACHE_TYPE
+{
+ BAL_INFO_CACHE_TYPE_NO,
+ BAL_INFO_CACHE_TYPE_YES,
+ BAL_INFO_CACHE_TYPE_ALWAYS,
+} BAL_INFO_CACHE_TYPE;
+
+
+typedef struct _BAL_INFO_PACKAGE
+{
+ LPWSTR sczId;
+ LPWSTR sczDisplayName;
+ LPWSTR sczDescription;
+ BAL_INFO_PACKAGE_TYPE type;
+ BOOL fPermanent;
+ BOOL fVital;
+ BOOL fDisplayInternalUI;
+ LPWSTR sczProductCode;
+ LPWSTR sczUpgradeCode;
+ LPWSTR sczVersion;
+ LPWSTR sczInstallCondition;
+ BAL_INFO_CACHE_TYPE cacheType;
+} BAL_INFO_PACKAGE;
+
+
+typedef struct _BAL_INFO_PACKAGES
+{
+ BAL_INFO_PACKAGE* rgPackages;
+ DWORD cPackages;
+} BAL_INFO_PACKAGES;
+
+
+typedef struct _BAL_INFO_BUNDLE
+{
+ BOOL fPerMachine;
+ LPWSTR sczName;
+ LPWSTR sczLogVariable;
+ BAL_INFO_PACKAGES packages;
+} BAL_INFO_BUNDLE;
+
+
+/*******************************************************************
+ BalInfoParseFromXml - loads the bundle and package info from the UX
+ manifest.
+
+********************************************************************/
+DAPI_(HRESULT) BalInfoParseFromXml(
+ __in BAL_INFO_BUNDLE* pBundle,
+ __in IXMLDOMDocument* pixdManifest
+ );
+
+
+/*******************************************************************
+ BalInfoAddRelatedBundleAsPackage - adds a related bundle as a package.
+
+ ********************************************************************/
+DAPI_(HRESULT) BalInfoAddRelatedBundleAsPackage(
+ __in BAL_INFO_PACKAGES* pPackages,
+ __in LPCWSTR wzId,
+ __in BOOTSTRAPPER_RELATION_TYPE relationType,
+ __in BOOL fPerMachine
+ );
+
+
+/*******************************************************************
+ BalInfoFindPackageById - finds a package by its id.
+
+ ********************************************************************/
+DAPI_(HRESULT) BalInfoFindPackageById(
+ __in BAL_INFO_PACKAGES* pPackages,
+ __in LPCWSTR wzId,
+ __out BAL_INFO_PACKAGE** ppPackage
+ );
+
+
+/*******************************************************************
+ BalInfoUninitialize - uninitializes any info previously loaded.
+
+********************************************************************/
+DAPI_(void) BalInfoUninitialize(
+ __in BAL_INFO_BUNDLE* pBundle
+ );
+
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/balretry.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/balretry.h
new file mode 100644
index 0000000..9222453
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/balretry.h
@@ -0,0 +1,64 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum BALRETRY_TYPE
+{
+ BALRETRY_TYPE_CACHE,
+ BALRETRY_TYPE_EXECUTE,
+} BALRETRY_TYPE;
+
+/*******************************************************************
+ BalRetryInitialize - initialize the retry count and timeout between
+ retries (in milliseconds).
+********************************************************************/
+DAPI_(void) BalRetryInitialize(
+ __in DWORD dwMaxRetries,
+ __in DWORD dwTimeout
+ );
+
+/*******************************************************************
+ BalRetryUninitialize - call to cleanup any memory allocated during
+ use of the retry utility.
+********************************************************************/
+DAPI_(void) BalRetryUninitialize();
+
+/*******************************************************************
+ BalRetryStartPackage - call when a package begins to be modified. If
+ the package is being retried, the function will
+ wait the specified timeout.
+********************************************************************/
+DAPI_(void) BalRetryStartPackage(
+ __in BALRETRY_TYPE type,
+ __in_z_opt LPCWSTR wzPackageId,
+ __in_z_opt LPCWSTR wzPayloadId
+ );
+
+/*******************************************************************
+ BalRetryErrorOccured - call when an error occurs for the retry utility
+ to consider.
+********************************************************************/
+DAPI_(void) BalRetryErrorOccurred(
+ __in_z_opt LPCWSTR wzPackageId,
+ __in DWORD dwError
+ );
+
+/*******************************************************************
+ BalRetryEndPackage - returns IDRETRY is a retry is recommended or
+ IDNOACTION if a retry is not recommended.
+********************************************************************/
+DAPI_(int) BalRetryEndPackage(
+ __in BALRETRY_TYPE type,
+ __in_z_opt LPCWSTR wzPackageId,
+ __in_z_opt LPCWSTR wzPayloadId,
+ __in HRESULT hrError
+ );
+
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/balutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/balutil.h
new file mode 100644
index 0000000..99ff0df
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/balutil.h
@@ -0,0 +1,116 @@
+#pragma once
+// 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.
+
+
+#include "dutil.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define BalExitOnFailure(x, f) if (FAILED(x)) { BalLogError(x, f); ExitTrace(x, f); goto LExit; }
+#define BalExitOnFailure1(x, f, s) if (FAILED(x)) { BalLogError(x, f, s); ExitTrace1(x, f, s); goto LExit; }
+#define BalExitOnFailure2(x, f, s, t) if (FAILED(x)) { BalLogError(x, f, s, t); ExitTrace2(x, f, s, t); goto LExit; }
+#define BalExitOnFailure3(x, f, s, t, u) if (FAILED(x)) { BalLogError(x, f, s, t, u); ExitTrace3(x, f, s, t, u); goto LExit; }
+
+#define BalExitOnRootFailure(x, f) if (FAILED(x)) { BalLogError(x, f); Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, f); goto LExit; }
+#define BalExitOnRootFailure1(x, f, s) if (FAILED(x)) { BalLogError(x, f, s); Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; }
+#define BalExitOnRootFailure2(x, f, s, t) if (FAILED(x)) { BalLogError(x, f, s, t); Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace2(x, f, s, t); goto LExit; }
+#define BalExitOnRootFailure3(x, f, s, t, u) if (FAILED(x)) { BalLogError(x, f, s, t, u); Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace3(x, f, s, t, u); goto LExit; }
+
+#define BalExitOnNullWithLastError(p, x, f) if (NULL == p) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (!FAILED(x)) { x = E_FAIL; } BalLogError(x, f); ExitTrace(x, f); goto LExit; }
+#define BalExitOnNullWithLastError1(p, x, f, s) if (NULL == p) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (!FAILED(x)) { x = E_FAIL; } BalLogError(x, f, s); ExitTrace1(x, f, s); goto LExit; }
+
+#define FACILITY_WIX 500
+
+static const HRESULT E_WIXSTDBA_CONDITION_FAILED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIX, 1);
+
+static const HRESULT E_MBAHOST_NET452_ON_WIN7RTM = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIX, 1000);
+
+
+/*******************************************************************
+ BalInitialize - remembers the engine interface to enable logging and
+ other functions.
+
+********************************************************************/
+DAPI_(void) BalInitialize(
+ __in IBootstrapperEngine* pEngine
+ );
+
+/*******************************************************************
+ BalUninitialize - cleans up utility layer internals.
+
+********************************************************************/
+DAPI_(void) BalUninitialize();
+
+/*******************************************************************
+ BalManifestLoad - loads the Application manifest into an XML document.
+
+********************************************************************/
+DAPI_(HRESULT) BalManifestLoad(
+ __in HMODULE hUXModule,
+ __out IXMLDOMDocument** ppixdManifest
+ );
+
+/*******************************************************************
+BalFormatString - formats a string using variables in the engine.
+
+ Note: Use StrFree() to release psczOut.
+********************************************************************/
+DAPI_(HRESULT) BalFormatString(
+ __in_z LPCWSTR wzFormat,
+ __inout LPWSTR* psczOut
+ );
+
+/*******************************************************************
+BalGetNumericVariable - gets a number from a variable in the engine.
+
+ Note: Returns E_NOTFOUND if variable does not exist.
+********************************************************************/
+DAPI_(HRESULT) BalGetNumericVariable(
+ __in_z LPCWSTR wzVariable,
+ __out LONGLONG* pllValue
+ );
+
+/*******************************************************************
+BalStringVariableExists - checks if a string variable exists in the engine.
+
+********************************************************************/
+DAPI_(BOOL) BalStringVariableExists(
+ __in_z LPCWSTR wzVariable
+ );
+
+/*******************************************************************
+BalGetStringVariable - gets a string from a variable in the engine.
+
+ Note: Use StrFree() to release psczValue.
+********************************************************************/
+DAPI_(HRESULT) BalGetStringVariable(
+ __in_z LPCWSTR wzVariable,
+ __inout LPWSTR* psczValue
+ );
+
+/*******************************************************************
+ BalLog - logs a message with the engine.
+
+********************************************************************/
+DAPIV_(HRESULT) BalLog(
+ __in BOOTSTRAPPER_LOG_LEVEL level,
+ __in_z __format_string LPCSTR szFormat,
+ ...
+ );
+
+/*******************************************************************
+ BalLogError - logs an error message with the engine.
+
+********************************************************************/
+DAPIV_(HRESULT) BalLogError(
+ __in HRESULT hr,
+ __in_z __format_string LPCSTR szFormat,
+ ...
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/buffutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/buffutil.h
new file mode 100644
index 0000000..e61cdb5
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/buffutil.h
@@ -0,0 +1,80 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+// macro definitions
+
+#define ReleaseBuffer ReleaseMem
+#define ReleaseNullBuffer ReleaseNullMem
+#define BuffFree MemFree
+
+
+// function declarations
+
+HRESULT BuffReadNumber(
+ __in_bcount(cbBuffer) const BYTE* pbBuffer,
+ __in SIZE_T cbBuffer,
+ __inout SIZE_T* piBuffer,
+ __out DWORD* pdw
+ );
+HRESULT BuffReadNumber64(
+ __in_bcount(cbBuffer) const BYTE* pbBuffer,
+ __in SIZE_T cbBuffer,
+ __inout SIZE_T* piBuffer,
+ __out DWORD64* pdw64
+ );
+HRESULT BuffReadString(
+ __in_bcount(cbBuffer) const BYTE* pbBuffer,
+ __in SIZE_T cbBuffer,
+ __inout SIZE_T* piBuffer,
+ __deref_out_z LPWSTR* pscz
+ );
+HRESULT BuffReadStringAnsi(
+ __in_bcount(cbBuffer) const BYTE* pbBuffer,
+ __in SIZE_T cbBuffer,
+ __inout SIZE_T* piBuffer,
+ __deref_out_z LPSTR* pscz
+ );
+HRESULT BuffReadStream(
+ __in_bcount(cbBuffer) const BYTE* pbBuffer,
+ __in SIZE_T cbBuffer,
+ __inout SIZE_T* piBuffer,
+ __deref_out_bcount(*pcbStream) BYTE** ppbStream,
+ __out SIZE_T* pcbStream
+ );
+
+HRESULT BuffWriteNumber(
+ __deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
+ __inout SIZE_T* piBuffer,
+ __in DWORD dw
+ );
+HRESULT BuffWriteNumber64(
+ __deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
+ __inout SIZE_T* piBuffer,
+ __in DWORD64 dw64
+ );
+HRESULT BuffWriteString(
+ __deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
+ __inout SIZE_T* piBuffer,
+ __in_z_opt LPCWSTR scz
+ );
+HRESULT BuffWriteStringAnsi(
+ __deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
+ __inout SIZE_T* piBuffer,
+ __in_z_opt LPCSTR scz
+ );
+HRESULT BuffWriteStream(
+ __deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
+ __inout SIZE_T* piBuffer,
+ __in_bcount(cbStream) const BYTE* pbStream,
+ __in SIZE_T cbStream
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/butil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/butil.h
new file mode 100644
index 0000000..a42cac1
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/butil.h
@@ -0,0 +1,31 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum BUNDLE_INSTALL_CONTEXT
+{
+ BUNDLE_INSTALL_CONTEXT_MACHINE,
+ BUNDLE_INSTALL_CONTEXT_USER,
+};
+
+HRESULT DAPI BundleGetBundleInfo(
+ __in LPCWSTR szBundleId, // Bundle code
+ __in LPCWSTR szAttribute, // attribute name
+ __out_ecount_opt(*pcchValueBuf) LPWSTR lpValueBuf, // returned value, NULL if not desired
+ __inout_opt LPDWORD pcchValueBuf // in/out buffer character count
+ );
+
+HRESULT DAPI BundleEnumRelatedBundle(
+ __in LPCWSTR lpUpgradeCode,
+ __in BUNDLE_INSTALL_CONTEXT context,
+ __inout PDWORD pdwStartIndex,
+ __out_ecount(MAX_GUID_CHARS+1) LPWSTR lpBundleIdBuf
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/cabcutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/cabcutil.h
new file mode 100644
index 0000000..4f0c7b1
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/cabcutil.h
@@ -0,0 +1,62 @@
+#pragma once
+// 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.
+
+
+#include
+#include
+#include
+
+// Callback from PFNFCIGETNEXTCABINET CabCGetNextCabinet method
+// First argument is the name of splitting cabinet without extension e.g. "cab1"
+// Second argument is name of the new cabinet that would be formed by splitting e.g. "cab1b.cab"
+// Third argument is the file token of the first file present in the splitting cabinet
+typedef void (__stdcall * FileSplitCabNamesCallback)(LPWSTR, LPWSTR, LPWSTR);
+
+#define CAB_MAX_SIZE 0x7FFFFFFF // (see KB: Q174866)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern const int CABC_HANDLE_BYTES;
+
+// time vs. space trade-off
+typedef enum COMPRESSION_TYPE
+{
+ COMPRESSION_TYPE_NONE, // fastest
+ COMPRESSION_TYPE_LOW,
+ COMPRESSION_TYPE_MEDIUM,
+ COMPRESSION_TYPE_HIGH, // smallest
+ COMPRESSION_TYPE_MSZIP
+} COMPRESSION_TYPE;
+
+// functions
+HRESULT DAPI CabCBegin(
+ __in_z LPCWSTR wzCab,
+ __in_z LPCWSTR wzCabDir,
+ __in DWORD dwMaxFiles,
+ __in DWORD dwMaxSize,
+ __in DWORD dwMaxThresh,
+ __in COMPRESSION_TYPE ct,
+ __out_bcount(CABC_HANDLE_BYTES) HANDLE *phContext
+ );
+HRESULT DAPI CabCNextCab(
+ __in_bcount(CABC_HANDLE_BYTES) HANDLE hContext
+ );
+HRESULT DAPI CabCAddFile(
+ __in_z LPCWSTR wzFile,
+ __in_z_opt LPCWSTR wzToken,
+ __in_opt PMSIFILEHASHINFO pmfHash,
+ __in_bcount(CABC_HANDLE_BYTES) HANDLE hContext
+ );
+HRESULT DAPI CabCFinish(
+ __in_bcount(CABC_HANDLE_BYTES) HANDLE hContext,
+ __in_opt FileSplitCabNamesCallback fileSplitCabNamesCallback
+ );
+void DAPI CabCCancel(
+ __in_bcount(CABC_HANDLE_BYTES) HANDLE hContext
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/cabutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/cabutil.h
new file mode 100644
index 0000000..0bedba8
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/cabutil.h
@@ -0,0 +1,56 @@
+#pragma once
+// 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.
+
+
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// structs
+
+
+// callback function prototypes
+typedef HRESULT (*CAB_CALLBACK_OPEN_FILE)(LPCWSTR wzFile, INT_PTR* ppFile);
+typedef HRESULT (*CAB_CALLBACK_READ_FILE)(INT_PTR pFile, LPVOID pvData, DWORD cbData, DWORD* pcbRead);
+typedef HRESULT (*CAB_CALLBACK_WRITE_FILE)(INT_PTR pFile, LPVOID pvData, DWORD cbData, DWORD* pcbRead);
+typedef LONG (*CAB_CALLBACK_SEEK_FILE)(INT_PTR pFile, DWORD dwMove, DWORD dwMoveMethod);
+typedef HRESULT (*CAB_CALLBACK_CLOSE_FILE)(INT_PTR pFile);
+
+typedef HRESULT (*CAB_CALLBACK_BEGIN_FILE)(LPCWSTR wzFileId, FILETIME* pftFileTime, DWORD cbFileSize, LPVOID pvContext, INT_PTR* ppFile);
+typedef HRESULT (*CAB_CALLBACK_END_FILE)(LPCWSTR wzFileId, LPVOID pvContext, INT_PTR pFile);
+typedef HRESULT (*CAB_CALLBACK_PROGRESS)(BOOL fBeginFile, LPCWSTR wzFileId, LPVOID pvContext);
+
+// function type with calling convention of __stdcall that .NET 1.1 understands only
+// .NET 2.0 will not need this
+typedef INT_PTR (FAR __stdcall *STDCALL_PFNFDINOTIFY)(FDINOTIFICATIONTYPE fdint, PFDINOTIFICATION pfdin);
+
+
+// functions
+HRESULT DAPI CabInitialize(
+ __in BOOL fDelayLoad
+ );
+void DAPI CabUninitialize(
+ );
+
+HRESULT DAPI CabExtract(
+ __in_z LPCWSTR wzCabinet,
+ __in_z LPCWSTR wzExtractFile,
+ __in_z LPCWSTR wzExtractDir,
+ __in_opt CAB_CALLBACK_PROGRESS pfnProgress,
+ __in_opt LPVOID pvContext,
+ __in DWORD64 dw64EmbeddedOffset
+ );
+
+HRESULT DAPI CabEnumerate(
+ __in_z LPCWSTR wzCabinet,
+ __in_z LPCWSTR wzEnumerateFile,
+ __in STDCALL_PFNFDINOTIFY pfnNotify,
+ __in DWORD64 dw64EmbeddedOffset
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/certutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/certutil.h
new file mode 100644
index 0000000..8565c1c
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/certutil.h
@@ -0,0 +1,66 @@
+#pragma once
+// 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.
+
+
+#define ReleaseCertStore(p) if (p) { ::CertCloseStore(p, 0); p = NULL; }
+#define ReleaseCertContext(p) if (p) { ::CertFreeCertificateContext(p); p = NULL; }
+#define ReleaseCertChain(p) if (p) { ::CertFreeCertificateChain(p); p = NULL; }
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT DAPI CertReadProperty(
+ __in PCCERT_CONTEXT pCertContext,
+ __in DWORD dwProperty,
+ __out_bcount(*pcbValue) LPVOID pvValue,
+ __out_opt DWORD* pcbValue
+ );
+
+HRESULT DAPI CertGetAuthenticodeSigningTimestamp(
+ __in CMSG_SIGNER_INFO* pSignerInfo,
+ __out FILETIME* pft
+ );
+
+HRESULT DAPI GetCryptProvFromCert(
+ __in_opt HWND hwnd,
+ __in PCCERT_CONTEXT pCert,
+ __out HCRYPTPROV *phCryptProv,
+ __out DWORD *pdwKeySpec,
+ __in BOOL *pfDidCryptAcquire,
+ __deref_opt_out LPWSTR *ppwszTmpContainer,
+ __deref_opt_out LPWSTR *ppwszProviderName,
+ __out DWORD *pdwProviderType
+ );
+
+HRESULT DAPI FreeCryptProvFromCert(
+ __in BOOL fAcquired,
+ __in HCRYPTPROV hProv,
+ __in_opt LPWSTR pwszCapiProvider,
+ __in DWORD dwProviderType,
+ __in_opt LPWSTR pwszTmpContainer
+ );
+
+HRESULT DAPI GetProvSecurityDesc(
+ __in HCRYPTPROV hProv,
+ __deref_out SECURITY_DESCRIPTOR** pSecurity
+ );
+
+HRESULT DAPI SetProvSecurityDesc(
+ __in HCRYPTPROV hProv,
+ __in SECURITY_DESCRIPTOR* pSecurity
+ );
+
+BOOL DAPI CertHasPrivateKey(
+ __in PCCERT_CONTEXT pCertContext,
+ __out_opt DWORD* pdwKeySpec
+ );
+
+HRESULT DAPI CertInstallSingleCertificate(
+ __in HCERTSTORE hStore,
+ __in PCCERT_CONTEXT pCertContext,
+ __in LPCWSTR wzName
+ );
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/conutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/conutil.h
new file mode 100644
index 0000000..1f5f3fe
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/conutil.h
@@ -0,0 +1,97 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ConsoleExitOnFailure(x, c, f, ...) if (FAILED(x)) { ConsoleWriteError(x, c, f, __VA_ARGS__); ExitTrace(x, f, __VA_ARGS__); goto LExit; }
+#define ConsoleExitOnFailure1 ConsoleExitOnFailure
+#define ConsoleExitOnFailure2 ConsoleExitOnFailure
+#define ConsoleExitOnFailure3 ConsoleExitOnFailure
+
+#define ConsoleExitOnLastError(x, c, f, ...) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { ConsoleWriteError(x, c, f, __VA_ARGS__); ExitTrace(x, f, __VA_ARGS__); goto LExit; } }
+#define ConsoleExitOnLastError1 ConsoleExitOnLastError
+#define ConsoleExitOnLastError2 ConsoleExitOnLastError
+#define ConsoleExitOnLastError3 ConsoleExitOnLastError
+
+#define ConsoleExitOnNull(p, x, e, c, f, ...) if (NULL == p) { x = e; ConsoleWriteError(x, c, f, __VA_ARGS__); ExitTrace(x, f, __VA_ARGS__); goto LExit; }
+
+
+// the following macros need to go away
+#define ConsoleTrace(l, f, ...) { ConsoleWriteLine(CONSOLE_COLOR_NORMAL, f, __VA_ARGS__); Trace(l, f, __VA_ARGS__); }
+#define ConsoleTrace1 ConsoleTrace
+#define ConsoleTrace2 ConsoleTrace
+#define ConsoleTrace3 ConsoleTrace
+
+#define ConsoleWarning(f, ...) { ConsoleWriteLine(CONSOLE_COLOR_YELLOW, f, __VA_ARGS__); Trace(REPORT_STANDARD, f, __VA_ARGS__); }
+#define ConsoleWarning1 ConsoleWarning
+#define ConsoleWarning2 ConsoleWarning
+#define ConsoleWarning3 ConsoleWarning
+
+#define ConsoleError(x, f, ...) { ConsoleWriteError(x, CONSOLE_COLOR_RED, f, __VA_ARGS__); TraceError(x, f, __VA_ARGS__); }
+#define ConsoleError1 ConsoleError
+#define ConsoleError2 ConsoleError
+#define ConsoleError3 ConsoleError
+
+
+// enums
+typedef enum CONSOLE_COLOR { CONSOLE_COLOR_NORMAL, CONSOLE_COLOR_RED, CONSOLE_COLOR_YELLOW, CONSOLE_COLOR_GREEN } CONSOLE_COLOR;
+
+// structs
+
+// functions
+HRESULT DAPI ConsoleInitialize();
+void DAPI ConsoleUninitialize();
+
+void DAPI ConsoleGreen();
+void DAPI ConsoleRed();
+void DAPI ConsoleYellow();
+void DAPI ConsoleNormal();
+
+HRESULT DAPI ConsoleWrite(
+ CONSOLE_COLOR cc,
+ __in_z __format_string LPCSTR szFormat,
+ ...
+ );
+HRESULT DAPI ConsoleWriteLine(
+ CONSOLE_COLOR cc,
+ __in_z __format_string LPCSTR szFormat,
+ ...
+ );
+HRESULT DAPI ConsoleWriteError(
+ HRESULT hrError,
+ CONSOLE_COLOR cc,
+ __in_z __format_string LPCSTR szFormat,
+ ...
+ );
+
+HRESULT DAPI ConsoleReadW(
+ __deref_out_z LPWSTR* ppwzBuffer
+ );
+
+HRESULT DAPI ConsoleReadStringA(
+ __deref_out_ecount_part(cchCharBuffer,*pcchNumCharReturn) LPSTR* szCharBuffer,
+ CONST DWORD cchCharBuffer,
+ __out DWORD* pcchNumCharReturn
+ );
+HRESULT DAPI ConsoleReadStringW(
+ __deref_out_ecount_part(cchCharBuffer,*pcchNumCharReturn) LPWSTR* szCharBuffer,
+ CONST DWORD cchCharBuffer,
+ __out DWORD* pcchNumCharReturn
+ );
+
+HRESULT DAPI ConsoleReadNonBlockingW(
+ __deref_out_ecount_opt(*pcchSize) LPWSTR* ppwzBuffer,
+ __out DWORD* pcchSize,
+ BOOL fReadLine
+ );
+
+HRESULT DAPI ConsoleSetReadHidden(void);
+HRESULT DAPI ConsoleSetReadNormal(void);
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/cryputil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/cryputil.h
new file mode 100644
index 0000000..88aa784
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/cryputil.h
@@ -0,0 +1,103 @@
+#pragma once
+// 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.
+
+
+#define ReleaseCryptMsg(p) if (p) { ::CryptMsgClose(p); p = NULL; }
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+// Use CRYPTPROTECTMEMORY_BLOCK_SIZE, because it's larger and thus more restrictive than RTL_ENCRYPT_MEMORY_SIZE.
+#define CRYP_ENCRYPT_MEMORY_SIZE CRYPTPROTECTMEMORY_BLOCK_SIZE
+#define SHA1_HASH_LEN 20
+
+typedef NTSTATUS (APIENTRY *PFN_RTLENCRYPTMEMORY)(
+ __inout PVOID Memory,
+ __in ULONG MemoryLength,
+ __in ULONG OptionFlags
+ );
+
+typedef NTSTATUS (APIENTRY *PFN_RTLDECRYPTMEMORY)(
+ __inout PVOID Memory,
+ __in ULONG MemoryLength,
+ __in ULONG OptionFlags
+ );
+
+typedef BOOL (APIENTRY *PFN_CRYPTPROTECTMEMORY)(
+ __inout LPVOID pData,
+ __in DWORD cbData,
+ __in DWORD dwFlags
+ );
+
+typedef BOOL (APIENTRY *PFN_CRYPTUNPROTECTMEMORY)(
+ __inout LPVOID pData,
+ __in DWORD cbData,
+ __in DWORD dwFlags
+ );
+
+// function declarations
+
+HRESULT DAPI CrypInitialize();
+void DAPI CrypUninitialize();
+
+HRESULT DAPI CrypDecodeObject(
+ __in_z LPCSTR szStructType,
+ __in_ecount(cbData) const BYTE* pbData,
+ __in DWORD cbData,
+ __in DWORD dwFlags,
+ __out LPVOID* ppvObject,
+ __out_opt DWORD* pcbObject
+ );
+
+HRESULT DAPI CrypMsgGetParam(
+ __in HCRYPTMSG hCryptMsg,
+ __in DWORD dwType,
+ __in DWORD dwIndex,
+ __out LPVOID* ppvData,
+ __out_opt DWORD* pcbData
+ );
+
+HRESULT DAPI CrypHashFile(
+ __in_z LPCWSTR wzFilePath,
+ __in DWORD dwProvType,
+ __in ALG_ID algid,
+ __out_bcount(cbHash) BYTE* pbHash,
+ __in DWORD cbHash,
+ __out_opt DWORD64* pqwBytesHashed
+ );
+
+HRESULT DAPI CrypHashFileHandle(
+ __in HANDLE hFile,
+ __in DWORD dwProvType,
+ __in ALG_ID algid,
+ __out_bcount(cbHash) BYTE* pbHash,
+ __in DWORD cbHash,
+ __out_opt DWORD64* pqwBytesHashed
+ );
+
+HRESULT DAPI CrypHashBuffer(
+ __in_bcount(cbBuffer) const BYTE* pbBuffer,
+ __in SIZE_T cbBuffer,
+ __in DWORD dwProvType,
+ __in ALG_ID algid,
+ __out_bcount(cbHash) BYTE* pbHash,
+ __in DWORD cbHash
+ );
+
+HRESULT DAPI CrypEncryptMemory(
+ __inout LPVOID pData,
+ __in DWORD cbData,
+ __in DWORD dwFlags
+ );
+
+HRESULT DAPI CrypDecryptMemory(
+ __inout LPVOID pData,
+ __in DWORD cbData,
+ __in DWORD dwFlags
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/custommsierrors.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/custommsierrors.h
new file mode 100644
index 0000000..f149fb3
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/custommsierrors.h
@@ -0,0 +1,130 @@
+#pragma once
+// 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.
+
+
+#define GLOBAL_ERROR_BASE 25501
+
+#define msierrSecureObjectsFailedCreateSD 25520
+#define msierrSecureObjectsFailedSet 25521
+#define msierrSecureObjectsUnknownType 25522
+
+#define msierrXmlFileFailedRead 25530
+#define msierrXmlFileFailedOpen 25531
+#define msierrXmlFileFailedSelect 25532
+#define msierrXmlFileFailedSave 25533
+
+#define msierrXmlConfigFailedRead 25540
+#define msierrXmlConfigFailedOpen 25541
+#define msierrXmlConfigFailedSelect 25542
+#define msierrXmlConfigFailedSave 25543
+
+#define msierrFirewallCannotConnect 25580
+
+//---------------------------------------------------------------------------
+// Server CustomAction Errors
+// SERVER range: 26001-26100
+#define SERVER_ERROR_BASE 26000
+
+#define msierrIISCannotConnect 26001
+#define msierrIISFailedReadWebSite 26002
+#define msierrIISFailedReadWebDirs 26003
+#define msierrIISFailedReadVDirs 26004
+#define msierrIISFailedReadFilters 26005
+#define msierrIISFailedReadAppPool 26006
+#define msierrIISFailedReadMimeMap 26007
+#define msierrIISFailedReadProp 26008
+#define msierrIISFailedReadWebSvcExt 26009
+#define msierrIISFailedReadWebError 26010
+#define msierrIISFailedReadHttpHeader 26011
+
+#define msierrIISFailedSchedTransaction 26031
+#define msierrIISFailedSchedInstallWebs 26032
+#define msierrIISFailedSchedInstallWebDirs 26033
+#define msierrIISFailedSchedInstallVDirs 26034
+#define msierrIISFailedSchedInstallFilters 26035
+#define msierrIISFailedSchedInstallAppPool 26036
+#define msierrIISFailedSchedInstallProp 26037
+#define msierrIISFailedSchedInstallWebSvcExt 26038
+
+#define msierrIISFailedSchedUninstallWebs 26051
+#define msierrIISFailedSchedUninstallWebDirs 26052
+#define msierrIISFailedSchedUninstallVDirs 26053
+#define msierrIISFailedSchedUninstallFilters 26054
+#define msierrIISFailedSchedUninstallAppPool 26055
+#define msierrIISFailedSchedUninstallProp 26056
+#define msierrIISFailedSchedUninstallWebSvcExt 26057
+
+#define msierrIISFailedStartTransaction 26101
+#define msierrIISFailedOpenKey 26102
+#define msierrIISFailedCreateKey 26103
+#define msierrIISFailedWriteData 26104
+#define msierrIISFailedCreateApp 26105
+#define msierrIISFailedDeleteKey 26106
+#define msierrIISFailedDeleteApp 26107
+#define msierrIISFailedDeleteValue 26108
+#define msierrIISFailedCommitInUse 26109
+
+#define msierrSQLFailedCreateDatabase 26201
+#define msierrSQLFailedDropDatabase 26202
+#define msierrSQLFailedConnectDatabase 26203
+#define msierrSQLFailedExecString 26204
+#define msierrSQLDatabaseAlreadyExists 26205
+
+#define msierrPERFMONFailedRegisterDLL 26251
+#define msierrPERFMONFailedUnregisterDLL 26252
+#define msierrInstallPerfCounterData 26253
+#define msierrUninstallPerfCounterData 26254
+
+#define msierrSMBFailedCreate 26301
+#define msierrSMBFailedDrop 26302
+
+#define msierrCERTFailedOpen 26351
+#define msierrCERTFailedAdd 26352
+
+#define msierrUSRFailedUserCreate 26401
+#define msierrUSRFailedUserCreatePswd 26402
+#define msierrUSRFailedUserGroupAdd 26403
+#define msierrUSRFailedUserCreateExists 26404
+#define msierrUSRFailedGrantLogonAsService 26405
+
+#define msierrDependencyMissingDependencies 26451
+#define msierrDependencyHasDependents 26452
+
+//--------------------------------------------------------------------------
+// Managed code CustomAction Errors
+// MANAGED range: 27000-27100
+#define MANAGED_ERROR_BASE 27000
+
+#define msierrDotNetRuntimeRequired 27000
+//---------------------------------------------------------------------------
+// Public CustomAction Errors
+// PUBLIC range: 28001-28100
+#define PUBLIC_ERROR_BASE 28000
+
+#define msierrComPlusCannotConnect 28001
+#define msierrComPlusPartitionReadFailed 28002
+#define msierrComPlusPartitionRoleReadFailed 28003
+#define msierrComPlusUserInPartitionRoleReadFailed 28004
+#define msierrComPlusPartitionUserReadFailed 28005
+#define msierrComPlusApplicationReadFailed 28006
+#define msierrComPlusApplicationRoleReadFailed 28007
+#define msierrComPlusUserInApplicationRoleReadFailed 28008
+#define msierrComPlusAssembliesReadFailed 28009
+#define msierrComPlusSubscriptionReadFailed 28010
+#define msierrComPlusPartitionDependency 28011
+#define msierrComPlusPartitionNotFound 28012
+#define msierrComPlusPartitionIdConflict 28013
+#define msierrComPlusPartitionNameConflict 28014
+#define msierrComPlusApplicationDependency 28015
+#define msierrComPlusApplicationNotFound 28016
+#define msierrComPlusApplicationIdConflict 28017
+#define msierrComPlusApplicationNameConflict 28018
+#define msierrComPlusApplicationRoleDependency 28019
+#define msierrComPlusApplicationRoleNotFound 28020
+#define msierrComPlusApplicationRoleConflict 28021
+#define msierrComPlusAssemblyDependency 28022
+#define msierrComPlusSubscriptionIdConflict 28023
+#define msierrComPlusSubscriptionNameConflict 28024
+#define msierrComPlusFailedLookupNames 28025
+
+#define msierrMsmqCannotConnect 28101
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/deputil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/deputil.h
new file mode 100644
index 0000000..a08d2eb
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/deputil.h
@@ -0,0 +1,147 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseDependencyArray(rg, c) if (rg) { DepDependencyArrayFree(rg, c); }
+#define ReleaseNullDependencyArray(rg, c) if (rg) { DepDependencyArrayFree(rg, c); rg = NULL; }
+
+typedef struct _DEPENDENCY
+{
+ LPWSTR sczKey;
+ LPWSTR sczName;
+} DEPENDENCY;
+
+
+/***************************************************************************
+ DepGetProviderInformation - gets the various pieces of data registered
+ with a dependency.
+
+ Note: Returns E_NOTFOUND if the dependency was not found.
+***************************************************************************/
+DAPI_(HRESULT) DepGetProviderInformation(
+ __in HKEY hkHive,
+ __in_z LPCWSTR wzProviderKey,
+ __deref_out_z_opt LPWSTR* psczId,
+ __deref_out_z_opt LPWSTR* psczName,
+ __out_opt DWORD64* pqwVersion
+ );
+
+/***************************************************************************
+ DepCheckDependency - Checks that the dependency is registered and within
+ the proper version range.
+
+ Note: Returns E_NOTFOUND if the dependency was not found.
+***************************************************************************/
+DAPI_(HRESULT) DepCheckDependency(
+ __in HKEY hkHive,
+ __in_z LPCWSTR wzProviderKey,
+ __in_z_opt LPCWSTR wzMinVersion,
+ __in_z_opt LPCWSTR wzMaxVersion,
+ __in int iAttributes,
+ __in STRINGDICT_HANDLE sdDependencies,
+ __deref_inout_ecount_opt(*pcDependencies) DEPENDENCY** prgDependencies,
+ __inout LPUINT pcDependencies
+ );
+
+/***************************************************************************
+ DepCheckDependents - Checks if any dependents are still installed for the
+ given provider key.
+
+***************************************************************************/
+DAPI_(HRESULT) DepCheckDependents(
+ __in HKEY hkHive,
+ __in_z LPCWSTR wzProviderKey,
+ __in int iAttributes,
+ __in C_STRINGDICT_HANDLE sdIgnoredDependents,
+ __deref_inout_ecount_opt(*pcDependents) DEPENDENCY** prgDependents,
+ __inout LPUINT pcDependents
+ );
+
+/***************************************************************************
+ DepRegisterDependency - Registers the dependency provider.
+
+***************************************************************************/
+DAPI_(HRESULT) DepRegisterDependency(
+ __in HKEY hkHive,
+ __in_z LPCWSTR wzProviderKey,
+ __in_z LPCWSTR wzVersion,
+ __in_z LPCWSTR wzDisplayName,
+ __in_z_opt LPCWSTR wzId,
+ __in int iAttributes
+ );
+
+/***************************************************************************
+ DepDependentExists - Determines if a dependent is registered.
+
+ Note: Returns S_OK if dependent is registered.
+ Returns E_FILENOTFOUND if dependent is not registered
+***************************************************************************/
+DAPI_(HRESULT) DepDependentExists(
+ __in HKEY hkHive,
+ __in_z LPCWSTR wzDependencyProviderKey,
+ __in_z LPCWSTR wzProviderKey
+ );
+
+/***************************************************************************
+ DepRegisterDependent - Registers a dependent under the dependency provider.
+
+***************************************************************************/
+DAPI_(HRESULT) DepRegisterDependent(
+ __in HKEY hkHive,
+ __in_z LPCWSTR wzDependencyProviderKey,
+ __in_z LPCWSTR wzProviderKey,
+ __in_z_opt LPCWSTR wzMinVersion,
+ __in_z_opt LPCWSTR wzMaxVersion,
+ __in int iAttributes
+ );
+
+/***************************************************************************
+ DepUnregisterDependency - Removes the dependency provider.
+
+ Note: Caller should call CheckDependents prior to remove a dependency.
+ Returns E_FILENOTFOUND if the dependency is not registered.
+***************************************************************************/
+DAPI_(HRESULT) DepUnregisterDependency(
+ __in HKEY hkHive,
+ __in_z LPCWSTR wzProviderKey
+ );
+
+/***************************************************************************
+ DepUnregisterDependent - Removes a dependent under the dependency provider.
+
+ Note: Returns E_FILENOTFOUND if neither the dependency or dependent are
+ registered.
+ ***************************************************************************/
+DAPI_(HRESULT) DepUnregisterDependent(
+ __in HKEY hkHive,
+ __in_z LPCWSTR wzDependencyProviderKey,
+ __in_z LPCWSTR wzProviderKey
+ );
+
+/***************************************************************************
+ DependencyArrayAlloc - Allocates or expands an array of DEPENDENCY structs.
+
+***************************************************************************/
+DAPI_(HRESULT) DepDependencyArrayAlloc(
+ __deref_inout_ecount_opt(*pcDependencies) DEPENDENCY** prgDependencies,
+ __inout LPUINT pcDependencies,
+ __in_z LPCWSTR wzKey,
+ __in_z_opt LPCWSTR wzName
+ );
+
+/***************************************************************************
+ DepDependencyArrayFree - Frees an array of DEPENDENCY structs.
+
+***************************************************************************/
+DAPI_(void) DepDependencyArrayFree(
+ __in_ecount(cDependencies) DEPENDENCY* rgDependencies,
+ __in UINT cDependencies
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/dictutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/dictutil.h
new file mode 100644
index 0000000..f0a3bb5
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/dictutil.h
@@ -0,0 +1,69 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseDict(sdh) if (sdh) { DictDestroy(sdh); }
+#define ReleaseNullDict(sdh) if (sdh) { DictDestroy(sdh); sdh = NULL; }
+
+typedef void* STRINGDICT_HANDLE;
+typedef const void* C_STRINGDICT_HANDLE;
+
+extern const int STRINGDICT_HANDLE_BYTES;
+
+typedef enum DICT_FLAG
+{
+ DICT_FLAG_NONE = 0,
+ DICT_FLAG_CASEINSENSITIVE = 1
+} DICT_FLAG;
+
+HRESULT DAPI DictCreateWithEmbeddedKey(
+ __out_bcount(STRINGDICT_HANDLE_BYTES) STRINGDICT_HANDLE* psdHandle,
+ __in DWORD dwNumExpectedItems,
+ __in_opt void **ppvArray,
+ __in size_t cByteOffset,
+ __in DICT_FLAG dfFlags
+ );
+HRESULT DAPI DictCreateStringList(
+ __out_bcount(STRINGDICT_HANDLE_BYTES) STRINGDICT_HANDLE* psdHandle,
+ __in DWORD dwNumExpectedItems,
+ __in DICT_FLAG dfFlags
+ );
+HRESULT DAPI DictCreateStringListFromArray(
+ __out_bcount(STRINGDICT_HANDLE_BYTES) STRINGDICT_HANDLE* psdHandle,
+ __in_ecount(cStringArray) const LPCWSTR* rgwzStringArray,
+ __in const DWORD cStringArray,
+ __in DICT_FLAG dfFlags
+ );
+HRESULT DAPI DictCompareStringListToArray(
+ __in_bcount(STRINGDICT_HANDLE_BYTES) STRINGDICT_HANDLE sdStringList,
+ __in_ecount(cStringArray) const LPCWSTR* rgwzStringArray,
+ __in const DWORD cStringArray
+ );
+HRESULT DAPI DictAddKey(
+ __in_bcount(STRINGDICT_HANDLE_BYTES) STRINGDICT_HANDLE sdHandle,
+ __in_z LPCWSTR szString
+ );
+HRESULT DAPI DictAddValue(
+ __in_bcount(STRINGDICT_HANDLE_BYTES) STRINGDICT_HANDLE sdHandle,
+ __in void *pvValue
+ );
+HRESULT DAPI DictKeyExists(
+ __in_bcount(STRINGDICT_HANDLE_BYTES) C_STRINGDICT_HANDLE sdHandle,
+ __in_z LPCWSTR szString
+ );
+HRESULT DAPI DictGetValue(
+ __in_bcount(STRINGDICT_HANDLE_BYTES) C_STRINGDICT_HANDLE sdHandle,
+ __in_z LPCWSTR szString,
+ __out void **ppvValue
+ );
+void DAPI DictDestroy(
+ __in_bcount(STRINGDICT_HANDLE_BYTES) STRINGDICT_HANDLE sdHandle
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/dirutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/dirutil.h
new file mode 100644
index 0000000..539b3a7
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/dirutil.h
@@ -0,0 +1,59 @@
+#pragma once
+// 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.
+
+
+typedef enum DIR_DELETE
+{
+ DIR_DELETE_FILES = 1,
+ DIR_DELETE_RECURSE = 2,
+ DIR_DELETE_SCHEDULE = 4,
+} DIR_DELETE;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+BOOL DAPI DirExists(
+ __in_z LPCWSTR wzPath,
+ __out_opt DWORD *pdwAttributes
+ );
+
+HRESULT DAPI DirCreateTempPath(
+ __in_z LPCWSTR wzPrefix,
+ __out_ecount_z(cchPath) LPWSTR wzPath,
+ __in DWORD cchPath
+ );
+
+HRESULT DAPI DirEnsureExists(
+ __in_z LPCWSTR wzPath,
+ __in_opt LPSECURITY_ATTRIBUTES psa
+ );
+
+HRESULT DAPI DirEnsureDelete(
+ __in_z LPCWSTR wzPath,
+ __in BOOL fDeleteFiles,
+ __in BOOL fRecurse
+ );
+
+HRESULT DAPI DirEnsureDeleteEx(
+ __in_z LPCWSTR wzPath,
+ __in DWORD dwFlags
+ );
+
+DWORD DAPI DirDeleteEmptyDirectoriesToRoot(
+ __in_z LPCWSTR wzPath,
+ __in DWORD dwFlags
+ );
+
+HRESULT DAPI DirGetCurrent(
+ __deref_out_z LPWSTR* psczCurrentDirectory
+ );
+
+HRESULT DAPI DirSetCurrent(
+ __in_z LPCWSTR wzDirectory
+ );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/dlutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/dlutil.h
new file mode 100644
index 0000000..3e95103
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/dlutil.h
@@ -0,0 +1,59 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef HRESULT (WINAPI *LPAUTHENTICATION_ROUTINE)(
+ __in LPVOID pVoid,
+ __in HINTERNET hUrl,
+ __in long lHttpCode,
+ __out BOOL* pfRetrySend,
+ __out BOOL* pfRetry
+ );
+
+typedef int (WINAPI *LPCANCEL_ROUTINE)(
+ __in HRESULT hrError,
+ __in_z_opt LPCWSTR wzError,
+ __in BOOL fAllowRetry,
+ __in_opt LPVOID pvContext
+ );
+
+// structs
+typedef struct _DOWNLOAD_SOURCE
+{
+ LPWSTR sczUrl;
+ LPWSTR sczUser;
+ LPWSTR sczPassword;
+} DOWNLOAD_SOURCE;
+
+typedef struct _DOWNLOAD_CACHE_CALLBACK
+{
+ LPPROGRESS_ROUTINE pfnProgress;
+ LPCANCEL_ROUTINE pfnCancel;
+ LPVOID pv;
+} DOWNLOAD_CACHE_CALLBACK;
+
+typedef struct _DOWNLOAD_AUTHENTICATION_CALLBACK
+{
+ LPAUTHENTICATION_ROUTINE pfnAuthenticate;
+ LPVOID pv;
+} DOWNLOAD_AUTHENTICATION_CALLBACK;
+
+
+// functions
+
+HRESULT DAPI DownloadUrl(
+ __in DOWNLOAD_SOURCE* pDownloadSource,
+ __in DWORD64 dw64AuthoredDownloadSize,
+ __in LPCWSTR wzDestinationPath,
+ __in_opt DOWNLOAD_CACHE_CALLBACK* pCache,
+ __in_opt DOWNLOAD_AUTHENTICATION_CALLBACK* pAuthenticate
+ );
+
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/dutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/dutil.h
new file mode 100644
index 0000000..4e26a77
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/dutil.h
@@ -0,0 +1,214 @@
+#pragma once
+// 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.
+
+
+#define DAPI __stdcall
+#define DAPIV __cdecl // used only for functions taking variable length arguments
+
+#define DAPI_(type) EXTERN_C type DAPI
+#define DAPIV_(type) EXTERN_C type DAPIV
+
+
+// enums
+typedef enum REPORT_LEVEL
+{
+ REPORT_NONE, // turns off report (only valid for XXXSetLevel())
+ REPORT_WARNING, // written if want only warnings or reporting is on in general
+ REPORT_STANDARD, // written if reporting is on
+ REPORT_VERBOSE, // written only if verbose reporting is on
+ REPORT_DEBUG, // reporting useful when debugging code
+ REPORT_ERROR, // always gets reported, but can never be specified
+} REPORT_LEVEL;
+
+// asserts and traces
+typedef BOOL (DAPI *DUTIL_ASSERTDISPLAYFUNCTION)(__in_z LPCSTR sz);
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void DAPI Dutil_SetAssertModule(__in HMODULE hAssertModule);
+void DAPI Dutil_SetAssertDisplayFunction(__in DUTIL_ASSERTDISPLAYFUNCTION pfn);
+void DAPI Dutil_Assert(__in_z LPCSTR szFile, __in int iLine);
+void DAPI Dutil_AssertSz(__in_z LPCSTR szFile, __in int iLine, __in_z LPCSTR szMessage);
+
+void DAPI Dutil_TraceSetLevel(__in REPORT_LEVEL ll, __in BOOL fTraceFilenames);
+REPORT_LEVEL DAPI Dutil_TraceGetLevel();
+void __cdecl Dutil_Trace(__in_z LPCSTR szFile, __in int iLine, __in REPORT_LEVEL rl, __in_z __format_string LPCSTR szMessage, ...);
+void __cdecl Dutil_TraceError(__in_z LPCSTR szFile, __in int iLine, __in REPORT_LEVEL rl, __in HRESULT hr, __in_z __format_string LPCSTR szMessage, ...);
+void DAPI Dutil_RootFailure(__in_z LPCSTR szFile, __in int iLine, __in HRESULT hrError);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#ifdef DEBUG
+
+#define AssertSetModule(m) (void)Dutil_SetAssertModule(m)
+#define AssertSetDisplayFunction(pfn) (void)Dutil_SetAssertDisplayFunction(pfn)
+#define Assert(f) ((f) ? (void)0 : (void)Dutil_Assert(__FILE__, __LINE__))
+#define AssertSz(f, sz) ((f) ? (void)0 : (void)Dutil_AssertSz(__FILE__, __LINE__, sz))
+
+#define TraceSetLevel(l, f) (void)Dutil_TraceSetLevel(l, f)
+#define TraceGetLevel() (REPORT_LEVEL)Dutil_TraceGetLevel()
+#define Trace(l, f, ...) (void)Dutil_Trace(__FILE__, __LINE__, l, f, __VA_ARGS__)
+#define TraceError(x, f, ...) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_ERROR, x, f, __VA_ARGS__)
+#define TraceErrorDebug(x, f, ...) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_DEBUG, x, f, __VA_ARGS__)
+
+#else // !DEBUG
+
+#define AssertSetModule(m)
+#define AssertSetDisplayFunction(pfn)
+#define Assert(f)
+#define AssertSz(f, sz)
+
+#define TraceSetLevel(l, f)
+#define Trace(l, f, ...)
+#define TraceError(x, f, ...)
+#define TraceErrorDebug(x, f, ...)
+
+#endif // DEBUG
+
+#define Trace1 Trace
+#define Trace2 Trace
+#define Trace3 Trace
+
+#define TraceError1 TraceError
+#define TraceError2 TraceError
+#define TraceError3 TraceError
+
+#define TraceErrorDebug1 TraceErrorDebug
+#define TraceErrorDebug2 TraceErrorDebug
+#define TraceErrorDebug3 TraceErrorDebug
+
+// ExitTrace can be overriden
+#ifndef ExitTrace
+#define ExitTrace TraceError
+#endif
+#ifndef ExitTrace1
+#define ExitTrace1 TraceError1
+#endif
+#ifndef ExitTrace2
+#define ExitTrace2 TraceError2
+#endif
+#ifndef ExitTrace3
+#define ExitTrace3 TraceError3
+#endif
+
+// Exit macros
+#define ExitFunction() { goto LExit; }
+#define ExitFunction1(x) { x; goto LExit; }
+
+#define ExitFunctionWithLastError(x) { x = HRESULT_FROM_WIN32(::GetLastError()); goto LExit; }
+
+#define ExitOnLastError(x, s, ...) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s, __VA_ARGS__); goto LExit; } }
+#define ExitOnLastError1 ExitOnLastError
+#define ExitOnLastError2 ExitOnLastError
+
+#define ExitOnLastErrorDebugTrace(x, s, ...) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); TraceErrorDebug(x, s, __VA_ARGS__); goto LExit; } }
+#define ExitOnLastErrorDebugTrace1 ExitOnLastErrorDebugTrace
+#define ExitOnLastErrorDebugTrace2 ExitOnLastErrorDebugTrace
+
+#define ExitWithLastError(x, s, ...) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s, __VA_ARGS__); goto LExit; }
+#define ExitWithLastError1 ExitWithLastError
+#define ExitWithLastError2 ExitWithLastError
+#define ExitWithLastError3 ExitWithLastError
+
+#define ExitOnFailure(x, s, ...) if (FAILED(x)) { ExitTrace(x, s, __VA_ARGS__); goto LExit; }
+#define ExitOnFailure1 ExitOnFailure
+#define ExitOnFailure2 ExitOnFailure
+#define ExitOnFailure3 ExitOnFailure
+
+#define ExitOnRootFailure(x, s, ...) if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s, __VA_ARGS__); goto LExit; }
+#define ExitOnRootFailure1 ExitOnRootFailure
+#define ExitOnRootFailure2 ExitOnRootFailure
+#define ExitOnRootFailure3 ExitOnRootFailure
+
+#define ExitOnFailureDebugTrace(x, s, ...) if (FAILED(x)) { TraceErrorDebug(x, s, __VA_ARGS__); goto LExit; }
+#define ExitOnFailureDebugTrace1 ExitOnFailureDebugTrace
+#define ExitOnFailureDebugTrace2 ExitOnFailureDebugTrace
+#define ExitOnFailureDebugTrace3 ExitOnFailureDebugTrace
+
+#define ExitOnNull(p, x, e, s, ...) if (NULL == p) { x = e; Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s, __VA_ARGS__); goto LExit; }
+#define ExitOnNull1 ExitOnNull
+#define ExitOnNull2 ExitOnNull
+
+#define ExitOnNullWithLastError(p, x, s, ...) if (NULL == p) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s, __VA_ARGS__); goto LExit; }
+#define ExitOnNullWithLastError1 ExitOnNullWithLastError
+
+#define ExitOnNullDebugTrace(p, x, e, s, ...) if (NULL == p) { x = e; Dutil_RootFailure(__FILE__, __LINE__, x); TraceErrorDebug(x, s, __VA_ARGS__); goto LExit; }
+#define ExitOnNullDebugTrace1 ExitOnNullDebugTrace
+
+#define ExitOnInvalidHandleWithLastError(p, x, s, ...) if (INVALID_HANDLE_VALUE == p) { DWORD Dutil_er = ::GetLastError(); x = HRESULT_FROM_WIN32(Dutil_er); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s, __VA_ARGS__); goto LExit; }
+#define ExitOnInvalidHandleWithLastError1 ExitOnInvalidHandleWithLastError
+
+#define ExitOnWin32Error(e, x, s, ...) if (ERROR_SUCCESS != e) { x = HRESULT_FROM_WIN32(e); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s, __VA_ARGS__); goto LExit; }
+#define ExitOnWin32Error1 ExitOnWin32Error
+#define ExitOnWin32Error2 ExitOnWin32Error
+
+// release macros
+#define ReleaseObject(x) if (x) { x->Release(); }
+#define ReleaseObjectArray(prg, cel) if (prg) { for (DWORD Dutil_ReleaseObjectArrayIndex = 0; Dutil_ReleaseObjectArrayIndex < cel; ++Dutil_ReleaseObjectArrayIndex) { ReleaseObject(prg[Dutil_ReleaseObjectArrayIndex]); } ReleaseMem(prg); }
+#define ReleaseVariant(x) { ::VariantClear(&x); }
+#define ReleaseNullObject(x) if (x) { (x)->Release(); x = NULL; }
+#define ReleaseCertificate(x) if (x) { ::CertFreeCertificateContext(x); x=NULL; }
+#define ReleaseHandle(x) if (x) { ::CloseHandle(x); x = NULL; }
+
+
+// useful defines and macros
+#define Unused(x) ((void)x)
+
+#ifndef countof
+#if 1
+#define countof(ary) (sizeof(ary) / sizeof(ary[0]))
+#else
+#ifndef __cplusplus
+#define countof(ary) (sizeof(ary) / sizeof(ary[0]))
+#else
+template static char countofVerify(void const *, T) throw() { return 0; }
+template static void countofVerify(T *const, T *const *) throw() {};
+#define countof(arr) (sizeof(countofVerify(arr,&(arr))) * sizeof(arr)/sizeof(*(arr)))
+#endif
+#endif
+#endif
+
+#define roundup(x, n) roundup_typed(x, n, DWORD)
+#define roundup_typed(x, n, t) (((t)(x) + ((t)(n) - 1)) & ~((t)(n) - 1))
+
+#define HRESULT_FROM_RPC(x) ((HRESULT) ((x) | FACILITY_RPC))
+
+#ifndef MAXSIZE_T
+#define MAXSIZE_T ((SIZE_T)~((SIZE_T)0))
+#endif
+
+typedef const BYTE* LPCBYTE;
+
+#define E_FILENOTFOUND HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
+#define E_PATHNOTFOUND HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND)
+#define E_INVALIDDATA HRESULT_FROM_WIN32(ERROR_INVALID_DATA)
+#define E_INVALIDSTATE HRESULT_FROM_WIN32(ERROR_INVALID_STATE)
+#define E_INSUFFICIENT_BUFFER HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
+#define E_MOREDATA HRESULT_FROM_WIN32(ERROR_MORE_DATA)
+#define E_NOMOREITEMS HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS)
+#define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND)
+#define E_MODNOTFOUND HRESULT_FROM_WIN32(ERROR_MOD_NOT_FOUND)
+#define E_BADCONFIGURATION HRESULT_FROM_WIN32(ERROR_BAD_CONFIGURATION)
+
+#define AddRefAndRelease(x) { x->AddRef(); x->Release(); }
+
+#define MAKEDWORD(lo, hi) ((DWORD)MAKELONG(lo, hi))
+#define MAKEQWORDVERSION(mj, mi, b, r) (((DWORD64)MAKELONG(r, b)) | (((DWORD64)MAKELONG(mi, mj)) << 32))
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// other functions
+HRESULT DAPI LoadSystemLibrary(__in_z LPCWSTR wzModuleName, __out HMODULE *phModule);
+HRESULT DAPI LoadSystemLibraryWithPath(__in_z LPCWSTR wzModuleName, __out HMODULE *phModule, __deref_out_z_opt LPWSTR* psczPath);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/eseutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/eseutil.h
new file mode 100644
index 0000000..1c40892
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/eseutil.h
@@ -0,0 +1,223 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseEseQuery(pqh) if (pqh) { EseFinishQuery(pqh); }
+#define ReleaseNullEseQuery(pqh) if (pqh) { EseFinishQuery(pqh); pqh = NULL; }
+
+struct ESE_COLUMN_SCHEMA
+{
+ JET_COLUMNID jcColumn;
+ LPCWSTR pszName;
+ JET_COLTYP jcColumnType;
+ BOOL fKey; // If this column is part of the key of the table
+ BOOL fFixed;
+ BOOL fNullable;
+ BOOL fAutoIncrement;
+};
+
+struct ESE_TABLE_SCHEMA
+{
+ JET_TABLEID jtTable;
+ LPCWSTR pszName;
+ DWORD dwColumns;
+ ESE_COLUMN_SCHEMA *pcsColumns;
+};
+
+struct ESE_DATABASE_SCHEMA
+{
+ DWORD dwTables;
+ ESE_TABLE_SCHEMA *ptsTables;
+};
+
+typedef enum ESE_QUERY_TYPE
+{
+ ESE_QUERY_EXACT,
+ ESE_QUERY_FROM_TOP,
+ ESE_QUERY_FROM_BOTTOM
+} ESE_QUERY_TYPE;
+
+typedef void* ESE_QUERY_HANDLE;
+
+HRESULT DAPI EseBeginSession(
+ __out JET_INSTANCE *pjiInstance,
+ __out JET_SESID *pjsSession,
+ __in_z LPCWSTR pszInstance,
+ __in_z LPCWSTR pszPath
+ );
+HRESULT DAPI EseEndSession(
+ __in JET_INSTANCE jiInstance,
+ __in JET_SESID jsSession
+ );
+HRESULT DAPI EseEnsureDatabase(
+ __in JET_SESID jsSession,
+ __in_z LPCWSTR pszFile,
+ __in ESE_DATABASE_SCHEMA *pdsSchema,
+ __out JET_DBID* pjdbDb,
+ __in BOOL fExclusive,
+ __in BOOL fReadonly
+ );
+HRESULT DAPI EseCloseDatabase(
+ __in JET_SESID jsSession,
+ __in JET_DBID jdbDb
+ );
+HRESULT DAPI EseCreateTable(
+ __in JET_SESID jsSession,
+ __in JET_DBID jdbDb,
+ __in_z LPCWSTR pszTable,
+ __out JET_TABLEID *pjtTable
+ );
+HRESULT DAPI EseOpenTable(
+ __in JET_SESID jsSession,
+ __in JET_DBID jdbDb,
+ __in_z LPCWSTR pszTable,
+ __out JET_TABLEID *pjtTable
+ );
+HRESULT DAPI EseCloseTable(
+ __in JET_SESID jsSession,
+ __in JET_TABLEID jtTable
+ );
+HRESULT DAPI EseEnsureColumn(
+ __in JET_SESID jsSession,
+ __in JET_TABLEID jtTable,
+ __in_z LPCWSTR pszColumnName,
+ __in JET_COLTYP jcColumnType,
+ __in ULONG ulColumnSize,
+ __in BOOL fFixed,
+ __in BOOL fNullable,
+ __out_opt JET_COLUMNID *pjcColumn
+ );
+HRESULT DAPI EseGetColumn(
+ __in JET_SESID jsSession,
+ __in JET_TABLEID jtTable,
+ __in_z LPCWSTR pszColumnName,
+ __out JET_COLUMNID *pjcColumn
+ );
+HRESULT DAPI EseMoveCursor(
+ __in JET_SESID jsSession,
+ __in JET_TABLEID jtTable,
+ __in LONG lRow
+ );
+HRESULT DAPI EseDeleteRow(
+ __in JET_SESID jsSession,
+ __in JET_TABLEID jtTable
+ );
+HRESULT DAPI EseBeginTransaction(
+ __in JET_SESID jsSession
+ );
+HRESULT DAPI EseRollbackTransaction(
+ __in JET_SESID jsSession,
+ __in BOOL fAll
+ );
+HRESULT DAPI EseCommitTransaction(
+ __in JET_SESID jsSession
+ );
+HRESULT DAPI EsePrepareUpdate(
+ __in JET_SESID jsSession,
+ __in JET_TABLEID jtTable,
+ __in ULONG ulPrep
+ );
+HRESULT DAPI EseFinishUpdate(
+ __in JET_SESID jsSession,
+ __in JET_TABLEID jtTable,
+ __in BOOL fSeekToInsertedRecord
+ );
+HRESULT DAPI EseSetColumnBinary(
+ __in JET_SESID jsSession,
+ __in ESE_TABLE_SCHEMA tsTable,
+ __in DWORD dwColumn,
+ __in_bcount(cbBuffer) const BYTE* pbBuffer,
+ __in SIZE_T cbBuffer
+ );
+HRESULT DAPI EseSetColumnDword(
+ __in JET_SESID jsSession,
+ __in ESE_TABLE_SCHEMA tsTable,
+ __in DWORD dwColumn,
+ __in DWORD dwValue
+ );
+HRESULT DAPI EseSetColumnBool(
+ __in JET_SESID jsSession,
+ __in ESE_TABLE_SCHEMA tsTable,
+ __in DWORD dwColumn,
+ __in BOOL fValue
+ );
+HRESULT DAPI EseSetColumnString(
+ __in JET_SESID jsSession,
+ __in ESE_TABLE_SCHEMA tsTable,
+ __in DWORD dwColumn,
+ __in_z LPCWSTR pszValue
+ );
+HRESULT DAPI EseSetColumnEmpty(
+ __in JET_SESID jsSession,
+ __in ESE_TABLE_SCHEMA tsTable,
+ __in DWORD dwColumn
+ );
+HRESULT DAPI EseGetColumnBinary(
+ __in JET_SESID jsSession,
+ __in ESE_TABLE_SCHEMA tsTable,
+ __in DWORD dwColumn,
+ __deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
+ __inout SIZE_T* piBuffer
+ );
+HRESULT DAPI EseGetColumnDword(
+ __in JET_SESID jsSession,
+ __in ESE_TABLE_SCHEMA tsTable,
+ __in DWORD dwColumn,
+ __out DWORD *pdwValue
+ );
+HRESULT DAPI EseGetColumnBool(
+ __in JET_SESID jsSession,
+ __in ESE_TABLE_SCHEMA tsTable,
+ __in DWORD dwColumn,
+ __out BOOL *pfValue
+ );
+HRESULT DAPI EseGetColumnString(
+ __in JET_SESID jsSession,
+ __in ESE_TABLE_SCHEMA tsTable,
+ __in DWORD dwColumn,
+ __out LPWSTR *ppszValue
+ );
+
+// Call this once for each key column in the table
+HRESULT DAPI EseBeginQuery(
+ __in JET_SESID jsSession,
+ __in JET_TABLEID jtTable,
+ __in ESE_QUERY_TYPE qtQueryType,
+ __out ESE_QUERY_HANDLE *peqhHandle
+ );
+HRESULT DAPI EseSetQueryColumnBinary(
+ __in ESE_QUERY_HANDLE eqhHandle,
+ __in_bcount(cbBuffer) const BYTE* pbBuffer,
+ __in SIZE_T cbBuffer,
+ __in BOOL fFinal // If this is true, all other key columns in the query will be set to "*"
+ );
+HRESULT DAPI EseSetQueryColumnDword(
+ __in ESE_QUERY_HANDLE eqhHandle,
+ __in DWORD dwData,
+ __in BOOL fFinal // If this is true, all other key columns in the query will be set to "*"
+ );
+HRESULT DAPI EseSetQueryColumnBool(
+ __in ESE_QUERY_HANDLE eqhHandle,
+ __in BOOL fValue,
+ __in BOOL fFinal // If this is true, all other key columns in the query will be set to "*"
+ );
+HRESULT DAPI EseSetQueryColumnString(
+ __in ESE_QUERY_HANDLE eqhHandle,
+ __in_z LPCWSTR pszString,
+ __in BOOL fFinal // If this is true, all other key columns in the query will be set to "*"
+ );
+HRESULT DAPI EseFinishQuery(
+ __in ESE_QUERY_HANDLE eqhHandle
+ );
+// Once all columns have been set up, call this and read the result
+HRESULT DAPI EseRunQuery(
+ __in ESE_QUERY_HANDLE eqhHandle
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/fileutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/fileutil.h
new file mode 100644
index 0000000..3f660b2
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/fileutil.h
@@ -0,0 +1,219 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseFile(h) if (INVALID_HANDLE_VALUE != h) { ::CloseHandle(h); h = INVALID_HANDLE_VALUE; }
+#define ReleaseFileHandle(h) if (INVALID_HANDLE_VALUE != h) { ::CloseHandle(h); h = INVALID_HANDLE_VALUE; }
+#define ReleaseFileFindHandle(h) if (INVALID_HANDLE_VALUE != h) { ::FindClose(h); h = INVALID_HANDLE_VALUE; }
+
+#define FILEMAKEVERSION(major, minor, build, revision) static_cast((static_cast(major & 0xFFFF) << 48) \
+ | (static_cast(minor & 0xFFFF) << 32) \
+ | (static_cast(build & 0xFFFF) << 16) \
+ | (static_cast(revision & 0xFFFF)))
+
+typedef enum FILE_ARCHITECTURE
+{
+ FILE_ARCHITECTURE_UNKNOWN,
+ FILE_ARCHITECTURE_X86,
+ FILE_ARCHITECTURE_X64,
+ FILE_ARCHITECTURE_IA64,
+} FILE_ARCHITECTURE;
+
+typedef enum FILE_ENCODING
+{
+ FILE_ENCODING_UNSPECIFIED = 0,
+ // TODO: distinguish between non-BOM utf-8 and ANSI in the future?
+ FILE_ENCODING_UTF8,
+ FILE_ENCODING_UTF8_WITH_BOM,
+ FILE_ENCODING_UTF16,
+ FILE_ENCODING_UTF16_WITH_BOM,
+} FILE_ENCODING;
+
+
+LPWSTR DAPI FileFromPath(
+ __in_z LPCWSTR wzPath
+ );
+HRESULT DAPI FileResolvePath(
+ __in_z LPCWSTR wzRelativePath,
+ __out LPWSTR *ppwzFullPath
+ );
+HRESULT DAPI FileStripExtension(
+ __in_z LPCWSTR wzFileName,
+ __out LPWSTR *ppwzFileNameNoExtension
+ );
+HRESULT DAPI FileChangeExtension(
+ __in_z LPCWSTR wzFileName,
+ __in_z LPCWSTR wzNewExtension,
+ __out LPWSTR *ppwzFileNameNewExtension
+ );
+HRESULT DAPI FileAddSuffixToBaseName(
+ __in_z LPCWSTR wzFileName,
+ __in_z LPCWSTR wzSuffix,
+ __out_z LPWSTR* psczNewFileName
+ );
+HRESULT DAPI FileVersionFromString(
+ __in_z LPCWSTR wzVersion,
+ __out DWORD *pdwVerMajor,
+ __out DWORD* pdwVerMinor
+ );
+HRESULT DAPI FileVersionFromStringEx(
+ __in_z LPCWSTR wzVersion,
+ __in DWORD cchVersion,
+ __out DWORD64* pqwVersion
+ );
+HRESULT DAPI FileVersionToStringEx(
+ __in DWORD64 qwVersion,
+ __out LPWSTR* psczVersion
+ );
+HRESULT DAPI FileSetPointer(
+ __in HANDLE hFile,
+ __in DWORD64 dw64Move,
+ __out_opt DWORD64* pdw64NewPosition,
+ __in DWORD dwMoveMethod
+ );
+HRESULT DAPI FileSize(
+ __in_z LPCWSTR pwzFileName,
+ __out LONGLONG* pllSize
+ );
+HRESULT DAPI FileSizeByHandle(
+ __in HANDLE hFile,
+ __out LONGLONG* pllSize
+ );
+BOOL DAPI FileExistsEx(
+ __in_z LPCWSTR wzPath,
+ __out_opt DWORD *pdwAttributes
+ );
+BOOL DAPI FileExistsAfterRestart(
+ __in_z LPCWSTR wzPath,
+ __out_opt DWORD *pdwAttributes
+ );
+HRESULT DAPI FileRemoveFromPendingRename(
+ __in_z LPCWSTR wzPath
+ );
+HRESULT DAPI FileRead(
+ __deref_out_bcount_full(*pcbDest) LPBYTE* ppbDest,
+ __out DWORD* pcbDest,
+ __in_z LPCWSTR wzSrcPath
+ );
+HRESULT DAPI FileReadUntil(
+ __deref_out_bcount_full(*pcbDest) LPBYTE* ppbDest,
+ __out_range(<=, cbMaxRead) DWORD* pcbDest,
+ __in_z LPCWSTR wzSrcPath,
+ __in DWORD cbMaxRead
+ );
+HRESULT DAPI FileReadPartial(
+ __deref_out_bcount_full(*pcbDest) LPBYTE* ppbDest,
+ __out_range(<=, cbMaxRead) DWORD* pcbDest,
+ __in_z LPCWSTR wzSrcPath,
+ __in BOOL fSeek,
+ __in DWORD cbStartPosition,
+ __in DWORD cbMaxRead,
+ __in BOOL fPartialOK
+ );
+HRESULT DAPI FileWrite(
+ __in_z LPCWSTR pwzFileName,
+ __in DWORD dwFlagsAndAttributes,
+ __in_bcount_opt(cbData) LPCBYTE pbData,
+ __in DWORD cbData,
+ __out_opt HANDLE* pHandle
+ );
+HRESULT DAPI FileWriteHandle(
+ __in HANDLE hFile,
+ __in_bcount_opt(cbData) LPCBYTE pbData,
+ __in DWORD cbData
+ );
+HRESULT DAPI FileCopyUsingHandles(
+ __in HANDLE hSource,
+ __in HANDLE hTarget,
+ __in DWORD64 cbCopy,
+ __out_opt DWORD64* pcbCopied
+ );
+HRESULT DAPI FileEnsureCopy(
+ __in_z LPCWSTR wzSource,
+ __in_z LPCWSTR wzTarget,
+ __in BOOL fOverwrite
+ );
+HRESULT DAPI FileEnsureCopyWithRetry(
+ __in LPCWSTR wzSource,
+ __in LPCWSTR wzTarget,
+ __in BOOL fOverwrite,
+ __in DWORD cRetry,
+ __in DWORD dwWaitMilliseconds
+ );
+HRESULT DAPI FileEnsureMove(
+ __in_z LPCWSTR wzSource,
+ __in_z LPCWSTR wzTarget,
+ __in BOOL fOverwrite,
+ __in BOOL fAllowCopy
+ );
+HRESULT DAPI FileEnsureMoveWithRetry(
+ __in LPCWSTR wzSource,
+ __in LPCWSTR wzTarget,
+ __in BOOL fOverwrite,
+ __in BOOL fAllowCopy,
+ __in DWORD cRetry,
+ __in DWORD dwWaitMilliseconds
+ );
+HRESULT DAPI FileCreateTemp(
+ __in_z LPCWSTR wzPrefix,
+ __in_z LPCWSTR wzExtension,
+ __deref_opt_out_z LPWSTR* ppwzTempFile,
+ __out_opt HANDLE* phTempFile
+ );
+HRESULT DAPI FileCreateTempW(
+ __in_z LPCWSTR wzPrefix,
+ __in_z LPCWSTR wzExtension,
+ __deref_opt_out_z LPWSTR* ppwzTempFile,
+ __out_opt HANDLE* phTempFile
+ );
+HRESULT DAPI FileVersion(
+ __in_z LPCWSTR wzFilename,
+ __out DWORD *pdwVerMajor,
+ __out DWORD* pdwVerMinor
+ );
+HRESULT DAPI FileIsSame(
+ __in_z LPCWSTR wzFile1,
+ __in_z LPCWSTR wzFile2,
+ __out LPBOOL lpfSameFile
+ );
+HRESULT DAPI FileEnsureDelete(
+ __in_z LPCWSTR wzFile
+ );
+HRESULT DAPI FileGetTime(
+ __in_z LPCWSTR wzFile,
+ __out_opt LPFILETIME lpCreationTime,
+ __out_opt LPFILETIME lpLastAccessTime,
+ __out_opt LPFILETIME lpLastWriteTime
+ );
+HRESULT DAPI FileSetTime(
+ __in_z LPCWSTR wzFile,
+ __in_opt const FILETIME *lpCreationTime,
+ __in_opt const FILETIME *lpLastAccessTime,
+ __in_opt const FILETIME *lpLastWriteTime
+ );
+HRESULT DAPI FileResetTime(
+ __in_z LPCWSTR wzFile
+ );
+HRESULT DAPI FileExecutableArchitecture(
+ __in_z LPCWSTR wzFile,
+ __out FILE_ARCHITECTURE *pArchitecture
+ );
+HRESULT DAPI FileToString(
+ __in_z LPCWSTR wzFile,
+ __out LPWSTR *psczString,
+ __out_opt FILE_ENCODING *pfeEncoding
+ );
+HRESULT DAPI FileFromString(
+ __in_z LPCWSTR wzFile,
+ __in DWORD dwFlagsAndAttributes,
+ __in_z LPCWSTR sczString,
+ __in FILE_ENCODING feEncoding
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/gdiputil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/gdiputil.h
new file mode 100644
index 0000000..35af588
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/gdiputil.h
@@ -0,0 +1,30 @@
+#pragma once
+// 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.
+
+
+#define ExitOnGdipFailure(g, x, s) { x = GdipHresultFromStatus(g); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s); goto LExit; } }
+#define ExitOnGdipFailure1(g, x, f, s) { x = GdipHresultFromStatus(g); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; } }
+#define ExitOnGdipFailure2(g, x, f, s, t) { x = GdipHresultFromStatus(g); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace2(x, f, s, t); goto LExit; } }
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT DAPI GdipBitmapFromResource(
+ __in_opt HINSTANCE hinst,
+ __in_z LPCSTR szId,
+ __out Gdiplus::Bitmap **ppBitmap
+ );
+
+HRESULT DAPI GdipBitmapFromFile(
+ __in_z LPCWSTR wzFileName,
+ __out Gdiplus::Bitmap **ppBitmap
+ );
+
+HRESULT DAPI GdipHresultFromStatus(
+ __in Gdiplus::Status gs
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/iis7util.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/iis7util.h
new file mode 100644
index 0000000..3572b4e
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/iis7util.h
@@ -0,0 +1,222 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// IIS Config schema names
+#define IIS_CONFIG_ADD L"add"
+#define IIS_CONFIG_ALLOWED L"allowed"
+#define IIS_CONFIG_APPHOST_ROOT L"MACHINE/WEBROOT/APPHOST"
+#define IIS_CONFIG_APPLICATION L"application"
+#define IIS_CONFIG_APPPOOL L"applicationPool"
+#define IIS_CONFIG_APPPOOL_AUTO L"autoStart"
+#define IIS_CONFIG_APPPOOL_SECTION L"system.applicationHost/applicationPools"
+#define IIS_CONFIG_AUTOSTART L"serverAutoStart"
+#define IIS_CONFIG_BINDING L"binding"
+#define IIS_CONFIG_BINDINGINFO L"bindingInformation"
+#define IIS_CONFIG_BINDINGS L"bindings"
+#define IIS_CONFIG_DESC L"description"
+#define IIS_CONFIG_EXECUTABLE L"scriptProcessor"
+#define IIS_CONFIG_ENABLED L"enabled"
+#define IIS_CONFIG_ENABLE32 L"enable32BitAppOnWin64"
+#define IIS_CONFIG_FILEEXT L"fileExtension"
+#define IIS_CONFIG_FILTER L"filter"
+#define IIS_CONFIG_GROUPID L"groupId"
+#define IIS_CONFIG_HEADERS L"customHeaders"
+#define IIS_CONFIG_HTTPERRORS_SECTION L"system.webServer/httpErrors"
+#define IIS_CONFIG_ID L"id"
+#define IIS_CONFIG_ISAPI_SECTION L"system.webServer/isapiFilters"
+#define IIS_CONFIG_HTTPPROTO_SECTION L"system.webServer/httpProtocol"
+#define IIS_CONFIG_LOG_SECTION L"system.applicationHost/log"
+#define IIS_CONFIG_LOG_UTF8 L"logInUTF8"
+#define IIS_CONFIG_LIMITS L"limits"
+#define IIS_CONFIG_PIPELINEMODE L"managedPipelineMode"
+#define IIS_CONFIG_MANAGEDRUNTIMEVERSION L"managedRuntimeVersion"
+#define IIS_CONFIG_WEBLOG L"logFile"
+#define IIS_CONFIG_LOGFORMAT L"logFormat"
+#define IIS_CONFIG_MIMEMAP L"mimeMap"
+#define IIS_CONFIG_MIMETYPE L"mimeType"
+#define IIS_CONFIG_MODULES L"modules"
+#define IIS_CONFIG_NAME L"name"
+#define IIS_CONFIG_PATH L"path"
+#define IIS_CONFIG_PHYSPATH L"physicalPath"
+#define IIS_CONFIG_PROTOCOL L"protocol"
+#define IIS_CONFIG_RESTRICTION_SECTION L"system.webServer/security/isapiCgiRestriction"
+#define IIS_CONFIG_SITE L"site"
+#define IIS_CONFIG_SITE_ID L"id"
+#define IIS_CONFIG_SITES_SECTION L"system.applicationHost/sites"
+#define IIS_CONFIG_CONNECTTIMEOUT L"connectionTimeout"
+#define IIS_CONFIG_VDIR L"virtualDirectory"
+#define IIS_CONFIG_VALUE L"value"
+#define IIS_CONFIG_VERBS L"verb"
+#define IIS_CONFIG_WEBLIMITS_SECTION L"system.applicationHost/webLimits"
+#define IIS_CONFIG_WEBLIMITS_MAXBAND L"maxGlobalBandwidth"
+#define IIS_CONFIG_TRUE L"true"
+#define IIS_CONFIG_FALSE L"false"
+#define IIS_CONFIG_ERROR L"error"
+#define IIS_CONFIG_STATUSCODE L"statusCode"
+#define IIS_CONFIG_SUBSTATUS L"subStatusCode"
+#define IIS_CONFIG_LANGPATH L"prefixLanguageFilePath"
+#define IIS_CONFIG_RESPMODE L"responseMode"
+#define IIS_CONFIG_CLEAR L"clear"
+#define IIS_CONFIG_RECYCLING L"recycling"
+#define IIS_CONFIG_PEROIDRESTART L"periodicRestart"
+#define IIS_CONFIG_TIME L"time"
+#define IIS_CONFIG_REQUESTS L"requests"
+#define IIS_CONFIG_SCHEDULE L"schedule"
+#define IIS_CONFIG_MEMORY L"memory"
+#define IIS_CONFIG_PRIVMEMORY L"privateMemory"
+#define IIS_CONFIG_PROCESSMODEL L"processModel"
+#define IIS_CONFIG_IDLETIMEOUT L"idleTimeout"
+#define IIS_CONFIG_QUEUELENGTH L"queueLength"
+#define IIS_CONFIG_IDENITITYTYPE L"identityType"
+#define IIS_CONFIG_LOCALSYSTEM L"LocalSystem"
+#define IIS_CONFIG_LOCALSERVICE L"LocalService"
+#define IIS_CONFIG_NETWORKSERVICE L"NetworkService"
+#define IIS_CONFIG_SPECIFICUSER L"SpecificUser"
+#define IIS_CONFIG_APPLICATIONPOOLIDENTITY L"ApplicationPoolIdentity"
+#define IIS_CONFIG_USERNAME L"userName"
+#define IIS_CONFIG_PASSWORD L"password"
+#define IIS_CONFIG_CPU L"cpu"
+#define IIS_CONFIG_LIMIT L"limit"
+#define IIS_CONFIG_CPU_ACTION L"action"
+#define IIS_CONFIG_KILLW3WP L"KillW3wp"
+#define IIS_CONFIG_NOACTION L"NoAction"
+#define IIS_CONFIG_RESETINTERVAL L"resetInterval"
+#define IIS_CONFIG_MAXWRKPROCESSES L"maxProcesses"
+#define IIS_CONFIG_HANDLERS_SECTION L"system.webServer/handlers"
+#define IIS_CONFIG_DEFAULTDOC_SECTION L"system.webServer/defaultDocument"
+#define IIS_CONFIG_ASP_SECTION L"system.webServer/asp"
+#define IIS_CONFIG_SCRIPTERROR L"scriptErrorSentToBrowser"
+#define IIS_CONFIG_STATICCONTENT_SECTION L"system.webServer/staticContent"
+#define IIS_CONFIG_HTTPEXPIRES L"httpExpires"
+#define IIS_CONFIG_MAXAGE L"cacheControlMaxAge"
+#define IIS_CONFIG_CLIENTCACHE L"clientCache"
+#define IIS_CONFIG_CACHECONTROLMODE L"cacheControlMode"
+#define IIS_CONFIG_USEMAXAGE L"UseMaxAge"
+#define IIS_CONFIG_USEEXPIRES L"UseExpires"
+#define IIS_CONFIG_CACHECUST L"cacheControlCustom"
+#define IIS_CONFIG_ASP_SECTION L"system.webServer/asp"
+#define IIS_CONFIG_SESSION L"session"
+#define IIS_CONFIG_ALLOWSTATE L"allowSessionState"
+#define IIS_CONFIG_TIMEOUT L"timeout"
+#define IIS_CONFIG_BUFFERING L"bufferingOn"
+#define IIS_CONFIG_PARENTPATHS L"enableParentPaths"
+#define IIS_CONFIG_SCRIPTLANG L"scriptLanguage"
+#define IIS_CONFIG_SCRIPTTIMEOUT L"scriptTimeout"
+#define IIS_CONFIG_LIMITS L"limits"
+#define IIS_CONFIG_ALLOWDEBUG L"appAllowDebugging"
+#define IIS_CONFIG_ALLOWCLIENTDEBUG L"appAllowClientDebug"
+#define IIS_CONFIG_CERTIFICATEHASH L"certificateHash"
+#define IIS_CONFIG_CERTIFICATESTORENAME L"certificateStoreName"
+#define IIS_CONFIG_HTTPLOGGING_SECTION L"system.webServer/httpLogging"
+#define IIS_CONFIG_DONTLOG L"dontLog"
+
+typedef BOOL (CALLBACK* ENUMAPHOSTELEMENTPROC)(IAppHostElement*, LPVOID);
+typedef BOOL (CALLBACK* VARIANTCOMPARATORPROC)(VARIANT*, VARIANT*);
+
+HRESULT DAPI Iis7PutPropertyVariant(
+ __in IAppHostElement *pElement,
+ __in LPCWSTR wzPropName,
+ __in VARIANT vtPut
+ );
+
+HRESULT DAPI Iis7PutPropertyInteger(
+ __in IAppHostElement *pElement,
+ __in LPCWSTR wzPropName,
+ __in DWORD dValue
+ );
+
+HRESULT DAPI Iis7PutPropertyString(
+ __in IAppHostElement *pElement,
+ __in LPCWSTR wzPropName,
+ __in LPCWSTR wzString
+ );
+
+HRESULT DAPI Iis7PutPropertyBool(
+ __in IAppHostElement *pElement,
+ __in LPCWSTR wzPropName,
+ __in BOOL fValue);
+
+HRESULT DAPI Iis7GetPropertyVariant(
+ __in IAppHostElement *pElement,
+ __in LPCWSTR wzPropName,
+ __in VARIANT* vtGet
+ );
+
+HRESULT DAPI Iis7GetPropertyString(
+ __in IAppHostElement *pElement,
+ __in LPCWSTR wzPropName,
+ __in LPWSTR* psczGet
+ );
+
+struct IIS7_APPHOSTELEMENTCOMPARISON
+{
+ LPCWSTR sczElementName;
+ LPCWSTR sczAttributeName;
+ VARIANT* pvAttributeValue;
+ VARIANTCOMPARATORPROC pComparator;
+};
+
+BOOL DAPI Iis7IsMatchingAppHostElement(
+ __in IAppHostElement *pElement,
+ __in IIS7_APPHOSTELEMENTCOMPARISON* pComparison
+ );
+
+HRESULT DAPI Iis7FindAppHostElementString(
+ __in IAppHostElementCollection *pCollection,
+ __in LPCWSTR wzElementName,
+ __in LPCWSTR wzAttributeName,
+ __in LPCWSTR wzAttributeValue,
+ __out IAppHostElement** ppElement,
+ __out DWORD* pdwIndex
+ );
+
+HRESULT DAPI Iis7FindAppHostElementPath(
+ __in IAppHostElementCollection *pCollection,
+ __in LPCWSTR wzElementName,
+ __in LPCWSTR wzAttributeName,
+ __in LPCWSTR wzAttributeValue,
+ __out IAppHostElement** ppElement,
+ __out DWORD* pdwIndex
+ );
+
+HRESULT DAPI Iis7FindAppHostElementInteger(
+ __in IAppHostElementCollection *pCollection,
+ __in LPCWSTR wzElementName,
+ __in LPCWSTR wzAttributeName,
+ __in DWORD dwAttributeValue,
+ __out IAppHostElement** ppElement,
+ __out DWORD* pdwIndex
+ );
+
+HRESULT DAPI Iis7FindAppHostElementVariant(
+ __in IAppHostElementCollection *pCollection,
+ __in LPCWSTR wzElementName,
+ __in LPCWSTR wzAttributeName,
+ __in VARIANT* pvAttributeValue,
+ __out IAppHostElement** ppElement,
+ __out DWORD* pdwIndex
+ );
+
+HRESULT DAPI Iis7EnumAppHostElements(
+ __in IAppHostElementCollection *pCollection,
+ __in ENUMAPHOSTELEMENTPROC pCallback,
+ __in LPVOID pContext,
+ __out IAppHostElement** ppElement,
+ __out DWORD* pdwIndex
+ );
+
+HRESULT DAPI Iis7FindAppHostMethod(
+ __in IAppHostMethodCollection *pCollection,
+ __in LPCWSTR wzMethodName,
+ __out IAppHostMethod** ppMethod,
+ __out DWORD* pdwIndex
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/inetutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/inetutil.h
new file mode 100644
index 0000000..4cbf510
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/inetutil.h
@@ -0,0 +1,39 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseInternet(h) if (h) { ::InternetCloseHandle(h); h = NULL; }
+#define ReleaseNullInternet(h) if (h) { ::InternetCloseHandle(h); h = NULL; }
+
+
+// functions
+HRESULT DAPI InternetGetSizeByHandle(
+ __in HINTERNET hiFile,
+ __out LONGLONG* pllSize
+ );
+
+HRESULT DAPI InternetGetCreateTimeByHandle(
+ __in HINTERNET hiFile,
+ __out LPFILETIME pft
+ );
+
+HRESULT DAPI InternetQueryInfoString(
+ __in HINTERNET h,
+ __in DWORD dwInfo,
+ __deref_out_z LPWSTR* psczValue
+ );
+
+HRESULT DAPI InternetQueryInfoNumber(
+ __in HINTERNET h,
+ __in DWORD dwInfo,
+ __out LONG* plInfo
+ );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/iniutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/iniutil.h
new file mode 100644
index 0000000..d089c24
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/iniutil.h
@@ -0,0 +1,73 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseIni(ih) if (ih) { IniUninitialize(ih); }
+#define ReleaseNullIni(ih) if (ih) { IniUninitialize(ih); ih = NULL; }
+
+typedef void* INI_HANDLE;
+typedef const void* C_INI_HANDLE;
+
+extern const int INI_HANDLE_BYTES;
+
+struct INI_VALUE
+{
+ LPCWSTR wzName;
+ LPCWSTR wzValue;
+
+ DWORD dwLineNumber;
+};
+
+HRESULT DAPI IniInitialize(
+ __out_bcount(INI_HANDLE_BYTES) INI_HANDLE* piHandle
+ );
+void DAPI IniUninitialize(
+ __in_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle
+ );
+HRESULT DAPI IniSetOpenTag(
+ __inout_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle,
+ __in_z_opt LPCWSTR wzOpenTagPrefix,
+ __in_z_opt LPCWSTR wzOpenTagPostfix
+ );
+HRESULT DAPI IniSetValueStyle(
+ __inout_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle,
+ __in_z_opt LPCWSTR wzValuePrefix,
+ __in_z_opt LPCWSTR wzValueSeparator
+ );
+HRESULT DAPI IniSetCommentStyle(
+ __inout_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle,
+ __in_z_opt LPCWSTR wzLinePrefix
+ );
+HRESULT DAPI IniParse(
+ __inout_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle,
+ __in LPCWSTR wzPath,
+ __out_opt FILE_ENCODING *pfeEncodingFound
+ );
+HRESULT DAPI IniGetValueList(
+ __in_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle,
+ __deref_out_ecount_opt(pcValues) INI_VALUE** prgivValues,
+ __out DWORD *pcValues
+ );
+HRESULT DAPI IniGetValue(
+ __in_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle,
+ __in LPCWSTR wzValueName,
+ __deref_out_z LPWSTR* psczValue
+ );
+HRESULT DAPI IniSetValue(
+ __in_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle,
+ __in LPCWSTR wzValueName,
+ __in_z_opt LPCWSTR wzValue
+ );
+HRESULT DAPI IniWriteFile(
+ __in_bcount(INI_HANDLE_BYTES) INI_HANDLE piHandle,
+ __in_z_opt LPCWSTR wzPath,
+ __in FILE_ENCODING feOverrideEncoding
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/jsonutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/jsonutil.h
new file mode 100644
index 0000000..b05e997
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/jsonutil.h
@@ -0,0 +1,112 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum JSON_TOKEN
+{
+ JSON_TOKEN_NONE,
+ JSON_TOKEN_ARRAY_START,
+ JSON_TOKEN_ARRAY_VALUE,
+ JSON_TOKEN_ARRAY_END,
+ JSON_TOKEN_OBJECT_START,
+ JSON_TOKEN_OBJECT_KEY,
+ JSON_TOKEN_OBJECT_VALUE,
+ JSON_TOKEN_OBJECT_END,
+ JSON_TOKEN_VALUE,
+} JSON_TOKEN;
+
+typedef struct _JSON_VALUE
+{
+} JSON_VALUE;
+
+typedef struct _JSON_READER
+{
+ CRITICAL_SECTION cs;
+ LPWSTR sczJson;
+
+ LPWSTR pwz;
+ JSON_TOKEN token;
+} JSON_READER;
+
+typedef struct _JSON_WRITER
+{
+ CRITICAL_SECTION cs;
+ LPWSTR sczJson;
+
+ JSON_TOKEN* rgTokenStack;
+ DWORD cTokens;
+ DWORD cMaxTokens;
+} JSON_WRITER;
+
+
+DAPI_(HRESULT) JsonInitializeReader(
+ __in_z LPCWSTR wzJson,
+ __in JSON_READER* pReader
+ );
+
+DAPI_(void) JsonUninitializeReader(
+ __in JSON_READER* pReader
+ );
+
+DAPI_(HRESULT) JsonReadNext(
+ __in JSON_READER* pReader,
+ __out JSON_TOKEN* pToken,
+ __out JSON_VALUE* pValue
+ );
+
+DAPI_(HRESULT) JsonReadValue(
+ __in JSON_READER* pReader,
+ __in JSON_VALUE* pValue
+ );
+
+DAPI_(HRESULT) JsonInitializeWriter(
+ __in JSON_WRITER* pWriter
+ );
+
+DAPI_(void) JsonUninitializeWriter(
+ __in JSON_WRITER* pWriter
+ );
+
+DAPI_(HRESULT) JsonWriteBool(
+ __in JSON_WRITER* pWriter,
+ __in BOOL fValue
+ );
+
+DAPI_(HRESULT) JsonWriteNumber(
+ __in JSON_WRITER* pWriter,
+ __in DWORD dwValue
+ );
+
+DAPI_(HRESULT) JsonWriteString(
+ __in JSON_WRITER* pWriter,
+ __in_z LPCWSTR wzValue
+ );
+
+DAPI_(HRESULT) JsonWriteArrayStart(
+ __in JSON_WRITER* pWriter
+ );
+
+DAPI_(HRESULT) JsonWriteArrayEnd(
+ __in JSON_WRITER* pWriter
+ );
+
+DAPI_(HRESULT) JsonWriteObjectStart(
+ __in JSON_WRITER* pWriter
+ );
+
+DAPI_(HRESULT) JsonWriteObjectKey(
+ __in JSON_WRITER* pWriter,
+ __in_z LPCWSTR wzKey
+ );
+
+DAPI_(HRESULT) JsonWriteObjectEnd(
+ __in JSON_WRITER* pWriter
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/locutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/locutil.h
new file mode 100644
index 0000000..7f3c7aa
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/locutil.h
@@ -0,0 +1,132 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct LOC_STRING
+{
+ LPWSTR wzId;
+ LPWSTR wzText;
+ BOOL bOverridable;
+};
+
+const int LOC_CONTROL_NOT_SET = INT_MAX;
+
+struct LOC_CONTROL
+{
+ LPWSTR wzControl;
+ int nX;
+ int nY;
+ int nWidth;
+ int nHeight;
+ LPWSTR wzText;
+};
+
+const int WIX_LOCALIZATION_LANGUAGE_NOT_SET = INT_MAX;
+
+struct WIX_LOCALIZATION
+{
+ DWORD dwLangId;
+
+ DWORD cLocStrings;
+ LOC_STRING* rgLocStrings;
+
+ DWORD cLocControls;
+ LOC_CONTROL* rgLocControls;
+};
+
+/********************************************************************
+ LocProbeForFile - Searches for a localization file on disk.
+
+*******************************************************************/
+HRESULT DAPI LocProbeForFile(
+ __in_z LPCWSTR wzBasePath,
+ __in_z LPCWSTR wzLocFileName,
+ __in_z_opt LPCWSTR wzLanguage,
+ __inout LPWSTR* psczPath
+ );
+
+/********************************************************************
+ LocProbeForFileEx - Searches for a localization file on disk.
+ useUILanguage should be set to TRUE.
+*******************************************************************/
+extern "C" HRESULT DAPI LocProbeForFileEx(
+ __in_z LPCWSTR wzBasePath,
+ __in_z LPCWSTR wzLocFileName,
+ __in_z_opt LPCWSTR wzLanguage,
+ __inout LPWSTR* psczPath,
+ __in BOOL useUILanguage
+ );
+
+/********************************************************************
+ LocLoadFromFile - Loads a localization file
+
+*******************************************************************/
+HRESULT DAPI LocLoadFromFile(
+ __in_z LPCWSTR wzWxlFile,
+ __out WIX_LOCALIZATION** ppWixLoc
+ );
+
+/********************************************************************
+ LocLoadFromResource - loads a localization file from a module's data
+ resource.
+
+ NOTE: The resource data must be UTF-8 encoded.
+*******************************************************************/
+HRESULT DAPI LocLoadFromResource(
+ __in HMODULE hModule,
+ __in_z LPCSTR szResource,
+ __out WIX_LOCALIZATION** ppWixLoc
+ );
+
+/********************************************************************
+ LocFree - free memory allocated when loading a localization file
+
+*******************************************************************/
+void DAPI LocFree(
+ __in_opt WIX_LOCALIZATION* pWixLoc
+ );
+
+/********************************************************************
+ LocLocalizeString - replace any #(loc.id) in a string with the
+ correct sub string
+*******************************************************************/
+HRESULT DAPI LocLocalizeString(
+ __in const WIX_LOCALIZATION* pWixLoc,
+ __inout LPWSTR* psczInput
+ );
+
+/********************************************************************
+ LocGetControl - returns a control's localization information
+*******************************************************************/
+HRESULT DAPI LocGetControl(
+ __in const WIX_LOCALIZATION* pWixLoc,
+ __in_z LPCWSTR wzId,
+ __out LOC_CONTROL** ppLocControl
+ );
+
+/********************************************************************
+LocGetString - returns a string's localization information
+*******************************************************************/
+extern "C" HRESULT DAPI LocGetString(
+ __in const WIX_LOCALIZATION* pWixLoc,
+ __in_z LPCWSTR wzId,
+ __out LOC_STRING** ppLocString
+ );
+
+/********************************************************************
+LocAddString - adds a localization string
+*******************************************************************/
+extern "C" HRESULT DAPI LocAddString(
+ __in WIX_LOCALIZATION* pWixLoc,
+ __in_z LPCWSTR wzId,
+ __in_z LPCWSTR wzLocString,
+ __in BOOL bOverridable
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/logutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/logutil.h
new file mode 100644
index 0000000..4f1f55c
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/logutil.h
@@ -0,0 +1,200 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define LogExitOnFailure(x, i, f) if (FAILED(x)) { LogErrorId(x, i, NULL, NULL, NULL); ExitTrace(x, f); goto LExit; }
+#define LogExitOnFailure1(x, i, f, s) if (FAILED(x)) { LogErrorId(x, i, s, NULL, NULL); ExitTrace1(x, f, s); goto LExit; }
+#define LogExitOnFailure2(x, i, f, s, t) if (FAILED(x)) { LogErrorId(x, i, s, t, NULL); ExitTrace2(x, f, s, t); goto LExit; }
+#define LogExitOnFailure3(x, i, f, s, t, u) if (FAILED(x)) { LogErrorId(x, i, s, t, u); ExitTrace3(x, f, s, t, u); goto LExit; }
+
+#define LogExitOnRootFailure(x, i, f) if (FAILED(x)) { LogErrorId(x, i, NULL, NULL, NULL); Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, f); goto LExit; }
+#define LogExitOnRootFailure1(x, i, f, s) if (FAILED(x)) { LogErrorId(x, i, s, NULL, NULL); Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; }
+#define LogExitOnRootFailure2(x, i, f, s, t) if (FAILED(x)) { LogErrorId(x, i, s, t, NULL); Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace2(x, f, s, t); goto LExit; }
+#define LogExitOnRootFailure3(x, i, f, s, t, u) if (FAILED(x)) { LogErrorId(x, i, s, t, u); Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace3(x, f, s, t, u); goto LExit; }
+
+typedef HRESULT (DAPI *PFN_LOGSTRINGWORKRAW)(
+ __in_z LPCSTR szString,
+ __in_opt LPVOID pvContext
+ );
+
+// enums
+
+// structs
+
+// functions
+BOOL DAPI IsLogInitialized();
+
+BOOL DAPI IsLogOpen();
+
+void DAPI LogInitialize(
+ __in HMODULE hModule
+ );
+
+HRESULT DAPI LogOpen(
+ __in_z_opt LPCWSTR wzDirectory,
+ __in_z LPCWSTR wzLog,
+ __in_z_opt LPCWSTR wzPostfix,
+ __in_z_opt LPCWSTR wzExt,
+ __in BOOL fAppend,
+ __in BOOL fHeader,
+ __out_z_opt LPWSTR* psczLogPath
+ );
+
+void DAPI LogDisable();
+
+void DAPI LogRedirect(
+ __in_opt PFN_LOGSTRINGWORKRAW vpfLogStringWorkRaw,
+ __in_opt LPVOID pvContext
+ );
+
+HRESULT DAPI LogRename(
+ __in_z LPCWSTR wzNewPath
+ );
+
+void DAPI LogClose(
+ __in BOOL fFooter
+ );
+
+void DAPI LogUninitialize(
+ __in BOOL fFooter
+ );
+
+BOOL DAPI LogIsOpen();
+
+HRESULT DAPI LogSetSpecialParams(
+ __in_z_opt LPCWSTR wzSpecialBeginLine,
+ __in_z_opt LPCWSTR wzSpecialAfterTimeStamp,
+ __in_z_opt LPCWSTR wzSpecialEndLine
+ );
+
+REPORT_LEVEL DAPI LogSetLevel(
+ __in REPORT_LEVEL rl,
+ __in BOOL fLogChange
+ );
+
+REPORT_LEVEL DAPI LogGetLevel();
+
+HRESULT DAPI LogGetPath(
+ __out_ecount_z(cchLogPath) LPWSTR pwzLogPath,
+ __in DWORD cchLogPath
+ );
+
+HANDLE DAPI LogGetHandle();
+
+HRESULT DAPIV LogString(
+ __in REPORT_LEVEL rl,
+ __in_z __format_string LPCSTR szFormat,
+ ...
+ );
+
+HRESULT DAPI LogStringArgs(
+ __in REPORT_LEVEL rl,
+ __in_z __format_string LPCSTR szFormat,
+ __in va_list args
+ );
+
+HRESULT DAPIV LogStringLine(
+ __in REPORT_LEVEL rl,
+ __in_z __format_string LPCSTR szFormat,
+ ...
+ );
+
+HRESULT DAPI LogStringLineArgs(
+ __in REPORT_LEVEL rl,
+ __in_z __format_string LPCSTR szFormat,
+ __in va_list args
+ );
+
+HRESULT DAPI LogIdModuleArgs(
+ __in REPORT_LEVEL rl,
+ __in DWORD dwLogId,
+ __in_opt HMODULE hModule,
+ __in va_list args
+ );
+
+/*
+ * Wraps LogIdModuleArgs, so inline to save the function call
+ */
+
+inline HRESULT LogId(
+ __in REPORT_LEVEL rl,
+ __in DWORD dwLogId,
+ ...
+ )
+{
+ HRESULT hr = S_OK;
+ va_list args;
+
+ va_start(args, dwLogId);
+ hr = LogIdModuleArgs(rl, dwLogId, NULL, args);
+ va_end(args);
+
+ return hr;
+}
+
+
+/*
+ * Wraps LogIdModuleArgs, so inline to save the function call
+ */
+
+inline HRESULT LogIdArgs(
+ __in REPORT_LEVEL rl,
+ __in DWORD dwLogId,
+ __in va_list args
+ )
+{
+ return LogIdModuleArgs(rl, dwLogId, NULL, args);
+}
+
+HRESULT DAPIV LogErrorString(
+ __in HRESULT hrError,
+ __in_z __format_string LPCSTR szFormat,
+ ...
+ );
+
+HRESULT DAPI LogErrorStringArgs(
+ __in HRESULT hrError,
+ __in_z __format_string LPCSTR szFormat,
+ __in va_list args
+ );
+
+HRESULT DAPI LogErrorIdModule(
+ __in HRESULT hrError,
+ __in DWORD dwLogId,
+ __in_opt HMODULE hModule,
+ __in_z_opt LPCWSTR wzString1,
+ __in_z_opt LPCWSTR wzString2,
+ __in_z_opt LPCWSTR wzString3
+ );
+
+inline HRESULT LogErrorId(
+ __in HRESULT hrError,
+ __in DWORD dwLogId,
+ __in_z_opt LPCWSTR wzString1,
+ __in_z_opt LPCWSTR wzString2,
+ __in_z_opt LPCWSTR wzString3
+ )
+{
+ return LogErrorIdModule(hrError, dwLogId, NULL, wzString1, wzString2, wzString3);
+}
+
+HRESULT DAPI LogHeader();
+
+HRESULT DAPI LogFooter();
+
+HRESULT LogStringWorkRaw(
+ __in_z LPCSTR szLogData
+ );
+
+// begin the switch of LogXXX to LogStringXXX
+#define Log LogString
+#define LogLine LogStringLine
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/memutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/memutil.h
new file mode 100644
index 0000000..0030260
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/memutil.h
@@ -0,0 +1,55 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseMem(p) if (p) { MemFree(p); }
+#define ReleaseNullMem(p) if (p) { MemFree(p); p = NULL; }
+
+HRESULT DAPI MemInitialize();
+void DAPI MemUninitialize();
+
+LPVOID DAPI MemAlloc(
+ __in SIZE_T cbSize,
+ __in BOOL fZero
+ );
+LPVOID DAPI MemReAlloc(
+ __in LPVOID pv,
+ __in SIZE_T cbSize,
+ __in BOOL fZero
+ );
+HRESULT DAPI MemReAllocSecure(
+ __in LPVOID pv,
+ __in SIZE_T cbSize,
+ __in BOOL fZero,
+ __deref_out LPVOID* ppvNew
+ );
+HRESULT DAPI MemEnsureArraySize(
+ __deref_out_bcount(cArray * cbArrayType) LPVOID* ppvArray,
+ __in DWORD cArray,
+ __in SIZE_T cbArrayType,
+ __in DWORD dwGrowthCount
+ );
+HRESULT DAPI MemInsertIntoArray(
+ __deref_out_bcount((cExistingArray + cNumInsertItems) * cbArrayType) LPVOID* ppvArray,
+ __in DWORD dwInsertIndex,
+ __in DWORD cNumInsertItems,
+ __in DWORD cExistingArray,
+ __in SIZE_T cbArrayType,
+ __in DWORD dwGrowthCount
+ );
+
+HRESULT DAPI MemFree(
+ __in LPVOID pv
+ );
+SIZE_T DAPI MemSize(
+ __in LPCVOID pv
+ );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/metautil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/metautil.h
new file mode 100644
index 0000000..31f9ff5
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/metautil.h
@@ -0,0 +1,52 @@
+#pragma once
+// 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.
+
+
+#include
+#include
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// structs
+
+// prototypes
+HRESULT DAPI MetaFindWebBase(
+ __in IMSAdminBaseW* piMetabase,
+ __in_z LPCWSTR wzIP,
+ __in int iPort,
+ __in_z LPCWSTR wzHeader,
+ __in BOOL fSecure,
+ __out_ecount(cchWebBase) LPWSTR wzWebBase,
+ __in DWORD cchWebBase
+ );
+HRESULT DAPI MetaFindFreeWebBase(
+ __in IMSAdminBaseW* piMetabase,
+ __out_ecount(cchWebBase) LPWSTR wzWebBase,
+ __in DWORD cchWebBase
+ );
+
+HRESULT DAPI MetaOpenKey(
+ __in IMSAdminBaseW* piMetabase,
+ __in METADATA_HANDLE mhKey,
+ __in_z LPCWSTR wzKey,
+ __in DWORD dwAccess,
+ __in DWORD cRetries,
+ __out METADATA_HANDLE* pmh
+ );
+HRESULT DAPI MetaGetValue(
+ __in IMSAdminBaseW* piMetabase,
+ __in METADATA_HANDLE mhKey,
+ __in_z LPCWSTR wzKey,
+ __inout METADATA_RECORD* pmr
+ );
+void DAPI MetaFreeValue(
+ __in METADATA_RECORD* pmr
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/osutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/osutil.h
new file mode 100644
index 0000000..01f8d9c
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/osutil.h
@@ -0,0 +1,39 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum OS_VERSION
+{
+ OS_VERSION_UNKNOWN,
+ OS_VERSION_WINNT,
+ OS_VERSION_WIN2000,
+ OS_VERSION_WINXP,
+ OS_VERSION_WIN2003,
+ OS_VERSION_VISTA,
+ OS_VERSION_WIN2008,
+ OS_VERSION_WIN7,
+ OS_VERSION_WIN2008_R2,
+ OS_VERSION_FUTURE
+} OS_VERSION;
+
+void DAPI OsGetVersion(
+ __out OS_VERSION* pVersion,
+ __out DWORD* pdwServicePack
+ );
+HRESULT DAPI OsCouldRunPrivileged(
+ __out BOOL* pfPrivileged
+ );
+HRESULT DAPI OsIsRunningPrivileged(
+ __out BOOL* pfPrivileged
+ );
+HRESULT DAPI OsIsUacEnabled(
+ __out BOOL* pfUacEnabled
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/pathutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/pathutil.h
new file mode 100644
index 0000000..99a1522
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/pathutil.h
@@ -0,0 +1,228 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum PATH_EXPAND
+{
+ PATH_EXPAND_ENVIRONMENT = 0x0001,
+ PATH_EXPAND_FULLPATH = 0x0002,
+} PATH_EXPAND;
+
+
+/*******************************************************************
+ PathCommandLineAppend - appends a command line argument on to a
+ string such that ::CommandLineToArgv() will shred them correctly
+ (i.e. quote arguments with spaces in them).
+********************************************************************/
+DAPI_(HRESULT) PathCommandLineAppend(
+ __deref_out_z LPWSTR* psczCommandLine,
+ __in_z LPCWSTR wzArgument
+ );
+
+/*******************************************************************
+ PathFile - returns a pointer to the file part of the path.
+********************************************************************/
+DAPI_(LPWSTR) PathFile(
+ __in_z LPCWSTR wzPath
+ );
+
+/*******************************************************************
+ PathExtension - returns a pointer to the extension part of the path
+ (including the dot).
+********************************************************************/
+DAPI_(LPCWSTR) PathExtension(
+ __in_z LPCWSTR wzPath
+ );
+
+/*******************************************************************
+ PathGetDirectory - extracts the directory from a path.
+********************************************************************/
+DAPI_(HRESULT) PathGetDirectory(
+ __in_z LPCWSTR wzPath,
+ __out LPWSTR *psczDirectory
+ );
+
+/*******************************************************************
+PathGetParentPath - extracts the parent directory from a full path.
+********************************************************************/
+DAPI_(HRESULT) PathGetParentPath(
+ __in_z LPCWSTR wzPath,
+ __out LPWSTR *psczDirectory
+ );
+
+/*******************************************************************
+ PathExpand - gets the full path to a file resolving environment
+ variables along the way.
+********************************************************************/
+DAPI_(HRESULT) PathExpand(
+ __out LPWSTR *psczFullPath,
+ __in_z LPCWSTR wzRelativePath,
+ __in DWORD dwResolveFlags
+ );
+
+/*******************************************************************
+ PathPrefix - prefixes a full path with \\?\ or \\?\UNC as
+ appropriate.
+********************************************************************/
+DAPI_(HRESULT) PathPrefix(
+ __inout LPWSTR *psczFullPath
+ );
+
+/*******************************************************************
+ PathFixedBackslashTerminate - appends a \ if path does not have it
+ already, but fails if the buffer is
+ insufficient.
+********************************************************************/
+DAPI_(HRESULT) PathFixedBackslashTerminate(
+ __inout_ecount_z(cchPath) LPWSTR wzPath,
+ __in DWORD_PTR cchPath
+ );
+
+/*******************************************************************
+ PathBackslashTerminate - appends a \ if path does not have it
+ already.
+********************************************************************/
+DAPI_(HRESULT) PathBackslashTerminate(
+ __inout LPWSTR* psczPath
+ );
+
+/*******************************************************************
+ PathForCurrentProcess - gets the full path to the currently executing
+ process or (optionally) a module inside the process.
+********************************************************************/
+DAPI_(HRESULT) PathForCurrentProcess(
+ __inout LPWSTR *psczFullPath,
+ __in_opt HMODULE hModule
+ );
+
+/*******************************************************************
+ PathRelativeToModule - gets the name of a file in the same
+ directory as the current process or (optionally) a module inside
+ the process
+********************************************************************/
+DAPI_(HRESULT) PathRelativeToModule(
+ __inout LPWSTR *psczFullPath,
+ __in_opt LPCWSTR wzFileName,
+ __in_opt HMODULE hModule
+ );
+
+/*******************************************************************
+ PathCreateTempFile
+
+ Note: if wzDirectory is null, ::GetTempPath() will be used instead.
+ if wzFileNameTemplate is null, GetTempFileName() will be used instead.
+*******************************************************************/
+DAPI_(HRESULT) PathCreateTempFile(
+ __in_opt LPCWSTR wzDirectory,
+ __in_opt __format_string LPCWSTR wzFileNameTemplate,
+ __in DWORD dwUniqueCount,
+ __in DWORD dwFileAttributes,
+ __out_opt LPWSTR* psczTempFile,
+ __out_opt HANDLE* phTempFile
+ );
+
+/*******************************************************************
+ PathCreateTimeBasedTempFile - creates an empty temp file based on current
+ system time
+********************************************************************/
+DAPI_(HRESULT) PathCreateTimeBasedTempFile(
+ __in_z_opt LPCWSTR wzDirectory,
+ __in_z LPCWSTR wzPrefix,
+ __in_z_opt LPCWSTR wzPostfix,
+ __in_z LPCWSTR wzExtension,
+ __deref_opt_out_z LPWSTR* psczTempFile,
+ __out_opt HANDLE* phTempFile
+ );
+
+/*******************************************************************
+ PathCreateTempDirectory
+
+ Note: if wzDirectory is null, ::GetTempPath() will be used instead.
+*******************************************************************/
+DAPI_(HRESULT) PathCreateTempDirectory(
+ __in_opt LPCWSTR wzDirectory,
+ __in __format_string LPCWSTR wzDirectoryNameTemplate,
+ __in DWORD dwUniqueCount,
+ __out LPWSTR* psczTempDirectory
+ );
+
+/*******************************************************************
+ PathGetKnownFolder - returns the path to a well-known shell folder
+
+*******************************************************************/
+DAPI_(HRESULT) PathGetKnownFolder(
+ __in int csidl,
+ __out LPWSTR* psczKnownFolder
+ );
+
+/*******************************************************************
+ PathIsAbsolute - returns true if the path is absolute; false
+ otherwise.
+*******************************************************************/
+DAPI_(BOOL) PathIsAbsolute(
+ __in_z LPCWSTR wzPath
+ );
+
+/*******************************************************************
+ PathConcat - like .NET's Path.Combine, lets you build up a path
+ one piece -- file or directory -- at a time.
+*******************************************************************/
+DAPI_(HRESULT) PathConcat(
+ __in_opt LPCWSTR wzPath1,
+ __in_opt LPCWSTR wzPath2,
+ __deref_out_z LPWSTR* psczCombined
+ );
+
+/*******************************************************************
+ PathEnsureQuoted - ensures that a path is quoted; optionally,
+ this function also terminates a directory with a backslash
+ if it is not already.
+*******************************************************************/
+DAPI_(HRESULT) PathEnsureQuoted(
+ __inout LPWSTR* ppszPath,
+ __in BOOL fDirectory
+ );
+
+/*******************************************************************
+ PathCompare - compares the fully expanded path of the two paths using
+ ::CompareStringW().
+*******************************************************************/
+DAPI_(HRESULT) PathCompare(
+ __in_z LPCWSTR wzPath1,
+ __in_z LPCWSTR wzPath2,
+ __out int* pnResult
+ );
+
+/*******************************************************************
+ PathCompress - sets the compression state on an existing file or
+ directory. A no-op on file systems that don't
+ support compression.
+*******************************************************************/
+DAPI_(HRESULT) PathCompress(
+ __in_z LPCWSTR wzPath
+ );
+
+/*******************************************************************
+PathCanonicalizePath - wrapper around PathCanonicalizeW.
+*******************************************************************/
+DAPI_(HRESULT) PathCanonicalizePath(
+ __in_z LPCWSTR wzPath,
+ __deref_out_z LPWSTR* psczCanonicalized
+ );
+
+/*******************************************************************
+PathDirectoryContainsPath - checks if wzPath is located inside
+ wzDirectory.
+*******************************************************************/
+DAPI_(HRESULT) PathDirectoryContainsPath(
+ __in_z LPCWSTR wzDirectory,
+ __in_z LPCWSTR wzPath
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/perfutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/perfutil.h
new file mode 100644
index 0000000..7557511
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/perfutil.h
@@ -0,0 +1,24 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// structs
+
+
+// functions
+void DAPI PerfInitialize(
+ );
+void DAPI PerfClickTime(
+ __out_opt LARGE_INTEGER* pliElapsed
+ );
+double DAPI PerfConvertToSeconds(
+ __in const LARGE_INTEGER* pli
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/polcutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/polcutil.h
new file mode 100644
index 0000000..1361804
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/polcutil.h
@@ -0,0 +1,39 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+const LPCWSTR POLICY_BURN_REGISTRY_PATH = L"WiX\\Burn";
+
+/********************************************************************
+PolcReadNumber - reads a number from policy.
+
+NOTE: S_FALSE returned if policy not set.
+NOTE: out is set to default on S_FALSE or any error.
+********************************************************************/
+HRESULT DAPI PolcReadNumber(
+ __in_z LPCWSTR wzPolicyPath,
+ __in_z LPCWSTR wzPolicyName,
+ __in DWORD dwDefault,
+ __out DWORD* pdw
+ );
+
+/********************************************************************
+PolcReadString - reads a string from policy.
+
+NOTE: S_FALSE returned if policy not set.
+NOTE: out is set to default on S_FALSE or any error.
+********************************************************************/
+HRESULT DAPI PolcReadString(
+ __in_z LPCWSTR wzPolicyPath,
+ __in_z LPCWSTR wzPolicyName,
+ __in_z_opt LPCWSTR wzDefault,
+ __deref_out_z LPWSTR* pscz
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/procutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/procutil.h
new file mode 100644
index 0000000..00f3f35
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/procutil.h
@@ -0,0 +1,75 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// structs
+typedef struct _PROC_FILESYSTEMREDIRECTION
+{
+ BOOL fDisabled;
+ LPVOID pvRevertState;
+} PROC_FILESYSTEMREDIRECTION;
+
+HRESULT DAPI ProcElevated(
+ __in HANDLE hProcess,
+ __out BOOL* pfElevated
+ );
+
+HRESULT DAPI ProcWow64(
+ __in HANDLE hProcess,
+ __out BOOL* pfWow64
+ );
+HRESULT DAPI ProcDisableWowFileSystemRedirection(
+ __in PROC_FILESYSTEMREDIRECTION* pfsr
+ );
+HRESULT DAPI ProcRevertWowFileSystemRedirection(
+ __in PROC_FILESYSTEMREDIRECTION* pfsr
+ );
+
+HRESULT DAPI ProcExec(
+ __in_z LPCWSTR wzExecutablePath,
+ __in_z_opt LPCWSTR wzCommandLine,
+ __in int nCmdShow,
+ __out HANDLE *phProcess
+ );
+HRESULT DAPI ProcExecute(
+ __in_z LPWSTR wzCommand,
+ __out HANDLE *phProcess,
+ __out_opt HANDLE *phChildStdIn,
+ __out_opt HANDLE *phChildStdOutErr
+ );
+HRESULT DAPI ProcWaitForCompletion(
+ __in HANDLE hProcess,
+ __in DWORD dwTimeout,
+ __out DWORD *pReturnCode
+ );
+HRESULT DAPI ProcWaitForIds(
+ __in_ecount(cProcessIds) const DWORD* pdwProcessIds,
+ __in DWORD cProcessIds,
+ __in DWORD dwMilliseconds
+ );
+HRESULT DAPI ProcCloseIds(
+ __in_ecount(cProcessIds) const DWORD* pdwProcessIds,
+ __in DWORD cProcessIds
+ );
+
+// following code in proc2utl.cpp due to dependency on PSAPI.DLL.
+HRESULT DAPI ProcFindAllIdsFromExeName(
+ __in_z LPCWSTR wzExeName,
+ __out DWORD** ppdwProcessIds,
+ __out DWORD* pcProcessIds
+ );
+
+// following code in proc3utl.cpp due to dependency on Wtsapi32.DLL.
+HRESULT DAPI ProcExecuteAsInteractiveUser(
+ __in_z LPCWSTR wzExecutablePath,
+ __in_z LPCWSTR wzCommand,
+ __out HANDLE *phProcess
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/regutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/regutil.h
new file mode 100644
index 0000000..897b9d0
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/regutil.h
@@ -0,0 +1,233 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define ReleaseRegKey(h) if (h) { ::RegCloseKey(h); h = NULL; }
+
+typedef enum REG_KEY_BITNESS
+{
+ REG_KEY_DEFAULT = 0,
+ REG_KEY_32BIT = 1,
+ REG_KEY_64BIT = 2
+} REG_KEY_BITNESS;
+
+typedef LSTATUS (APIENTRY *PFN_REGCREATEKEYEXW)(
+ __in HKEY hKey,
+ __in LPCWSTR lpSubKey,
+ __reserved DWORD Reserved,
+ __in_opt LPWSTR lpClass,
+ __in DWORD dwOptions,
+ __in REGSAM samDesired,
+ __in_opt CONST LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+ __out PHKEY phkResult,
+ __out_opt LPDWORD lpdwDisposition
+ );
+typedef LSTATUS (APIENTRY *PFN_REGOPENKEYEXW)(
+ __in HKEY hKey,
+ __in_opt LPCWSTR lpSubKey,
+ __reserved DWORD ulOptions,
+ __in REGSAM samDesired,
+ __out PHKEY phkResult
+ );
+typedef LSTATUS (APIENTRY *PFN_REGDELETEKEYEXW)(
+ __in HKEY hKey,
+ __in LPCWSTR lpSubKey,
+ __in REGSAM samDesired,
+ __reserved DWORD Reserved
+ );
+typedef LSTATUS (APIENTRY *PFN_REGDELETEKEYW)(
+ __in HKEY hKey,
+ __in LPCWSTR lpSubKey
+ );
+typedef LSTATUS (APIENTRY *PFN_REGENUMKEYEXW)(
+ __in HKEY hKey,
+ __in DWORD dwIndex,
+ __out LPWSTR lpName,
+ __inout LPDWORD lpcName,
+ __reserved LPDWORD lpReserved,
+ __inout LPWSTR lpClass,
+ __inout_opt LPDWORD lpcClass,
+ __out_opt PFILETIME lpftLastWriteTime
+ );
+typedef LSTATUS (APIENTRY *PFN_REGENUMVALUEW)(
+ __in HKEY hKey,
+ __in DWORD dwIndex,
+ __out LPWSTR lpValueName,
+ __inout LPDWORD lpcchValueName,
+ __reserved LPDWORD lpReserved,
+ __out_opt LPDWORD lpType,
+ __out_opt LPBYTE lpData,
+ __out_opt LPDWORD lpcbData
+ );
+typedef LSTATUS (APIENTRY *PFN_REGQUERYINFOKEYW)(
+ __in HKEY hKey,
+ __out LPWSTR lpClass,
+ __inout_opt LPDWORD lpcClass,
+ __reserved LPDWORD lpReserved,
+ __out_opt LPDWORD lpcSubKeys,
+ __out_opt LPDWORD lpcMaxSubKeyLen,
+ __out_opt LPDWORD lpcMaxClassLen,
+ __out_opt LPDWORD lpcValues,
+ __out_opt LPDWORD lpcMaxValueNameLen,
+ __out_opt LPDWORD lpcMaxValueLen,
+ __out_opt LPDWORD lpcbSecurityDescriptor,
+ __out_opt PFILETIME lpftLastWriteTime
+ );
+typedef LSTATUS (APIENTRY *PFN_REGQUERYVALUEEXW)(
+ __in HKEY hKey,
+ __in_opt LPCWSTR lpValueName,
+ __reserved LPDWORD lpReserved,
+ __out_opt LPDWORD lpType,
+ __out_bcount_part_opt(*lpcbData, *lpcbData) __out_data_source(REGISTRY) LPBYTE lpData,
+ __inout_opt LPDWORD lpcbData
+ );
+typedef LSTATUS (APIENTRY *PFN_REGSETVALUEEXW)(
+ __in HKEY hKey,
+ __in_opt LPCWSTR lpValueName,
+ __reserved DWORD Reserved,
+ __in DWORD dwType,
+ __in_bcount_opt(cbData) CONST BYTE* lpData,
+ __in DWORD cbData
+ );
+typedef LSTATUS (APIENTRY *PFN_REGDELETEVALUEW)(
+ __in HKEY hKey,
+ __in_opt LPCWSTR lpValueName
+ );
+
+HRESULT DAPI RegInitialize();
+void DAPI RegUninitialize();
+
+void DAPI RegFunctionOverride(
+ __in_opt PFN_REGCREATEKEYEXW pfnRegCreateKeyExW,
+ __in_opt PFN_REGOPENKEYEXW pfnRegOpenKeyExW,
+ __in_opt PFN_REGDELETEKEYEXW pfnRegDeleteKeyExW,
+ __in_opt PFN_REGENUMKEYEXW pfnRegEnumKeyExW,
+ __in_opt PFN_REGENUMVALUEW pfnRegEnumValueW,
+ __in_opt PFN_REGQUERYINFOKEYW pfnRegQueryInfoKeyW,
+ __in_opt PFN_REGQUERYVALUEEXW pfnRegQueryValueExW,
+ __in_opt PFN_REGSETVALUEEXW pfnRegSetValueExW,
+ __in_opt PFN_REGDELETEVALUEW pfnRegDeleteValueW
+ );
+HRESULT DAPI RegCreate(
+ __in HKEY hkRoot,
+ __in_z LPCWSTR wzSubKey,
+ __in DWORD dwAccess,
+ __out HKEY* phk
+ );
+HRESULT DAPI RegCreateEx(
+ __in HKEY hkRoot,
+ __in_z LPCWSTR wzSubKey,
+ __in DWORD dwAccess,
+ __in BOOL fVolatile,
+ __in_opt SECURITY_ATTRIBUTES* pSecurityAttributes,
+ __out HKEY* phk,
+ __out_opt BOOL* pfCreated
+ );
+HRESULT DAPI RegOpen(
+ __in HKEY hkRoot,
+ __in_z LPCWSTR wzSubKey,
+ __in DWORD dwAccess,
+ __out HKEY* phk
+ );
+HRESULT DAPI RegDelete(
+ __in HKEY hkRoot,
+ __in_z LPCWSTR wzSubKey,
+ __in REG_KEY_BITNESS kbKeyBitness,
+ __in BOOL fDeleteTree
+ );
+HRESULT DAPI RegKeyEnum(
+ __in HKEY hk,
+ __in DWORD dwIndex,
+ __deref_out_z LPWSTR* psczKey
+ );
+HRESULT DAPI RegValueEnum(
+ __in HKEY hk,
+ __in DWORD dwIndex,
+ __deref_out_z LPWSTR* psczName,
+ __out_opt DWORD *pdwType
+ );
+HRESULT DAPI RegGetType(
+ __in HKEY hk,
+ __in_z_opt LPCWSTR wzName,
+ __out DWORD *pdwType
+ );
+HRESULT DAPI RegReadBinary(
+ __in HKEY hk,
+ __in_z_opt LPCWSTR wzName,
+ __deref_out_bcount_opt(*pcbBuffer) BYTE** ppbBuffer,
+ __out SIZE_T *pcbBuffer
+ );
+HRESULT DAPI RegReadString(
+ __in HKEY hk,
+ __in_z_opt LPCWSTR wzName,
+ __deref_out_z LPWSTR* psczValue
+ );
+HRESULT DAPI RegReadStringArray(
+ __in HKEY hk,
+ __in_z_opt LPCWSTR wzName,
+ __deref_out_ecount_opt(pcStrings) LPWSTR** prgsczStrings,
+ __out DWORD *pcStrings
+ );
+HRESULT DAPI RegReadVersion(
+ __in HKEY hk,
+ __in_z_opt LPCWSTR wzName,
+ __out DWORD64* pdw64Version
+ );
+HRESULT DAPI RegReadNumber(
+ __in HKEY hk,
+ __in_z_opt LPCWSTR wzName,
+ __out DWORD* pdwValue
+ );
+HRESULT DAPI RegReadQword(
+ __in HKEY hk,
+ __in_z_opt LPCWSTR wzName,
+ __out DWORD64* pqwValue
+ );
+HRESULT DAPI RegWriteBinary(
+ __in HKEY hk,
+ __in_z_opt LPCWSTR wzName,
+ __in_bcount(cbBuffer) const BYTE *pbBuffer,
+ __in DWORD cbBuffer
+ );
+HRESULT DAPI RegWriteString(
+ __in HKEY hk,
+ __in_z_opt LPCWSTR wzName,
+ __in_z_opt LPCWSTR wzValue
+ );
+HRESULT DAPI RegWriteStringArray(
+ __in HKEY hk,
+ __in_z_opt LPCWSTR wzName,
+ __in_ecount(cValues) LPWSTR *rgwzStrings,
+ __in DWORD cStrings
+ );
+HRESULT DAPI RegWriteStringFormatted(
+ __in HKEY hk,
+ __in_z_opt LPCWSTR wzName,
+ __in __format_string LPCWSTR szFormat,
+ ...
+ );
+HRESULT DAPI RegWriteNumber(
+ __in HKEY hk,
+ __in_z_opt LPCWSTR wzName,
+ __in DWORD dwValue
+ );
+HRESULT DAPI RegWriteQword(
+ __in HKEY hk,
+ __in_z_opt LPCWSTR wzName,
+ __in DWORD64 qwValue
+ );
+HRESULT DAPI RegQueryKey(
+ __in HKEY hk,
+ __out_opt DWORD* pcSubKeys,
+ __out_opt DWORD* pcValues
+ );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/resrutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/resrutil.h
new file mode 100644
index 0000000..1f4d8e1
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/resrutil.h
@@ -0,0 +1,43 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT DAPI ResGetStringLangId(
+ __in_opt LPCWSTR wzPath,
+ __in UINT uID,
+ __out WORD *pwLangId
+ );
+
+HRESULT DAPI ResReadString(
+ __in HINSTANCE hinst,
+ __in UINT uID,
+ __deref_out_z LPWSTR* ppwzString
+ );
+
+HRESULT DAPI ResReadStringAnsi(
+ __in HINSTANCE hinst,
+ __in UINT uID,
+ __deref_out_z LPSTR* ppszString
+ );
+
+HRESULT DAPI ResReadData(
+ __in_opt HINSTANCE hinst,
+ __in_z LPCSTR szDataName,
+ __deref_out_bcount(*pcb) PVOID *ppv,
+ __out DWORD *pcb
+ );
+
+HRESULT DAPI ResExportDataToFile(
+ __in_z LPCSTR szDataName,
+ __in_z LPCWSTR wzTargetFile,
+ __in DWORD dwCreationDisposition
+ );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/reswutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/reswutil.h
new file mode 100644
index 0000000..31435ae
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/reswutil.h
@@ -0,0 +1,31 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT DAPI ResWriteString(
+ __in_z LPCWSTR wzResourceFile,
+ __in DWORD dwDataId,
+ __in_z LPCWSTR wzData,
+ __in WORD wLangId
+ );
+
+HRESULT DAPI ResWriteData(
+ __in_z LPCWSTR wzResourceFile,
+ __in_z LPCSTR szDataName,
+ __in PVOID pData,
+ __in DWORD cbData
+ );
+
+HRESULT DAPI ResImportDataFromFile(
+ __in_z LPCWSTR wzTargetFile,
+ __in_z LPCWSTR wzSourceFile,
+ __in_z LPCSTR szDataName
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/rexutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/rexutil.h
new file mode 100644
index 0000000..77f5604
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/rexutil.h
@@ -0,0 +1,54 @@
+#pragma once
+// 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.
+
+
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// defines
+#define FILETABLESIZE 40
+
+// structs
+struct MEM_FILE
+{
+ LPCBYTE vpStart;
+ UINT uiCurrent;
+ UINT uiLength;
+};
+
+typedef enum FAKE_FILE_TYPE { NORMAL_FILE, MEMORY_FILE } FAKE_FILE_TYPE;
+
+typedef HRESULT (*REX_CALLBACK_PROGRESS)(BOOL fBeginFile, LPCWSTR wzFileId, LPVOID pvContext);
+typedef VOID (*REX_CALLBACK_WRITE)(UINT cb);
+
+
+struct FAKE_FILE // used __in internal file table
+{
+ BOOL fUsed;
+ FAKE_FILE_TYPE fftType;
+ MEM_FILE mfFile; // State for memory file
+ HANDLE hFile; // Handle for disk file
+};
+
+// functions
+HRESULT RexInitialize();
+void RexUninitialize();
+
+HRESULT RexExtract(
+ __in_z LPCSTR szResource,
+ __in_z LPCWSTR wzExtractId,
+ __in_z LPCWSTR wzExtractDir,
+ __in_z LPCWSTR wzExtractName,
+ __in REX_CALLBACK_PROGRESS pfnProgress,
+ __in REX_CALLBACK_WRITE pfnWrite,
+ __in LPVOID pvContext
+ );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/rmutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/rmutil.h
new file mode 100644
index 0000000..ce7bf25
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/rmutil.h
@@ -0,0 +1,46 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _RMU_SESSION *PRMU_SESSION;
+
+HRESULT DAPI RmuJoinSession(
+ __out PRMU_SESSION *ppSession,
+ __in_z LPCWSTR wzSessionKey
+ );
+
+HRESULT DAPI RmuAddFile(
+ __in PRMU_SESSION pSession,
+ __in_z LPCWSTR wzPath
+ );
+
+HRESULT DAPI RmuAddProcessById(
+ __in PRMU_SESSION pSession,
+ __in DWORD dwProcessId
+ );
+
+HRESULT DAPI RmuAddProcessesByName(
+ __in PRMU_SESSION pSession,
+ __in_z LPCWSTR wzProcessName
+ );
+
+HRESULT DAPI RmuAddService(
+ __in PRMU_SESSION pSession,
+ __in_z LPCWSTR wzServiceName
+ );
+
+HRESULT DAPI RmuRegisterResources(
+ __in PRMU_SESSION pSession
+ );
+
+HRESULT DAPI RmuEndSession(
+ __in PRMU_SESSION pSession
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/rssutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/rssutil.h
new file mode 100644
index 0000000..064ab14
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/rssutil.h
@@ -0,0 +1,89 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseRssChannel(p) if (p) { RssFreeChannel(p); }
+#define ReleaseNullRssChannel(p) if (p) { RssFreeChannel(p); p = NULL; }
+
+
+struct RSS_UNKNOWN_ATTRIBUTE
+{
+ LPWSTR wzNamespace;
+ LPWSTR wzAttribute;
+ LPWSTR wzValue;
+
+ RSS_UNKNOWN_ATTRIBUTE* pNext;
+};
+
+struct RSS_UNKNOWN_ELEMENT
+{
+ LPWSTR wzNamespace;
+ LPWSTR wzElement;
+ LPWSTR wzValue;
+
+ RSS_UNKNOWN_ATTRIBUTE* pAttributes;
+ RSS_UNKNOWN_ELEMENT* pNext;
+};
+
+struct RSS_ITEM
+{
+ LPWSTR wzTitle;
+ LPWSTR wzLink;
+ LPWSTR wzDescription;
+
+ LPWSTR wzGuid;
+ FILETIME ftPublished;
+
+ LPWSTR wzEnclosureUrl;
+ DWORD dwEnclosureSize;
+ LPWSTR wzEnclosureType;
+
+ RSS_UNKNOWN_ELEMENT* pUnknownElements;
+};
+
+struct RSS_CHANNEL
+{
+ LPWSTR wzTitle;
+ LPWSTR wzLink;
+ LPWSTR wzDescription;
+ DWORD dwTimeToLive;
+
+ RSS_UNKNOWN_ELEMENT* pUnknownElements;
+
+ DWORD cItems;
+ RSS_ITEM rgItems[1];
+};
+
+HRESULT DAPI RssInitialize(
+ );
+
+void DAPI RssUninitialize(
+ );
+
+HRESULT DAPI RssParseFromString(
+ __in_z LPCWSTR wzRssString,
+ __out RSS_CHANNEL **ppChannel
+ );
+
+HRESULT DAPI RssParseFromFile(
+ __in_z LPCWSTR wzRssFile,
+ __out RSS_CHANNEL **ppChannel
+ );
+
+// Adding this until we have the updated specstrings.h
+#ifndef __in_xcount
+#define __in_xcount(size)
+#endif
+
+void DAPI RssFreeChannel(
+ __in_xcount(pChannel->cItems) RSS_CHANNEL *pChannel
+ );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/sceutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/sceutil.h
new file mode 100644
index 0000000..026b645
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/sceutil.h
@@ -0,0 +1,261 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include
+#include
+#include
+
+typedef void* SCE_DATABASE_HANDLE;
+typedef void* SCE_ROW_HANDLE;
+typedef void* SCE_QUERY_HANDLE;
+typedef void* SCE_QUERY_RESULTS_HANDLE;
+
+extern const int SCE_ROW_HANDLE_BYTES;
+extern const int SCE_QUERY_HANDLE_BYTES;
+extern const int SCE_QUERY_RESULTS_HANDLE_BYTES;
+
+#define ReleaseSceRow(prrh) if (prrh) { SceFreeRow(prrh); }
+#define ReleaseNullSceRow(prrh) if (prrh) { SceFreeRow(prrh); prrh = NULL; }
+#define ReleaseSceQuery(pqh) if (pqh) { SceFreeQuery(pqh); }
+#define ReleaseNullSceQuery(pqh) if (pqh) { SceFreeQuery(pqh); pqh = NULL; }
+#define ReleaseSceQueryResults(pqh) if (pqh) { SceFreeQueryResults(pqh); }
+#define ReleaseNullSceQueryResults(pqh) if (pqh) { SceFreeQueryResults(pqh); pqh = NULL; }
+
+struct SCE_COLUMN_SCHEMA
+{
+ LPCWSTR wzName;
+ DBTYPE dbtColumnType;
+ DWORD dwLength;
+ BOOL fPrimaryKey; // If this column is the primary key
+ BOOL fNullable;
+ BOOL fAutoIncrement;
+
+ LPWSTR wzRelationName;
+ DWORD dwForeignKeyTable;
+ DWORD dwForeignKeyColumn;
+};
+
+struct SCE_INDEX_SCHEMA
+{
+ LPWSTR wzName;
+
+ DWORD *rgColumns;
+ DWORD cColumns;
+};
+
+struct SCE_TABLE_SCHEMA
+{
+ LPCWSTR wzName;
+ DWORD cColumns;
+ SCE_COLUMN_SCHEMA *rgColumns;
+
+ DWORD cIndexes;
+ SCE_INDEX_SCHEMA *rgIndexes;
+
+ // Internal to SCEUtil - consumers shouldn't access or modify
+ // TODO: enforce / hide in a handle of some sort?
+ IRowset *pIRowset;
+ IRowsetChange *pIRowsetChange;
+};
+
+struct SCE_DATABASE_SCHEMA
+{
+ DWORD cTables;
+ SCE_TABLE_SCHEMA *rgTables;
+};
+
+struct SCE_DATABASE
+{
+ SCE_DATABASE_HANDLE sdbHandle;
+ SCE_DATABASE_SCHEMA *pdsSchema;
+};
+
+HRESULT DAPI SceCreateDatabase(
+ __in_z LPCWSTR sczFile,
+ __deref_out SCE_DATABASE **ppDatabase
+ );
+HRESULT DAPI SceOpenDatabase(
+ __in_z LPCWSTR sczFile,
+ __in LPCWSTR wzSchemaType,
+ __in DWORD dwExpectedVersion,
+ __deref_out SCE_DATABASE **ppDatabase,
+ __in BOOL fReadOnly
+ );
+HRESULT DAPI SceEnsureDatabase(
+ __in_z LPCWSTR sczFile,
+ __in LPCWSTR wzSchemaType,
+ __in DWORD dwExpectedVersion,
+ __in SCE_DATABASE_SCHEMA *pdsSchema,
+ __deref_out SCE_DATABASE **ppDatabase
+ );
+HRESULT DAPI SceIsTableEmpty(
+ __in SCE_DATABASE *pDatabase,
+ __in DWORD dwTableIndex,
+ __out BOOL *pfEmpty
+ );
+HRESULT DAPI SceGetFirstRow(
+ __in SCE_DATABASE *pDatabase,
+ __in DWORD dwTableIndex,
+ __deref_out_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE *pRowHandle
+ );
+HRESULT DAPI SceGetNextRow(
+ __in SCE_DATABASE *pDatabase,
+ __in DWORD dwTableIndex,
+ __deref_out_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE *pRowHandle
+ );
+HRESULT DAPI SceBeginTransaction(
+ __in SCE_DATABASE *pDatabase
+ );
+HRESULT DAPI SceCommitTransaction(
+ __in SCE_DATABASE *pDatabase
+ );
+HRESULT DAPI SceRollbackTransaction(
+ __in SCE_DATABASE *pDatabase
+ );
+HRESULT DAPI SceDeleteRow(
+ __in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE *pRowHandle
+ );
+HRESULT DAPI ScePrepareInsert(
+ __in SCE_DATABASE *pDatabase,
+ __in DWORD dwTableIndex,
+ __deref_out_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE *pRowHandle
+ );
+HRESULT DAPI SceFinishUpdate(
+ __in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle
+ );
+HRESULT DAPI SceSetColumnBinary(
+ __in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle,
+ __in DWORD dwColumnIndex,
+ __in_bcount(cbBuffer) const BYTE* pbBuffer,
+ __in SIZE_T cbBuffer
+ );
+HRESULT DAPI SceSetColumnDword(
+ __in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle,
+ __in DWORD dwColumnIndex,
+ __in const DWORD dwValue
+ );
+HRESULT DAPI SceSetColumnQword(
+ __in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle,
+ __in DWORD dwColumnIndex,
+ __in const DWORD64 qwValue
+ );
+HRESULT DAPI SceSetColumnBool(
+ __in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle,
+ __in DWORD dwColumnIndex,
+ __in const BOOL fValue
+ );
+HRESULT DAPI SceSetColumnString(
+ __in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle,
+ __in DWORD dwColumnIndex,
+ __in_z_opt LPCWSTR wzValue
+ );
+HRESULT DAPI SceSetColumnSystemTime(
+ __in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle,
+ __in DWORD dwColumnIndex,
+ __in const SYSTEMTIME *pst
+ );
+HRESULT DAPI SceSetColumnEmpty(
+ __in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle,
+ __in DWORD dwColumnIndex
+ );
+HRESULT DAPI SceGetColumnBinary(
+ __in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowReadHandle,
+ __in DWORD dwColumnIndex,
+ __out_opt BYTE **ppbBuffer,
+ __inout SIZE_T *pcbBuffer
+ );
+HRESULT DAPI SceGetColumnDword(
+ __in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowReadHandle,
+ __in DWORD dwColumnIndex,
+ __out DWORD *pdwValue
+ );
+HRESULT DAPI SceGetColumnQword(
+ __in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowReadHandle,
+ __in DWORD dwColumnIndex,
+ __out DWORD64 *pqwValue
+ );
+HRESULT DAPI SceGetColumnBool(
+ __in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowReadHandle,
+ __in DWORD dwColumnIndex,
+ __out BOOL *pfValue
+ );
+HRESULT DAPI SceGetColumnString(
+ __in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowReadHandle,
+ __in DWORD dwColumnIndex,
+ __out_z LPWSTR *psczValue
+ );
+HRESULT DAPI SceGetColumnSystemTime(
+ __in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowReadHandle,
+ __in DWORD dwColumnIndex,
+ __out SYSTEMTIME *pst
+ );
+HRESULT DAPI SceBeginQuery(
+ __in SCE_DATABASE *pDatabase,
+ __in DWORD dwTableIndex,
+ __in DWORD dwIndex,
+ __deref_out_bcount(SCE_QUERY_HANDLE_BYTES) SCE_QUERY_HANDLE *psqhHandle
+ );
+HRESULT DAPI SceSetQueryColumnBinary(
+ __in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE sqhHandle,
+ __in_bcount(cbBuffer) const BYTE* pbBuffer,
+ __in SIZE_T cbBuffer
+ );
+HRESULT DAPI SceSetQueryColumnDword(
+ __in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE sqhHandle,
+ __in const DWORD dwValue
+ );
+HRESULT DAPI SceSetQueryColumnQword(
+ __in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE sqhHandle,
+ __in const DWORD64 qwValue
+ );
+HRESULT DAPI SceSetQueryColumnBool(
+ __in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE sqhHandle,
+ __in const BOOL fValue
+ );
+HRESULT DAPI SceSetQueryColumnString(
+ __in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE sqhHandle,
+ __in_z_opt LPCWSTR wzString
+ );
+HRESULT DAPI SceSetQueryColumnSystemTime(
+ __in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowHandle,
+ __in const SYSTEMTIME *pst
+ );
+HRESULT DAPI SceSetQueryColumnEmpty(
+ __in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE sqhHandle
+ );
+HRESULT DAPI SceRunQueryExact(
+ __in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE *psqhHandle,
+ __deref_out_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE *pRowHandle
+ );
+HRESULT DAPI SceRunQueryRange(
+ __in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE *psqhHandle,
+ __deref_out_bcount(SCE_QUERY_RESULTS_BYTES) SCE_QUERY_RESULTS_HANDLE *psqrhHandle
+ );
+HRESULT DAPI SceGetNextResultRow(
+ __in_bcount(SCE_QUERY_RESULTS_BYTES) SCE_QUERY_RESULTS_HANDLE sqrhHandle,
+ __deref_out_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE *pRowHandle
+ );
+void DAPI SceCloseTable(
+ __in SCE_TABLE_SCHEMA *pTable
+ );
+HRESULT DAPI SceCloseDatabase(
+ __in SCE_DATABASE *pDatabase
+ );
+void DAPI SceFreeRow(
+ __in_bcount(SCE_ROW_HANDLE_BYTES) SCE_ROW_HANDLE rowReadHandle
+ );
+void DAPI SceFreeQuery(
+ __in_bcount(SCE_QUERY_BYTES) SCE_QUERY_HANDLE sqhHandle
+ );
+void DAPI SceFreeQueryResults(
+ __in_bcount(SCE_QUERY_RESULTS_BYTES) SCE_QUERY_RESULTS_HANDLE sqrhHandle
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/shelutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/shelutil.h
new file mode 100644
index 0000000..21e8267
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/shelutil.h
@@ -0,0 +1,47 @@
+#pragma once
+// 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.
+
+
+#ifndef REFKNOWNFOLDERID
+#define REFKNOWNFOLDERID REFGUID
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef BOOL (STDAPICALLTYPE *PFN_SHELLEXECUTEEXW)(
+ __inout LPSHELLEXECUTEINFOW lpExecInfo
+ );
+
+void DAPI ShelFunctionOverride(
+ __in_opt PFN_SHELLEXECUTEEXW pfnShellExecuteExW
+ );
+HRESULT DAPI ShelExec(
+ __in_z LPCWSTR wzTargetPath,
+ __in_opt LPCWSTR wzParameters,
+ __in_opt LPCWSTR wzVerb,
+ __in_opt LPCWSTR wzWorkingDirectory,
+ __in int nShowCmd,
+ __in_opt HWND hwndParent,
+ __out_opt HANDLE* phProcess
+ );
+HRESULT DAPI ShelExecUnelevated(
+ __in_z LPCWSTR wzTargetPath,
+ __in_z_opt LPCWSTR wzParameters,
+ __in_z_opt LPCWSTR wzVerb,
+ __in_z_opt LPCWSTR wzWorkingDirectory,
+ __in int nShowCmd
+ );
+HRESULT DAPI ShelGetFolder(
+ __out_z LPWSTR* psczFolderPath,
+ __in int csidlFolder
+ );
+HRESULT DAPI ShelGetKnownFolder(
+ __out_z LPWSTR* psczFolderPath,
+ __in REFKNOWNFOLDERID rfidFolder
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/sqlutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/sqlutil.h
new file mode 100644
index 0000000..ddf0932
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/sqlutil.h
@@ -0,0 +1,136 @@
+#pragma once
+// 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.
+
+
+#include
+#include
+#include
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// Adding this until the SQL annotations are published to specstrings.h
+#ifndef __sql_command
+#define __sql_command
+#endif
+
+// structs
+struct SQL_FILESPEC
+{
+ WCHAR wzName[MAX_PATH];
+ WCHAR wzFilename[MAX_PATH];
+ WCHAR wzSize[MAX_PATH];
+ WCHAR wzMaxSize[MAX_PATH];
+ WCHAR wzGrow[MAX_PATH];
+};
+
+
+// functions
+HRESULT DAPI SqlConnectDatabase(
+ __in_z LPCWSTR wzServer,
+ __in_z LPCWSTR wzInstance,
+ __in_z LPCWSTR wzDatabase,
+ __in BOOL fIntegratedAuth,
+ __in_z LPCWSTR wzUser,
+ __in_z LPCWSTR wzPassword,
+ __out IDBCreateSession** ppidbSession
+ );
+HRESULT DAPI SqlStartTransaction(
+ __in IDBCreateSession* pidbSession,
+ __out IDBCreateCommand** ppidbCommand,
+ __out ITransaction** ppit
+ );
+HRESULT DAPI SqlEndTransaction(
+ __in ITransaction* pit,
+ __in BOOL fCommit
+ );
+HRESULT DAPI SqlDatabaseExists(
+ __in_z LPCWSTR wzServer,
+ __in_z LPCWSTR wzInstance,
+ __in_z LPCWSTR wzDatabase,
+ __in BOOL fIntegratedAuth,
+ __in_z LPCWSTR wzUser,
+ __in_z LPCWSTR wzPassword,
+ __out_opt BSTR* pbstrErrorDescription
+ );
+HRESULT DAPI SqlSessionDatabaseExists(
+ __in IDBCreateSession* pidbSession,
+ __in_z LPCWSTR wzDatabase,
+ __out_opt BSTR* pbstrErrorDescription
+ );
+HRESULT DAPI SqlDatabaseEnsureExists(
+ __in_z LPCWSTR wzServer,
+ __in_z LPCWSTR wzInstance,
+ __in_z LPCWSTR wzDatabase,
+ __in BOOL fIntegratedAuth,
+ __in_z LPCWSTR wzUser,
+ __in_z LPCWSTR wzPassword,
+ __in_opt const SQL_FILESPEC* psfDatabase,
+ __in_opt const SQL_FILESPEC* psfLog,
+ __out_opt BSTR* pbstrErrorDescription
+ );
+HRESULT DAPI SqlSessionDatabaseEnsureExists(
+ __in IDBCreateSession* pidbSession,
+ __in_z LPCWSTR wzDatabase,
+ __in_opt const SQL_FILESPEC* psfDatabase,
+ __in_opt const SQL_FILESPEC* psfLog,
+ __out_opt BSTR* pbstrErrorDescription
+ );
+HRESULT DAPI SqlCreateDatabase(
+ __in_z LPCWSTR wzServer,
+ __in_z LPCWSTR wzInstance,
+ __in_z LPCWSTR wzDatabase,
+ __in BOOL fIntegratedAuth,
+ __in_z LPCWSTR wzUser,
+ __in_z LPCWSTR wzPassword,
+ __in_opt const SQL_FILESPEC* psfDatabase,
+ __in_opt const SQL_FILESPEC* psfLog,
+ __out_opt BSTR* pbstrErrorDescription
+ );
+HRESULT DAPI SqlSessionCreateDatabase(
+ __in IDBCreateSession* pidbSession,
+ __in_z LPCWSTR wzDatabase,
+ __in_opt const SQL_FILESPEC* psfDatabase,
+ __in_opt const SQL_FILESPEC* psfLog,
+ __out_opt BSTR* pbstrErrorDescription
+ );
+HRESULT DAPI SqlDropDatabase(
+ __in_z LPCWSTR wzServer,
+ __in_z LPCWSTR wzInstance,
+ __in_z LPCWSTR wzDatabase,
+ __in BOOL fIntegratedAuth,
+ __in_z LPCWSTR wzUser,
+ __in_z LPCWSTR wzPassword,
+ __out_opt BSTR* pbstrErrorDescription
+ );
+HRESULT DAPI SqlSessionDropDatabase(
+ __in IDBCreateSession* pidbSession,
+ __in_z LPCWSTR wzDatabase,
+ __out_opt BSTR* pbstrErrorDescription
+ );
+HRESULT DAPI SqlSessionExecuteQuery(
+ __in IDBCreateSession* pidbSession,
+ __in __sql_command LPCWSTR wzSql,
+ __out_opt IRowset** ppirs,
+ __out_opt DBROWCOUNT* pcRows,
+ __out_opt BSTR* pbstrErrorDescription
+ );
+HRESULT DAPI SqlCommandExecuteQuery(
+ __in IDBCreateCommand* pidbCommand,
+ __in __sql_command LPCWSTR wzSql,
+ __out IRowset** ppirs,
+ __out DBROWCOUNT* pcRows
+ );
+HRESULT DAPI SqlGetErrorInfo(
+ __in IUnknown* pObjectWithError,
+ __in REFIID IID_InterfaceWithError,
+ __in DWORD dwLocaleId,
+ __out_opt BSTR* pbstrErrorSource,
+ __out_opt BSTR* pbstrErrorDescription
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/srputil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/srputil.h
new file mode 100644
index 0000000..95e9623
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/srputil.h
@@ -0,0 +1,45 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+typedef enum SRP_ACTION
+{
+ SRP_ACTION_UNKNOWN,
+ SRP_ACTION_UNINSTALL,
+ SRP_ACTION_INSTALL,
+ SRP_ACTION_MODIFY,
+} SRP_ACTION;
+
+
+/********************************************************************
+ SrpInitialize - initializes system restore point functionality.
+
+*******************************************************************/
+DAPI_(HRESULT) SrpInitialize(
+ __in BOOL fInitializeComSecurity
+ );
+
+/********************************************************************
+ SrpUninitialize - uninitializes system restore point functionality.
+
+*******************************************************************/
+DAPI_(void) SrpUninitialize();
+
+/********************************************************************
+ SrpCreateRestorePoint - creates a system restore point.
+
+*******************************************************************/
+DAPI_(HRESULT) SrpCreateRestorePoint(
+ __in_z LPCWSTR wzApplicationName,
+ __in SRP_ACTION action
+ );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/strutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/strutil.h
new file mode 100644
index 0000000..1a2ed1d
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/strutil.h
@@ -0,0 +1,311 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseStr(pwz) if (pwz) { StrFree(pwz); }
+#define ReleaseNullStr(pwz) if (pwz) { StrFree(pwz); pwz = NULL; }
+#define ReleaseBSTR(bstr) if (bstr) { ::SysFreeString(bstr); }
+#define ReleaseNullBSTR(bstr) if (bstr) { ::SysFreeString(bstr); bstr = NULL; }
+#define ReleaseStrArray(rg, c) { if (rg) { StrArrayFree(rg, c); } }
+#define ReleaseNullStrArray(rg, c) { if (rg) { StrArrayFree(rg, c); c = 0; rg = NULL; } }
+#define ReleaseNullStrSecure(pwz) if (pwz) { StrSecureZeroFreeString(pwz); pwz = NULL; }
+
+#define DeclareConstBSTR(bstr_const, wz) const WCHAR bstr_const[] = { 0x00, 0x00, sizeof(wz)-sizeof(WCHAR), 0x00, wz }
+#define UseConstBSTR(bstr_const) const_cast(bstr_const + 4)
+
+HRESULT DAPI StrAlloc(
+ __deref_out_ecount_part(cch, 0) LPWSTR* ppwz,
+ __in DWORD_PTR cch
+ );
+HRESULT DAPI StrAllocSecure(
+ __deref_out_ecount_part(cch, 0) LPWSTR* ppwz,
+ __in DWORD_PTR cch
+ );
+HRESULT DAPI StrTrimCapacity(
+ __deref_out_z LPWSTR* ppwz
+ );
+HRESULT DAPI StrTrimWhitespace(
+ __deref_out_z LPWSTR* ppwz,
+ __in_z LPCWSTR wzSource
+ );
+HRESULT DAPI StrAnsiAlloc(
+ __deref_out_ecount_part(cch, 0) LPSTR* ppz,
+ __in DWORD_PTR cch
+ );
+HRESULT DAPI StrAnsiTrimCapacity(
+ __deref_out_z LPSTR* ppz
+ );
+HRESULT DAPI StrAnsiTrimWhitespace(
+ __deref_out_z LPSTR* ppz,
+ __in_z LPCSTR szSource
+ );
+HRESULT DAPI StrAllocString(
+ __deref_out_ecount_z(cchSource+1) LPWSTR* ppwz,
+ __in_z LPCWSTR wzSource,
+ __in DWORD_PTR cchSource
+ );
+HRESULT DAPI StrAllocStringSecure(
+ __deref_out_ecount_z(cchSource + 1) LPWSTR* ppwz,
+ __in_z LPCWSTR wzSource,
+ __in DWORD_PTR cchSource
+ );
+HRESULT DAPI StrAnsiAllocString(
+ __deref_out_ecount_z(cchSource+1) LPSTR* ppsz,
+ __in_z LPCWSTR wzSource,
+ __in DWORD_PTR cchSource,
+ __in UINT uiCodepage
+ );
+HRESULT DAPI StrAllocStringAnsi(
+ __deref_out_ecount_z(cchSource+1) LPWSTR* ppwz,
+ __in_z LPCSTR szSource,
+ __in DWORD_PTR cchSource,
+ __in UINT uiCodepage
+ );
+HRESULT DAPI StrAnsiAllocStringAnsi(
+ __deref_out_ecount_z(cchSource+1) LPSTR* ppsz,
+ __in_z LPCSTR szSource,
+ __in DWORD_PTR cchSource
+ );
+HRESULT DAPI StrAllocPrefix(
+ __deref_out_z LPWSTR* ppwz,
+ __in_z LPCWSTR wzPrefix,
+ __in DWORD_PTR cchPrefix
+ );
+HRESULT DAPI StrAllocConcat(
+ __deref_out_z LPWSTR* ppwz,
+ __in_z LPCWSTR wzSource,
+ __in DWORD_PTR cchSource
+ );
+HRESULT DAPI StrAllocConcatSecure(
+ __deref_out_z LPWSTR* ppwz,
+ __in_z LPCWSTR wzSource,
+ __in DWORD_PTR cchSource
+ );
+HRESULT DAPI StrAnsiAllocConcat(
+ __deref_out_z LPSTR* ppz,
+ __in_z LPCSTR pzSource,
+ __in DWORD_PTR cchSource
+ );
+HRESULT __cdecl StrAllocFormatted(
+ __deref_out_z LPWSTR* ppwz,
+ __in __format_string LPCWSTR wzFormat,
+ ...
+ );
+HRESULT __cdecl StrAllocConcatFormatted(
+ __deref_out_z LPWSTR* ppwz,
+ __in __format_string LPCWSTR wzFormat,
+ ...
+ );
+HRESULT __cdecl StrAllocFormattedSecure(
+ __deref_out_z LPWSTR* ppwz,
+ __in __format_string LPCWSTR wzFormat,
+ ...
+ );
+HRESULT __cdecl StrAnsiAllocFormatted(
+ __deref_out_z LPSTR* ppsz,
+ __in __format_string LPCSTR szFormat,
+ ...
+ );
+HRESULT DAPI StrAllocFormattedArgs(
+ __deref_out_z LPWSTR* ppwz,
+ __in __format_string LPCWSTR wzFormat,
+ __in va_list args
+ );
+HRESULT DAPI StrAllocFormattedArgsSecure(
+ __deref_out_z LPWSTR* ppwz,
+ __in __format_string LPCWSTR wzFormat,
+ __in va_list args
+ );
+HRESULT DAPI StrAnsiAllocFormattedArgs(
+ __deref_out_z LPSTR* ppsz,
+ __in __format_string LPCSTR szFormat,
+ __in va_list args
+ );
+HRESULT DAPI StrAllocFromError(
+ __inout LPWSTR *ppwzMessage,
+ __in HRESULT hrError,
+ __in_opt HMODULE hModule,
+ ...
+ );
+
+HRESULT DAPI StrMaxLength(
+ __in LPCVOID p,
+ __out DWORD_PTR* pcch
+ );
+HRESULT DAPI StrSize(
+ __in LPCVOID p,
+ __out DWORD_PTR* pcb
+ );
+
+HRESULT DAPI StrFree(
+ __in LPVOID p
+ );
+
+
+HRESULT DAPI StrReplaceStringAll(
+ __inout LPWSTR* ppwzOriginal,
+ __in_z LPCWSTR wzOldSubString,
+ __in_z LPCWSTR wzNewSubString
+ );
+HRESULT DAPI StrReplaceString(
+ __inout LPWSTR* ppwzOriginal,
+ __inout DWORD* pdwStartIndex,
+ __in_z LPCWSTR wzOldSubString,
+ __in_z LPCWSTR wzNewSubString
+ );
+
+HRESULT DAPI StrHexEncode(
+ __in_ecount(cbSource) const BYTE* pbSource,
+ __in DWORD_PTR cbSource,
+ __out_ecount(cchDest) LPWSTR wzDest,
+ __in DWORD_PTR cchDest
+ );
+HRESULT DAPI StrAllocHexEncode(
+ __in_ecount(cbSource) const BYTE* pbSource,
+ __in DWORD_PTR cbSource,
+ __deref_out_ecount_z(2*(cbSource+1)) LPWSTR* ppwzDest
+ );
+HRESULT DAPI StrHexDecode(
+ __in_z LPCWSTR wzSource,
+ __out_bcount(cbDest) BYTE* pbDest,
+ __in DWORD_PTR cbDest
+ );
+HRESULT DAPI StrAllocHexDecode(
+ __in_z LPCWSTR wzSource,
+ __out_bcount(*pcbDest) BYTE** ppbDest,
+ __out_opt DWORD* pcbDest
+ );
+
+HRESULT DAPI StrAllocBase85Encode(
+ __in_bcount_opt(cbSource) const BYTE* pbSource,
+ __in DWORD_PTR cbSource,
+ __deref_out_z LPWSTR* pwzDest
+ );
+HRESULT DAPI StrAllocBase85Decode(
+ __in_z LPCWSTR wzSource,
+ __deref_out_bcount(*pcbDest) BYTE** hbDest,
+ __out DWORD_PTR* pcbDest
+ );
+
+HRESULT DAPI MultiSzLen(
+ __in_ecount(*pcch) __nullnullterminated LPCWSTR pwzMultiSz,
+ __out DWORD_PTR* pcch
+ );
+HRESULT DAPI MultiSzPrepend(
+ __deref_inout_ecount(*pcchMultiSz) __nullnullterminated LPWSTR* ppwzMultiSz,
+ __inout_opt DWORD_PTR *pcchMultiSz,
+ __in __nullnullterminated LPCWSTR pwzInsert
+ );
+HRESULT DAPI MultiSzFindSubstring(
+ __in __nullnullterminated LPCWSTR pwzMultiSz,
+ __in __nullnullterminated LPCWSTR pwzSubstring,
+ __out_opt DWORD_PTR* pdwIndex,
+ __deref_opt_out_z LPCWSTR* ppwzFoundIn
+ );
+HRESULT DAPI MultiSzFindString(
+ __in __nullnullterminated LPCWSTR pwzMultiSz,
+ __in __nullnullterminated LPCWSTR pwzString,
+ __out_opt DWORD_PTR* pdwIndex,
+ __deref_opt_out __nullnullterminated LPCWSTR* ppwzFound
+ );
+HRESULT DAPI MultiSzRemoveString(
+ __deref_inout __nullnullterminated LPWSTR* ppwzMultiSz,
+ __in DWORD_PTR dwIndex
+ );
+HRESULT DAPI MultiSzInsertString(
+ __deref_inout_z LPWSTR* ppwzMultiSz,
+ __inout_opt DWORD_PTR *pcchMultiSz,
+ __in DWORD_PTR dwIndex,
+ __in_z LPCWSTR pwzInsert
+ );
+HRESULT DAPI MultiSzReplaceString(
+ __deref_inout __nullnullterminated LPWSTR* ppwzMultiSz,
+ __in DWORD_PTR dwIndex,
+ __in_z LPCWSTR pwzString
+ );
+
+LPCWSTR DAPI wcsistr(
+ __in_z LPCWSTR wzString,
+ __in_z LPCWSTR wzCharSet
+ );
+
+HRESULT DAPI StrStringToInt16(
+ __in_z LPCWSTR wzIn,
+ __in DWORD cchIn,
+ __out SHORT* psOut
+ );
+HRESULT DAPI StrStringToUInt16(
+ __in_z LPCWSTR wzIn,
+ __in DWORD cchIn,
+ __out USHORT* pusOut
+ );
+HRESULT DAPI StrStringToInt32(
+ __in_z LPCWSTR wzIn,
+ __in DWORD cchIn,
+ __out INT* piOut
+ );
+HRESULT DAPI StrStringToUInt32(
+ __in_z LPCWSTR wzIn,
+ __in DWORD cchIn,
+ __out UINT* puiOut
+ );
+HRESULT DAPI StrStringToInt64(
+ __in_z LPCWSTR wzIn,
+ __in DWORD cchIn,
+ __out LONGLONG* pllOut
+ );
+HRESULT DAPI StrStringToUInt64(
+ __in_z LPCWSTR wzIn,
+ __in DWORD cchIn,
+ __out ULONGLONG* pullOut
+ );
+void DAPI StrStringToUpper(
+ __inout_z LPWSTR wzIn
+ );
+void DAPI StrStringToLower(
+ __inout_z LPWSTR wzIn
+ );
+HRESULT DAPI StrAllocStringToUpperInvariant(
+ __deref_out_z LPWSTR* pscz,
+ __in_z LPCWSTR wzSource,
+ __in int cchSource
+ );
+HRESULT DAPI StrAllocStringToLowerInvariant(
+ __deref_out_z LPWSTR* pscz,
+ __in_z LPCWSTR wzSource,
+ __in int cchSource
+ );
+
+HRESULT DAPI StrArrayAllocString(
+ __deref_inout_ecount_opt(*pcStrArray) LPWSTR **prgsczStrArray,
+ __inout LPUINT pcStrArray,
+ __in_z LPCWSTR wzSource,
+ __in DWORD_PTR cchSource
+ );
+
+HRESULT DAPI StrArrayFree(
+ __in_ecount(cStrArray) LPWSTR *rgsczStrArray,
+ __in UINT cStrArray
+ );
+
+HRESULT DAPI StrSplitAllocArray(
+ __deref_inout_ecount_opt(*pcStrArray) LPWSTR **prgsczStrArray,
+ __inout LPUINT pcStrArray,
+ __in_z LPCWSTR wzSource,
+ __in_z LPCWSTR wzDelim
+ );
+
+HRESULT DAPI StrSecureZeroString(
+ __in LPWSTR pwz
+ );
+HRESULT DAPI StrSecureZeroFreeString(
+ __in LPWSTR pwz
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/svcutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/svcutil.h
new file mode 100644
index 0000000..80d6326
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/svcutil.h
@@ -0,0 +1,21 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define ReleaseServiceHandle(h) if (h) { ::CloseServiceHandle(h); h = NULL; }
+
+
+HRESULT DAPI SvcQueryConfig(
+ __in SC_HANDLE sch,
+ __out QUERY_SERVICE_CONFIGW** ppConfig
+ );
+
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/thmutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/thmutil.h
new file mode 100644
index 0000000..6ac9335
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/thmutil.h
@@ -0,0 +1,556 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseTheme(p) if (p) { ThemeFree(p); p = NULL; }
+
+typedef enum THEME_CONTROL_DATA
+{
+ THEME_CONTROL_DATA_HOVER = 1,
+} THEME_CONTROL_DATA;
+
+typedef enum THEME_CONTROL_TYPE
+{
+ THEME_CONTROL_TYPE_UNKNOWN,
+ THEME_CONTROL_TYPE_BILLBOARD,
+ THEME_CONTROL_TYPE_BUTTON,
+ THEME_CONTROL_TYPE_CHECKBOX,
+ THEME_CONTROL_TYPE_EDITBOX,
+ THEME_CONTROL_TYPE_HYPERLINK,
+ THEME_CONTROL_TYPE_HYPERTEXT,
+ THEME_CONTROL_TYPE_IMAGE,
+ THEME_CONTROL_TYPE_PROGRESSBAR,
+ THEME_CONTROL_TYPE_RICHEDIT,
+ THEME_CONTROL_TYPE_STATIC,
+ THEME_CONTROL_TYPE_TEXT,
+ THEME_CONTROL_TYPE_LISTVIEW,
+ THEME_CONTROL_TYPE_TREEVIEW,
+ THEME_CONTROL_TYPE_TAB,
+ THEME_CONTROL_TYPE_COMBOBOX,
+} THEME_CONTROL_TYPE;
+
+
+struct THEME_BILLBOARD
+{
+ HBITMAP hImage;
+ LPWSTR sczUrl;
+};
+
+
+struct THEME_COLUMN
+{
+ LPWSTR pszName;
+ UINT uStringId;
+ int nBaseWidth;
+ int nWidth;
+ BOOL fExpands;
+};
+
+
+struct THEME_TAB
+{
+ LPWSTR pszName;
+ UINT uStringId;
+};
+
+// THEME_ASSIGN_CONTROL_ID - Used to apply a specific id to a named control (usually
+// to set the WM_COMMAND).
+struct THEME_ASSIGN_CONTROL_ID
+{
+ WORD wId; // id to apply to control
+ LPCWSTR wzName; // name of control to match
+};
+
+const DWORD THEME_FIRST_ASSIGN_CONTROL_ID = 1024; // Recommended first control id to be assigned.
+
+struct THEME_CONTROL
+{
+ THEME_CONTROL_TYPE type;
+
+ WORD wId;
+ WORD wPageId;
+
+ LPWSTR sczName; // optional name for control, only used to apply control id.
+ LPWSTR sczText;
+ int nX;
+ int nY;
+ int nHeight;
+ int nWidth;
+ int nSourceX;
+ int nSourceY;
+ UINT uStringId;
+
+ HBITMAP hImage;
+
+ // Don't free these; it's just a handle to the central image lists stored in THEME. The handle is freed once, there.
+ HIMAGELIST rghImageList[4];
+
+ DWORD dwStyle;
+ DWORD dwExtendedStyle;
+ DWORD dwInternalStyle;
+
+ DWORD dwFontId;
+ DWORD dwFontHoverId;
+ DWORD dwFontSelectedId;
+
+ // Used by billboard controls
+ THEME_BILLBOARD* ptbBillboards;
+ DWORD cBillboards;
+ WORD wBillboardInterval;
+ WORD wBillboardUrls;
+ BOOL fBillboardLoops;
+
+ // Used by listview controls
+ THEME_COLUMN *ptcColumns;
+ DWORD cColumns;
+
+ // Used by tab controls
+ THEME_TAB *pttTabs;
+ DWORD cTabs;
+
+ // state variables that should be ignored
+ HWND hWnd;
+ DWORD dwData; // type specific data
+};
+
+
+struct THEME_IMAGELIST
+{
+ LPWSTR sczName;
+
+ HIMAGELIST hImageList;
+};
+
+struct THEME_PAGE
+{
+ WORD wId;
+ LPWSTR sczName;
+
+ DWORD cControlIndices;
+ DWORD* rgdwControlIndices;
+};
+
+struct THEME_FONT
+{
+ HFONT hFont;
+ COLORREF crForeground;
+ HBRUSH hForeground;
+ COLORREF crBackground;
+ HBRUSH hBackground;
+};
+
+
+struct THEME
+{
+ WORD wId;
+
+ BOOL fAutoResize;
+
+ DWORD dwStyle;
+ DWORD dwFontId;
+ HANDLE hIcon;
+ LPWSTR sczCaption;
+ int nHeight;
+ int nMinimumHeight;
+ int nWidth;
+ int nMinimumWidth;
+ int nSourceX;
+ int nSourceY;
+ UINT uStringId;
+
+ HBITMAP hImage;
+
+ DWORD cFonts;
+ THEME_FONT* rgFonts;
+
+ DWORD cPages;
+ THEME_PAGE* rgPages;
+
+ DWORD cImageLists;
+ THEME_IMAGELIST* rgImageLists;
+
+ DWORD cControls;
+ THEME_CONTROL* rgControls;
+
+ // state variables that should be ignored
+ HWND hwndParent; // parent for loaded controls
+ HWND hwndHover; // current hwnd hovered over
+};
+
+
+/********************************************************************
+ ThemeInitialize - initialized theme management.
+
+*******************************************************************/
+DAPI_(HRESULT) ThemeInitialize(
+ __in_opt HMODULE hModule
+ );
+
+/********************************************************************
+ ThemeUninitialize - unitialize theme management.
+
+*******************************************************************/
+DAPI_(void) ThemeUninitialize();
+
+/********************************************************************
+ ThemeLoadFromFile - loads a theme from a loose file.
+
+ *******************************************************************/
+DAPI_(HRESULT) ThemeLoadFromFile(
+ __in_z LPCWSTR wzThemeFile,
+ __out THEME** ppTheme
+ );
+
+/********************************************************************
+ ThemeLoadFromResource - loads a theme from a module's data resource.
+
+ NOTE: The resource data must be UTF-8 encoded.
+*******************************************************************/
+DAPI_(HRESULT) ThemeLoadFromResource(
+ __in_opt HMODULE hModule,
+ __in_z LPCSTR szResource,
+ __out THEME** ppTheme
+ );
+
+/********************************************************************
+ ThemeFree - frees any memory associated with a theme.
+
+*******************************************************************/
+DAPI_(void) ThemeFree(
+ __in THEME* pTheme
+ );
+
+/********************************************************************
+ ThemeLoadControls - creates the windows for all the theme controls.
+
+*******************************************************************/
+DAPI_(HRESULT) ThemeLoadControls(
+ __in THEME* pTheme,
+ __in HWND hwndParent,
+ __in_ecount_opt(cAssignControlIds) const THEME_ASSIGN_CONTROL_ID* rgAssignControlIds,
+ __in DWORD cAssignControlIds
+ );
+
+/********************************************************************
+ ThemeUnloadControls - resets all the theme control windows so the theme
+ controls can be reloaded.
+
+*******************************************************************/
+DAPI_(void) ThemeUnloadControls(
+ __in THEME* pTheme
+ );
+
+/********************************************************************
+ ThemeLocalize - Localizes all of the strings in the theme.
+
+*******************************************************************/
+DAPI_(HRESULT) ThemeLocalize(
+ __in THEME *pTheme,
+ __in const WIX_LOCALIZATION *pLocStringSet
+ );
+
+DAPI_(HRESULT) ThemeLoadStrings(
+ __in THEME* pTheme,
+ __in HMODULE hResModule
+ );
+
+/********************************************************************
+ ThemeLoadRichEditFromFile - Attach a richedit control to a RTF file.
+
+ *******************************************************************/
+DAPI_(HRESULT) ThemeLoadRichEditFromFile(
+ __in THEME* pTheme,
+ __in DWORD dwControl,
+ __in_z LPCWSTR wzFileName,
+ __in HMODULE hModule
+ );
+
+/********************************************************************
+ ThemeLoadRichEditFromResource - Attach a richedit control to resource data.
+
+ *******************************************************************/
+DAPI_(HRESULT) ThemeLoadRichEditFromResource(
+ __in THEME* pTheme,
+ __in DWORD dwControl,
+ __in_z LPCSTR szResourceName,
+ __in HMODULE hModule
+ );
+
+/********************************************************************
+ ThemeLoadRichEditFromResourceToHWnd - Attach a richedit control (by
+ HWND) to resource data.
+
+ *******************************************************************/
+DAPI_(HRESULT) ThemeLoadRichEditFromResourceToHWnd(
+ __in HWND hWnd,
+ __in_z LPCSTR szResourceName,
+ __in HMODULE hModule
+ );
+
+/********************************************************************
+ ThemeHandleKeyboardMessage - will translate the message using the active
+ accelerator table.
+
+*******************************************************************/
+DAPI_(BOOL) ThemeHandleKeyboardMessage(
+ __in_opt THEME* pTheme,
+ __in HWND hWnd,
+ __in MSG* pMsg
+ );
+
+/********************************************************************
+ ThemeDefWindowProc - replacement for DefWindowProc() when using theme.
+
+*******************************************************************/
+LRESULT CALLBACK ThemeDefWindowProc(
+ __in_opt THEME* pTheme,
+ __in HWND hWnd,
+ __in UINT uMsg,
+ __in WPARAM wParam,
+ __in LPARAM lParam
+ );
+
+/********************************************************************
+ ThemeGetPageIds - gets the page ids for the theme via page names.
+
+*******************************************************************/
+DAPI_(void) ThemeGetPageIds(
+ __in const THEME* pTheme,
+ __in_ecount(cGetPages) LPCWSTR* rgwzFindNames,
+ __in_ecount(cGetPages) DWORD* rgdwPageIds,
+ __in DWORD cGetPages
+ );
+
+/********************************************************************
+ ThemeGetPage - gets a theme page by id.
+
+ *******************************************************************/
+DAPI_(THEME_PAGE*) ThemeGetPage(
+ __in const THEME* pTheme,
+ __in DWORD dwPage
+ );
+
+/********************************************************************
+ ThemeShowPage - shows or hides all of the controls in the page at one time.
+
+ *******************************************************************/
+DAPI_(void) ThemeShowPage(
+ __in THEME* pTheme,
+ __in DWORD dwPage,
+ __in int nCmdShow
+ );
+
+/********************************************************************
+ ThemeControlExists - check if a control with the specified id exists.
+
+ *******************************************************************/
+DAPI_(BOOL) ThemeControlExists(
+ __in THEME* pTheme,
+ __in DWORD dwControl
+ );
+
+/********************************************************************
+ ThemeControlEnable - enables/disables a control.
+
+ *******************************************************************/
+DAPI_(void) ThemeControlEnable(
+ __in THEME* pTheme,
+ __in DWORD dwControl,
+ __in BOOL fEnable
+ );
+
+/********************************************************************
+ ThemeControlEnabled - returns whether a control is enabled/disabled.
+
+ *******************************************************************/
+DAPI_(BOOL) ThemeControlEnabled(
+ __in THEME* pTheme,
+ __in DWORD dwControl
+ );
+
+/********************************************************************
+ ThemeControlElevates - sets/removes the shield icon on a control.
+
+ *******************************************************************/
+DAPI_(void) ThemeControlElevates(
+ __in THEME* pTheme,
+ __in DWORD dwControl,
+ __in BOOL fElevates
+ );
+
+/********************************************************************
+ ThemeShowControl - shows/hides a control.
+
+ *******************************************************************/
+DAPI_(void) ThemeShowControl(
+ __in THEME* pTheme,
+ __in DWORD dwControl,
+ __in int nCmdShow
+ );
+
+/********************************************************************
+ ThemeControlVisible - returns whether a control is visible.
+
+ *******************************************************************/
+DAPI_(BOOL) ThemeControlVisible(
+ __in THEME* pTheme,
+ __in DWORD dwControl
+ );
+
+DAPI_(BOOL) ThemePostControlMessage(
+ __in THEME* pTheme,
+ __in DWORD dwControl,
+ __in UINT Msg,
+ __in WPARAM wParam,
+ __in LPARAM lParam
+ );
+
+DAPI_(LRESULT) ThemeSendControlMessage(
+ __in THEME* pTheme,
+ __in DWORD dwControl,
+ __in UINT Msg,
+ __in WPARAM wParam,
+ __in LPARAM lParam
+ );
+
+/********************************************************************
+ ThemeDrawBackground - draws the theme background.
+
+*******************************************************************/
+DAPI_(HRESULT) ThemeDrawBackground(
+ __in THEME* pTheme,
+ __in PAINTSTRUCT* pps
+ );
+
+/********************************************************************
+ ThemeDrawControl - draw an owner drawn control.
+
+*******************************************************************/
+DAPI_(HRESULT) ThemeDrawControl(
+ __in THEME* pTheme,
+ __in DRAWITEMSTRUCT* pdis
+ );
+
+/********************************************************************
+ ThemeHoverControl - mark a control as hover.
+
+*******************************************************************/
+DAPI_(BOOL) ThemeHoverControl(
+ __in THEME* pTheme,
+ __in HWND hwndParent,
+ __in HWND hwndControl
+ );
+
+/********************************************************************
+ ThemeIsControlChecked - gets whether a control is checked. Only
+ really useful for checkbox controls.
+
+*******************************************************************/
+DAPI_(BOOL) ThemeIsControlChecked(
+ __in THEME* pTheme,
+ __in DWORD dwControl
+ );
+
+/********************************************************************
+ ThemeSetControlColor - sets the color of text for a control.
+
+*******************************************************************/
+DAPI_(BOOL) ThemeSetControlColor(
+ __in THEME* pTheme,
+ __in HDC hdc,
+ __in HWND hWnd,
+ __out HBRUSH* phBackgroundBrush
+ );
+
+/********************************************************************
+ ThemeStartBillboard - starts a billboard control changing images according
+ to their interval.
+
+ NOTE: iImage specifies the image to start on. If iImage is
+ greater than the number of images, the last image shown
+ will be the start image.
+*******************************************************************/
+DAPI_(HRESULT) ThemeStartBillboard(
+ __in const THEME* pTheme,
+ __in DWORD dwControl,
+ __in WORD iImage
+ );
+
+/********************************************************************
+ ThemeStopBillboard - stops a billboard control from changing images.
+
+*******************************************************************/
+DAPI_(HRESULT) ThemeStopBillboard(
+ __in const THEME* pTheme,
+ __in DWORD dwControl
+ );
+
+/********************************************************************
+ ThemeSetProgressControl - sets the current percentage complete in a
+ progress bar control.
+
+*******************************************************************/
+DAPI_(HRESULT) ThemeSetProgressControl(
+ __in THEME* pTheme,
+ __in DWORD dwControl,
+ __in DWORD dwProgressPercentage
+ );
+
+/********************************************************************
+ ThemeSetProgressControlColor - sets the current color of a
+ progress bar control.
+
+*******************************************************************/
+DAPI_(HRESULT) ThemeSetProgressControlColor(
+ __in THEME* pTheme,
+ __in DWORD dwControl,
+ __in DWORD dwColorIndex
+ );
+
+/********************************************************************
+ ThemeSetTextControl - sets the text of a control.
+
+*******************************************************************/
+DAPI_(HRESULT) ThemeSetTextControl(
+ __in THEME* pTheme,
+ __in DWORD dwControl,
+ __in_z LPCWSTR wzText
+ );
+
+/********************************************************************
+ ThemeGetTextControl - gets the text of a control.
+
+*******************************************************************/
+DAPI_(HRESULT) ThemeGetTextControl(
+ __in const THEME* pTheme,
+ __in DWORD dwControl,
+ __out LPWSTR* psczText
+ );
+
+/********************************************************************
+ ThemeUpdateCaption - updates the caption in the theme.
+
+*******************************************************************/
+DAPI_(HRESULT) ThemeUpdateCaption(
+ __in THEME* pTheme,
+ __in_z LPCWSTR wzCaption
+ );
+
+/********************************************************************
+ ThemeSetFocus - set the focus to the control supplied or the next
+ enabled control if it is disabled.
+
+*******************************************************************/
+DAPI_(void) ThemeSetFocus(
+ __in THEME* pTheme,
+ __in DWORD dwControl
+ );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/timeutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/timeutil.h
new file mode 100644
index 0000000..418ee78
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/timeutil.h
@@ -0,0 +1,34 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT DAPI TimeFromString(
+ __in_z LPCWSTR wzTime,
+ __out FILETIME* pFileTime
+ );
+HRESULT DAPI TimeFromString3339(
+ __in_z LPCWSTR wzTime,
+ __out FILETIME* pFileTime
+ );
+HRESULT DAPI TimeCurrentTime(
+ __deref_out_z LPWSTR* ppwz,
+ __in BOOL fGMT
+ );
+HRESULT DAPI TimeCurrentDateTime(
+ __deref_out_z LPWSTR* ppwz,
+ __in BOOL fGMT
+ );
+HRESULT DAPI TimeSystemDateTime(
+ __deref_out_z LPWSTR* ppwz,
+ __in const SYSTEMTIME *pst,
+ __in BOOL fGMT
+ );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/uriutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/uriutil.h
new file mode 100644
index 0000000..52e7830
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/uriutil.h
@@ -0,0 +1,100 @@
+#pragma once
+// 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.
+
+
+#include "wininet.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum URI_PROTOCOL
+{
+ URI_PROTOCOL_UNKNOWN,
+ URI_PROTOCOL_FILE,
+ URI_PROTOCOL_FTP,
+ URI_PROTOCOL_HTTP,
+ URI_PROTOCOL_HTTPS,
+ URI_PROTOCOL_LOCAL,
+ URI_PROTOCOL_UNC
+} URI_PROTOCOL;
+
+typedef struct _URI_INFO
+{
+ INTERNET_SCHEME scheme;
+ LPWSTR sczHostName;
+ INTERNET_PORT port;
+ LPWSTR sczUser;
+ LPWSTR sczPassword;
+ LPWSTR sczPath;
+ LPWSTR sczQueryString;
+} URI_INFO;
+
+
+HRESULT DAPI UriCanonicalize(
+ __inout_z LPWSTR* psczUri
+ );
+
+HRESULT DAPI UriCrack(
+ __in_z LPCWSTR wzUri,
+ __out_opt INTERNET_SCHEME* pScheme,
+ __deref_opt_out_z LPWSTR* psczHostName,
+ __out_opt INTERNET_PORT* pPort,
+ __deref_opt_out_z LPWSTR* psczUser,
+ __deref_opt_out_z LPWSTR* psczPassword,
+ __deref_opt_out_z LPWSTR* psczPath,
+ __deref_opt_out_z LPWSTR* psczQueryString
+ );
+
+HRESULT DAPI UriCrackEx(
+ __in_z LPCWSTR wzUri,
+ __in URI_INFO* pUriInfo
+ );
+
+void DAPI UriInfoUninitialize(
+ __in URI_INFO* pUriInfo
+ );
+
+HRESULT DAPI UriCreate(
+ __inout_z LPWSTR* psczUri,
+ __in INTERNET_SCHEME scheme,
+ __in_z_opt LPWSTR wzHostName,
+ __in INTERNET_PORT port,
+ __in_z_opt LPWSTR wzUser,
+ __in_z_opt LPWSTR wzPassword,
+ __in_z_opt LPWSTR wzPath,
+ __in_z_opt LPWSTR wzQueryString
+ );
+
+HRESULT DAPI UriCanonicalize(
+ __inout_z LPWSTR* psczUri
+ );
+
+HRESULT DAPI UriFile(
+ __deref_out_z LPWSTR* psczFile,
+ __in_z LPCWSTR wzUri
+ );
+
+HRESULT DAPI UriProtocol(
+ __in_z LPCWSTR wzUri,
+ __out URI_PROTOCOL* pProtocol
+ );
+
+HRESULT DAPI UriRoot(
+ __in_z LPCWSTR wzUri,
+ __out LPWSTR* ppwzRoot,
+ __out_opt URI_PROTOCOL* pProtocol
+ );
+
+HRESULT DAPI UriResolve(
+ __in_z LPCWSTR wzUri,
+ __in_opt LPCWSTR wzBaseUri,
+ __out LPWSTR* ppwzResolvedUri,
+ __out_opt const URI_PROTOCOL* pResolvedProtocol
+ );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/userutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/userutil.h
new file mode 100644
index 0000000..2c86d22
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/userutil.h
@@ -0,0 +1,32 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT DAPI UserBuildDomainUserName(
+ __out_ecount_z(cchDest) LPWSTR wzDest,
+ __in int cchDest,
+ __in_z LPCWSTR pwzName,
+ __in_z LPCWSTR pwzDomain
+ );
+
+HRESULT DAPI UserCheckIsMember(
+ __in_z LPCWSTR pwzName,
+ __in_z LPCWSTR pwzDomain,
+ __in_z LPCWSTR pwzGroupName,
+ __in_z LPCWSTR pwzGroupDomain,
+ __out LPBOOL lpfMember
+ );
+
+HRESULT DAPI UserCreateADsPath(
+ __in_z LPCWSTR wzObjectDomain,
+ __in_z LPCWSTR wzObjectName,
+ __out BSTR *pbstrAdsPath
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wcalog.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wcalog.h
new file mode 100644
index 0000000..ffa3fa0
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wcalog.h
@@ -0,0 +1,14 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+BOOL WIXAPI IsVerboseLogging();
+HRESULT WIXAPI SetVerboseLoggingAtom(BOOL bValue);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wcautil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wcautil.h
new file mode 100644
index 0000000..8e2f0f5
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wcautil.h
@@ -0,0 +1,369 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define WIXAPI __stdcall
+#define ExitTrace WcaLogError
+#define ExitTrace1 WcaLogError
+#define ExitTrace2 WcaLogError
+#define ExitTrace3 WcaLogError
+
+#include "dutil.h"
+
+#define MessageExitOnLastError(x, e, s) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { ExitTrace(x, "%s", s); WcaErrorMessage(e, x, MB_OK, 0); goto LExit; } }
+#define MessageExitOnLastError1(x, e, f, s) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { ExitTrace1(x, f, s); WcaErrorMessage(e, x, MB_OK, 1, s); goto LExit; } }
+
+#define MessageExitOnFailure(x, e, s) if (FAILED(x)) { ExitTrace(x, "%s", s); WcaErrorMessage(e, x, INSTALLMESSAGE_ERROR | MB_OK, 0); goto LExit; }
+#define MessageExitOnFailure1(x, e, f, s) if (FAILED(x)) { ExitTrace1(x, f, s); WcaErrorMessage(e, x, INSTALLMESSAGE_ERROR | MB_OK, 1, s); goto LExit; }
+#define MessageExitOnFailure2(x, e, f, s, t) if (FAILED(x)) { ExitTrace2(x, f, s, t); WcaErrorMessage(e, x, INSTALLMESSAGE_ERROR | MB_OK, 2, s, t); goto LExit; }
+#define MessageExitOnFailure3(x, e, f, s, t, u) if (FAILED(x)) { ExitTrace2(x, f, s, t, u); WcaErrorMessage(e, x, INSTALLMESSAGE_ERROR | MB_OK, 3, s, t, u); goto LExit; }
+
+#define MessageExitOnNullWithLastError(p, x, e, s) if (NULL == p) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } ExitTrace(x, "%s", s); WcaErrorMessage(e, x, MB_OK, 0); goto LExit; }
+#define MessageExitOnNullWithLastError1(p, x, e, f, s) if (NULL == p) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } ExitTrace(x, f, s); WcaErrorMessage(e, x, MB_OK, 1, s); goto LExit; }
+#define MessageExitOnNullWithLastError2(p, x, e, f, s, t) if (NULL == p) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } ExitTrace(x, f, s, t); WcaErrorMessage(e, x, MB_OK, 2, s, t); goto LExit; }
+
+// Generic action enum.
+typedef enum WCA_ACTION
+{
+ WCA_ACTION_NONE,
+ WCA_ACTION_INSTALL,
+ WCA_ACTION_UNINSTALL,
+} WCA_ACTION;
+
+typedef enum WCA_CASCRIPT
+{
+ WCA_CASCRIPT_SCHEDULED,
+ WCA_CASCRIPT_ROLLBACK,
+} WCA_CASCRIPT;
+
+typedef enum WCA_CASCRIPT_CLOSE
+{
+ WCA_CASCRIPT_CLOSE_PRESERVE,
+ WCA_CASCRIPT_CLOSE_DELETE,
+} WCA_CASCRIPT_CLOSE;
+
+typedef enum WCA_TODO
+{
+ WCA_TODO_UNKNOWN,
+ WCA_TODO_INSTALL,
+ WCA_TODO_UNINSTALL,
+ WCA_TODO_REINSTALL,
+} WCA_TODO;
+
+typedef struct WCA_CASCRIPT_STRUCT
+{
+ LPWSTR pwzScriptPath;
+ HANDLE hScriptFile;
+} *WCA_CASCRIPT_HANDLE;
+
+void WIXAPI WcaGlobalInitialize(
+ __in HINSTANCE hInst
+ );
+void WIXAPI WcaGlobalFinalize();
+
+HRESULT WIXAPI WcaInitialize(
+ __in MSIHANDLE hInstall,
+ __in_z PCSTR szCustomActionLogName
+ );
+UINT WIXAPI WcaFinalize(
+ __in UINT iReturnValue
+ );
+BOOL WIXAPI WcaIsInitialized();
+
+MSIHANDLE WIXAPI WcaGetInstallHandle();
+MSIHANDLE WIXAPI WcaGetDatabaseHandle();
+
+const char* WIXAPI WcaGetLogName();
+
+void WIXAPI WcaSetReturnValue(
+ __in UINT iReturnValue
+ );
+BOOL WIXAPI WcaCancelDetected();
+
+#define LOG_BUFFER 2048
+typedef enum LOGLEVEL
+{
+ LOGMSG_TRACEONLY, // Never written to the log file (except in DEBUG builds)
+ LOGMSG_VERBOSE, // Written to log when LOGVERBOSE
+ LOGMSG_STANDARD // Written to log whenever informational logging is enabled
+} LOGLEVEL;
+
+void __cdecl WcaLog(
+ __in LOGLEVEL llv,
+ __in_z __format_string PCSTR fmt, ...
+ );
+BOOL WIXAPI WcaDisplayAssert(
+ __in LPCSTR sz
+ );
+void __cdecl WcaLogError(
+ __in HRESULT hr,
+ __in LPCSTR szMessage,
+ ...
+ );
+
+UINT WIXAPI WcaProcessMessage(
+ __in INSTALLMESSAGE eMessageType,
+ __in MSIHANDLE hRecord
+ );
+UINT __cdecl WcaErrorMessage(
+ __in int iError,
+ __in HRESULT hrError,
+ __in UINT uiType,
+ __in DWORD cArgs,
+ ...
+ );
+HRESULT WIXAPI WcaProgressMessage(
+ __in UINT uiCost,
+ __in BOOL fExtendProgressBar
+ );
+
+BOOL WIXAPI WcaIsInstalling(
+ __in INSTALLSTATE isInstalled,
+ __in INSTALLSTATE isAction
+ );
+BOOL WIXAPI WcaIsReInstalling(
+ __in INSTALLSTATE isInstalled,
+ __in INSTALLSTATE isAction
+ );
+BOOL WIXAPI WcaIsUninstalling(
+ __in INSTALLSTATE isInstalled,
+ __in INSTALLSTATE isAction
+ );
+
+HRESULT WIXAPI WcaSetComponentState(
+ __in_z LPCWSTR wzComponent,
+ __in INSTALLSTATE isState
+ );
+
+HRESULT WIXAPI WcaTableExists(
+ __in_z LPCWSTR wzTable
+ );
+
+HRESULT WIXAPI WcaOpenView(
+ __in_z LPCWSTR wzSql,
+ __out MSIHANDLE* phView
+ );
+HRESULT WIXAPI WcaExecuteView(
+ __in MSIHANDLE hView,
+ __in MSIHANDLE hRec
+ );
+HRESULT WIXAPI WcaOpenExecuteView(
+ __in_z LPCWSTR wzSql,
+ __out MSIHANDLE* phView
+ );
+HRESULT WIXAPI WcaFetchRecord(
+ __in MSIHANDLE hView,
+ __out MSIHANDLE* phRec
+ );
+HRESULT WIXAPI WcaFetchSingleRecord(
+ __in MSIHANDLE hView,
+ __out MSIHANDLE* phRec
+ );
+
+HRESULT WIXAPI WcaGetProperty(
+ __in_z LPCWSTR wzProperty,
+ __inout LPWSTR* ppwzData
+ );
+HRESULT WIXAPI WcaGetFormattedProperty(
+ __in_z LPCWSTR wzProperty,
+ __out LPWSTR* ppwzData
+ );
+HRESULT WIXAPI WcaGetFormattedString(
+ __in_z LPCWSTR wzString,
+ __out LPWSTR* ppwzData
+ );
+HRESULT WIXAPI WcaGetIntProperty(
+ __in_z LPCWSTR wzProperty,
+ __inout int* piData
+ );
+HRESULT WIXAPI WcaGetTargetPath(
+ __in_z LPCWSTR wzFolder,
+ __out LPWSTR* ppwzData
+ );
+HRESULT WIXAPI WcaSetProperty(
+ __in_z LPCWSTR wzPropertyName,
+ __in_z LPCWSTR wzPropertyValue
+ );
+HRESULT WIXAPI WcaSetIntProperty(
+ __in_z LPCWSTR wzPropertyName,
+ __in int nPropertyValue
+ );
+BOOL WIXAPI WcaIsPropertySet(
+ __in LPCSTR szProperty
+ );
+BOOL WIXAPI WcaIsUnicodePropertySet(
+ __in LPCWSTR wzProperty
+ );
+
+HRESULT WIXAPI WcaGetRecordInteger(
+ __in MSIHANDLE hRec,
+ __in UINT uiField,
+ __inout int* piData
+ );
+HRESULT WIXAPI WcaGetRecordString(
+ __in MSIHANDLE hRec,
+ __in UINT uiField,
+ __inout LPWSTR* ppwzData
+ );
+HRESULT WIXAPI WcaGetRecordFormattedInteger(
+ __in MSIHANDLE hRec,
+ __in UINT uiField,
+ __out int* piData
+ );
+HRESULT WIXAPI WcaGetRecordFormattedString(
+ __in MSIHANDLE hRec,
+ __in UINT uiField,
+ __inout LPWSTR* ppwzData
+ );
+
+HRESULT WIXAPI WcaAllocStream(
+ __deref_out_bcount_part(cbData, 0) BYTE** ppbData,
+ __in DWORD cbData
+ );
+HRESULT WIXAPI WcaFreeStream(
+ __in BYTE* pbData
+ );
+
+HRESULT WIXAPI WcaGetRecordStream(
+ __in MSIHANDLE hRecBinary,
+ __in UINT uiField,
+ __deref_out_bcount_full(*pcbData) BYTE** ppbData,
+ __out DWORD* pcbData
+ );
+HRESULT WIXAPI WcaSetRecordString(
+ __in MSIHANDLE hRec,
+ __in UINT uiField,
+ __in_z LPCWSTR wzData
+ );
+HRESULT WIXAPI WcaSetRecordInteger(
+ __in MSIHANDLE hRec,
+ __in UINT uiField,
+ __in int iValue
+ );
+
+HRESULT WIXAPI WcaDoDeferredAction(
+ __in_z LPCWSTR wzAction,
+ __in_z LPCWSTR wzCustomActionData,
+ __in UINT uiCost
+ );
+DWORD WIXAPI WcaCountOfCustomActionDataRecords(
+ __in_z LPCWSTR wzData
+ );
+
+HRESULT WIXAPI WcaReadStringFromCaData(
+ __deref_in LPWSTR* ppwzCustomActionData,
+ __deref_out_z LPWSTR* ppwzString
+ );
+HRESULT WIXAPI WcaReadIntegerFromCaData(
+ __deref_in LPWSTR* ppwzCustomActionData,
+ __out int* piResult
+ );
+HRESULT WIXAPI WcaReadStreamFromCaData(
+ __deref_in LPWSTR* ppwzCustomActionData,
+ __deref_out_bcount(*pcbData) BYTE** ppbData,
+ __out DWORD_PTR* pcbData
+ );
+HRESULT WIXAPI WcaWriteStringToCaData(
+ __in_z LPCWSTR wzString,
+ __deref_inout_z LPWSTR* ppwzCustomActionData
+ );
+HRESULT WIXAPI WcaWriteIntegerToCaData(
+ __in int i,
+ __deref_out_z_opt LPWSTR* ppwzCustomActionData
+ );
+HRESULT WIXAPI WcaWriteStreamToCaData(
+ __in_bcount(cbData) const BYTE* pbData,
+ __in DWORD cbData,
+ __deref_inout_z_opt LPWSTR* ppwzCustomActionData
+ );
+
+HRESULT __cdecl WcaAddTempRecord(
+ __inout MSIHANDLE* phTableView,
+ __inout MSIHANDLE* phColumns,
+ __in_z LPCWSTR wzTable,
+ __out_opt MSIDBERROR* pdbError,
+ __in UINT uiUniquifyColumn,
+ __in UINT cColumns,
+ ...
+ );
+
+HRESULT WIXAPI WcaDumpTable(
+ __in_z LPCWSTR wzTable
+ );
+
+HRESULT WIXAPI WcaDeferredActionRequiresReboot();
+BOOL WIXAPI WcaDidDeferredActionRequireReboot();
+
+HRESULT WIXAPI WcaCaScriptCreateKey(
+ __out LPWSTR* ppwzScriptKey
+ );
+
+HRESULT WIXAPI WcaCaScriptCreate(
+ __in WCA_ACTION action,
+ __in WCA_CASCRIPT script,
+ __in BOOL fImpersonated,
+ __in_z LPCWSTR wzScriptKey,
+ __in BOOL fAppend,
+ __out WCA_CASCRIPT_HANDLE* phScript
+ );
+
+HRESULT WIXAPI WcaCaScriptOpen(
+ __in WCA_ACTION action,
+ __in WCA_CASCRIPT script,
+ __in BOOL fImpersonated,
+ __in_z LPCWSTR wzScriptKey,
+ __out WCA_CASCRIPT_HANDLE* phScript
+ );
+
+void WIXAPI WcaCaScriptClose(
+ __in_opt WCA_CASCRIPT_HANDLE hScript,
+ __in WCA_CASCRIPT_CLOSE closeOperation
+ );
+
+HRESULT WIXAPI WcaCaScriptReadAsCustomActionData(
+ __in WCA_CASCRIPT_HANDLE hScript,
+ __out LPWSTR* ppwzCustomActionData
+ );
+
+HRESULT WIXAPI WcaCaScriptWriteString(
+ __in WCA_CASCRIPT_HANDLE hScript,
+ __in_z LPCWSTR wzValue
+ );
+
+HRESULT WIXAPI WcaCaScriptWriteNumber(
+ __in WCA_CASCRIPT_HANDLE hScript,
+ __in DWORD dwValue
+ );
+
+void WIXAPI WcaCaScriptFlush(
+ __in WCA_CASCRIPT_HANDLE hScript
+ );
+
+void WIXAPI WcaCaScriptCleanup(
+ __in_z LPCWSTR wzProductCode,
+ __in BOOL fImpersonated
+ );
+
+HRESULT WIXAPI QuietExec(
+ __inout_z LPWSTR wzCommand,
+ __in DWORD dwTimeout
+ );
+
+HRESULT WIXAPI QuietExecEx(
+ __inout_z LPWSTR wzCommand,
+ __in DWORD dwTimeout,
+ __in BOOL fLogCommand,
+ __in BOOL fLogOutput
+ );
+
+WCA_TODO WIXAPI WcaGetComponentToDo(
+ __in_z LPCWSTR wzComponentId
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wcawow64.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wcawow64.h
new file mode 100644
index 0000000..dd55f3f
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wcawow64.h
@@ -0,0 +1,20 @@
+#pragma once
+// 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.
+
+
+#include "wcautil.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WIXAPI WcaInitializeWow64();
+BOOL WIXAPI WcaIsWow64Process();
+BOOL WIXAPI WcaIsWow64Initialized();
+HRESULT WIXAPI WcaDisableWow64FSRedirection();
+HRESULT WIXAPI WcaRevertWow64FSRedirection();
+HRESULT WIXAPI WcaFinalizeWow64();
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wcawrapquery.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wcawrapquery.h
new file mode 100644
index 0000000..e08f1c3
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wcawrapquery.h
@@ -0,0 +1,130 @@
+#pragma once
+// 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.
+
+
+#include "wcautil.h"
+
+// Enumerations
+typedef enum eWrapQueryAction
+{
+ wqaTableBegin = 1,
+ wqaTableFinish,
+ wqaRowBegin,
+ wqaRowFinish
+} eWrapQueryAction;
+
+typedef enum eColumnDataType
+{
+ cdtString = 1,
+ cdtInt,
+ cdtStream,
+ cdtUnknown
+} eColumnDataType;
+
+typedef enum eFormatMaskColumn
+{
+ efmcColumn1 = 1,
+ efmcColumn2 = 1 << 1,
+ efmcColumn3 = 1 << 2,
+ efmcColumn4 = 1 << 3,
+ efmcColumn5 = 1 << 4,
+ efmcColumn6 = 1 << 5,
+ efmcColumn7 = 1 << 6,
+ efmcColumn8 = 1 << 7,
+ efmcColumn9 = 1 << 8,
+ efmcColumn10 = 1 << 9,
+ efmcColumn11 = 1 << 10,
+ efmcColumn12 = 1 << 11,
+ efmcColumn13 = 1 << 12,
+ efmcColumn14 = 1 << 13,
+ efmcColumn15 = 1 << 14,
+ efmcColumn16 = 1 << 15,
+ efmcColumn17 = 1 << 16,
+ efmcColumn18 = 1 << 17,
+ efmcColumn19 = 1 << 18,
+ efmcColumn20 = 1 << 19,
+ efmcColumn21 = 1 << 20,
+ efmcColumn22 = 1 << 21,
+ efmcColumn23 = 1 << 22,
+ efmcColumn24 = 1 << 23,
+ efmcColumn25 = 1 << 24,
+ efmcColumn26 = 1 << 25,
+ efmcColumn27 = 1 << 26,
+ efmcColumn28 = 1 << 27,
+ efmcColumn29 = 1 << 28,
+ efmcColumn30 = 1 << 29,
+ efmcColumn31 = 1 << 30,
+ efmcColumn32 = 1 << 31,
+} eFormatMaskColumn;
+
+// Keeps track of the query instance for the reading CA (deferred CA)
+typedef struct WCA_WRAPQUERY_STRUCT
+{
+ // These are used to size our dynamic arrays below
+ DWORD dwColumns, dwRows, dwNextIndex;
+
+ // Dynamic arrays of column schema information
+ eColumnDataType *pcdtColumnType;
+ LPWSTR *ppwzColumnNames;
+
+ // Dynamic array of raw record data
+ MSIHANDLE *phRecords;
+} *WCA_WRAPQUERY_HANDLE;
+
+// Wrap a query
+// Setting the pfFormatMask enables control over which fields will be formatted, and which will be left unchanged
+// Setting dwComponentColumn to something other than 0xFFFFFFFF tells WcaWrapQuery to add two additional columns to the right side of the table
+// - ISInstalled and ISAction - which map to the ComponentState of the component (the component is found in the column specified)
+// Note that if a component is NULL, the component state columns will also be left null, and it will be up to the deferred CA to fail or ignore the case appropriately
+// Setting dwDirectoryColumn to something other than 0xFFFFFFFF tells WcaWrapQuery to add two more additional columns to the right side of the table
+// - SourcePath and TargetPath - which map to the Directory's Source and Target Path (the directory is found in the column specified)
+// Note that if a directory is NULL, the directory source/target path columns will also be left null, and it will be up to the deferred CA to fail or ignore the case appropriately
+HRESULT WIXAPI WcaWrapQuery(
+ __in_z LPCWSTR pwzQuery,
+ __inout LPWSTR * ppwzCustomActionData,
+ __in_opt DWORD dwFormatMask,
+ __in_opt DWORD dwComponentColumn,
+ __in_opt DWORD dwDirectoryColumn
+ );
+// This wraps an empty table query into the custom action data - this is a way to indicate to the deferred custom action that a necessary table doesn't exist, or its query returned no results
+HRESULT WIXAPI WcaWrapEmptyQuery(
+ __inout LPWSTR * ppwzCustomActionData
+ );
+
+// Open a new unwrap query operation, with data from the ppwzCustomActionData string
+HRESULT WIXAPI WcaBeginUnwrapQuery(
+ __out WCA_WRAPQUERY_HANDLE * phWrapQuery,
+ __inout LPWSTR * ppwzCustomActionData
+ );
+
+// Get the number of records in a query being unwrapped
+DWORD WIXAPI WcaGetQueryRecords(
+ __in const WCA_WRAPQUERY_HANDLE hWrapQuery
+ );
+
+// This function resets a query back to its first row, so that the next fetch returns the first record
+void WIXAPI WcaFetchWrappedReset(
+ __in WCA_WRAPQUERY_HANDLE hWrapQuery
+ );
+// Fetch the next record in this query
+// NOTE: the MSIHANDLE returned by this function should not be released, as it is the same handle used by the query object to maintain the item.
+// so, don't use this function with PMSIHANDLE objects!
+HRESULT WIXAPI WcaFetchWrappedRecord(
+ __in WCA_WRAPQUERY_HANDLE hWrapQuery,
+ __out MSIHANDLE* phRec
+ );
+
+// Fetch the next record in the query where the string value in column dwComparisonColumn equals the value pwzExpectedValue
+// NOTE: the MSIHANDLE returned by this function should not be released, as it is the same handle used by the query object to maintain the item.
+// so, don't use this function with PMSIHANDLE objects!
+HRESULT WIXAPI WcaFetchWrappedRecordWhereString(
+ __in WCA_WRAPQUERY_HANDLE hWrapQuery,
+ __in DWORD dwComparisonColumn,
+ __in_z LPCWSTR pwzExpectedValue,
+ __out MSIHANDLE* phRec
+ );
+
+// Release a query ID (frees memory, and frees the ID for a new query)
+void WIXAPI WcaFinishUnwrapQuery(
+ __in_opt WCA_WRAPQUERY_HANDLE hWrapQuery
+ );
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wiutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wiutil.h
new file mode 100644
index 0000000..4264b81
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wiutil.h
@@ -0,0 +1,373 @@
+#pragma once
+// 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.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// constants
+
+#define IDNOACTION 0
+#define WIU_MB_OKIGNORECANCELRETRY 0xE
+
+#define MAX_DARWIN_KEY 73
+#define MAX_DARWIN_COLUMN 255
+
+#define WIU_LOG_DEFAULT INSTALLLOGMODE_FATALEXIT | INSTALLLOGMODE_ERROR | INSTALLLOGMODE_WARNING | \
+ INSTALLLOGMODE_USER | INSTALLLOGMODE_INFO | INSTALLLOGMODE_RESOLVESOURCE | \
+ INSTALLLOGMODE_OUTOFDISKSPACE | INSTALLLOGMODE_ACTIONSTART | \
+ INSTALLLOGMODE_ACTIONDATA | INSTALLLOGMODE_COMMONDATA | INSTALLLOGMODE_PROPERTYDUMP
+
+#define ReleaseMsi(h) if (h) { ::MsiCloseHandle(h); }
+#define ReleaseNullMsi(h) if (h) { ::MsiCloseHandle(h); h = NULL; }
+
+
+typedef enum WIU_RESTART
+{
+ WIU_RESTART_NONE,
+ WIU_RESTART_REQUIRED,
+ WIU_RESTART_INITIATED,
+} WIU_RESTART;
+
+typedef enum WIU_MSI_EXECUTE_MESSAGE_TYPE
+{
+ WIU_MSI_EXECUTE_MESSAGE_NONE,
+ WIU_MSI_EXECUTE_MESSAGE_PROGRESS,
+ WIU_MSI_EXECUTE_MESSAGE_ERROR,
+ WIU_MSI_EXECUTE_MESSAGE_MSI_MESSAGE,
+ WIU_MSI_EXECUTE_MESSAGE_MSI_FILES_IN_USE,
+} WIU_MSI_EXECUTE_MESSAGE_TYPE;
+
+
+// structures
+
+typedef struct _WIU_MSI_EXECUTE_MESSAGE
+{
+ WIU_MSI_EXECUTE_MESSAGE_TYPE type;
+ DWORD dwAllowedResults;
+
+ DWORD cData;
+ LPCWSTR* rgwzData;
+
+ INT nResultRecommendation; // recommended return result for this message based on analysis of real world installs.
+
+ union
+ {
+ struct
+ {
+ DWORD dwPercentage;
+ } progress;
+ struct
+ {
+ DWORD dwErrorCode;
+ LPCWSTR wzMessage;
+ } error;
+ struct
+ {
+ INSTALLMESSAGE mt;
+ LPCWSTR wzMessage;
+ } msiMessage;
+ struct
+ {
+ DWORD cFiles;
+ LPCWSTR* rgwzFiles;
+ } msiFilesInUse;
+ };
+} WIU_MSI_EXECUTE_MESSAGE;
+
+typedef struct _WIU_MSI_PROGRESS
+{
+ DWORD dwTotal;
+ DWORD dwCompleted;
+ DWORD dwStep;
+ BOOL fMoveForward;
+ BOOL fEnableActionData;
+ BOOL fScriptInProgress;
+} WIU_MSI_PROGRESS;
+
+
+typedef int (*PFN_MSIEXECUTEMESSAGEHANDLER)(
+ __in WIU_MSI_EXECUTE_MESSAGE* pMessage,
+ __in_opt LPVOID pvContext
+ );
+
+typedef struct _WIU_MSI_EXECUTE_CONTEXT
+{
+ BOOL fRollback;
+ PFN_MSIEXECUTEMESSAGEHANDLER pfnMessageHandler;
+ LPVOID pvContext;
+ WIU_MSI_PROGRESS rgMsiProgress[64];
+ DWORD dwCurrentProgressIndex;
+
+ INSTALLUILEVEL previousInstallUILevel;
+ HWND hwndPreviousParentWindow;
+ INSTALLUI_HANDLERW pfnPreviousExternalUI;
+ INSTALLUI_HANDLER_RECORD pfnPreviousExternalUIRecord;
+
+ BOOL fSetPreviousExternalUIRecord;
+ BOOL fSetPreviousExternalUI;
+} WIU_MSI_EXECUTE_CONTEXT;
+
+
+// typedefs
+typedef UINT (WINAPI *PFN_MSIENABLELOGW)(
+ __in DWORD dwLogMode,
+ __in_z LPCWSTR szLogFile,
+ __in DWORD dwLogAttributes
+ );
+typedef UINT (WINAPI *PFN_MSIGETPRODUCTINFOW)(
+ __in LPCWSTR szProductCode,
+ __in LPCWSTR szProperty,
+ __out_ecount_opt(*pcchValue) LPWSTR szValue,
+ __inout LPDWORD pcchValue
+ );
+typedef INSTALLSTATE (WINAPI *PFN_MSIGETCOMPONENTPATHW)(
+ __in LPCWSTR szProduct,
+ __in LPCWSTR szComponent,
+ __out_ecount_opt(*pcchBuf) LPWSTR lpPathBuf,
+ __inout_opt LPDWORD pcchBuf
+ );
+typedef INSTALLSTATE (WINAPI *PFN_MSILOCATECOMPONENTW)(
+ __in LPCWSTR szComponent,
+ __out_ecount_opt(*pcchBuf) LPWSTR lpPathBuf,
+ __inout_opt LPDWORD pcchBuf
+ );
+typedef UINT (WINAPI *PFN_MSIGETPRODUCTINFOEXW)(
+ __in LPCWSTR szProductCode,
+ __in_opt LPCWSTR szUserSid,
+ __in MSIINSTALLCONTEXT dwContext,
+ __in LPCWSTR szProperty,
+ __out_ecount_opt(*pcchValue) LPWSTR szValue,
+ __inout_opt LPDWORD pcchValue
+ );
+typedef INSTALLSTATE (WINAPI *PFN_MSIQUERYFEATURESTATEW)(
+ __in LPCWSTR szProduct,
+ __in LPCWSTR szFeature
+ );
+typedef UINT (WINAPI *PFN_MSIGETPATCHINFOEXW)(
+ __in_z LPCWSTR wzPatchCode,
+ __in_z LPCWSTR wzProductCode,
+ __in_z_opt LPCWSTR wzUserSid,
+ __in MSIINSTALLCONTEXT dwContext,
+ __in_z LPCWSTR wzProperty,
+ __out_opt LPWSTR wzValue,
+ __inout DWORD* pcchValue
+ );
+typedef UINT (WINAPI *PFN_MSIDETERMINEPATCHSEQUENCEW)(
+ __in_z LPCWSTR wzProductCode,
+ __in_z_opt LPCWSTR wzUserSid,
+ __in MSIINSTALLCONTEXT context,
+ __in DWORD cPatchInfo,
+ __in PMSIPATCHSEQUENCEINFOW pPatchInfo
+ );
+typedef UINT (WINAPI *PFN_MSIDETERMINEAPPLICABLEPATCHESW)(
+ __in_z LPCWSTR wzProductPackagePath,
+ __in DWORD cPatchInfo,
+ __in PMSIPATCHSEQUENCEINFOW pPatchInfo
+ );
+typedef UINT (WINAPI *PFN_MSIINSTALLPRODUCTW)(
+ __in LPCWSTR szPackagePath,
+ __in_opt LPCWSTR szCommandLine
+ );
+typedef UINT (WINAPI *PFN_MSICONFIGUREPRODUCTEXW)(
+ __in LPCWSTR szProduct,
+ __in int iInstallLevel,
+ __in INSTALLSTATE eInstallState,
+ __in_opt LPCWSTR szCommandLine
+ );
+typedef UINT (WINAPI *PFN_MSIREMOVEPATCHESW)(
+ __in_z LPCWSTR wzPatchList,
+ __in_z LPCWSTR wzProductCode,
+ __in INSTALLTYPE eUninstallType,
+ __in_z_opt LPCWSTR szPropertyList
+ );
+typedef INSTALLUILEVEL (WINAPI *PFN_MSISETINTERNALUI)(
+ __in INSTALLUILEVEL dwUILevel,
+ __inout_opt HWND *phWnd
+ );
+typedef UINT (WINAPI *PFN_MSISETEXTERNALUIRECORD)(
+ __in_opt INSTALLUI_HANDLER_RECORD puiHandler,
+ __in DWORD dwMessageFilter,
+ __in_opt LPVOID pvContext,
+ __out_opt PINSTALLUI_HANDLER_RECORD ppuiPrevHandler
+ );
+typedef INSTALLUI_HANDLERW (WINAPI *PFN_MSISETEXTERNALUIW)(
+ __in_opt INSTALLUI_HANDLERW puiHandler,
+ __in DWORD dwMessageFilter,
+ __in_opt LPVOID pvContext
+ );
+typedef UINT (WINAPI *PFN_MSIENUMPRODUCTSW)(
+ __in DWORD iProductIndex,
+ __out_ecount(MAX_GUID_CHARS + 1) LPWSTR lpProductBuf
+ );
+typedef UINT (WINAPI *PFN_MSIENUMPRODUCTSEXW)(
+ __in_z_opt LPCWSTR wzProductCode,
+ __in_z_opt LPCWSTR wzUserSid,
+ __in DWORD dwContext,
+ __in DWORD dwIndex,
+ __out_opt WCHAR wzInstalledProductCode[39],
+ __out_opt MSIINSTALLCONTEXT *pdwInstalledContext,
+ __out_opt LPWSTR wzSid,
+ __inout_opt LPDWORD pcchSid
+ );
+
+typedef UINT (WINAPI *PFN_MSIENUMRELATEDPRODUCTSW)(
+ __in LPCWSTR lpUpgradeCode,
+ __reserved DWORD dwReserved,
+ __in DWORD iProductIndex,
+ __out_ecount(MAX_GUID_CHARS + 1) LPWSTR lpProductBuf
+ );
+typedef UINT (WINAPI *PFN_MSISOURCELISTADDSOURCEEXW)(
+ __in LPCWSTR szProductCodeOrPatchCode,
+ __in_opt LPCWSTR szUserSid,
+ __in MSIINSTALLCONTEXT dwContext,
+ __in DWORD dwOptions,
+ __in LPCWSTR szSource,
+ __in_opt DWORD dwIndex
+ );
+
+
+HRESULT DAPI WiuInitialize(
+ );
+void DAPI WiuUninitialize(
+ );
+void DAPI WiuFunctionOverride(
+ __in_opt PFN_MSIENABLELOGW pfnMsiEnableLogW,
+ __in_opt PFN_MSIGETCOMPONENTPATHW pfnMsiGetComponentPathW,
+ __in_opt PFN_MSILOCATECOMPONENTW pfnMsiLocateComponentW,
+ __in_opt PFN_MSIQUERYFEATURESTATEW pfnMsiQueryFeatureStateW,
+ __in_opt PFN_MSIGETPRODUCTINFOW pfnMsiGetProductInfoW,
+ __in_opt PFN_MSIGETPRODUCTINFOEXW pfnMsiGetProductInfoExW,
+ __in_opt PFN_MSIINSTALLPRODUCTW pfnMsiInstallProductW,
+ __in_opt PFN_MSICONFIGUREPRODUCTEXW pfnMsiConfigureProductExW,
+ __in_opt PFN_MSISETINTERNALUI pfnMsiSetInternalUI,
+ __in_opt PFN_MSISETEXTERNALUIW pfnMsiSetExternalUIW,
+ __in_opt PFN_MSIENUMRELATEDPRODUCTSW pfnMsiEnumRelatedProductsW,
+ __in_opt PFN_MSISETEXTERNALUIRECORD pfnMsiSetExternalUIRecord,
+ __in_opt PFN_MSISOURCELISTADDSOURCEEXW pfnMsiSourceListAddSourceExW
+ );
+HRESULT DAPI WiuGetComponentPath(
+ __in_z LPCWSTR wzProductCode,
+ __in_z LPCWSTR wzComponentId,
+ __out INSTALLSTATE* pInstallState,
+ __out_z LPWSTR* psczValue
+ );
+HRESULT DAPI WiuLocateComponent(
+ __in_z LPCWSTR wzComponentId,
+ __out INSTALLSTATE* pInstallState,
+ __out_z LPWSTR* psczValue
+ );
+HRESULT DAPI WiuQueryFeatureState(
+ __in_z LPCWSTR wzProduct,
+ __in_z LPCWSTR wzFeature,
+ __out INSTALLSTATE* pInstallState
+ );
+HRESULT DAPI WiuGetProductInfo(
+ __in_z LPCWSTR wzProductCode,
+ __in_z LPCWSTR wzProperty,
+ __out LPWSTR* psczValue
+ );
+HRESULT DAPI WiuGetProductInfoEx(
+ __in_z LPCWSTR wzProductCode,
+ __in_z_opt LPCWSTR wzUserSid,
+ __in MSIINSTALLCONTEXT dwContext,
+ __in_z LPCWSTR wzProperty,
+ __out LPWSTR* psczValue
+ );
+HRESULT DAPI WiuGetProductProperty(
+ __in MSIHANDLE hProduct,
+ __in_z LPCWSTR wzProperty,
+ __out LPWSTR* psczValue
+ );
+HRESULT DAPI WiuGetPatchInfoEx(
+ __in_z LPCWSTR wzPatchCode,
+ __in_z LPCWSTR wzProductCode,
+ __in_z_opt LPCWSTR wzUserSid,
+ __in MSIINSTALLCONTEXT dwContext,
+ __in_z LPCWSTR wzProperty,
+ __out LPWSTR* psczValue
+ );
+HRESULT DAPI WiuDeterminePatchSequence(
+ __in_z LPCWSTR wzProductCode,
+ __in_z_opt LPCWSTR wzUserSid,
+ __in MSIINSTALLCONTEXT context,
+ __in PMSIPATCHSEQUENCEINFOW pPatchInfo,
+ __in DWORD cPatchInfo
+ );
+HRESULT DAPI WiuDetermineApplicablePatches(
+ __in_z LPCWSTR wzProductPackagePath,
+ __in PMSIPATCHSEQUENCEINFOW pPatchInfo,
+ __in DWORD cPatchInfo
+ );
+HRESULT DAPI WiuEnumProducts(
+ __in DWORD iProductIndex,
+ __out_ecount(MAX_GUID_CHARS + 1) LPWSTR wzProductCode
+ );
+HRESULT DAPI WiuEnumProductsEx(
+ __in_z_opt LPCWSTR wzProductCode,
+ __in_z_opt LPCWSTR wzUserSid,
+ __in DWORD dwContext,
+ __in DWORD dwIndex,
+ __out_opt WCHAR wzInstalledProductCode[39],
+ __out_opt MSIINSTALLCONTEXT *pdwInstalledContext,
+ __out_opt LPWSTR wzSid,
+ __inout_opt LPDWORD pcchSid
+ );
+HRESULT DAPI WiuEnumRelatedProducts(
+ __in_z LPCWSTR wzUpgradeCode,
+ __in DWORD iProductIndex,
+ __out_ecount(MAX_GUID_CHARS + 1) LPWSTR wzProductCode
+ );
+HRESULT DAPI WiuEnumRelatedProductCodes(
+ __in_z LPCWSTR wzUpgradeCode,
+ __deref_out_ecount_opt(pcRelatedProducts) LPWSTR** prgsczProductCodes,
+ __out DWORD* pcRelatedProducts,
+ __in BOOL fReturnHighestVersionOnly
+ );
+HRESULT DAPI WiuEnableLog(
+ __in DWORD dwLogMode,
+ __in_z LPCWSTR wzLogFile,
+ __in DWORD dwLogAttributes
+ );
+HRESULT DAPI WiuInitializeExternalUI(
+ __in PFN_MSIEXECUTEMESSAGEHANDLER pfnMessageHandler,
+ __in INSTALLUILEVEL internalUILevel,
+ __in HWND hwndParent,
+ __in LPVOID pvContext,
+ __in BOOL fRollback,
+ __in WIU_MSI_EXECUTE_CONTEXT* pExecuteContext
+ );
+void DAPI WiuUninitializeExternalUI(
+ __in WIU_MSI_EXECUTE_CONTEXT* pExecuteContext
+ );
+HRESULT DAPI WiuConfigureProductEx(
+ __in_z LPCWSTR wzProduct,
+ __in int iInstallLevel,
+ __in INSTALLSTATE eInstallState,
+ __in_z LPCWSTR wzCommandLine,
+ __out WIU_RESTART* pRestart
+ );
+HRESULT DAPI WiuInstallProduct(
+ __in_z LPCWSTR wzPackagPath,
+ __in_z LPCWSTR wzCommandLine,
+ __out WIU_RESTART* pRestart
+ );
+HRESULT DAPI WiuRemovePatches(
+ __in_z LPCWSTR wzPatchList,
+ __in_z LPCWSTR wzProductCode,
+ __in_z LPCWSTR wzPropertyList,
+ __out WIU_RESTART* pRestart
+ );
+HRESULT DAPI WiuSourceListAddSourceEx(
+ __in_z LPCWSTR wzProductCodeOrPatchCode,
+ __in_z_opt LPCWSTR wzUserSid,
+ __in MSIINSTALLCONTEXT dwContext,
+ __in DWORD dwCode,
+ __in_z LPCWSTR wzSource,
+ __in_opt DWORD dwIndex
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wuautil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wuautil.h
new file mode 100644
index 0000000..b239c4e
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/wuautil.h
@@ -0,0 +1,19 @@
+#pragma once
+// 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.
+
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+HRESULT DAPI WuaPauseAutomaticUpdates();
+
+HRESULT DAPI WuaResumeAutomaticUpdates();
+
+HRESULT DAPI WuaRestartRequired(
+ __out BOOL* pfRestartRequired
+ );
+
+#if defined(__cplusplus)
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/xmlutil.h b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/xmlutil.h
new file mode 100644
index 0000000..3dc119b
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/inc/xmlutil.h
@@ -0,0 +1,167 @@
+#pragma once
+// 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.
+
+
+extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument = {0x2933BF90, 0x7B36, 0x11d2, {0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60}};
+extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument20 = {0xF6D90F11, 0x9C73, 0x11D3, {0xB3, 0x2E, 0x00, 0xC0, 0x4F, 0x99, 0x0B, 0xB4}};
+extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument26 = {0xf5078f1b, 0xc551, 0x11d3, {0x89, 0xb9, 0x00, 0x00, 0xf8, 0x1f, 0xe2, 0x21}};
+extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument30 = {0xf5078f32, 0xc551, 0x11d3, {0x89, 0xb9, 0x00, 0x00, 0xf8, 0x1f, 0xe2, 0x21}};
+extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument40 = {0x88d969c0, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
+extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument50 = {0x88d969e5, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
+extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument60 = {0x88d96a05, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
+extern __declspec(selectany) const CLSID XmlUtil_CLSID_XMLSchemaCache = {0x88d969c2, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
+
+extern __declspec(selectany) const IID XmlUtil_IID_IXMLDOMDocument = {0x2933BF81, 0x7B36, 0x11D2, {0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60}};
+extern __declspec(selectany) const IID XmlUtil_IID_IXMLDOMDocument2 = {0x2933BF95, 0x7B36, 0x11D2, {0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60}};
+extern __declspec(selectany) const IID XmlUtil_IID_IXMLDOMSchemaCollection = {0x373984C8, 0xB845, 0x449B, {0x91, 0xE7, 0x45, 0xAC, 0x83, 0x03, 0x6A, 0xDE}};
+
+typedef enum XML_LOAD_ATTRIBUTE
+{
+ XML_LOAD_PRESERVE_WHITESPACE = 1,
+} XML_LOAD_ATTRIBUTE;
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT DAPI XmlInitialize();
+void DAPI XmlUninitialize();
+
+HRESULT DAPI XmlCreateElement(
+ __in IXMLDOMDocument *pixdDocument,
+ __in_z LPCWSTR wzElementName,
+ __out IXMLDOMElement **ppixnElement
+ );
+HRESULT DAPI XmlCreateDocument(
+ __in_opt LPCWSTR pwzElementName,
+ __out IXMLDOMDocument** ppixdDocument,
+ __out_opt IXMLDOMElement** ppixeRootElement = NULL
+ );
+HRESULT DAPI XmlLoadDocument(
+ __in_z LPCWSTR wzDocument,
+ __out IXMLDOMDocument** ppixdDocument
+ );
+HRESULT DAPI XmlLoadDocumentEx(
+ __in_z LPCWSTR wzDocument,
+ __in DWORD dwAttributes,
+ __out IXMLDOMDocument** ppixdDocument
+ );
+HRESULT DAPI XmlLoadDocumentFromFile(
+ __in_z LPCWSTR wzPath,
+ __out IXMLDOMDocument** ppixdDocument
+ );
+HRESULT DAPI XmlLoadDocumentFromBuffer(
+ __in_bcount(cbSource) const BYTE* pbSource,
+ __in DWORD cbSource,
+ __out IXMLDOMDocument** ppixdDocument
+ );
+HRESULT DAPI XmlLoadDocumentFromFileEx(
+ __in_z LPCWSTR wzPath,
+ __in DWORD dwAttributes,
+ __out IXMLDOMDocument** ppixdDocument
+ );
+HRESULT DAPI XmlSelectSingleNode(
+ __in IXMLDOMNode* pixnParent,
+ __in_z LPCWSTR wzXPath,
+ __out IXMLDOMNode **ppixnChild
+ );
+HRESULT DAPI XmlSetAttribute(
+ __in IXMLDOMNode* pixnNode,
+ __in_z LPCWSTR pwzAttribute,
+ __in_z LPCWSTR pwzAttributeValue
+ );
+HRESULT DAPI XmlCreateTextNode(
+ __in IXMLDOMDocument *pixdDocument,
+ __in_z LPCWSTR wzText,
+ __out IXMLDOMText **ppixnTextNode
+ );
+HRESULT DAPI XmlGetText(
+ __in IXMLDOMNode* pixnNode,
+ __deref_out_z BSTR* pbstrText
+ );
+HRESULT DAPI XmlGetAttribute(
+ __in IXMLDOMNode* pixnNode,
+ __in_z LPCWSTR pwzAttribute,
+ __deref_out_z BSTR* pbstrAttributeValue
+ );
+HRESULT DAPI XmlGetAttributeEx(
+ __in IXMLDOMNode* pixnNode,
+ __in_z LPCWSTR wzAttribute,
+ __deref_out_z LPWSTR* psczAttributeValue
+ );
+HRESULT DAPI XmlGetYesNoAttribute(
+ __in IXMLDOMNode* pixnNode,
+ __in_z LPCWSTR wzAttribute,
+ __out BOOL* pfYes
+ );
+HRESULT DAPI XmlGetAttributeNumber(
+ __in IXMLDOMNode* pixnNode,
+ __in_z LPCWSTR pwzAttribute,
+ __out DWORD* pdwValue
+ );
+HRESULT DAPI XmlGetAttributeNumberBase(
+ __in IXMLDOMNode* pixnNode,
+ __in_z LPCWSTR pwzAttribute,
+ __in int nBase,
+ __out DWORD* pdwValue
+ );
+HRESULT DAPI XmlGetAttributeLargeNumber(
+ __in IXMLDOMNode* pixnNode,
+ __in_z LPCWSTR pwzAttribute,
+ __out DWORD64* pdw64Value
+ );
+HRESULT DAPI XmlGetNamedItem(
+ __in IXMLDOMNamedNodeMap *pixnmAttributes,
+ __in_opt LPCWSTR wzName,
+ __out IXMLDOMNode **ppixnNamedItem
+ );
+HRESULT DAPI XmlSetText(
+ __in IXMLDOMNode* pixnNode,
+ __in_z LPCWSTR pwzText
+ );
+HRESULT DAPI XmlSetTextNumber(
+ __in IXMLDOMNode *pixnNode,
+ __in DWORD dwValue
+ );
+HRESULT DAPI XmlCreateChild(
+ __in IXMLDOMNode* pixnParent,
+ __in_z LPCWSTR pwzElementType,
+ __out IXMLDOMNode** ppixnChild
+ );
+HRESULT DAPI XmlRemoveAttribute(
+ __in IXMLDOMNode* pixnNode,
+ __in_z LPCWSTR pwzAttribute
+ );
+HRESULT DAPI XmlSelectNodes(
+ __in IXMLDOMNode* pixnParent,
+ __in_z LPCWSTR wzXPath,
+ __out IXMLDOMNodeList **ppixnChild
+ );
+HRESULT DAPI XmlNextAttribute(
+ __in IXMLDOMNamedNodeMap* pixnnm,
+ __out IXMLDOMNode** pixnAttribute,
+ __deref_opt_out_z_opt BSTR* pbstrAttribute
+ );
+HRESULT DAPI XmlNextElement(
+ __in IXMLDOMNodeList* pixnl,
+ __out IXMLDOMNode** pixnElement,
+ __deref_opt_out_z_opt BSTR* pbstrElement
+ );
+HRESULT DAPI XmlRemoveChildren(
+ __in IXMLDOMNode* pixnSource,
+ __in_z LPCWSTR pwzXPath
+ );
+HRESULT DAPI XmlSaveDocument(
+ __in IXMLDOMDocument* pixdDocument,
+ __inout LPCWSTR wzPath
+ );
+HRESULT DAPI XmlSaveDocumentToBuffer(
+ __in IXMLDOMDocument* pixdDocument,
+ __deref_out_bcount(*pcbDest) BYTE** ppbDest,
+ __out DWORD* pcbDest
+ );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x64/deputil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x64/deputil.lib
new file mode 100644
index 0000000..e703b89
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x64/deputil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x64/dutil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x64/dutil.lib
new file mode 100644
index 0000000..bb0f8ee
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x64/dutil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x64/wcautil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x64/wcautil.lib
new file mode 100644
index 0000000..385df72
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x64/wcautil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x86/balutil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x86/balutil.lib
new file mode 100644
index 0000000..cb7f2f6
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x86/balutil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x86/deputil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x86/deputil.lib
new file mode 100644
index 0000000..f94cb9c
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x86/deputil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x86/dutil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x86/dutil.lib
new file mode 100644
index 0000000..cee8584
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x86/dutil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x86/wcautil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x86/wcautil.lib
new file mode 100644
index 0000000..e602a94
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2010/lib/x86/wcautil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x64/deputil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x64/deputil.lib
new file mode 100644
index 0000000..9f50bc7
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x64/deputil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x64/dutil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x64/dutil.lib
new file mode 100644
index 0000000..8c9022b
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x64/dutil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x64/wcautil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x64/wcautil.lib
new file mode 100644
index 0000000..344ba9f
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x64/wcautil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x86/balutil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x86/balutil.lib
new file mode 100644
index 0000000..3c7fbcd
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x86/balutil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x86/deputil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x86/deputil.lib
new file mode 100644
index 0000000..d420aac
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x86/deputil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x86/dutil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x86/dutil.lib
new file mode 100644
index 0000000..cdfb763
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x86/dutil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x86/wcautil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x86/wcautil.lib
new file mode 100644
index 0000000..78a3706
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2012/lib/x86/wcautil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x64/deputil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x64/deputil.lib
new file mode 100644
index 0000000..ac64292
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x64/deputil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x64/dutil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x64/dutil.lib
new file mode 100644
index 0000000..437486b
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x64/dutil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x64/wcautil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x64/wcautil.lib
new file mode 100644
index 0000000..c5d3823
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x64/wcautil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x86/balutil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x86/balutil.lib
new file mode 100644
index 0000000..cc2d99a
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x86/balutil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x86/deputil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x86/deputil.lib
new file mode 100644
index 0000000..333fca6
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x86/deputil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x86/dutil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x86/dutil.lib
new file mode 100644
index 0000000..90ec499
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x86/dutil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x86/wcautil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x86/wcautil.lib
new file mode 100644
index 0000000..c5bbfbf
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2013/lib/x86/wcautil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x64/deputil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x64/deputil.lib
new file mode 100644
index 0000000..ecbe0eb
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x64/deputil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x64/dutil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x64/dutil.lib
new file mode 100644
index 0000000..ef0a7ce
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x64/dutil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x64/wcautil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x64/wcautil.lib
new file mode 100644
index 0000000..f15b592
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x64/wcautil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x86/balutil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x86/balutil.lib
new file mode 100644
index 0000000..e1e6cfe
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x86/balutil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x86/deputil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x86/deputil.lib
new file mode 100644
index 0000000..185c813
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x86/deputil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x86/dutil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x86/dutil.lib
new file mode 100644
index 0000000..91751c0
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x86/dutil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x86/wcautil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x86/wcautil.lib
new file mode 100644
index 0000000..93acec5
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2015/lib/x86/wcautil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x64/deputil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x64/deputil.lib
new file mode 100644
index 0000000..ee67749
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x64/deputil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x64/dutil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x64/dutil.lib
new file mode 100644
index 0000000..1b72d06
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x64/dutil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x64/wcautil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x64/wcautil.lib
new file mode 100644
index 0000000..02d1d69
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x64/wcautil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x86/balutil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x86/balutil.lib
new file mode 100644
index 0000000..80192c6
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x86/balutil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x86/deputil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x86/deputil.lib
new file mode 100644
index 0000000..a48d6c4
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x86/deputil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x86/dutil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x86/dutil.lib
new file mode 100644
index 0000000..aa00ce0
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x86/dutil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x86/wcautil.lib b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x86/wcautil.lib
new file mode 100644
index 0000000..712cc54
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/vs2017/lib/x86/wcautil.lib differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/wix.ca.targets b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/wix.ca.targets
new file mode 100644
index 0000000..0631b82
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/wix.ca.targets
@@ -0,0 +1,205 @@
+
+
+
+
+
+
+
+
+
+ true
+
+ $(MSBuildExtensionsPath32)\..\WiX Toolset v3.11\bin\WixTasks.dll
+ $(MSBuildExtensionsPath)\..\WiX Toolset v3.11\bin\WixTasks.dll
+
+ $(MSBuildProgramFiles32)\WiX Toolset v3.11\bin\WixTasks.dll
+
+ $(TargetName).CA$(TargetExt)
+
+
+
+
+
+
+ SOFTWARE\Microsoft\Windows Installer XML\3.11
+ SOFTWARE\Wow6432Node\Microsoft\Windows Installer XML\3.11
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/wix.nativeca.targets b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/wix.nativeca.targets
new file mode 100644
index 0000000..d91edf5
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/wix.nativeca.targets
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+ true
+
+ VS2010
+ VS2012
+ VS2012
+ VS2013
+ VS2013
+ VS2015
+ VS2015
+ VS2017
+ VS2017
+
+ VS2015
+
+
+
+
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/x64/sfxca.dll b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/x64/sfxca.dll
new file mode 100644
index 0000000..91751ee
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/x64/sfxca.dll differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/x86/sfxca.dll b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/x86/sfxca.dll
new file mode 100644
index 0000000..e55ff8f
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/sdk/x86/sfxca.dll differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/shine.exe b/PDFWorkflowManager/packages/WiX.3.11.2/tools/shine.exe
new file mode 100644
index 0000000..1190429
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/shine.exe differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/shine.exe.config b/PDFWorkflowManager/packages/WiX.3.11.2/tools/shine.exe.config
new file mode 100644
index 0000000..7e077ed
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/shine.exe.config
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/smoke.exe b/PDFWorkflowManager/packages/WiX.3.11.2/tools/smoke.exe
new file mode 100644
index 0000000..ae3de1c
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/smoke.exe differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/smoke.exe.config b/PDFWorkflowManager/packages/WiX.3.11.2/tools/smoke.exe.config
new file mode 100644
index 0000000..bbfc736
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/smoke.exe.config
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/torch.exe b/PDFWorkflowManager/packages/WiX.3.11.2/tools/torch.exe
new file mode 100644
index 0000000..63eb434
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/torch.exe differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/torch.exe.config b/PDFWorkflowManager/packages/WiX.3.11.2/tools/torch.exe.config
new file mode 100644
index 0000000..bbfc736
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/torch.exe.config
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/wconsole.dll b/PDFWorkflowManager/packages/WiX.3.11.2/tools/wconsole.dll
new file mode 100644
index 0000000..0293900
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/wconsole.dll differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/winterop.dll b/PDFWorkflowManager/packages/WiX.3.11.2/tools/winterop.dll
new file mode 100644
index 0000000..fe05975
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/winterop.dll differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/wix.dll b/PDFWorkflowManager/packages/WiX.3.11.2/tools/wix.dll
new file mode 100644
index 0000000..464dad8
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/wix.dll differ
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/wix.targets b/PDFWorkflowManager/packages/WiX.3.11.2/tools/wix.targets
new file mode 100644
index 0000000..a96f0d8
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/wix.targets
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+ wix2010.targets
+
+ wix200x.targets
+
+
+
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/wix200x.targets b/PDFWorkflowManager/packages/WiX.3.11.2/tools/wix200x.targets
new file mode 100644
index 0000000..fbac4ec
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/wix200x.targets
@@ -0,0 +1,3091 @@
+
+
+
+
+
+
+
+
+
+
+ $(MSBuildProjectFullPath).user
+
+
+
+
+
+
+ $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets
+ $(MSBuildExtensionsPath32)\..\WiX Toolset v3.11\bin\WixTasks.dll
+ $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets
+ $(MSBuildExtensionsPath)\..\WiX Toolset v3.11\bin\WixTasks.dll
+ $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Lux.targets
+ $(MSBuildExtensionsPath32)\..\WiX Toolset v3.11\bin\LuxTasks.dll
+ $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Lux.targets
+ $(MSBuildExtensionsPath)\..\WiX Toolset v3.11\bin\LuxTasks.dll
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildProjectFullPath)
+ $(MSBuildAllProjects);$(WixTargetsPath)
+ $(MSBuildAllProjects);$(LuxTargetsPath)
+ $(MSBuildAllProjects);$(UserTargetsPath)
+ $(MSBuildAllProjects);$(CustomBeforeWixTargets)
+ $(MSBuildAllProjects);$(CustomAfterWixTargets)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ Debug
+ AnyCPU
+ bin\$(Configuration)\
+
+ $(OutputPath)\
+ <_OriginalOutputType>$(OutputType)
+ Package
+ true
+
+
+
+
+ obj\
+ $(IntermediateOutputPath)\
+ $(BaseIntermediateOutputPath)$(Configuration)\
+ $(BaseIntermediateOutputPath)$(Platform)\$(Configuration)\
+ .wixobj
+ $(IntermediateOutputPath)cabcache\
+ $(MSBuildProjectFile).FileList.txt
+ $(MSBuildProjectFile).BindContentsFileList
+ .txt
+ $(MSBuildProjectFile).BindOutputsFileList
+ .txt
+ $(MSBuildProjectFile).BindBuiltOutputsFileList
+ .txt
+ $(MSBuildProjectFile).Signed.txt
+
+
+
+
+
+
+ .msi
+ .msm
+ .pcp
+ .wixlib
+ .exe
+
+
+
+
+ $(OutputPath)
+
+ $(OutDir)\
+
+
+ $(OutDir)
+ $(PdbOutputPath)\
+
+
+ $(MSBuildProjectName)
+
+
+ $(MSBuildProjectFile)
+
+
+ $(MSBuildProjectExtension)
+
+
+ $(MSBuildProjectDirectory)\
+
+
+ $(ProjectDir)$(ProjectFileName)
+
+
+ .wixpdb
+
+
+ $(OutputName)
+
+
+ $(TargetName)$(TargetExt)
+
+
+ $(TargetName)$(TargetPdbExt)
+
+
+ $(Configuration)
+
+
+ $(Platform)
+
+
+
+
+ <_OutputPathItem Include="$(OutDir)" />
+ <_IntermediateOutputPathItem Include="$(IntermediateOutputPath)" />
+ <_PdbOutputPathItem Include="$(PdbOutputPath)" />
+
+
+
+
+
+ @(_OutputPathItem->'%(FullPath)')
+ @(_PdbOutputPathItem->'%(FullPath)')
+
+
+ @(_OutputPathItem->'%(FullPath)$(TargetFileName)')
+ @(_PdbOutputPathItem->'%(FullPath)$(TargetPdbName)')
+
+
+
+
+
+
+
+
+
+ *Undefined if not building from within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+
+
+
+
+
+
+
+
+
+ $(NoLogo)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+ true
+ false
+ true
+ false
+
+
+
+
+
+ false
+
+ $(HarvestNoLogo)
+ $(HarvestSuppressAllWarnings)
+ $(HarvestSuppressSpecificWarnings)
+ $(HarvestTreatWarningsAsErrors)
+ $(HarvestTreatSpecificWarningsAsErrors)
+ $(HarvestVerboseOutput)
+ $(HarvestAutogenerateGuids)
+ $(HarvestGenerateGuidsNow)
+ $(HarvestSuppressFragments)
+ $(HarvestSuppressUniqueIds)
+ $(HarvestTransforms)
+ $(IntermediateOutputPath)Product.Generated.wxs
+ $(IntermediateOutputPath)Bundle.Generated.wxs
+
+
+
+
+ $(HarvestNoLogo)
+ $(HarvestSuppressAllWarnings)
+ $(HarvestSuppressSpecificWarnings)
+ $(HarvestTreatWarningsAsErrors)
+ $(HarvestTreatSpecificWarningsAsErrors)
+ $(HarvestVerboseOutput)
+ $(HarvestAutogenerateGuids)
+ $(HarvestGenerateGuidsNow)
+ $(HarvestSuppressFragments)
+ $(HarvestSuppressUniqueIds)
+ $(HarvestTransforms)
+
+
+
+
+ $(HarvestNoLogo)
+ $(HarvestSuppressAllWarnings)
+ $(HarvestSuppressSpecificWarnings)
+ $(HarvestTreatWarningsAsErrors)
+ $(HarvestTreatSpecificWarningsAsErrors)
+ $(HarvestVerboseOutput)
+ $(HarvestAutogenerateGuids)
+ $(HarvestGenerateGuidsNow)
+ $(HarvestSuppressFragments)
+ $(HarvestSuppressUniqueIds)
+ $(HarvestTransforms)
+
+
+
+
+ $(NoLogo)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(SuppressSchemaValidation)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+ $(Platform)
+
+
+
+
+ $(NoLogo)
+ $(BindFiles)
+ $(Pedantic)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(SuppressSchemaValidation)
+ $(SuppressIntermediateFileVersionMatching)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+
+
+
+
+ $(NoLogo)
+ $(BindFiles)
+ $(Pedantic)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(SuppressSchemaValidation)
+ $(SuppressIntermediateFileVersionMatching)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(NoLogo)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+
+
+
+
+
+
+ <_PleaseSetThisInProjectFile>Please set this in the project file before the <Import> of the wix.targets file.
+ <_OutputTypeDescription>The OutputType defines whether a Windows Installer package (.msi), PatchCreation (.pcp), merge module (.msm), wix library (.wixlib), or self-extracting executable (.exe) is being built. $(_PleaseSetThisInProjectFile) Possible values are 'Package', 'Module', 'Library', and 'Bundle'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SOFTWARE\Microsoft\Windows Installer XML\3.11
+ SOFTWARE\Wow6432Node\Microsoft\Windows Installer XML\3.11
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BeforeBuild;
+ CoreBuild;
+ AfterBuild
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BuildOnlySettings;
+ PrepareForBuild;
+ PreBuildEvent;
+ ResolveReferences;
+ AddCompilerDefineConstants;
+ CompileAndLink;
+ Signing;
+ GetTargetPath;
+ IncrementalClean;
+ PostBuildEvent
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BeforeRebuild;
+ Clean;
+ $(MSBuildProjectDefaultTargets);
+ AfterRebuild;
+
+
+
+ BeforeRebuild;
+ Clean;
+ Build;
+ AfterRebuild;
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GetTargetPath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BeforeResolveReferences;
+ SplitProjectReferencesByType;
+ ResolveProjectReferences;
+ ResolveVCProjectReferences;
+ ResolveWixLibraryReferences;
+ ResolveWixExtensionReferences;
+ AfterResolveReferences
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ AssignCultures
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ResolveReferences;
+ AddSolutionDefineConstants;
+ AddProjectReferenceDefineConstants;
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ResolveReferences;
+ BeforeCompileAndLink;
+ _TimeStampBeforeCompileAndLink;
+ ConvertReferences;
+ ConvertBundleReferences;
+ Harvest;
+ GenerateCode;
+ Compile;
+ Lib;
+ Link;
+ UpdateLinkFileWrites;
+ _TimeStampAfterCompileAndLink;
+ AfterCompileAndLink
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HarvestProjects;
+ HarvestDirectory;
+ HarvestFile;
+
+
+
+
+
+
+
+ RefreshGeneratedFile;
+ RefreshBundleGeneratedFile
+
+
+
+
+
+
+
+ GetMsmsToSign;
+ InternalSignMsm;
+
+
+ GetCabsToSign;
+ GetMsiToSign;
+ InternalSignCabs;
+ InscribeMsi;
+ InternalSignMsi;
+
+
+ GetContainersToSign;
+ InternalSignContainers;
+ InscribeBundleEngine;
+ InternalSignBundleEngine;
+ InscribeBundle;
+ InternalSignBundle;
+
+
+
+ CompileAndLink;
+ BeforeSigning;
+ $(InternalSignDependsOn);
+ AfterSigning
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CombineHarvestProjects
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GetHarvestDirectoryContent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveWixExtensionReferences;
+ GenerateCompileWithObjectPath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveWixExtensionReferences;
+ CompileAndLink;
+ InternalSignCabs
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveWixExtensionReferences;
+ CompileAndLink;
+ InternalSignContainers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveWixExtensionReferences;
+ CompileAndLink;
+ InternalSignBundleEngine
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveWixExtensionReferences
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveReferences;
+ AssignCultures;
+ ReadPreviousBindInputsAndBuiltOutputs;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BeforeClean;
+ CleanReferencedProjects;
+ CoreClean;
+ AfterClean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GetTargetPath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(TargetPath)
+ $(TargetFileName)
+
+
+
+
+
+ PrepareForBuild;AssignCultures
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AssignCultures
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild
+
+
+
+
+
+ PrepareForBuild
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/wix2010.targets b/PDFWorkflowManager/packages/WiX.3.11.2/tools/wix2010.targets
new file mode 100644
index 0000000..265d656
--- /dev/null
+++ b/PDFWorkflowManager/packages/WiX.3.11.2/tools/wix2010.targets
@@ -0,0 +1,3073 @@
+
+
+
+
+
+
+ $(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Installer XML\3.11@InstallRoot)
+ $(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows Installer XML\3.11@InstallRoot)
+
+
+
+
+
+
+ $(MSBuildProjectFullPath).user
+
+
+
+
+
+
+ $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets
+ $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets
+ $(WixInstallPath)\WixTasks.dll
+ $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Lux.targets
+ $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Lux.targets
+ $(WixInstallPath)\LuxTasks.dll
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildProjectFullPath)
+ $(MSBuildAllProjects);$(WixTargetsPath)
+ $(MSBuildAllProjects);$(LuxTargetsPath)
+ $(MSBuildAllProjects);$(UserTargetsPath)
+ $(MSBuildAllProjects);$(CustomBeforeWixTargets)
+ $(MSBuildAllProjects);$(CustomAfterWixTargets)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+ $(OutputPath)\
+ $(MSBuildProjectName)
+
+ bin\Debug\
+ <_OriginalConfiguration>$(Configuration)
+ <_OriginalPlatform>$(Platform)
+ Debug
+ $(Configuration)
+ AnyCPU
+ <_OriginalOutputType>$(OutputType)
+ Package
+ true
+
+
+
+
+ <_InvalidConfigurationError Condition=" '$(SkipInvalidConfigurations)' != 'true' ">true
+ <_InvalidConfigurationWarning Condition=" '$(SkipInvalidConfigurations)' == 'true' ">true
+
+
+
+
+ obj\
+ $(BaseIntermediateOutputPath)\
+ .wixobj
+ $(MSBuildProjectFile).FileList.txt
+ $(MSBuildProjectFile).BindContentsFileList
+ .txt
+ $(MSBuildProjectFile).BindOutputsFileList
+ .txt
+ $(MSBuildProjectFile).BindBuiltOutputsFileList
+ .txt
+ $(MSBuildProjectFile).Signed.txt
+
+
+
+ $(BaseIntermediateOutputPath)$(Configuration)\
+ $(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\
+
+
+ $(IntermediateOutputPath)\
+
+
+ $(IntermediateOutputPath)cabcache\
+
+
+
+
+
+
+
+ $(WixInstallPath)
+ $(WixToolPath)
+
+
+
+
+
+
+ .msi
+ .msm
+ .pcp
+ .wixlib
+ .exe
+
+
+
+
+ $(OutputPath)
+
+ $(OutDir)\
+
+
+ $(OutDir)
+ $(PdbOutputPath)\
+
+
+ $(MSBuildProjectName)
+
+
+ $(MSBuildProjectFile)
+
+
+ $(MSBuildProjectExtension)
+
+
+ $(MSBuildProjectDirectory)\
+
+
+ $(ProjectDir)$(ProjectFileName)
+
+
+ .wixpdb
+
+
+ $(OutputName)
+
+
+ $(TargetName)$(TargetExt)
+
+
+ $(TargetName)$(TargetPdbExt)
+
+
+ $(Configuration)
+
+
+ $(Platform)
+
+
+
+
+ <_OutputPathItem Include="$(OutDir)" />
+ <_IntermediateOutputPathItem Include="$(IntermediateOutputPath)" />
+
+
+
+
+
+ $([System.IO.Path]::GetFullPath(`$([System.IO.Path]::Combine(`$(MSBuildProjectDirectory)`, `$(OutDir)`))`))
+ $([System.IO.Path]::GetFullPath(`$([System.IO.Path]::Combine(`$(MSBuildProjectDirectory)`, `$(PdbOutputPath)`))`))
+
+
+ $(TargetDir)$(TargetFileName)
+ $(TargetPdbDir)$(TargetPdbName)
+
+
+
+
+
+
+
+
+
+ *Undefined if not building from within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+
+
+
+
+
+
+
+
+
+ $(NoLogo)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+ true
+ false
+ true
+ false
+
+
+
+
+
+ false
+
+ $(HarvestNoLogo)
+ $(HarvestSuppressAllWarnings)
+ $(HarvestSuppressSpecificWarnings)
+ $(HarvestTreatWarningsAsErrors)
+ $(HarvestTreatSpecificWarningsAsErrors)
+ $(HarvestVerboseOutput)
+ $(HarvestAutogenerateGuids)
+ $(HarvestGenerateGuidsNow)
+ $(HarvestSuppressFragments)
+ $(HarvestSuppressUniqueIds)
+ $(HarvestTransforms)
+ $(IntermediateOutputPath)Product.Generated.wxs
+ $(IntermediateOutputPath)Bundle.Generated.wxs
+
+
+
+
+ $(HarvestNoLogo)
+ $(HarvestSuppressAllWarnings)
+ $(HarvestSuppressSpecificWarnings)
+ $(HarvestTreatWarningsAsErrors)
+ $(HarvestTreatSpecificWarningsAsErrors)
+ $(HarvestVerboseOutput)
+ $(HarvestAutogenerateGuids)
+ $(HarvestGenerateGuidsNow)
+ $(HarvestSuppressFragments)
+ $(HarvestSuppressUniqueIds)
+ $(HarvestTransforms)
+
+
+
+
+ $(HarvestNoLogo)
+ $(HarvestSuppressAllWarnings)
+ $(HarvestSuppressSpecificWarnings)
+ $(HarvestTreatWarningsAsErrors)
+ $(HarvestTreatSpecificWarningsAsErrors)
+ $(HarvestVerboseOutput)
+ $(HarvestAutogenerateGuids)
+ $(HarvestGenerateGuidsNow)
+ $(HarvestSuppressFragments)
+ $(HarvestSuppressUniqueIds)
+ $(HarvestTransforms)
+
+
+
+
+ $(NoLogo)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(SuppressSchemaValidation)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+ $(Platform)
+
+
+
+
+ $(NoLogo)
+ $(BindFiles)
+ $(Pedantic)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(SuppressSchemaValidation)
+ $(SuppressIntermediateFileVersionMatching)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+
+
+
+
+ $(NoLogo)
+ $(BindFiles)
+ $(Pedantic)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(SuppressSchemaValidation)
+ $(SuppressIntermediateFileVersionMatching)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(NoLogo)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+
+
+
+
+ Configuration=$(ConfigurationName);
+ OutDir=$(OutDir);
+ Platform=$(PlatformName);
+ ProjectDir=$(ProjectDir);
+ ProjectExt=$(ProjectExt);
+ ProjectFileName=$(ProjectFileName);
+ ProjectName=$(ProjectName);
+ ProjectPath=$(ProjectPath);
+ TargetDir=$(TargetDir);
+ TargetExt=$(TargetExt);
+ TargetFileName=$(TargetFileName);
+ TargetName=$(TargetName);
+ TargetPath=$(TargetPath);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_PleaseSetThisInProjectFile>Please set this in the project file before the <Import> of the wix.targets file.
+ <_OutputTypeDescription>The OutputType defines whether a Windows Installer package (.msi), PatchCreation (.pcp), merge module (.msm), wix library (.wixlib), or self-extracting executable (.exe) is being built. $(_PleaseSetThisInProjectFile) Possible values are 'Package', 'Module', 'Library', and 'Bundle'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BeforeBuild;
+ CoreBuild;
+ AfterBuild
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BuildOnlySettings;
+ PrepareForBuild;
+ PreBuildEvent;
+ ResolveReferences;
+ AddCompilerDefineConstants;
+ CompileAndLink;
+ Signing;
+ GetTargetPath;
+ IncrementalClean;
+ PostBuildEvent
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BeforeRebuild;
+ Clean;
+ $(MSBuildProjectDefaultTargets);
+ AfterRebuild;
+
+
+
+ BeforeRebuild;
+ Clean;
+ Build;
+ AfterRebuild;
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GetTargetPath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BeforeResolveReferences;
+ AssignProjectConfiguration;
+ ResolveProjectReferences;
+ ResolveWixLibraryReferences;
+ ResolveWixExtensionReferences;
+ AfterResolveReferences
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectReferenceWithConfiguration>
+ %(FullPath)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_MSBuildProjectReference Include="@(_ProjectReferenceWithConfiguration)" Condition="'$(BuildingInsideVisualStudio)'!='true' and '@(_ProjectReferenceWithConfiguration)'!=''"/>
+
+
+
+
+ <_MSBuildProjectReferenceExistent Include="@(_MSBuildProjectReference)" Condition="Exists('%(Identity)')"/>
+ <_MSBuildProjectReferenceNonexistent Include="@(_MSBuildProjectReference)" Condition="!Exists('%(Identity)')"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ AssignCultures
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ResolveReferences;
+ AddSolutionDefineConstants;
+ AddProjectReferenceDefineConstants;
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ResolveReferences;
+ BeforeCompileAndLink;
+ _TimeStampBeforeCompileAndLink;
+ ConvertReferences;
+ ConvertBundleReferences;
+ Harvest;
+ GenerateCode;
+ Compile;
+ Lib;
+ Link;
+ _TimeStampAfterCompileAndLink;
+ AfterCompileAndLink
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HarvestProjects;
+ HarvestDirectory;
+ HarvestFile;
+
+
+
+
+
+
+
+ RefreshGeneratedFile;
+ RefreshBundleGeneratedFile
+
+
+
+
+
+
+
+ GetMsmsToSign;
+ InternalSignMsm;
+
+
+ GetCabsToSign;
+ GetMsiToSign;
+ InternalSignCabs;
+ InscribeMsi;
+ InternalSignMsi;
+
+
+ GetContainersToSign;
+ InternalSignContainers;
+ InscribeBundleEngine;
+ InternalSignBundleEngine;
+ InscribeBundle;
+ InternalSignBundle;
+
+
+
+ CompileAndLink;
+ BeforeSigning;
+ $(InternalSignDependsOn);
+ AfterSigning
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_HeatProjectReference Include="@(_MSBuildProjectReferenceExistent)" Condition=" '%(_MSBuildProjectReferenceExistent.DoNotHarvest)' == '' ">
+ %(_MSBuildProjectReferenceExistent.RefTargetDir)
+ Binaries;Symbols;Sources;Content;Satellites;Documents
+ %(_MSBuildProjectReferenceExistent.Name)
+ $(IntermediateOutputPath)_%(_MSBuildProjectReferenceExistent.Filename).wxs
+
+
+
+
+
+
+
+
+
+ <_GeneratedFiles Include="$(HarvestProjectsGeneratedFile)" />
+
+
+
+
+
+
+
+
+ <_HeatProjectReference Include="@(_MSBuildProjectReferenceExistent)" Condition=" '%(_MSBuildProjectReferenceExistent.DoNotHarvest)' == '' ">
+ Binaries;Symbols;Sources;Content;Satellites;Documents
+ payloadgroup
+ $(IntermediateOutputPath)_%(_MSBuildProjectReferenceExistent.Filename).wxs
+
+
+
+
+
+
+
+
+
+ <_GeneratedFiles Include="$(HarvestProjectsGeneratedFile)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(HarvestProjectsTransforms)
+ $(HarvestProjectsProjectOutputGroups)
+ $(HarvestProjectsDirectoryIds)
+
+
+ $(HarvestProjectsTransforms)
+ $(HarvestProjectsProjectOutputGroups)
+ $(HarvestProjectsDirectoryIds)
+
+
+
+
+ CombineHarvestProjects
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(HarvestDirectoryTransforms)
+ $(HarvestDirectoryComponentGroupName)
+ $(HarvestDirectoryDirectoryRefId)
+ $(HarvestDirectoryKeepEmptyDirectories)
+ $(HarvestDirectoryPreprocessorVariable)
+ $(HarvestDirectorySuppressCom)
+ $(HarvestDirectorySuppressRootDirectory)
+ $(HarvestDirectorySuppressRegistry)
+
+
+
+
+
+ GetHarvestDirectoryContent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(HarvestFileTransforms)
+ $(HarvestFileComponentGroupName)
+ $(HarvestFileDirectoryRefId)
+ $(HarvestFilePreprocessorVariable)
+ $(HarvestFileSuppressCom)
+ $(HarvestFileSuppressRegistry)
+ $(HarvestFileSuppressRootDirectory)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveWixExtensionReferences;
+ GenerateCompileWithObjectPath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveWixExtensionReferences;
+ CompileAndLink;
+ InternalSignCabs
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveWixExtensionReferences;
+ CompileAndLink;
+ InternalSignContainers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveWixExtensionReferences;
+ CompileAndLink;
+ InternalSignBundleEngine
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveWixExtensionReferences
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveReferences;
+ AssignCultures;
+ ReadPreviousBindInputsAndBuiltOutputs;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BeforeClean;
+ CleanReferencedProjects;
+ CoreClean;
+ AfterClean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GetTargetPath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(TargetPath)
+ $(TargetFileName)
+
+
+
+
+
+ PrepareForBuild;AssignCultures
+ true
+
+
+
+
+
+
+
+
+
+ %(_BuiltProjectOutputGroupOutputIntermediate.FullPath)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AssignCultures
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild
+
+
+
+
+
+ PrepareForBuild
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PDFWorkflowManager/packages/WiX.3.11.2/tools/x86/burn.exe b/PDFWorkflowManager/packages/WiX.3.11.2/tools/x86/burn.exe
new file mode 100644
index 0000000..92e32b3
Binary files /dev/null and b/PDFWorkflowManager/packages/WiX.3.11.2/tools/x86/burn.exe differ
diff --git a/PDFWorkflowManager/packages/WindowsAPICodePack-Core.1.1.2/.signature.p7s b/PDFWorkflowManager/packages/WindowsAPICodePack-Core.1.1.2/.signature.p7s
new file mode 100644
index 0000000..d6df649
Binary files /dev/null and b/PDFWorkflowManager/packages/WindowsAPICodePack-Core.1.1.2/.signature.p7s differ
diff --git a/PDFWorkflowManager/packages/WindowsAPICodePack-Core.1.1.2/WindowsAPICodePack-Core.1.1.2.nupkg b/PDFWorkflowManager/packages/WindowsAPICodePack-Core.1.1.2/WindowsAPICodePack-Core.1.1.2.nupkg
new file mode 100644
index 0000000..15113dd
Binary files /dev/null and b/PDFWorkflowManager/packages/WindowsAPICodePack-Core.1.1.2/WindowsAPICodePack-Core.1.1.2.nupkg differ
diff --git a/PDFWorkflowManager/packages/WindowsAPICodePack-Core.1.1.2/lib/Microsoft.WindowsAPICodePack.dll b/PDFWorkflowManager/packages/WindowsAPICodePack-Core.1.1.2/lib/Microsoft.WindowsAPICodePack.dll
new file mode 100644
index 0000000..275c251
Binary files /dev/null and b/PDFWorkflowManager/packages/WindowsAPICodePack-Core.1.1.2/lib/Microsoft.WindowsAPICodePack.dll differ
diff --git a/PDFWorkflowManager/packages/WindowsAPICodePack-Core.1.1.2/lib/Microsoft.WindowsAPICodePack.xml b/PDFWorkflowManager/packages/WindowsAPICodePack-Core.1.1.2/lib/Microsoft.WindowsAPICodePack.xml
new file mode 100644
index 0000000..44c58f7
--- /dev/null
+++ b/PDFWorkflowManager/packages/WindowsAPICodePack-Core.1.1.2/lib/Microsoft.WindowsAPICodePack.xml
@@ -0,0 +1,2934 @@
+
+
+
+ Microsoft.WindowsAPICodePack
+
+
+
+
+ Provides access to the Application Restart and Recovery
+ features available in Windows Vista or higher. Application Restart and Recovery lets an
+ application do some recovery work to save data before the process exits.
+
+
+
+
+ Registers an application for recovery by Application Restart and Recovery.
+
+ An object that specifies
+ the callback method, an optional parameter to pass to the callback
+ method and a time interval.
+
+ The registration failed due to an invalid parameter.
+
+
+ The registration failed.
+ The time interval is the period of time within
+ which the recovery callback method
+ calls the method to indicate
+ that it is still performing recovery work.
+
+
+
+ Removes an application's recovery registration.
+
+
+ The attempt to unregister for recovery failed.
+
+
+
+ Removes an application's restart registration.
+
+
+ The attempt to unregister for restart failed.
+
+
+
+ Called by an application's method
+ to indicate that it is still performing recovery work.
+
+ A value indicating whether the user
+ canceled the recovery.
+
+ This method must be called from a registered callback method.
+
+
+
+ Called by an application's method to
+ indicate that the recovery work is complete.
+
+
+ This should
+ be the last call made by the method because
+ Windows Error Reporting will terminate the application
+ after this method is invoked.
+
+ true to indicate the the program was able to complete its recovery
+ work before terminating; otherwise false.
+
+
+
+ Registers an application for automatic restart if
+ the application
+ is terminated by Windows Error Reporting.
+
+ An object that specifies
+ the command line arguments used to restart the
+ application, and
+ the conditions under which the application should not be
+ restarted.
+ Registration failed due to an invalid parameter.
+ The attempt to register failed.
+ A registered application will not be restarted if it executed for less than 60 seconds before terminating.
+
+
+
+ This exception is thrown when there are problems with registering, unregistering or updating
+ applications using Application Restart Recovery.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Initializes an exception with a custom message.
+
+ A custom message for the exception.
+
+
+
+ Initializes an exception with custom message and inner exception.
+
+ A custom message for the exception.
+ Inner exception.
+
+
+
+ Initializes an exception with custom message and error code.
+
+ A custom message for the exception.
+ An error code (hresult) from which to generate the exception.
+
+
+
+ Initializes an exception from serialization info and a context.
+
+ Serialization info from which to create exception.
+ Streaming context from which to create exception.
+
+
+
+ The that represents the callback method invoked
+ by the system when an application has registered for
+ application recovery.
+
+ An application-defined state object that is passed to the callback method.
+ The callback method will be invoked
+ prior to the application being terminated by Windows Error Reporting (WER). To keep WER from terminating the application before
+ the callback method completes, the callback method must
+ periodically call the method.
+
+
+
+
+ Defines a class that contains a callback delegate and properties of the application
+ as defined by the user.
+
+
+
+
+ Initializes a recovery data wrapper with a callback method and the current
+ state of the application.
+
+ The callback delegate.
+ The current state of the application.
+
+
+
+ Gets or sets a value that determines the recovery callback function.
+
+
+
+
+ Gets or sets a value that determines the application state.
+
+
+
+
+ Invokes the recovery callback function.
+
+
+
+
+ Defines methods and properties for recovery settings, and specifies options for an application that attempts
+ to perform final actions after a fatal event, such as an
+ unhandled exception.
+
+ This class is used to register for application recovery.
+ See the class.
+
+
+
+
+ Initializes a new instance of the RecoverySettings class.
+
+ A recovery data object that contains the callback method (invoked by the system
+ before Windows Error Reporting terminates the application) and an optional state object.
+ The time interval within which the
+ callback method must invoke to
+ prevent WER from terminating the application.
+
+
+
+
+ Gets the recovery data object that contains the callback method and an optional
+ parameter (usually the state of the application) to be passed to the
+ callback method.
+
+ A object.
+
+
+
+ Gets the time interval for notifying Windows Error Reporting.
+ The method must invoke
+ within this interval to prevent WER from terminating the application.
+
+
+ The recovery ping interval is specified in milliseconds.
+ By default, the interval is 5 seconds.
+ If you specify zero, the default interval is used.
+
+
+
+
+ Returns a string representation of the current state
+ of this object.
+
+ A object.
+
+
+
+ Specifies the conditions when Windows Error Reporting
+ should not restart an application that has registered
+ for automatic restart.
+
+
+
+
+ Always restart the application.
+
+
+
+
+ Do not restart when the application has crashed.
+
+
+
+
+ Do not restart when the application is hung.
+
+
+
+
+ Do not restart when the application is terminated
+ due to a system update.
+
+
+
+
+ Do not restart when the application is terminated
+ because of a system reboot.
+
+
+
+
+ Specifies the options for an application to be automatically
+ restarted by Windows Error Reporting.
+
+ Regardless of these
+ settings, the application
+ will not be restarted if it executed for less than 60 seconds before
+ terminating.
+
+
+
+ Creates a new instance of the RestartSettings class.
+
+ The command line arguments
+ used to restart the application.
+ A bitwise combination of the RestartRestrictions
+ values that specify
+ when the application should not be restarted.
+
+
+
+
+ Gets the command line arguments used to restart the application.
+
+ A object.
+
+
+
+ Gets the set of conditions when the application
+ should not be restarted.
+
+ A set of values.
+
+
+
+ Returns a string representation of the current state
+ of this object.
+
+ A that displays
+ the command line arguments
+ and restrictions for restarting the application.
+
+
+
+ This exception is thrown when there are problems with getting piece of data within PowerManager.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Initializes an excpetion with a custom message.
+
+ A custom message for the exception.
+
+
+
+ Initializes an exception with custom message and inner exception.
+
+ A custom message for the exception.
+ An inner exception on which to base this exception.
+
+
+
+ Initializes an exception from serialization info and a context.
+
+ SerializationInfo for the exception.
+ StreamingContext for the exception.
+
+
+
+ Gets the Guid relating to the currently active power scheme.
+
+ Reserved for future use, this must be set to IntPtr.Zero
+ Returns a Guid referring to the currently active power scheme.
+
+
+
+ A snapshot of the state of the battery.
+
+
+
+
+ Gets a value that indicates whether the battery charger is
+ operating on external power.
+
+ A value. True indicates the battery charger is operating on AC power.
+
+
+
+ Gets the maximum charge of the battery (in mW).
+
+ An value.
+
+
+
+ Gets the current charge of the battery (in mW).
+
+ An value.
+
+
+
+ Gets the rate of discharge for the battery (in mW).
+
+
+ If plugged in, fully charged: DischargeRate = 0.
+ If plugged in, charging: DischargeRate = positive mW per hour.
+ If unplugged: DischargeRate = negative mW per hour.
+
+ An value.
+
+
+
+ Gets the estimated time remaining until the battery is empty.
+
+ A object.
+
+
+
+ Gets the manufacturer's suggested battery charge level
+ that should cause a critical alert to be sent to the user.
+
+ An value.
+
+
+
+ Gets the manufacturer's suggested battery charge level
+ that should cause a warning to be sent to the user.
+
+ An value.
+
+
+
+ Generates a string that represents this BatteryState object.
+
+ A representation of this object's current state.
+
+
+
+ This class keeps track of the current state of each type of event.
+ The MessageManager class tracks event handlers.
+ This class only deals with each event type (i.e.
+ BatteryLifePercentChanged) as a whole.
+
+
+
+
+ Determines if a message should be caught, preventing
+ the event handler from executing.
+ This is needed when an event is initially registered.
+
+ The event to check.
+ A boolean value. Returns true if the
+ message should be caught.
+
+
+
+ Enumeration of execution states.
+
+
+
+
+ No state configured.
+
+
+
+
+ Forces the system to be in the working state by resetting the system idle timer.
+
+
+
+
+ Forces the display to be on by resetting the display idle timer.
+
+
+
+
+ Enables away mode. This value must be specified with ES_CONTINUOUS.
+ Away mode should be used only by media-recording and media-distribution applications that must perform critical background processing on desktop computers while the computer appears to be sleeping. See Remarks.
+
+ Windows Server 2003 and Windows XP/2000: ES_AWAYMODE_REQUIRED is not supported.
+
+
+
+
+ Informs the system that the state being set should remain in effect until the next call that uses ES_CONTINUOUS and one of the other state flags is cleared.
+
+
+
+
+ This class generates .NET events based on Windows messages.
+ The PowerRegWindow class processes the messages from Windows.
+
+
+
+
+ Registers a callback for a power event.
+
+ Guid for the event.
+ Event handler for the specified event.
+
+
+
+ Unregisters an event handler for a power event.
+
+ Guid for the event.
+ Event handler to unregister.
+
+
+
+ Ensures that the hidden window is initialized and
+ listening for messages.
+
+
+
+
+ Catch Windows messages and generates events for power specific
+ messages.
+
+
+
+
+ Adds an event handler to call when Windows sends
+ a message for an event.
+
+ Guid for the event.
+ Event handler for the event.
+
+
+
+ Removes an event handler.
+
+ Guid for the event.
+ Event handler to remove.
+ Cannot unregister
+ a function that is not registered.
+
+
+
+ Executes any registered event handlers.
+
+ ArrayList of event handlers.
+
+
+
+ This method is called when a Windows message
+ is sent to this window.
+ The method calls the registered event handlers.
+
+
+
+
+ Registers the application to receive power setting notifications
+ for the specific power setting event.
+
+ Handle indicating where the power setting
+ notifications are to be sent.
+ The GUID of the power setting for
+ which notifications are to be sent.
+ Returns a notification handle for unregistering
+ power notifications.
+
+
+
+ Enables registration for
+ power-related event notifications and provides access to power settings.
+
+
+
+
+ Raised each time the active power scheme changes.
+
+ The event handler specified for removal was not registered.
+ Requires Vista/Windows Server 2008.
+
+
+
+ Raised when the power source changes.
+
+ The event handler specified for removal was not registered.
+ Requires Vista/Windows Server 2008.
+
+
+
+ Raised when the remaining battery life changes.
+
+ The event handler specified for removal was not registered.
+ Requires Vista/Windows Server 2008.
+
+
+
+ Raised when the monitor status changes.
+
+ The event handler specified for removal was not registered.
+ Requires Vista/Windows Server 2008.
+
+
+
+ Raised when the system will not be moving into an idle
+ state in the near future so applications should
+ perform any tasks that
+ would otherwise prevent the computer from entering an idle state.
+
+ The event handler specified for removal was not registered.
+ Requires Vista/Windows Server 2008.
+
+
+
+ Gets a snapshot of the current battery state.
+
+ A instance that represents
+ the state of the battery at the time this method was called.
+ The system does not have a battery.
+ Requires XP/Windows Server 2003 or higher.
+
+
+
+ Gets or sets a value that indicates whether the monitor is
+ set to remain active.
+
+ Requires XP/Windows Server 2003 or higher.
+ The caller does not have sufficient privileges to set this property.
+
+ This information is typically used by applications
+ that display information but do not require
+ user interaction. For example, video playback applications.
+ to set this property. Demand value: ; Named Permission Sets: FullTrust.
+ A value. True if the monitor
+ is required to remain on.
+
+
+
+ Gets or sets a value that indicates whether the system
+ is required to be in the working state.
+
+ Requires XP/Windows Server 2003 or higher.
+ The caller does not have sufficient privileges to set this property.
+
+ to set this property. Demand value: ; Named Permission Sets: FullTrust.
+ A value.
+
+
+
+ Gets a value that indicates whether a battery is present.
+ The battery can be a short term battery.
+
+ Requires XP/Windows Server 2003 or higher.
+ A value.
+
+
+
+ Gets a value that indicates whether the battery is a short term battery.
+
+ Requires XP/Windows Server 2003 or higher.
+ A value.
+
+
+
+ Gets a value that indicates a UPS is present to prevent
+ sudden loss of power.
+
+ Requires XP/Windows Server 2003 or higher.
+ A value.
+
+
+
+ Gets a value that indicates the current power scheme.
+
+ Requires Vista/Windows Server 2008.
+ A value.
+
+
+
+ Gets a value that indicates the remaining battery life
+ (as a percentage of the full battery charge).
+ This value is in the range 0-100,
+ where 0 is not charged and 100 is fully charged.
+
+ The system does not have a battery.
+ Requires Vista/Windows Server 2008.
+ An value.
+
+
+
+ Gets a value that indictates whether the monitor is on.
+
+ Requires Vista/Windows Server 2008.
+ A value.
+
+
+
+ Gets the current power source.
+
+ Requires Vista/Windows Server 2008.
+ A value.
+
+
+
+ Allows an application to inform the system that it
+ is in use, thereby preventing the system from entering
+ the sleeping power state or turning off the display
+ while the application is running.
+
+ The thread's execution requirements.
+ Thrown if the SetThreadExecutionState call fails.
+
+
+
+ Specifies the supported power personalities.
+
+
+
+
+ The power personality Guid does not match a known value.
+
+
+
+
+ Power settings designed to deliver maximum performance
+ at the expense of power consumption savings.
+
+
+
+
+ Power settings designed consume minimum power
+ at the expense of system performance and responsiveness.
+
+
+
+
+ Power settings designed to balance performance
+ and power consumption.
+
+
+
+
+ Specifies the power source currently supplying power to the system.
+
+ Application should be aware of the power source because
+ some power sources provide a finite power supply.
+ An application might take steps to conserve power while
+ the system is using such a source.
+
+
+
+
+ The computer is powered by an AC power source
+ or a similar device, such as a laptop powered
+ by a 12V automotive adapter.
+
+
+
+
+ The computer is powered by a built-in battery.
+ A battery has a limited
+ amount of power; applications should conserve resources
+ where possible.
+
+
+
+
+ The computer is powered by a short-term power source
+ such as a UPS device.
+
+
+
+
+ Abstract base class for all dialog controls
+
+
+
+
+ Creates a new instance of a dialog control
+
+
+
+
+ Creates a new instance of a dialog control with the specified name.
+
+ The name for this dialog.
+
+
+
+ The native dialog that is hosting this control. This property is null is
+ there is not associated dialog
+
+
+
+
+ Gets the name for this control.
+
+ A value.
+
+
+
+ Gets the identifier for this control.
+
+ An value.
+
+
+
+ Calls the hosting dialog, if it exists, to check whether the
+ property can be set in the dialog's current state.
+ The host should throw an exception if the change is not supported.
+ Note that if the dialog isn't set yet,
+ there are no restrictions on setting the property.
+
+ The name of the property that is changing
+
+
+
+ Calls the hosting dialog, if it exists, to
+ to indicate that a property has changed, and that
+ the dialog should do whatever is necessary
+ to propagate the change to the native control.
+ Note that if the dialog isn't set yet,
+ there are no restrictions on setting the property.
+
+ The name of the property that is changing.
+
+
+
+ Compares two objects to determine whether they are equal
+
+ The object to compare against.
+ A value.
+
+
+
+ Serves as a hash function for a particular type.
+
+ An hash code for this control.
+
+
+
+ Strongly typed collection for dialog controls.
+
+ DialogControl
+
+
+
+ Inserts an dialog control at the specified index.
+
+ The location to insert the control.
+ The item to insert.
+ A control with
+ the same name already exists in this collection -or-
+ the control is being hosted by another dialog -or- the associated dialog is
+ showing and cannot be modified.
+
+
+
+ Removes the control at the specified index.
+
+ The location of the control to remove.
+
+ The associated dialog is
+ showing and cannot be modified.
+
+
+
+ Defines the indexer that supports accessing controls by name.
+
+
+ Control names are case sensitive.
+ This indexer is useful when the dialog is created in XAML
+ rather than constructed in code.
+
+ The name cannot be null or a zero-length string.
+ If there is more than one control with the same name, only the first control will be returned.
+
+
+
+ Searches for the control who's id matches the value
+ passed in the parameter.
+
+
+ An integer containing the identifier of the
+ control being searched for.
+
+ A DialogControl who's id matches the value of the
+ parameter.
+
+
+
+ Indicates that the implementing class is a dialog that can host
+ customizable dialog controls (subclasses of DialogControl).
+
+
+
+
+ Returns if changes to the collection are allowed.
+
+ true if collection change is allowed.
+
+
+
+ Applies changes to the collection.
+
+
+
+
+ Handle notifications of individual child
+ pseudo-controls' properties changing..
+ Prefilter should throw if the property
+ cannot be set in the dialog's current state.
+ PostProcess should pass on changes to native control,
+ if appropriate.
+
+ The name of the property.
+ The control propertyName applies to.
+ true if the property change is allowed.
+
+
+
+ Called when a control currently in the collection
+ has a property changed.
+
+ The name of the property changed.
+ The control whose property has changed.
+
+
+
+ Dialog Show State
+
+
+
+
+ Pre Show
+
+
+
+
+ Currently Showing
+
+
+
+
+ Currently Closing
+
+
+
+
+ Closed
+
+
+
+
+ Encapsulates the native logic required to create,
+ configure, and show a TaskDialog,
+ via the TaskDialogIndirect() Win32 function.
+
+ A new instance of this class should
+ be created for each messagebox show, as
+ the HWNDs for TaskDialogs do not remain constant
+ across calls to TaskDialogIndirect.
+
+
+
+
+ Encapsulates additional configuration needed by NativeTaskDialog
+ that it can't get from the TASKDIALOGCONFIG struct.
+
+
+
+
+ Internal class containing most native interop declarations used
+ throughout the library.
+ Functions that are not performance intensive belong in this class.
+
+
+
+
+ Gets the handle to the Icon
+
+
+
+
+ Encapsulates a new-to-Vista Win32 TaskDialog window
+ - a powerful successor to the MessageBox available
+ in previous versions of Windows.
+
+
+
+
+ Occurs when a progress bar changes.
+
+
+
+
+ Occurs when a user clicks a hyperlink.
+
+
+
+
+ Occurs when the TaskDialog is closing.
+
+
+
+
+ Occurs when a user clicks on Help.
+
+
+
+
+ Occurs when the TaskDialog is opened.
+
+
+
+
+ Gets or sets a value that contains the owner window's handle.
+
+
+
+
+ Gets or sets a value that contains the message text.
+
+
+
+
+ Gets or sets a value that contains the instruction text.
+
+
+
+
+ Gets or sets a value that contains the caption text.
+
+
+
+
+ Gets or sets a value that contains the footer text.
+
+
+
+
+ Gets or sets a value that contains the footer check box text.
+
+
+
+
+ Gets or sets a value that contains the expanded text in the details section.
+
+
+
+
+ Gets or sets a value that determines if the details section is expanded.
+
+
+
+
+ Gets or sets a value that contains the expanded control text.
+
+
+
+
+ Gets or sets a value that contains the collapsed control text.
+
+
+
+
+ Gets or sets a value that determines if Cancelable is set.
+
+
+
+
+ Gets or sets a value that contains the TaskDialog main icon.
+
+
+
+
+ Gets or sets a value that contains the footer icon.
+
+
+
+
+ Gets or sets a value that contains the standard buttons.
+
+
+
+
+ Gets a value that contains the TaskDialog controls.
+
+
+
+
+ Gets or sets a value that determines if hyperlinks are enabled.
+
+
+
+
+ Gets or sets a value that indicates if the footer checkbox is checked.
+
+
+
+
+ Gets or sets a value that contains the expansion mode for this dialog.
+
+
+
+
+ Gets or sets a value that contains the startup location.
+
+
+
+
+ Gets or sets the progress bar on the taskdialog. ProgressBar a visual representation
+ of the progress of a long running operation.
+
+
+
+
+ Creates a basic TaskDialog window
+
+
+
+
+ Creates and shows a task dialog with the specified message text.
+
+ The text to display.
+ The dialog result.
+
+
+
+ Creates and shows a task dialog with the specified supporting text and main instruction.
+
+ The supporting text to display.
+ The main instruction text to display.
+ The dialog result.
+
+
+
+ Creates and shows a task dialog with the specified supporting text, main instruction, and dialog caption.
+
+ The supporting text to display.
+ The main instruction text to display.
+ The caption for the dialog.
+ The dialog result.
+
+
+
+ Creates and shows a task dialog.
+
+ The dialog result.
+
+
+
+ Close TaskDialog
+
+ if TaskDialog is not showing.
+
+
+
+ Close TaskDialog with a given TaskDialogResult
+
+ TaskDialogResult to return from the TaskDialog.Show() method
+ if TaskDialog is not showing.
+
+
+
+ Sets important text properties.
+
+ An instance of a object.
+
+
+
+ Dispose TaskDialog Resources
+
+
+
+
+ TaskDialog Finalizer
+
+
+
+
+ Dispose TaskDialog Resources
+
+ If true, indicates that this is being called via Dispose rather than via the finalizer.
+
+
+
+ Indicates whether this feature is supported on the current platform.
+
+
+
+
+ Defines a common class for all task dialog bar controls, such as the progress and marquee bars.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified name.
+
+ The name for this control.
+
+
+
+ Gets or sets the state of the progress bar.
+
+
+
+
+ Resets the state of the control to normal.
+
+
+
+
+ Implements a button that can be hosted in a task dialog.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified property settings.
+
+ The name of the button.
+ The button label.
+
+
+
+ Gets or sets a value that controls whether the elevation icon is displayed.
+
+
+
+
+ Defines the abstract base class for task dialog buttons.
+ Classes that inherit from this class will inherit
+ the Text property defined in this class.
+
+
+
+
+ Creates a new instance on a task dialog button.
+
+
+
+
+ Creates a new instance on a task dialog button with
+ the specified name and text.
+
+ The name for this button.
+ The label for this button.
+
+
+
+ Raised when the task dialog button is clicked.
+
+
+
+
+ Gets or sets the button text.
+
+
+
+
+ Gets or sets a value that determines whether the
+ button is enabled. The enabled state can cannot be changed
+ before the dialog is shown.
+
+
+
+
+ Gets or sets a value that indicates whether
+ this button is the default button.
+
+
+
+
+ Returns the Text property value for this button.
+
+ A .
+
+
+
+ Data associated with event.
+
+
+
+
+ Gets or sets the standard button that was clicked.
+
+
+
+
+ Gets or sets the text of the custom button that was clicked.
+
+
+
+
+ Represents a command-link.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified name and label.
+
+ The name for this button.
+ The label for this button.
+
+
+
+ Creates a new instance of this class with the specified name,label, and instruction.
+
+ The name for this button.
+ The label for this button.
+ The instruction for this command link.
+
+
+
+ Gets or sets the instruction associated with this command link button.
+
+
+
+
+ Returns a string representation of this object.
+
+ A
+
+
+
+ Declares the abstract base class for all custom task dialog controls.
+
+
+
+
+ Creates a new instance of a task dialog control.
+
+
+
+
+ Creates a new instance of a task dialog control with the specified name.
+
+ The name for this control.
+
+
+
+ Specifies the options for expand/collapse sections in dialogs.
+
+
+
+
+ Do not show the content.
+
+
+
+
+ Show the content.
+
+
+
+
+ Expand the footer content.
+
+
+
+
+ Defines event data associated with a HyperlinkClick event.
+
+
+
+
+ Creates a new instance of this class with the specified link text.
+
+ The text of the hyperlink that was clicked.
+
+
+
+ Gets or sets the text of the hyperlink that was clicked.
+
+
+
+
+ Provides a visual representation of the progress of a long running operation.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified name.
+ And using the default values: Min = 0, Max = 100, Current = 0
+
+ The name of the control.
+
+
+
+ Creates a new instance of this class with the specified
+ minimum, maximum and current values.
+
+ The minimum value for this control.
+ The maximum value for this control.
+ The current value for this control.
+
+
+
+ Gets or sets the minimum value for the control.
+
+
+
+
+ Gets or sets the maximum value for the control.
+
+
+
+
+ Gets or sets the current value for the control.
+
+
+
+
+ Verifies that the progress bar's value is between its minimum and maximum.
+
+
+
+
+ Resets the control to its minimum value.
+
+
+
+
+ Sets the state of a task dialog progress bar.
+
+
+
+
+ Uninitialized state, this should never occur.
+
+
+
+
+ Normal state.
+
+
+
+
+ An error occurred.
+
+
+
+
+ The progress is paused.
+
+
+
+
+ Displays marquee (indeterminate) style progress
+
+
+
+
+ Defines a radio button that can be hosted in by a
+ object.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with
+ the specified name and text.
+
+ The name for this control.
+ The value for this controls
+ property.
+
+
+
+ Indicates the various buttons and options clicked by the user on the task dialog.
+
+
+
+
+ No button was selected.
+
+
+
+
+ "OK" button was clicked
+
+
+
+
+ "Yes" button was clicked
+
+
+
+
+ "No" button was clicked
+
+
+
+
+ "Cancel" button was clicked
+
+
+
+
+ "Retry" button was clicked
+
+
+
+
+ "Close" button was clicked
+
+
+
+
+ A custom button was clicked.
+
+
+
+
+ Identifies one of the standard buttons that
+ can be displayed via TaskDialog.
+
+
+
+
+ No buttons on the dialog.
+
+
+
+
+ An "OK" button.
+
+
+
+
+ A "Yes" button.
+
+
+
+
+ A "No" button.
+
+
+
+
+ A "Cancel" button.
+
+
+
+
+ A "Retry" button.
+
+
+
+
+ A "Close" button.
+
+
+
+
+ Specifies the icon displayed in a task dialog.
+
+
+
+
+ Displays no icons (default).
+
+
+
+
+ Displays the warning icon.
+
+
+
+
+ Displays the error icon.
+
+
+
+
+ Displays the Information icon.
+
+
+
+
+ Displays the User Account Control shield.
+
+
+
+
+ Specifies the initial display location for a task dialog.
+
+
+
+
+ The window placed in the center of the screen.
+
+
+
+
+ The window centered relative to the window that launched the dialog.
+
+
+
+
+ The event data for a TaskDialogTick event.
+
+
+
+
+ Initializes the data associated with the TaskDialog tick event.
+
+ The total number of ticks since the control was activated.
+
+
+
+ Gets a value that determines the current number of ticks.
+
+
+
+
+ Represents a network on the local machine.
+ It can also represent a collection of network
+ connections with a similar network signature.
+
+
+ Instances of this class are obtained by calling
+ methods on the class.
+
+
+
+
+ Gets or sets the category of a network. The
+ categories are trusted, untrusted, or
+ authenticated.
+
+ A value.
+
+
+
+ Gets the local date and time when the network
+ was connected.
+
+ A object.
+
+
+
+ Gets the network connections for the network.
+
+ A object.
+
+
+
+ Gets the connectivity state of the network.
+
+ A value.
+ Connectivity provides information on whether
+ the network is connected, and the protocols
+ in use for network traffic.
+
+
+
+ Gets the local date and time when the
+ network was created.
+
+ A object.
+
+
+
+ Gets or sets a description for the network.
+
+ A value.
+
+
+
+ Gets the domain type of the network.
+
+ A value.
+ The domain
+ indictates whether the network is an Active
+ Directory Network, and whether the machine
+ has been authenticated by Active Directory.
+
+
+
+ Gets a value that indicates whether there is
+ network connectivity.
+
+ A value.
+
+
+
+ Gets a value that indicates whether there is
+ Internet connectivity.
+
+ A value.
+
+
+
+ Gets or sets the name of the network.
+
+ A value.
+
+
+
+ Gets a unique identifier for the network.
+
+ A value.
+
+
+
+ An enumerable collection of objects.
+
+
+
+
+ Returns the strongly typed enumerator for this collection.
+
+ An object.
+
+
+
+ Returns the enumerator for this collection.
+
+ An object.
+
+
+
+ Represents a connection to a network.
+
+ A collection containing instances of this class is obtained by calling
+ the property.
+
+
+
+ Retrieves an object that represents the network
+ associated with this connection.
+
+ A object.
+
+
+
+ Gets the adapter identifier for this connection.
+
+ A object.
+
+
+
+ Gets the unique identifier for this connection.
+
+ A object.
+
+
+
+ Gets a value that indicates the connectivity of this connection.
+
+ A value.
+
+
+
+ Gets a value that indicates whether the network associated
+ with this connection is
+ an Active Directory network and whether the machine
+ has been authenticated by Active Directory.
+
+ A value.
+
+
+
+ Gets a value that indicates whether this
+ connection has Internet access.
+
+ A value.
+
+
+
+ Gets a value that indicates whether this connection has
+ network connectivity.
+
+ A value.
+
+
+
+ An enumerable collection of objects.
+
+
+
+
+ Returns the strongly typed enumerator for this collection.
+
+ A object.
+
+
+
+ Returns the enumerator for this collection.
+
+ A object.
+
+
+
+ Specifies types of network connectivity.
+
+
+
+
+ The underlying network interfaces have no
+ connectivity to any network.
+
+
+
+
+ There is connectivity to the Internet
+ using the IPv4 protocol.
+
+
+
+
+ There is connectivity to a routed network
+ using the IPv4 protocol.
+
+
+
+
+ There is connectivity to a network, but
+ the service cannot detect any IPv4
+ network traffic.
+
+
+
+
+ There is connectivity to the local
+ subnet using the IPv4 protocol.
+
+
+
+
+ There is connectivity to the Internet
+ using the IPv4 protocol.
+
+
+
+
+ There is connectivity to a local
+ network using the IPv6 protocol.
+
+
+
+
+ There is connectivity to a network,
+ but the service cannot detect any
+ IPv6 network traffic
+
+
+
+
+ There is connectivity to the local
+ subnet using the IPv6 protocol.
+
+
+
+
+ Specifies the domain type of a network.
+
+
+
+
+ The network is not an Active Directory network.
+
+
+
+
+ The network is an Active Directory network, but this machine is not authenticated against it.
+
+
+
+
+ The network is an Active Directory network, and this machine is authenticated against it.
+
+
+
+
+ Specifies the trust level for a
+ network.
+
+
+
+
+ The network is a public (untrusted) network.
+
+
+
+
+ The network is a private (trusted) network.
+
+
+
+
+ The network is authenticated against an Active Directory domain.
+
+
+
+
+ Specifies the level of connectivity for
+ networks returned by the
+
+ class.
+
+
+
+
+ Networks that the machine is connected to.
+
+
+
+
+ Networks that the machine is not connected to.
+
+
+
+
+ All networks.
+
+
+
+
+ Provides access to objects that represent networks and network connections.
+
+
+
+
+ Retrieves a collection of objects that represent the networks defined for this machine.
+
+
+ The that specify the connectivity level of the returned objects.
+
+
+ A of objects.
+
+
+
+
+ Retrieves the identified by the specified network identifier.
+
+
+ A that specifies the unique identifier for the network.
+
+
+ The that represents the network identified by the identifier.
+
+
+
+
+ Retrieves a collection of objects that represent the connections for this machine.
+
+
+ A containing the network connections.
+
+
+
+
+ Retrieves the identified by the specified connection identifier.
+
+
+ A that specifies the unique identifier for the network connection.
+
+
+ The identified by the specified identifier.
+
+
+
+
+ Gets a value that indicates whether this machine
+ has Internet connectivity.
+
+ A value.
+
+
+
+ Gets a value that indicates whether this machine
+ has network connectivity.
+
+ A value.
+
+
+
+ Gets the connectivity state of this machine.
+
+ A value.
+
+
+
+ Defines a unique key for a Shell Property
+
+
+
+
+ A unique GUID for the property
+
+
+
+
+ Property identifier (PID)
+
+
+
+
+ PropertyKey Constructor
+
+ A unique GUID for the property
+ Property identifier (PID)
+
+
+
+ PropertyKey Constructor
+
+ A string represenstion of a GUID for the property
+ Property identifier (PID)
+
+
+
+ Returns whether this object is equal to another. This is vital for performance of value types.
+
+ The object to compare against.
+ Equality result.
+
+
+
+ Returns the hash code of the object. This is vital for performance of value types.
+
+
+
+
+
+ Returns whether this object is equal to another. This is vital for performance of value types.
+
+ The object to compare against.
+ Equality result.
+
+
+
+ Implements the == (equality) operator.
+
+ First property key to compare.
+ Second property key to compare.
+ true if object a equals object b. false otherwise.
+
+
+
+ Implements the != (inequality) operator.
+
+ First property key to compare
+ Second property key to compare.
+ true if object a does not equal object b. false otherwise.
+
+
+
+ Override ToString() to provide a user friendly string representation
+
+ String representing the property key
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Failed to register application for restart due to bad parameters..
+
+
+
+
+ Looks up a localized string similar to Application was not registered for recovery due to bad parameters..
+
+
+
+
+ Looks up a localized string similar to Application failed to register for recovery..
+
+
+
+
+ Looks up a localized string similar to Application failed to registered for restart..
+
+
+
+
+ Looks up a localized string similar to Unregister for recovery failed..
+
+
+
+
+ Looks up a localized string similar to Unregister for restart failed..
+
+
+
+
+ Looks up a localized string similar to This method must be called from the registered callback method..
+
+
+
+
+ Looks up a localized string similar to ACOnline: {1}{0}Max Charge: {2} mWh{0}Current Charge: {3} mWh{0}Discharge Rate: {4} mWh{0}Estimated Time Remaining: {5}{0}Suggested Critical Battery Charge: {6} mWh{0}Suggested Battery Warning Charge: {7} mWh{0}.
+
+
+
+
+ Looks up a localized string similar to Cancelable cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to Dialog caption cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to CheckBox text cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to Collapsed control text cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to Only supported on Windows 7 or newer..
+
+
+
+
+ Looks up a localized string similar to Only supported on Windows Vista or newer..
+
+
+
+
+ Looks up a localized string similar to Only supported on Windows XP or newer..
+
+
+
+
+ Looks up a localized string similar to Dialog cannot have more than one control with the same name..
+
+
+
+
+ Looks up a localized string similar to Dialog control must be removed from current collections first..
+
+
+
+
+ Looks up a localized string similar to Control name cannot be null or zero length..
+
+
+
+
+ Looks up a localized string similar to Modifying controls collection while dialog is showing is not supported..
+
+
+
+
+ Looks up a localized string similar to Dialog control name cannot be empty or null..
+
+
+
+
+ Looks up a localized string similar to Dialog controls cannot be renamed..
+
+
+
+
+ Looks up a localized string similar to Application.
+
+
+
+
+ Looks up a localized string similar to .
+
+
+
+
+ Looks up a localized string similar to .
+
+
+
+
+ Looks up a localized string similar to Expanded information mode cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to Expanded control label cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to Expanding state of the dialog cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to Hyperlinks cannot be enabled/disabled while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to Reference path is invalid..
+
+
+
+
+ Looks up a localized string similar to The specified event handler has not been registered..
+
+
+
+
+ Looks up a localized string similar to An error has occurred in dialog configuration..
+
+
+
+
+ Looks up a localized string similar to Invalid arguments to Win32 call..
+
+
+
+
+ Looks up a localized string similar to Dialog contents too complex..
+
+
+
+
+ Looks up a localized string similar to An unexpected internal error occurred in the Win32 call: {0:x}.
+
+
+
+
+ Looks up a localized string similar to TaskDialog feature needs to load version 6 of comctl32.dll but a different version is current loaded in memory..
+
+
+
+
+ Looks up a localized string similar to Dialog owner cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to SetThreadExecutionState call failed..
+
+
+
+
+ Looks up a localized string similar to The caller had insufficient access rights to get the system battery state..
+
+
+
+
+ Looks up a localized string similar to The caller had insufficient access rights to get the system power capabilities..
+
+
+
+
+ Looks up a localized string similar to Failed to get active power scheme..
+
+
+
+
+ Looks up a localized string similar to Battery is not present on this system..
+
+
+
+
+ Looks up a localized string similar to Progress bar cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to Progress bar cannot be hosted in multiple dialogs..
+
+
+
+
+ Looks up a localized string similar to {0}, {1}.
+
+
+
+
+ Looks up a localized string similar to Unable to initialize PropVariant..
+
+
+
+
+ Looks up a localized string similar to Multi-dimensional SafeArrays not supported..
+
+
+
+
+ Looks up a localized string similar to String argument cannot be null or empty..
+
+
+
+
+ Looks up a localized string similar to This Value type is not supported..
+
+
+
+
+ Looks up a localized string similar to Cannot be cast to unsupported type..
+
+
+
+
+ Looks up a localized string similar to delegate: {0}, state: {1}, ping: {2}.
+
+
+
+
+ Looks up a localized string similar to command: {0} restrictions: {1}.
+
+
+
+
+ Looks up a localized string similar to StandardButtons cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to Startup location cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to Bad button ID in closing event..
+
+
+
+
+ Looks up a localized string similar to Button text must be non-empty..
+
+
+
+
+ Looks up a localized string similar to Check box text must be provided to enable the dialog check box..
+
+
+
+
+ Looks up a localized string similar to Attempting to close a non-showing dialog..
+
+
+
+
+ Looks up a localized string similar to Application.
+
+
+
+
+ Looks up a localized string similar to .
+
+
+
+
+ Looks up a localized string similar to .
+
+
+
+
+ Looks up a localized string similar to Cannot have more than one default button of a given type..
+
+
+
+
+ Looks up a localized string similar to Maximum value provided must be greater than the minimum value..
+
+
+
+
+ Looks up a localized string similar to Minimum value provided must be a positive number..
+
+
+
+
+ Looks up a localized string similar to Minimum value provided must less than the maximum value..
+
+
+
+
+ Looks up a localized string similar to Value provided must be greater than equal to the minimum value and less than the maximum value..
+
+
+
+
+ Looks up a localized string similar to Dialog cannot display both non-standard buttons and standard buttons..
+
+
+
+
+ Looks up a localized string similar to Dialog cannot display both non-standard buttons and command links..
+
+
+
+
+ Looks up a localized string similar to Unknown dialog control type..
+
+
+
+
+ HRESULT Wrapper
+
+
+
+
+ S_OK
+
+
+
+
+ S_FALSE
+
+
+
+
+ E_INVALIDARG
+
+
+
+
+ E_OUTOFMEMORY
+
+
+
+
+ E_NOINTERFACE
+
+
+
+
+ E_FAIL
+
+
+
+
+ E_ELEMENTNOTFOUND
+
+
+
+
+ TYPE_E_ELEMENTNOTFOUND
+
+
+
+
+ NO_OBJECT
+
+
+
+
+ Win32 Error code: ERROR_CANCELLED
+
+
+
+
+ ERROR_CANCELLED
+
+
+
+
+ The requested resource is in use
+
+
+
+
+ The requested resources is read-only.
+
+
+
+
+ Provide Error Message Helper Methods.
+ This is intended for Library Internal use only.
+
+
+
+
+ This is intended for Library Internal use only.
+
+
+
+
+ This is intended for Library Internal use only.
+
+
+
+
+ This is intended for Library Internal use only.
+
+ The Windows API error code.
+ The equivalent HRESULT.
+
+
+
+ This is intended for Library Internal use only.
+
+ The error code.
+ True if the error code indicates success.
+
+
+
+ This is intended for Library Internal use only.
+
+ The error code.
+ True if the error code indicates success.
+
+
+
+ This is intended for Library Internal use only.
+
+ The error code.
+ True if the error code indicates failure.
+
+
+
+ This is intended for Library Internal use only.
+
+ The error code.
+ True if the error code indicates failure.
+
+
+
+ This is intended for Library Internal use only.
+
+ The COM error code.
+ The Win32 error code.
+ Inticates that the Win32 error code corresponds to the COM error code.
+
+
+
+ Common Helper methods
+
+
+
+
+ Determines if the application is running on XP
+
+
+
+
+ Throws PlatformNotSupportedException if the application is not running on Windows XP
+
+
+
+
+ Determines if the application is running on Vista
+
+
+
+
+ Throws PlatformNotSupportedException if the application is not running on Windows Vista
+
+
+
+
+ Determines if the application is running on Windows 7
+
+
+
+
+ Throws PlatformNotSupportedException if the application is not running on Windows 7
+
+
+
+
+ Get a string resource given a resource Id
+
+ The resource Id
+ The string resource corresponding to the given resource Id. Returns null if the resource id
+ is invalid or the string cannot be retrieved for any other reason.
+
+
+
+ Wrappers for Native Methods and Structs.
+ This type is intended for internal use only
+
+
+
+
+ Places (posts) a message in the message queue associated with the thread that created
+ the specified window and returns without waiting for the thread to process the message.
+
+ Handle to the window whose window procedure will receive the message.
+ If this parameter is HWND_BROADCAST, the message is sent to all top-level windows in the system,
+ including disabled or invisible unowned windows, overlapped windows, and pop-up windows;
+ but the message is not sent to child windows.
+
+ Specifies the message to be sent.
+ Specifies additional message-specific information.
+ Specifies additional message-specific information.
+ A return code specific to the message being sent.
+
+
+
+ Sends the specified message to a window or windows. The SendMessage function calls
+ the window procedure for the specified window and does not return until the window
+ procedure has processed the message.
+
+ Handle to the window whose window procedure will receive the message.
+ If this parameter is HWND_BROADCAST, the message is sent to all top-level windows in the system,
+ including disabled or invisible unowned windows, overlapped windows, and pop-up windows;
+ but the message is not sent to child windows.
+
+ Specifies the message to be sent.
+ Specifies additional message-specific information.
+ Specifies additional message-specific information.
+ A return code specific to the message being sent.
+
+
+
+ Sends the specified message to a window or windows. The SendMessage function calls
+ the window procedure for the specified window and does not return until the window
+ procedure has processed the message.
+
+ Handle to the window whose window procedure will receive the message.
+ If this parameter is HWND_BROADCAST, the message is sent to all top-level windows in the system,
+ including disabled or invisible unowned windows, overlapped windows, and pop-up windows;
+ but the message is not sent to child windows.
+
+ Specifies the message to be sent.
+ Specifies additional message-specific information.
+ Specifies additional message-specific information.
+ A return code specific to the message being sent.
+
+
+
+ Sends the specified message to a window or windows. The SendMessage function calls
+ the window procedure for the specified window and does not return until the window
+ procedure has processed the message.
+
+ Handle to the window whose window procedure will receive the message.
+ If this parameter is HWND_BROADCAST, the message is sent to all top-level windows in the system,
+ including disabled or invisible unowned windows, overlapped windows, and pop-up windows;
+ but the message is not sent to child windows.
+
+ Specifies the message to be sent.
+ Specifies additional message-specific information.
+ Specifies additional message-specific information.
+ A return code specific to the message being sent.
+
+
+
+ Sends the specified message to a window or windows. The SendMessage function calls
+ the window procedure for the specified window and does not return until the window
+ procedure has processed the message.
+
+ Handle to the window whose window procedure will receive the message.
+ If this parameter is HWND_BROADCAST, the message is sent to all top-level windows in the system,
+ including disabled or invisible unowned windows, overlapped windows, and pop-up windows;
+ but the message is not sent to child windows.
+
+ Specifies the message to be sent.
+ Specifies additional message-specific information.
+ Specifies additional message-specific information.
+ A return code specific to the message being sent.
+
+
+
+ Sends the specified message to a window or windows. The SendMessage function calls
+ the window procedure for the specified window and does not return until the window
+ procedure has processed the message.
+
+ Handle to the window whose window procedure will receive the message.
+ If this parameter is HWND_BROADCAST, the message is sent to all top-level windows in the system,
+ including disabled or invisible unowned windows, overlapped windows, and pop-up windows;
+ but the message is not sent to child windows.
+
+ Specifies the message to be sent.
+ Specifies additional message-specific information.
+ Specifies additional message-specific information.
+ A return code specific to the message being sent.
+
+
+
+ Destroys an icon and frees any memory the icon occupied.
+
+ Handle to the icon to be destroyed. The icon must not be in use.
+ If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError.
+
+
+
+ Gets the HiWord
+
+ The value to get the hi word from.
+ Size
+ The upper half of the dword.
+
+
+
+ Gets the LoWord
+
+ The value to get the low word from.
+ The lower half of the dword.
+
+
+
+ A Wrapper for a SIZE struct
+
+
+
+
+ Width
+
+
+
+
+ Height
+
+
+
+
+ Represents the OLE struct PROPVARIANT.
+ This class is intended for internal use only.
+
+
+ Originally sourced from http://blogs.msdn.com/adamroot/pages/interop-with-propvariants-in-net.aspx
+ and modified to support additional types including vectors and ability to set values
+
+
+
+
+ Attempts to create a PropVariant by finding an appropriate constructor.
+
+ Object from which PropVariant should be created.
+
+
+
+ Default constrcutor
+
+
+
+
+ Set a string value
+
+
+
+
+ Set a string vector
+
+
+
+
+ Set a bool vector
+
+
+
+
+ Set a short vector
+
+
+
+
+ Set a short vector
+
+
+
+
+ Set an int vector
+
+
+
+
+ Set an uint vector
+
+
+
+
+ Set a long vector
+
+
+
+
+ Set a ulong vector
+
+
+
+ >
+ Set a double vector
+
+
+
+
+ Set a DateTime vector
+
+
+
+
+ Set a bool value
+
+
+
+
+ Set a DateTime value
+
+
+
+
+ Set a byte value
+
+
+
+
+ Set a sbyte value
+
+
+
+
+ Set a short value
+
+
+
+
+ Set an unsigned short value
+
+
+
+
+ Set an int value
+
+
+
+
+ Set an unsigned int value
+
+
+
+
+ Set a decimal value
+
+
+
+
+ Create a PropVariant with a contained decimal array.
+
+ Decimal array to wrap.
+
+
+
+ Create a PropVariant containing a float type.
+
+
+
+
+ Creates a PropVariant containing a float[] array.
+
+
+
+
+ Set a long
+
+
+
+
+ Set a ulong
+
+
+
+
+ Set a double
+
+
+
+
+ Set an IUnknown value
+
+ The new value to set.
+
+
+
+ Set a safe array value
+
+ The new value to set.
+
+
+
+ Gets or sets the variant type.
+
+
+
+
+ Checks if this has an empty or null value
+
+
+
+
+
+ Gets the variant value.
+
+
+
+
+ Disposes the object, calls the clear function.
+
+
+
+
+ Finalizer
+
+
+
+
+ Provides an simple string representation of the contained data and type.
+
+
+
+
+
+ Base class for Safe handles with Null IntPtr as invalid
+
+
+
+
+ Default constructor
+
+
+
+
+ Determines if this is a valid handle
+
+
+
+
+ Safe Icon Handle
+
+
+
+
+ Release the handle
+
+ true if handled is release successfully, false otherwise
+
+
+
+ Safe Region Handle
+
+
+
+
+ Release the handle
+
+ true if handled is release successfully, false otherwise
+
+
+
+ Safe Window Handle
+
+
+
+
+ Release the handle
+
+ true if handled is release successfully, false otherwise
+
+
+
diff --git a/PDFWorkflowManager/packages/WindowsAPICodePack-Shell.1.1.1/.signature.p7s b/PDFWorkflowManager/packages/WindowsAPICodePack-Shell.1.1.1/.signature.p7s
new file mode 100644
index 0000000..4cddb21
Binary files /dev/null and b/PDFWorkflowManager/packages/WindowsAPICodePack-Shell.1.1.1/.signature.p7s differ
diff --git a/PDFWorkflowManager/packages/WindowsAPICodePack-Shell.1.1.1/WindowsAPICodePack-Shell.1.1.1.nupkg b/PDFWorkflowManager/packages/WindowsAPICodePack-Shell.1.1.1/WindowsAPICodePack-Shell.1.1.1.nupkg
new file mode 100644
index 0000000..5d35f5b
Binary files /dev/null and b/PDFWorkflowManager/packages/WindowsAPICodePack-Shell.1.1.1/WindowsAPICodePack-Shell.1.1.1.nupkg differ
diff --git a/PDFWorkflowManager/packages/WindowsAPICodePack-Shell.1.1.1/lib/Microsoft.WindowsAPICodePack.Shell.dll b/PDFWorkflowManager/packages/WindowsAPICodePack-Shell.1.1.1/lib/Microsoft.WindowsAPICodePack.Shell.dll
new file mode 100644
index 0000000..8c6d5cf
Binary files /dev/null and b/PDFWorkflowManager/packages/WindowsAPICodePack-Shell.1.1.1/lib/Microsoft.WindowsAPICodePack.Shell.dll differ
diff --git a/PDFWorkflowManager/packages/WindowsAPICodePack-Shell.1.1.1/lib/Microsoft.WindowsAPICodePack.Shell.xml b/PDFWorkflowManager/packages/WindowsAPICodePack-Shell.1.1.1/lib/Microsoft.WindowsAPICodePack.Shell.xml
new file mode 100644
index 0000000..ef2b05c
--- /dev/null
+++ b/PDFWorkflowManager/packages/WindowsAPICodePack-Shell.1.1.1/lib/Microsoft.WindowsAPICodePack.Shell.xml
@@ -0,0 +1,25496 @@
+
+
+
+ Microsoft.WindowsAPICodePack.Shell
+
+
+
+
+ Provides extension methods for raising events safely.
+
+
+
+
+ Safely raises an event using EventArgs.Empty
+
+ EventHandler to raise
+ Event sender
+
+
+
+ Safely raises an event.
+
+ Type of event args
+ EventHandler<T> to raise
+ Event sender
+ Event args
+
+
+
+ Safely raises an event using EventArgs.Empty
+
+ EventHandler<EventArgs> to raise
+ Event sender
+
+
+
+ A wrapper for the native POINT structure.
+
+
+
+
+ Initialize the NativePoint
+
+ The x coordinate of the point.
+ The y coordinate of the point.
+
+
+
+ Determines if two NativePoints are equal.
+
+ First NativePoint
+ Second NativePoint
+ True if first NativePoint is equal to the second; false otherwise.
+
+
+
+ Determines if two NativePoints are not equal.
+
+ First NativePoint
+ Second NativePoint
+ True if first NativePoint is not equal to the second; false otherwise.
+
+
+
+ Determines if this NativePoint is equal to another.
+
+ Another NativePoint to compare
+ True if this NativePoint is equal obj; false otherwise.
+
+
+
+ Gets a hash code for the NativePoint.
+
+ Hash code for the NativePoint
+
+
+
+ The X coordinate of the point
+
+
+
+
+ The Y coordinate of the point
+
+
+
+
+ A wrapper for a RECT struct
+
+
+
+
+ Creates a new NativeRect initialized with supplied values.
+
+ Position of left edge
+ Position of top edge
+ Position of right edge
+ Position of bottom edge
+
+
+
+ Determines if two NativeRects are equal.
+
+ First NativeRect
+ Second NativeRect
+ True if first NativeRect is equal to second; false otherwise.
+
+
+
+ Determines if two NativeRects are not equal
+
+ First NativeRect
+ Second NativeRect
+ True if first is not equal to second; false otherwise.
+
+
+
+ Determines if the NativeRect is equal to another Rect.
+
+ Another NativeRect to compare
+ True if this NativeRect is equal to the one provided; false otherwise.
+
+
+
+ Creates a hash code for the NativeRect
+
+ Returns hash code for this NativeRect
+
+
+
+ Position of left edge
+
+
+
+
+ Position of top edge
+
+
+
+
+ Position of right edge
+
+
+
+
+ Position of bottom edge
+
+
+
+
+ An exception thrown when an error occurs while dealing with ShellObjects.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Initializes a new exception using an HResult
+
+ HResult error
+
+
+
+ Initializes an excpetion with a custom message.
+
+ Custom message
+
+
+
+ Initializes an exception with custom message and inner exception.
+
+ Custom message
+ The original exception that preceded this exception
+
+
+
+ Initializes an exception with custom message and error code.
+
+ Custom message
+ HResult error code
+
+
+
+ Initializes an exception with custom message and error code.
+
+
+
+
+
+
+ Initializes an exception with custom message and inner exception.
+
+ HRESULT of an operation
+
+
+
+ Initializes an exception from serialization info and a context.
+
+
+
+
+
+
+ A folder in the Shell Namespace
+
+
+
+
+ Represents the base class for all types of folders (filesystem and non filesystem)
+
+
+
+
+ Represents the base class for all types of Shell "containers". Any class deriving from this class
+ can contain other ShellObjects (e.g. ShellFolder, FileSystemKnownFolder, ShellLibrary, etc)
+
+
+
+
+ The base class for all Shell objects in Shell Namespace.
+
+
+
+
+ Creates a ShellObject subclass given a parsing name.
+ For file system items, this method will only accept absolute paths.
+
+ The parsing name of the object.
+ A newly constructed ShellObject object.
+
+
+
+ Internal member to keep track of the native IShellItem2
+
+
+
+
+ Parsing name for this Object e.g. c:\Windows\file.txt,
+ or ::{Some Guid}
+
+
+
+
+ A friendly name for this object that' suitable for display
+
+
+
+
+ PID List (PIDL) for this object
+
+
+
+
+ Updates the native shell item that maps to this shell object. This is necessary when the shell item
+ changes after the shell object has been created. Without this method call, the retrieval of properties will
+ return stale data.
+
+ Bind context object
+
+
+
+ Overrides object.ToString()
+
+ A string representation of the object.
+
+
+
+ Returns the display name of the ShellFolder object. DisplayNameType represents one of the
+ values that indicates how the name should look.
+ See for a list of possible values.
+
+ A disaply name type.
+ A string.
+
+
+
+ Release the native and managed objects
+
+ Indicates that this is being called from Dispose(), rather than the finalizer.
+
+
+
+ Release the native objects.
+
+
+
+
+ Implement the finalizer.
+
+
+
+
+ Returns the hash code of the object.
+
+
+
+
+
+ Determines if two ShellObjects are identical.
+
+ The ShellObject to comare this one to.
+ True if the ShellObjects are equal, false otherwise.
+
+
+
+ Returns whether this object is equal to another.
+
+ The object to compare against.
+ Equality result.
+
+
+
+ Implements the == (equality) operator.
+
+ First object to compare.
+ Second object to compare.
+ True if leftShellObject equals rightShellObject; false otherwise.
+
+
+
+ Implements the != (inequality) operator.
+
+ First object to compare.
+ Second object to compare.
+ True if leftShellObject does not equal leftShellObject; false otherwise.
+
+
+
+ Indicates whether this feature is supported on the current platform.
+
+
+
+
+ Return the native ShellFolder object as newer IShellItem2
+
+ If the native object cannot be created.
+ The ErrorCode member will contain the external error code.
+
+
+
+ Return the native ShellFolder object
+
+
+
+
+ Gets access to the native IPropertyStore (if one is already
+ created for this item and still valid. This is usually done by the
+ ShellPropertyWriter class. The reference will be set to null
+ when the writer has been closed/commited).
+
+
+
+
+ Gets an object that allows the manipulation of ShellProperties for this shell item.
+
+
+
+
+ Gets the parsing name for this ShellItem.
+
+
+
+
+ Gets the normal display for this ShellItem.
+
+
+
+
+ Gets the PID List (PIDL) for this ShellItem.
+
+
+
+
+ Gets a value that determines if this ShellObject is a link or shortcut.
+
+
+
+
+ Gets a value that determines if this ShellObject is a file system object.
+
+
+
+
+ Gets the thumbnail of the ShellObject.
+
+
+
+
+ Gets the parent ShellObject.
+ Returns null if the object has no parent, i.e. if this object is the Desktop folder.
+
+
+
+
+ Release resources
+
+ True indicates that this is being called from Dispose(), rather than the finalizer.
+
+
+
+ Enumerates through contents of the ShellObjectContainer
+
+ Enumerated contents
+
+
+
+ Constructs a new ShellFileSystemFolder object given a folder path
+
+ The folder path
+ ShellFileSystemFolder created from the given folder path.
+
+
+
+ The path for this Folder
+
+
+
+
+ A refence to an icon resource
+
+
+
+
+ Overloaded constructor takes in the module name and resource id for the icon reference.
+
+ String specifying the name of an executable file, DLL, or icon file
+ Zero-based index of the icon
+
+
+
+ Overloaded constructor takes in the module name and resource id separated by a comma.
+
+ Reference path for the icon consiting of the module name and resource id.
+
+
+
+ Implements the == (equality) operator.
+
+ First object to compare.
+ Second object to compare.
+ True if icon1 equals icon1; false otherwise.
+
+
+
+ Implements the != (unequality) operator.
+
+ First object to compare.
+ Second object to compare.
+ True if icon1 does not equals icon1; false otherwise.
+
+
+
+ Determines if this object is equal to another.
+
+ The object to compare
+ Returns true if the objects are equal; false otherwise.
+
+
+
+ Generates a nearly unique hashcode for this structure.
+
+ A hash code.
+
+
+
+ String specifying the name of an executable file, DLL, or icon file
+
+
+
+
+ Zero-based index of the icon
+
+
+
+
+ Reference to a specific icon within a EXE, DLL or icon file.
+
+
+
+
+ Exposes properties and methods for retrieving information about a search condition.
+
+
+
+
+ Retrieves an array of the sub-conditions.
+
+
+
+
+
+
+
+
+
+ Release the native objects.
+
+
+
+
+ Release the native objects.
+
+
+
+
+
+ The name of a property to be compared or NULL for an unspecified property.
+
+
+
+
+ The property key for the property that is to be compared.
+
+
+
+
+ A value (in format) to which the property is compared.
+
+
+
+
+ Search condition operation to be performed on the property/value combination.
+ See for more details.
+
+
+
+
+ Represents the condition type for the given node.
+
+
+
+
+ Provides methods for creating or resolving a condition tree
+ that was obtained by parsing a query string.
+
+
+
+
+ Creates a leaf condition node that represents a comparison of property value and constant value.
+
+ The name of a property to be compared, or null for an unspecified property.
+ The locale name of the leaf node is LOCALE_NAME_USER_DEFAULT.
+ The constant value against which the property value should be compared.
+ Specific condition to be used when comparing the actual value and the expected value of the given property
+ SearchCondition based on the given parameters
+
+ The search will only work for files that are indexed, as well as the specific properties are indexed. To find
+ the properties that are indexed, look for the specific property's property description and
+ property for IsQueryable flag.
+
+
+
+
+ Creates a leaf condition node that represents a comparison of property value and constant value.
+ Overload method takes a DateTime parameter for the comparison value.
+
+ The name of a property to be compared, or null for an unspecified property.
+ The locale name of the leaf node is LOCALE_NAME_USER_DEFAULT.
+ The DateTime value against which the property value should be compared.
+ Specific condition to be used when comparing the actual value and the expected value of the given property
+ SearchCondition based on the given parameters
+
+ The search will only work for files that are indexed, as well as the specific properties are indexed. To find
+ the properties that are indexed, look for the specific property's property description and
+ property for IsQueryable flag.
+
+
+
+
+ Creates a leaf condition node that represents a comparison of property value and Integer value.
+
+ The name of a property to be compared, or null for an unspecified property.
+ The locale name of the leaf node is LOCALE_NAME_USER_DEFAULT.
+ The Integer value against which the property value should be compared.
+ Specific condition to be used when comparing the actual value and the expected value of the given property
+ SearchCondition based on the given parameters
+
+ The search will only work for files that are indexed, as well as the specific properties are indexed. To find
+ the properties that are indexed, look for the specific property's property description and
+ property for IsQueryable flag.
+
+
+
+
+ Creates a leaf condition node that represents a comparison of property value and Boolean value.
+
+ The name of a property to be compared, or null for an unspecified property.
+ The locale name of the leaf node is LOCALE_NAME_USER_DEFAULT.
+ The Boolean value against which the property value should be compared.
+ Specific condition to be used when comparing the actual value and the expected value of the given property
+ SearchCondition based on the given parameters
+
+ The search will only work for files that are indexed, as well as the specific properties are indexed. To find
+ the properties that are indexed, look for the specific property's property description and
+ property for IsQueryable flag.
+
+
+
+
+ Creates a leaf condition node that represents a comparison of property value and Floating Point value.
+
+ The name of a property to be compared, or null for an unspecified property.
+ The locale name of the leaf node is LOCALE_NAME_USER_DEFAULT.
+ The Floating Point value against which the property value should be compared.
+ Specific condition to be used when comparing the actual value and the expected value of the given property
+ SearchCondition based on the given parameters
+
+ The search will only work for files that are indexed, as well as the specific properties are indexed. To find
+ the properties that are indexed, look for the specific property's property description and
+ property for IsQueryable flag.
+
+
+
+
+ Creates a leaf condition node that represents a comparison of property value and constant value.
+
+ The property to be compared.
+ The constant value against which the property value should be compared.
+ Specific condition to be used when comparing the actual value and the expected value of the given property
+ SearchCondition based on the given parameters
+
+ The search will only work for files that are indexed, as well as the specific properties are indexed. To find
+ the properties that are indexed, look for the specific property's property description and
+ property for IsQueryable flag.
+
+
+
+
+ Creates a leaf condition node that represents a comparison of property value and constant value.
+ Overload method takes a DateTime parameter for the comparison value.
+
+ The property to be compared.
+ The DateTime value against which the property value should be compared.
+ Specific condition to be used when comparing the actual value and the expected value of the given property
+ SearchCondition based on the given parameters
+
+ The search will only work for files that are indexed, as well as the specific properties are indexed. To find
+ the properties that are indexed, look for the specific property's property description and
+ property for IsQueryable flag.
+
+
+
+
+ Creates a leaf condition node that represents a comparison of property value and Boolean value.
+ Overload method takes a DateTime parameter for the comparison value.
+
+ The property to be compared.
+ The boolean value against which the property value should be compared.
+ Specific condition to be used when comparing the actual value and the expected value of the given property
+ SearchCondition based on the given parameters
+
+ The search will only work for files that are indexed, as well as the specific properties are indexed. To find
+ the properties that are indexed, look for the specific property's property description and
+ property for IsQueryable flag.
+
+
+
+
+ Creates a leaf condition node that represents a comparison of property value and Floating Point value.
+ Overload method takes a DateTime parameter for the comparison value.
+
+ The property to be compared.
+ The Floating Point value against which the property value should be compared.
+ Specific condition to be used when comparing the actual value and the expected value of the given property
+ SearchCondition based on the given parameters
+
+ The search will only work for files that are indexed, as well as the specific properties are indexed. To find
+ the properties that are indexed, look for the specific property's property description and
+ property for IsQueryable flag.
+
+
+
+
+ Creates a leaf condition node that represents a comparison of property value and Integer value.
+ Overload method takes a DateTime parameter for the comparison value.
+
+ The property to be compared.
+ The Integer value against which the property value should be compared.
+ Specific condition to be used when comparing the actual value and the expected value of the given property
+ SearchCondition based on the given parameters
+
+ The search will only work for files that are indexed, as well as the specific properties are indexed. To find
+ the properties that are indexed, look for the specific property's property description and
+ property for IsQueryable flag.
+
+
+
+
+ Creates a condition node that is a logical conjunction ("AND") or disjunction ("OR")
+ of a collection of subconditions.
+
+ The SearchConditionType of the condition node.
+ Must be either AndCondition or OrCondition.
+ TRUE to logically simplify the result, if possible;
+ then the result will not necessarily to be of the specified kind. FALSE if the result should
+ have exactly the prescribed structure. An application that plans to execute a query based on the
+ condition tree would typically benefit from setting this parameter to TRUE.
+ Array of subconditions
+ New SearchCondition based on the operation
+
+
+
+ Creates a condition node that is a logical negation (NOT) of another condition
+ (a subnode of this node).
+
+ SearchCondition node to be negated.
+ True to logically simplify the result if possible; False otherwise.
+ In a query builder scenario, simplyfy should typically be set to false.
+ New SearchCondition
+
+
+
+ Parses an input string that contains Structured Query keywords (using Advanced Query Syntax
+ or Natural Query Syntax) and produces a SearchCondition object.
+
+ The query to be parsed
+ Search condition resulting from the query
+ For more information on structured query syntax, visit http://msdn.microsoft.com/en-us/library/bb233500.aspx and
+ http://www.microsoft.com/windows/products/winfamily/desktopsearch/technicalresources/advquery.mspx
+
+
+
+ Parses an input string that contains Structured Query keywords (using Advanced Query Syntax
+ or Natural Query Syntax) and produces a SearchCondition object.
+
+ The query to be parsed
+ The culture used to select the localized language for keywords.
+ Search condition resulting from the query
+ For more information on structured query syntax, visit http://msdn.microsoft.com/en-us/library/bb233500.aspx and
+ http://www.microsoft.com/windows/products/winfamily/desktopsearch/technicalresources/advquery.mspx
+
+
+
+ Create and modify search folders.
+
+
+
+
+ Represents the base class for all search-related classes.
+
+
+
+
+ Create a simple search folder. Once the appropriate parameters are set,
+ the search folder can be enumerated to get the search results.
+
+ Specific condition on which to perform the search (property and expected value)
+ List of folders/paths to perform the search on. These locations need to be indexed by the system.
+
+
+
+ Create a simple search folder. Once the appropiate parameters are set,
+ the search folder can be enumerated to get the search results.
+
+ Specific condition on which to perform the search (property and expected value)
+ List of folders/paths to perform the search on. These locations need to be indexed by the system.
+
+
+
+ Creates a list of stack keys, as specified. If this method is not called,
+ by default the folder will not be stacked.
+
+ Array of canonical names for properties on which the folder is stacked.
+ If one of the given canonical names is invalid.
+
+
+
+ Creates a list of stack keys, as specified. If this method is not called,
+ by default the folder will not be stacked.
+
+ Array of property keys on which the folder is stacked.
+
+
+
+ Sets the search folder display name.
+
+
+
+
+ Sets the search folder icon size.
+ The default settings are based on the FolderTypeID which is set by the
+ SearchFolder::SetFolderTypeID method.
+
+
+
+
+ Sets a search folder type ID, as specified.
+
+
+
+
+ Sets folder logical view mode. The default settings are based on the FolderTypeID which is set
+ by the SearchFolder::SetFolderTypeID method.
+
+ The logical view mode to set.
+
+
+
+ Creates a new column list whose columns are all visible,
+ given an array of PropertyKey structures. The default is based on FolderTypeID.
+
+ This property may not work correctly with the ExplorerBrowser control.
+
+
+
+ Creates a list of sort column directions, as specified.
+
+ This property may not work correctly with the ExplorerBrowser control.
+
+
+
+ Sets a group column, as specified. If no group column is specified, no grouping occurs.
+
+ This property may not work correctly with the ExplorerBrowser control.
+
+
+
+ Gets the of the search.
+ When this property is not set, the resulting search will have no filters applied.
+
+
+
+
+ Gets the search scope, as specified using an array of locations to search.
+ The search will include this location and all its subcontainers. The default is FOLDERID_Profile
+
+
+
+
+ A file in the Shell Namespace
+
+
+
+
+ Constructs a new ShellFile object given a file path
+
+ The file or folder path
+ ShellFile object created using given file path.
+
+
+
+ The path for this file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A helper class for Shell Objects
+
+
+
+
+ Creates a ShellObject given a native IShellItem interface
+
+
+ A newly constructed ShellObject object
+
+
+
+ Creates a ShellObject given a parsing name
+
+
+ A newly constructed ShellObject object
+
+
+
+ Constructs a new Shell object from IDList pointer
+
+
+
+
+
+
+ Constructs a new Shell object from IDList pointer
+
+
+
+
+
+
+
+ Represents a thumbnail or an icon for a ShellObject.
+
+
+
+
+ Native shellItem
+
+
+
+
+ Internal member to keep track of the current size
+
+
+
+
+ Internal constructor that takes in a parent ShellObject.
+
+
+
+
+
+ Gets or sets the default size of the thumbnail or icon. The default is 32x32 pixels for icons and
+ 256x256 pixels for thumbnails.
+
+ If the size specified is larger than the maximum size of 1024x1024 for thumbnails and 256x256 for icons,
+ an is thrown.
+
+
+
+
+ Gets the thumbnail or icon image in format.
+ Null is returned if the ShellObject does not have a thumbnail or icon image.
+
+
+
+
+ Gets the thumbnail or icon image in format.
+ Null is returned if the ShellObject does not have a thumbnail or icon image.
+
+
+
+
+ Gets the thumbnail or icon image in format.
+ Null is returned if the ShellObject does not have a thumbnail or icon image.
+
+
+
+
+ Gets the thumbnail or icon in small size and format.
+
+
+
+
+ Gets the thumbnail or icon in small size and format.
+
+
+
+
+ Gets the thumbnail or icon in small size and format.
+
+
+
+
+ Gets the thumbnail or icon in Medium size and format.
+
+
+
+
+ Gets the thumbnail or icon in medium size and format.
+
+
+
+
+ Gets the thumbnail or icon in Medium size and format.
+
+
+
+
+ Gets the thumbnail or icon in large size and format.
+
+
+
+
+ Gets the thumbnail or icon in large size and format.
+
+
+
+
+ Gets the thumbnail or icon in Large size and format.
+
+
+
+
+ Gets the thumbnail or icon in extra large size and format.
+
+
+
+
+ Gets the thumbnail or icon in Extra Large size and format.
+
+
+
+
+ Gets the thumbnail or icon in Extra Large size and format.
+
+
+
+
+ Gets or sets a value that determines if the current retrieval option is cache or extract, cache only, or from memory only.
+ The default is cache or extract.
+
+
+
+
+ Gets or sets a value that determines if the current format option is thumbnail or icon, thumbnail only, or icon only.
+ The default is thumbnail or icon.
+
+
+
+
+ Gets or sets a value that determines if the user can manually stretch the returned image.
+ The default value is false.
+
+
+ For example, if the caller passes in 80x80 a 96x96 thumbnail could be returned.
+ This could be used as a performance optimization if the caller will need to stretch
+ the image themselves anyway. Note that the Shell implementation performs a GDI stretch blit.
+ If the caller wants a higher quality image stretch, they should pass this flag and do it themselves.
+
+
+
+
+ An ennumerable list of ShellObjects
+
+
+
+
+ Creates a ShellObject collection from an IShellItemArray
+
+ IShellItemArray pointer
+ Indicates whether the collection shouldbe read-only or not
+
+
+
+ Creates a ShellObjectCollection from an IDataObject passed during Drop operation.
+
+ An object that implements the IDataObject COM interface.
+ ShellObjectCollection created from the given IDataObject
+
+
+
+ Constructs an empty ShellObjectCollection
+
+
+
+
+ Finalizer
+
+
+
+
+ Standard Dispose pattern
+
+
+
+
+ Standard Dispose patterns
+
+ Indicates that this is being called from Dispose(), rather than the finalizer.
+
+
+
+ Collection enumeration
+
+
+
+
+
+ Builds the data for the CFSTR_SHELLIDLIST Drag and Clipboard data format from the
+ ShellObjects in the collection.
+
+ A memory stream containing the drag/drop data.
+
+
+
+ Returns the index of a particualr shell object in the collection
+
+ The item to search for.
+ The index of the item found, or -1 if not found.
+
+
+
+ Inserts a new shell object into the collection.
+
+ The index at which to insert.
+ The item to insert.
+
+
+
+ Removes the specified ShellObject from the collection
+
+ The index to remove at.
+
+
+
+ Adds a ShellObject to the collection,
+
+ The ShellObject to add.
+
+
+
+ Clears the collection of ShellObjects.
+
+
+
+
+ Determines if the collection contains a particular ShellObject.
+
+ The ShellObject.
+ true, if the ShellObject is in the list, false otherwise.
+
+
+
+ Copies the ShellObjects in the collection to a ShellObject array.
+
+ The destination to copy to.
+ The index into the array at which copying will commence.
+
+
+
+ Removes a particular ShellObject from the list.
+
+ The ShellObject to remove.
+ True if the item could be removed, false otherwise.
+
+
+
+ Allows for enumeration through the list of ShellObjects in the collection.
+
+ The IEnumerator interface to use for enumeration.
+
+
+
+ Item count
+
+
+
+
+ The collection indexer
+
+ The index of the item to retrieve.
+ The ShellObject at the specified index
+
+
+
+ Retrieves the number of ShellObjects in the collection
+
+
+
+
+ If true, the contents of the collection are immutable.
+
+
+
+
+ Defines the read-only properties for default shell icon sizes.
+
+
+
+
+ The small size property for a 16x16 pixel Shell Icon.
+
+
+
+
+ The medium size property for a 32x32 pixel Shell Icon.
+
+
+
+
+ The large size property for a 48x48 pixel Shell Icon.
+
+
+
+
+ The extra-large size property for a 256x256 pixel Shell Icon.
+
+
+
+
+ The maximum size for a Shell Icon, 256x256 pixels.
+
+
+
+
+ Defines the read-only properties for default shell thumbnail sizes.
+
+
+
+
+ Gets the small size property for a 32x32 pixel Shell Thumbnail.
+
+
+
+
+ Gets the medium size property for a 96x96 pixel Shell Thumbnail.
+
+
+
+
+ Gets the large size property for a 256x256 pixel Shell Thumbnail.
+
+
+
+
+ Gets the extra-large size property for a 1024x1024 pixel Shell Thumbnail.
+
+
+
+
+ Maximum size for the Shell Thumbnail, 1024x1024 pixels.
+
+
+
+
+ Stores information about how to sort a column that is displayed in the folder view.
+
+
+
+
+ Creates a sort column with the specified direction for the given property.
+
+ Property key for the property that the user will sort.
+ The direction in which the items are sorted.
+
+
+
+ Implements the == (equality) operator.
+
+ First object to compare.
+ Second object to compare.
+ True if col1 equals col2; false otherwise.
+
+
+
+ Implements the != (unequality) operator.
+
+ First object to compare.
+ Second object to compare.
+ True if col1 does not equals col1; false otherwise.
+
+
+
+ Determines if this object is equal to another.
+
+ The object to compare
+ Returns true if the objects are equal; false otherwise.
+
+
+
+ Generates a nearly unique hashcode for this structure.
+
+ A hash code.
+
+
+
+ The ID of the column by which the user will sort. A PropertyKey structure.
+ For example, for the "Name" column, the property key is PKEY_ItemNameDisplay or
+ .
+
+
+
+
+ The direction in which the items are sorted.
+
+
+
+
+ Implements a CommandLink button that can be used in
+ WinForms user interfaces.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Gets a System.Windows.Forms.CreateParams on the base class when
+ creating a window.
+
+
+
+
+ Increase default width.
+
+
+
+
+ Specifies the supporting note text
+
+
+
+
+ Enable shield icon to be set at design-time.
+
+
+
+
+ Indicates whether this feature is supported on the current platform.
+
+
+
+
+ Implements a CommandLink button that can be used in WPF user interfaces.
+
+
+ CommandLink
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ InitializeComponent
+
+
+
+
+ Routed UI command to use for this button
+
+
+
+
+ Occurs when the control is clicked.
+
+
+
+
+ Specifies the main instruction text
+
+
+
+
+ Specifies the supporting note text
+
+
+
+
+ Icon to set for the command link button
+
+
+
+
+ Indicates if the button is in a checked state
+
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Indicates whether this feature is supported on the current platform.
+
+
+
+
+ Internal class that contains interop declarations for
+ functions that are not benign and are performance critical.
+
+
+
+
+ Event argument for The GlassAvailabilityChanged event
+
+
+
+
+ The new GlassAvailable state
+
+
+
+
+ Windows Glass Form
+ Inherit from this form to be able to enable glass on Windows Form
+
+
+
+
+ Makes the background of current window transparent
+
+
+
+
+ Excludes a Control from the AeroGlass frame.
+
+ The control to exclude.
+ Many non-WPF rendered controls (i.e., the ExplorerBrowser control) will not
+ render properly on top of an AeroGlass frame.
+
+
+
+ Resets the AeroGlass exclusion area.
+
+
+
+
+ Catches the DWM messages to this window and fires the appropriate event.
+
+
+
+
+
+ Initializes the Form for AeroGlass
+
+ The arguments for this event
+
+
+
+ Overide OnPaint to paint the background as black.
+
+ PaintEventArgs
+
+
+
+ Get determines if AeroGlass is enabled on the desktop. Set enables/disables AreoGlass on the desktop.
+
+
+
+
+ Fires when the availability of Glass effect changes.
+
+
+
+
+ WPF Glass Window
+ Inherit from this window class to enable glass on a WPF window
+
+
+
+
+ Makes the background of current window transparent from both Wpf and Windows Perspective
+
+
+
+
+ Excludes a UI element from the AeroGlass frame.
+
+ The element to exclude.
+ Many non-WPF rendered controls (i.e., the ExplorerBrowser control) will not
+ render properly on top of an AeroGlass frame.
+
+
+
+ Resets the AeroGlass exclusion area.
+
+
+
+
+ OnSourceInitialized
+ Override SourceInitialized to initialize windowHandle for this window.
+ A valid windowHandle is available only after the sourceInitialized is completed
+
+ EventArgs
+
+
+
+ Get determines if AeroGlass is enabled on the desktop. Set enables/disables AreoGlass on the desktop.
+
+
+
+
+ Fires when the availability of Glass effect changes.
+
+
+
+
+ An exception thrown when an error occurs while dealing with Control objects.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Initializes an excpetion with a custom message.
+
+
+
+
+
+ Initializes an exception with custom message and inner exception.
+
+
+
+
+
+
+ Initializes an exception with custom message and error code.
+
+
+
+
+
+
+ Initializes an exception with custom message and error code.
+
+
+
+
+
+
+ Initializes an exception from serialization info and a context.
+
+
+
+
+
+
+ This class is a wrapper around the Windows Explorer Browser control.
+
+
+
+
+ Clears the Explorer Browser of existing content, fills it with
+ content from the specified container, and adds a new point to the Travel Log.
+
+ The shell container to navigate to.
+ Will throw if navigation fails for any other reason.
+
+
+
+ Navigates within the navigation log. This does not change the set of
+ locations in the navigation log.
+
+ Forward of Backward
+ True if the navigation succeeded, false if it failed for any reason.
+
+
+
+ Navigate within the navigation log. This does not change the set of
+ locations in the navigation log.
+
+ An index into the navigation logs Locations collection.
+ True if the navigation succeeded, false if it failed for any reason.
+
+
+
+ Initializes the ExplorerBorwser WinForms wrapper.
+
+
+
+
+ Displays a placeholder for the explorer browser in design mode
+
+ Contains information about the paint event.
+
+
+
+ Creates and initializes the native ExplorerBrowser control
+
+
+
+
+ Sizes the native control to match the WinForms control wrapper.
+
+ Contains information about the size changed event.
+
+
+
+ Cleans up the explorer browser events+object when the window is being taken down.
+
+ An EventArgs that contains event data.
+
+
+
+
+
+ calling service
+ requested interface guid
+ caller-allocated memory for interface pointer
+
+
+
+
+ Controls the visibility of the explorer borwser panes
+
+ a guid identifying the pane
+ the pane state desired
+
+
+
+
+ Returns the current view mode of the browser
+
+
+
+
+
+ Gets the IFolderView2 interface from the explorer browser.
+
+
+
+
+
+ Gets the selected items in the explorer browser as an IShellItemArray
+
+
+
+
+
+ Gets the items in the ExplorerBrowser as an IShellItemArray
+
+
+
+
+
+ Options that control how the ExplorerBrowser navigates
+
+
+
+
+ Options that control how the content of the ExplorerBorwser looks
+
+
+
+
+ The set of ShellObjects in the Explorer Browser
+
+
+
+
+ The set of selected ShellObjects in the Explorer Browser
+
+
+
+
+ Contains the navigation history of the ExplorerBrowser
+
+
+
+
+ The name of the property bag used to persist changes to the ExplorerBrowser's view state.
+
+
+
+
+ Fires when the SelectedItems collection changes.
+
+
+
+
+ Fires when the Items colection changes.
+
+
+
+
+ Fires when a navigation has been initiated, but is not yet complete.
+
+
+
+
+ Fires when a navigation has been 'completed': no NavigationPending listener
+ has cancelled, and the ExplorerBorwser has created a new view. The view
+ will be populated with new items asynchronously, and ItemsChanged will be
+ fired to reflect this some time later.
+
+
+
+
+ Fires when either a NavigationPending listener cancels the navigation, or
+ if the operating system determines that navigation is not possible.
+
+
+
+
+ Fires when the ExplorerBorwser view has finished enumerating files.
+
+
+
+
+ Fires when the item selected in the view has changed (i.e., a rename ).
+ This is not the same as SelectionChanged.
+
+
+
+
+ Interaction logic for ExplorerBrowser.xaml
+
+
+ ExplorerBrowser
+
+
+
+
+ Hosts the ExplorerBrowser WinForms wrapper in this control
+
+
+
+
+ To avoid the 'Dispatcher processing has been suspended' InvalidOperationException on Win7,
+ the ExplorerBorwser native control is initialized after this control is fully loaded.
+
+
+
+
+
+
+ Map changes to the CLR flags to the dependency properties
+
+
+
+
+
+
+ Synchronize NavigationLog collection to dependency collection
+
+
+
+
+
+
+ Synchronize SelectedItems collection to dependency collection
+
+
+
+
+
+
+ The items in the ExplorerBrowser window
+
+
+
+
+ The NavigationLog
+
+
+
+
+ The selected items in the ExplorerBrowser window
+
+
+
+
+ The DependencyProperty for the NavigationTarget property
+
+
+
+
+ Disposes the class
+
+
+
+
+ Disposes the browser.
+
+
+
+
+
+ InitializeComponent
+
+
+
+
+ The underlying WinForms control
+
+
+
+
+ The items in the ExplorerBrowser window
+
+
+
+
+ The selected items in the ExplorerBrowser window
+
+
+
+
+ The selected items in the ExplorerBrowser window
+
+
+
+
+ The location the explorer browser is navigating to
+
+
+
+
+ The view should be left-aligned.
+
+
+
+
+ Automatically arrange the elements in the view.
+
+
+
+
+ Turns on check mode for the view
+
+
+
+
+ When the view is in "tile view mode" the layout of a single item should be extended to the width of the view.
+
+
+
+
+ When an item is selected, the item and all its sub-items are highlighted.
+
+
+
+
+ The view should not display file names
+
+
+
+
+ The view should not save view state in the browser.
+
+
+
+
+ Do not display a column header in the view in any view mode.
+
+
+
+
+ Only show the column header in details view mode.
+
+
+
+
+ The view should not display icons.
+
+
+
+
+ Do not show subfolders.
+
+
+
+
+ Navigate with a single click
+
+
+
+
+ Do not allow more than a single item to be selected.
+
+
+
+
+ The size of the thumbnails in the explorer browser
+
+
+
+
+ The various view modes of the explorer browser control
+
+
+
+
+ Always navigate, even if you are attempting to navigate to the current folder.
+
+
+
+
+ Do not navigate further than the initial navigation.
+
+
+
+
+ Show/Hide the AdvancedQuery pane on subsequent navigation
+
+
+
+
+ Show/Hide the Commands pane on subsequent navigation
+
+
+
+
+ Show/Hide the Organize menu in the Commands pane on subsequent navigation
+
+
+
+
+ Show/Hide the View menu in the Commands pane on subsequent navigation
+
+
+
+
+ Show/Hide the Details pane on subsequent navigation
+
+
+
+
+ Show/Hide the Navigation pane on subsequent navigation
+
+
+
+
+ Show/Hide the Preview pane on subsequent navigation
+
+
+
+
+ Show/Hide the Query pane on subsequent navigation
+
+
+
+
+ Navigation log index
+
+
+
+
+ These options control how the content of the Explorer Browser
+ is rendered.
+
+
+
+
+ The viewing mode of the Explorer Browser
+
+
+
+
+ The binary representation of the ExplorerBrowser content flags
+
+
+
+
+ The view should be left-aligned.
+
+
+
+
+ Automatically arrange the elements in the view.
+
+
+
+
+ Turns on check mode for the view
+
+
+
+
+ When the view is in "tile view mode" the layout of a single item should be extended to the width of the view.
+
+
+
+
+ When an item is selected, the item and all its sub-items are highlighted.
+
+
+
+
+ The view should not display file names
+
+
+
+
+ The view should not save view state in the browser.
+
+
+
+
+ Do not display a column header in the view in any view mode.
+
+
+
+
+ Only show the column header in details view mode.
+
+
+
+
+ The view should not display icons.
+
+
+
+
+ Do not show subfolders.
+
+
+
+
+ Navigate with a single click
+
+
+
+
+ Do not allow more than a single item to be selected.
+
+
+
+
+ The size of the thumbnails in pixels
+
+
+
+
+ Event argument for The NavigationPending event
+
+
+
+
+ The location being navigated to
+
+
+
+
+ Set to 'True' to cancel the navigation.
+
+
+
+
+ Event argument for The NavigationComplete event
+
+
+
+
+ The new location of the explorer browser
+
+
+
+
+ Event argument for the NavigatinoFailed event
+
+
+
+
+ The location the the browser would have navigated to.
+
+
+
+
+ This provides a connection point container compatible dispatch interface for
+ hooking into the ExplorerBrowser view.
+
+
+
+
+ Default constructor for ExplorerBrowserViewEvents
+
+
+
+
+ The view selection has changed
+
+
+
+
+ The contents of the view have changed
+
+
+
+
+ The enumeration of files in the view is complete
+
+
+
+
+ The selected item in the view has changed (not the same as the selection has changed)
+
+
+
+
+ Finalizer for ExplorerBrowserViewEvents
+
+
+
+
+ Disconnects and disposes object.
+
+
+
+
+ Disconnects and disposes object.
+
+
+
+
+
+ The navigation log is a history of the locations visited by the explorer browser.
+
+
+
+
+ Clears the contents of the navigation log.
+
+
+
+
+ The pending navigation log action. null if the user is not navigating
+ via the navigation log.
+
+
+
+
+ The index into the Locations collection. -1 if the Locations colleciton
+ is empty.
+
+
+
+
+ Indicates the presence of locations in the log that can be
+ reached by calling Navigate(Forward)
+
+
+
+
+ Indicates the presence of locations in the log that can be
+ reached by calling Navigate(Backward)
+
+
+
+
+ The navigation log
+
+
+
+
+ An index into the Locations collection. The ShellObject pointed to
+ by this index is the current location of the ExplorerBrowser.
+
+
+
+
+ Gets the shell object in the Locations collection pointed to
+ by CurrentLocationIndex.
+
+
+
+
+ Fires when the navigation log changes or
+ the current navigation position changes
+
+
+
+
+ A navigation traversal request
+
+
+
+
+ Indicates the viewing mode of the explorer browser
+
+
+
+
+ Choose the best view mode for the folder
+
+
+
+
+ (New for Windows7)
+
+
+
+
+ Object names and other selected information, such as the size or date last updated, are shown.
+
+
+
+
+ The view should display medium-size icons.
+
+
+
+
+ Object names are displayed in a list view.
+
+
+
+
+ The view should display small icons.
+
+
+
+
+ The view should display thumbnail icons.
+
+
+
+
+ The view should display icons in a filmstrip format.
+
+
+
+
+ The view should display large icons.
+
+
+
+
+ Specifies the options that control subsequent navigation.
+ Typically use one, or a bitwise combination of these
+ flags to specify how the explorer browser navigates.
+
+
+
+
+ Always navigate, even if you are attempting to navigate to the current folder.
+
+
+
+
+ Do not navigate further than the initial navigation.
+
+
+
+
+ Indicates the content options of the explorer browser.
+ Typically use one, or a bitwise combination of these
+ flags to specify how conent should appear in the
+ explorer browser control
+
+
+
+
+ No options.
+
+
+
+
+ The view should be left-aligned.
+
+
+
+
+ Automatically arrange the elements in the view.
+
+
+
+
+ Turns on check mode for the view
+
+
+
+
+ When the view is set to "Tile" the layout of a single item should be extended to the width of the view.
+
+
+
+
+ When an item is selected, the item and all its sub-items are highlighted.
+
+
+
+
+ The view should not display file names
+
+
+
+
+ The view should not save view state in the browser.
+
+
+
+
+ Do not display a column header in the view in any view mode.
+
+
+
+
+ Only show the column header in details view mode.
+
+
+
+
+ The view should not display icons.
+
+
+
+
+ Do not show subfolders.
+
+
+
+
+ Navigate with a single click
+
+
+
+
+ Do not allow more than a single item to be selected.
+
+
+
+
+ Indicates the visibility state of an ExplorerBrowser pane
+
+
+
+
+ Allow the explorer browser to determine if this pane is displayed.
+
+
+
+
+ Hide the pane
+
+
+
+
+ Show the pane
+
+
+
+
+ Controls the visibility of the various ExplorerBrowser panes on subsequent navigation
+
+
+
+
+ The pane on the left side of the Windows Explorer window that hosts the folders tree and Favorites.
+
+
+
+
+ Commands module along the top of the Windows Explorer window.
+
+
+
+
+ Organize menu within the commands module.
+
+
+
+
+ View menu within the commands module.
+
+
+
+
+ Pane showing metadata along the bottom of the Windows Explorer window.
+
+
+
+
+ Pane on the right of the Windows Explorer window that shows a large reading preview of the file.
+
+
+
+
+ Quick filter buttons to aid in a search.
+
+
+
+
+ Additional fields and options to aid in a search.
+
+
+
+
+ The direction argument for Navigate
+
+
+
+
+ Navigates forward through the navigation log
+
+
+
+
+ Navigates backward through the travel log
+
+
+
+
+ The event argument for NavigationLogChangedEvent
+
+
+
+
+ Indicates CanNavigateForward has changed
+
+
+
+
+ Indicates CanNavigateBackward has changed
+
+
+
+
+ Indicates the Locations collection has changed
+
+
+
+
+ These options control the results subsequent navigations of the ExplorerBrowser
+
+
+
+
+ The binary flags that are passed to the explorer browser control's GetOptions/SetOptions methods
+
+
+
+
+ Do not navigate further than the initial navigation.
+
+
+
+
+ Always navigate, even if you are attempting to navigate to the current folder.
+
+
+
+
+ Controls the visibility of the various ExplorerBrowser panes on subsequent navigation
+
+
+
+
+ The STGM constants are flags that indicate
+ conditions for creating and deleting the object and access modes
+ for the object.
+
+ You can combine these flags, but you can only choose one flag
+ from each group of related flags. Typically one flag from each
+ of the access and sharing groups must be specified for all
+ functions and methods which use these constants.
+
+
+
+
+ Indicates that, in direct mode, each change to a storage
+ or stream element is written as it occurs.
+
+
+
+
+ Indicates that, in transacted mode, changes are buffered
+ and written only if an explicit commit operation is called.
+
+
+
+
+ Provides a faster implementation of a compound file
+ in a limited, but frequently used, case.
+
+
+
+
+ Indicates that the object is read-only,
+ meaning that modifications cannot be made.
+
+
+
+
+ Enables you to save changes to the object,
+ but does not permit access to its data.
+
+
+
+
+ Enables access and modification of object data.
+
+
+
+
+ Specifies that subsequent openings of the object are
+ not denied read or write access.
+
+
+
+
+ Prevents others from subsequently opening the object in Read mode.
+
+
+
+
+ Prevents others from subsequently opening the object
+ for Write or ReadWrite access.
+
+
+
+
+ Prevents others from subsequently opening the object in any mode.
+
+
+
+
+ Opens the storage object with exclusive access to the most
+ recently committed version.
+
+
+
+
+ Indicates that the underlying file is to be automatically destroyed when the root
+ storage object is released. This feature is most useful for creating temporary files.
+
+
+
+
+ Indicates that, in transacted mode, a temporary scratch file is usually used
+ to save modifications until the Commit method is called.
+ Specifying NoScratch permits the unused portion of the original file
+ to be used as work space instead of creating a new file for that purpose.
+
+
+
+
+ Indicates that an existing storage object
+ or stream should be removed before the new object replaces it.
+
+
+
+
+ Creates the new object while preserving existing data in a stream named "Contents".
+
+
+
+
+ Causes the create operation to fail if an existing object with the specified name exists.
+
+
+
+
+ This flag is used when opening a storage object with Transacted
+ and without ShareExclusive or ShareDenyWrite.
+ In this case, specifying NoSnapshot prevents the system-provided
+ implementation from creating a snapshot copy of the file.
+ Instead, changes to the file are written to the end of the file.
+
+
+
+
+ Supports direct mode for single-writer, multireader file operations.
+
+
+
+
+ Wraps the native Windows MSG structure.
+
+
+
+
+ Creates a new instance of the Message struct
+
+ Window handle
+ Message
+ WParam
+ LParam
+ Time
+ Point
+
+
+
+ Determines if two messages are equal.
+
+ First message
+ Second message
+ True if first and second message are equal; false otherwise.
+
+
+
+ Determines if two messages are not equal.
+
+ First message
+ Second message
+ True if first and second message are not equal; false otherwise.
+
+
+
+ Determines if this message is equal to another.
+
+ Another message
+ True if this message is equal argument; false otherwise.
+
+
+
+ Gets a hash code for the message.
+
+ Hash code for this message.
+
+
+
+ Gets the window handle
+
+
+
+
+ Gets the window message
+
+
+
+
+ Gets the WParam
+
+
+
+
+ Gets the LParam
+
+
+
+
+ Gets the time
+
+
+
+
+ Gets the point
+
+
+
+
+ An exception thrown when an error occurs while dealing with the Property System API.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Initializes an excpetion with a custom message.
+
+
+
+
+
+ Initializes an exception with custom message and inner exception.
+
+
+
+
+
+
+ Initializes an exception with custom message and error code.
+
+
+
+
+
+
+ Initializes an exception from serialization info and a context.
+
+
+
+
+
+
+ Specifies options for the appearance of the
+ stock icon.
+
+
+
+
+ Retrieve the small version of the icon, as specified by
+ SM_CXICON and SM_CYICON system metrics.
+
+
+
+
+ Retrieve the small version of the icon, as specified by
+ SM_CXSMICON and SM_CYSMICON system metrics.
+
+
+
+
+ Retrieve the shell-sized icons (instead of the
+ size specified by the system metrics).
+
+
+
+
+ Specified that the hIcon member of the SHSTOCKICONINFO
+ structure receives a handle to the specified icon.
+
+
+
+
+ Specifies that the iSysImageImage member of the SHSTOCKICONINFO
+ structure receives the index of the specified
+ icon in the system imagelist.
+
+
+
+
+ Adds the link overlay to the icon.
+
+
+
+
+ Adds the system highlight color to the icon.
+
+
+
+
+ The window has a thin-line border.
+
+
+
+
+ The window has a title bar (includes the WS_BORDER style).
+
+
+
+
+ The window is a child window.
+ A window with this style cannot have a menu bar.
+ This style cannot be used with the WS_POPUP style.
+
+
+
+
+ Same as the WS_CHILD style.
+
+
+
+
+ Excludes the area occupied by child windows when drawing occurs within the parent window.
+ This style is used when creating the parent window.
+
+
+
+
+ Clips child windows relative to each other;
+ that is, when a particular child window receives a WM_PAINT message,
+ the WS_CLIPSIBLINGS style clips all other overlapping child windows out of the region of the child window to be updated.
+ If WS_CLIPSIBLINGS is not specified and child windows overlap, it is possible,
+ when drawing within the client area of a child window, to draw within the client area of a neighboring child window.
+
+
+
+
+ The window is initially disabled. A disabled window cannot receive input from the user.
+ To change this after a window has been created, use the EnableWindow function.
+
+
+
+
+ The window has a border of a style typically used with dialog boxes.
+ A window with this style cannot have a title bar.
+
+
+
+
+ The window is the first control of a group of controls.
+ The group consists of this first control and all controls defined after it, up to the next control with the WS_GROUP style.
+ The first control in each group usually has the WS_TABSTOP style so that the user can move from group to group.
+ The user can subsequently change the keyboard focus from one control in the group to the next control
+ in the group by using the direction keys.
+
+ You can turn this style on and off to change dialog box navigation.
+ To change this style after a window has been created, use the SetWindowLong function.
+
+
+
+
+ The window has a horizontal scroll bar.
+
+
+
+
+ The window is initially minimized.
+ Same as the WS_MINIMIZE style.
+
+
+
+
+ The window is initially maximized.
+
+
+
+
+ The window has a maximize button.
+ Cannot be combined with the WS_EX_CONTEXTHELP style.
+ The WS_SYSMENU style must also be specifie
+
+
+
+
+ The window is initially minimized.
+ Same as the WS_ICONIC style.
+
+
+
+
+ The window has a minimize button.
+ Cannot be combined with the WS_EX_CONTEXTHELP style.
+ The WS_SYSMENU style must also be specified.
+
+
+
+
+ The window is an overlapped window.
+ An overlapped window has a title bar and a border.
+ Same as the WS_TILED style.
+
+
+
+
+ The windows is a pop-up window.
+ This style cannot be used with the WS_CHILD style.
+
+
+
+
+ The window has a sizing border.
+ Same as the WS_THICKFRAME style.
+
+
+
+
+ The window has a window menu on its title bar.
+ The WS_CAPTION style must also be specified.
+
+
+
+
+ The window is a control that can receive the keyboard focus when the user presses the TAB key.
+ Pressing the TAB key changes the keyboard focus to the next control with the WS_TABSTOP style.
+
+ You can turn this style on and off to change dialog box navigation.
+ To change this style after a window has been created, use the SetWindowLong function.
+ For user-created windows and modeless dialogs to work with tab stops,
+ alter the message loop to call the IsDialogMessage function.
+
+
+
+
+ The window has a sizing border.
+ Same as the WS_SIZEBOX style.
+
+
+
+
+ The window is an overlapped window.
+ An overlapped window has a title bar and a border.
+ Same as the WS_OVERLAPPED style.
+
+
+
+
+ The window is initially visible.
+
+ This style can be turned on and off by using the ShowWindow or SetWindowPos function.
+
+
+
+
+ The window has a vertical scroll bar.
+
+
+
+
+ The window is an overlapped window.
+ Same as the WS_OVERLAPPEDWINDOW style.
+
+
+
+
+ The window is a pop-up window.
+ The WS_CAPTION and WS_POPUPWINDOW styles must be combined to make the window menu visible.
+
+
+
+
+ The window is an overlapped window. Same as the WS_TILEDWINDOW style.
+
+
+
+
+ Represents a registered or known folder in the system.
+
+
+
+
+ Gets the path for this known folder.
+
+
+
+
+ Gets the category designation for this known folder.
+
+
+
+
+ Gets this known folder's canonical name.
+
+
+
+
+ Gets this known folder's description.
+
+
+
+
+ Gets the unique identifier for this known folder's parent folder.
+
+
+
+
+ Gets this known folder's relative path.
+
+
+
+
+ Gets this known folder's parsing name.
+
+
+
+
+ Gets this known folder's tool tip text.
+
+
+
+
+ Gets the resource identifier for this
+ known folder's tool tip text.
+
+
+
+
+ Gets this known folder's localized name.
+
+
+
+
+ Gets the resource identifier for this
+ known folder's localized name.
+
+
+
+
+ Gets this known folder's security attributes.
+
+
+
+
+ Gets this known folder's file attributes,
+ such as "read-only".
+
+
+
+
+ Gets an value that describes this known folder's behaviors.
+
+
+
+
+ Gets the unique identifier for this known folder's type.
+
+
+
+
+ Gets a string representation of this known folder's type.
+
+
+
+
+ Gets the unique identifier for this known folder.
+
+
+
+
+ Gets a value that indicates whether this known folder's path exists on the computer.
+
+ If this property value is false,
+ the folder might be a virtual folder ( property will
+ be for virtual folders)
+
+
+
+ Gets a value that states whether this known folder
+ can have its path set to a new value,
+ including any restrictions on the redirection.
+
+
+
+
+ Prepares the browser to be navigated.
+
+ A handle to the owner window or control.
+ A pointer to a RECT containing the coordinates of the bounding rectangle
+ the browser will occupy. The coordinates are relative to hwndParent. If this parameter is NULL,
+ then method IExplorerBrowser::SetRect should subsequently be called.
+ A pointer to a FOLDERSETTINGS structure that determines how the folder will be
+ displayed in the view. If this parameter is NULL, then method IExplorerBrowser::SetFolderSettings
+ should be called, otherwise, the default view settings for the folder are used.
+
+
+
+
+ Destroys the browser.
+
+
+
+
+
+ Sets the size and position of the view windows created by the browser.
+
+ A pointer to a DeferWindowPos handle. This paramater can be NULL.
+ The coordinates that the browser will occupy.
+
+
+
+
+ Sets the name of the property bag.
+
+ A pointer to a constant, null-terminated, Unicode string that contains
+ the name of the property bag. View state information that is specific to the application of the
+ client is stored (persisted) using this name.
+
+
+
+
+ Sets the default empty text.
+
+ A pointer to a constant, null-terminated, Unicode string that contains
+ the empty text.
+
+
+
+
+ Sets the folder settings for the current view.
+
+ A pointer to a FOLDERSETTINGS structure that contains the folder settings
+ to be applied.
+
+
+
+
+ Initiates a connection with IExplorerBrowser for event callbacks.
+
+ A pointer to the IExplorerBrowserEvents interface of the object to be
+ advised of IExplorerBrowser events
+ When this method returns, contains a token that uniquely identifies
+ the event listener. This allows several event listeners to be subscribed at a time.
+
+
+
+
+ Terminates an advisory connection.
+
+ A connection token previously returned from IExplorerBrowser::Advise.
+ Identifies the connection to be terminated.
+
+
+
+
+ Sets the current browser options.
+
+ One or more EXPLORER_BROWSER_OPTIONS flags to be set.
+
+
+
+
+ Gets the current browser options.
+
+ When this method returns, contains the current EXPLORER_BROWSER_OPTIONS
+ for the browser.
+
+
+
+
+ Browses to a pointer to an item identifier list (PIDL)
+
+ A pointer to a const ITEMIDLIST (item identifier list) that specifies an object's
+ location as the destination to navigate to. This parameter can be NULL.
+ A flag that specifies the category of the pidl. This affects how
+ navigation is accomplished
+
+
+
+
+ Browse to an object
+
+ A pointer to an object to browse to. If the object cannot be browsed,
+ an error value is returned.
+ A flag that specifies the category of the pidl. This affects how
+ navigation is accomplished.
+
+
+
+
+ Creates a results folder and fills it with items.
+
+ An interface pointer on the source object that will fill the IResultsFolder
+ One of the EXPLORER_BROWSER_FILL_FLAGS
+
+
+
+
+ Removes all items from the results folder.
+
+
+
+
+
+ Gets an interface for the current view of the browser.
+
+ A reference to the desired interface ID.
+ When this method returns, contains the interface pointer requested in riid.
+ This will typically be IShellView or IShellView2.
+
+
+
+
+ Internal class that contains interop declarations for
+ functions that are not benign and are performance critical.
+
+
+
+
+ Specifies behaviors for known folders.
+
+
+
+
+ No behaviors are defined.
+
+
+
+
+ Prevents a per-user known folder from being
+ redirected to a network location.
+
+
+
+
+ The known folder can be roamed through PC-to-PC synchronization.
+
+
+
+
+ Creates the known folder when the user first logs on.
+
+
+
+
+ Specifies the categories for known folders.
+
+
+
+
+ The folder category is not specified.
+
+
+
+
+ The folder is a virtual folder. Virtual folders are not part
+ of the file system. For example, Control Panel and
+ Printers are virtual folders. A number of properties
+ such as folder path and redirection do not apply to this category.
+
+
+
+
+ The folder is fixed. Fixed file system folders are not
+ managed by the Shell and are usually given a permanent
+ path when the system is installed. For example, the
+ Windows and Program Files folders are fixed folders.
+ A number of properties such as redirection do not apply
+ to this category.
+
+
+
+
+ The folder is a common folder. Common folders are
+ used for sharing data and settings
+ accessible by all users of a system. For example,
+ all users share a common Documents folder as well
+ as their per-user Documents folder.
+
+
+
+
+ Each user has their own copy of the folder. Per-user folders
+ are those stored under each user's profile and
+ accessible only by that user.
+
+
+
+
+ Structure used internally to store property values for
+ a known folder. This structure holds the information
+ returned in the FOLDER_DEFINITION structure, and
+ resources referenced by fields in NativeFolderDefinition,
+ such as icon and tool tip.
+
+
+
+
+ Contains the GUID identifiers for well-known folders.
+
+
+
+
+ Returns the friendly name for a specified folder.
+
+ The Guid identifier for a known folder.
+ A value.
+
+
+
+ Returns a sorted list of name, guid pairs for
+ all known folders.
+
+
+
+
+
+ Computer
+
+
+
+
+ Conflicts
+
+
+
+
+ Control Panel
+
+
+
+
+ Desktop
+
+
+
+
+ Internet Explorer
+
+
+
+
+ Network
+
+
+
+
+ Printers
+
+
+
+
+ Sync Center
+
+
+
+
+ Network Connections
+
+
+
+
+ Sync Setup
+
+
+
+
+ Sync Results
+
+
+
+
+ Recycle Bin
+
+
+
+
+ Fonts
+
+
+
+
+ Startup
+
+
+
+
+ Programs
+
+
+
+
+ Start Menu
+
+
+
+
+ Recent Items
+
+
+
+
+ SendTo
+
+
+
+
+ Documents
+
+
+
+
+ Favorites
+
+
+
+
+ Network Shortcuts
+
+
+
+
+ Printer Shortcuts
+
+
+
+
+ Templates
+
+
+
+
+ Startup
+
+
+
+
+ Programs
+
+
+
+
+ Start Menu
+
+
+
+
+ Public Desktop
+
+
+
+
+ ProgramData
+
+
+
+
+ Templates
+
+
+
+
+ Public Documents
+
+
+
+
+ Roaming
+
+
+
+
+ Local
+
+
+
+
+ LocalLow
+
+
+
+
+ Temporary Internet Files
+
+
+
+
+ Cookies
+
+
+
+
+ History
+
+
+
+
+ System32
+
+
+
+
+ System32
+
+
+
+
+ Windows
+
+
+
+
+ The user's username (%USERNAME%)
+
+
+
+
+ Pictures
+
+
+
+
+ Program Files
+
+
+
+
+ Common Files
+
+
+
+
+ Program Files
+
+
+
+
+ Common Files
+
+
+
+
+ Program Files
+
+
+
+
+ Common Files
+
+
+
+
+ Administrative Tools
+
+
+
+
+ Administrative Tools
+
+
+
+
+ Music
+
+
+
+
+ Videos
+
+
+
+
+ Public Pictures
+
+
+
+
+ Public Music
+
+
+
+
+ Public Videos
+
+
+
+
+ Resources
+
+
+
+
+ None
+
+
+
+
+ OEM Links
+
+
+
+
+ Temporary Burn Folder
+
+
+
+
+ Users
+
+
+
+
+ Playlists
+
+
+
+
+ Sample Playlists
+
+
+
+
+ Sample Music
+
+
+
+
+ Sample Pictures
+
+
+
+
+ Sample Videos
+
+
+
+
+ Slide Shows
+
+
+
+
+ Public
+
+
+
+
+ Programs and Features
+
+
+
+
+ Installed Updates
+
+
+
+
+ Get Programs
+
+
+
+
+ Downloads
+
+
+
+
+ Public Downloads
+
+
+
+
+ Searches
+
+
+
+
+ Quick Launch
+
+
+
+
+ Contacts
+
+
+
+
+ Gadgets
+
+
+
+
+ Gadgets
+
+
+
+
+ Tree property value folder
+
+
+
+
+ GameExplorer
+
+
+
+
+ GameExplorer
+
+
+
+
+ Saved Games
+
+
+
+
+ Games
+
+
+
+
+ Recorded TV
+
+
+
+
+ Microsoft Office Outlook
+
+
+
+
+ Offline Files
+
+
+
+
+ Links
+
+
+
+
+ The user's full name (for instance, Jean Philippe Bagel) entered when the user account was created.
+
+
+
+
+ Search home
+
+
+
+
+ Original Images
+
+
+
+
+ UserProgramFiles
+
+
+
+
+ UserProgramFilesCommon
+
+
+
+
+ Ringtones
+
+
+
+
+ PublicRingtones
+
+
+
+
+ UsersLibraries
+
+
+
+
+ DocumentsLibrary
+
+
+
+
+ MusicLibrary
+
+
+
+
+ PicturesLibrary
+
+
+
+
+ VideosLibrary
+
+
+
+
+ RecordedTVLibrary
+
+
+
+
+ OtherUsers
+
+
+
+
+ DeviceMetadataStore
+
+
+
+
+ Libraries
+
+
+
+
+ UserPinned
+
+
+
+
+ ImplicitAppShortcuts
+
+
+
+
+ The FolderTypes values represent a view template applied to a folder,
+ usually based on its intended use and contents.
+
+
+
+
+ No particular content type has been detected or specified. This value is not supported in Windows 7 and later systems.
+
+
+
+
+ The folder is invalid. There are several things that can cause this judgement: hard disk errors, file system errors, and compression errors among them.
+
+
+
+
+ The folder contains document files. These can be of mixed format.doc, .txt, and others.
+
+
+
+
+ Image files, such as .jpg, .tif, or .png files.
+
+
+
+
+ Windows 7 and later. The folder contains audio files, such as .mp3 and .wma files.
+
+
+
+
+ A list of music files displayed in Icons view. This value is not supported in Windows 7 and later systems.
+
+
+
+
+ The folder is the Games folder found in the Start menu.
+
+
+
+
+ The Control Panel in category view. This is a virtual folder.
+
+
+
+
+ The Control Panel in classic view. This is a virtual folder.
+
+
+
+
+ Printers that have been added to the system. This is a virtual folder.
+
+
+
+
+ The Recycle Bin. This is a virtual folder.
+
+
+
+
+ The software explorer window used by the Add or Remove Programs control panel icon.
+
+
+
+
+ The folder is a compressed archive, such as a compressed file with a .zip file name extension.
+
+
+
+
+ An e-mail-related folder that contains contact information.
+
+
+
+
+ A default library view without a more specific template. This value is not supported in Windows 7 and later systems.
+
+
+
+
+ The Network Explorer folder.
+
+
+
+
+ The folder is the FOLDERID_UsersFiles folder.
+
+
+
+
+ Windows 7 and later. The folder contains search results, but they are of mixed or no specific type.
+
+
+
+
+ Windows 7 and later. The folder is a library, but of no specified type.
+
+
+
+
+ Windows 7 and later. The folder contains video files. These can be of mixed format.wmv, .mov, and others.
+
+
+
+
+ Windows 7 and later. The view shown when the user clicks the Windows Explorer button on the taskbar.
+
+
+
+
+ Windows 7 and later. The homegroup view.
+
+
+
+
+ Windows 7 and later. A folder that contains communication-related files such as e-mails, calendar information, and contact information.
+
+
+
+
+ Windows 7 and later. The folder contains recorded television broadcasts.
+
+
+
+
+ Windows 7 and later. The folder contains saved game states.
+
+
+
+
+ Windows 7 and later. The folder contains federated search OpenSearch results.
+
+
+
+
+ Windows 7 and later. Before you search.
+
+
+
+
+ Windows 7 and later. A user's Searches folder, normally found at C:\Users\username\Searches.
+
+
+
+
+ Creates the helper class for known folders.
+
+
+
+
+ Returns the native known folder (IKnownFolderNative) given a PID list
+
+
+
+
+
+
+ Returns a known folder given a globally unique identifier.
+
+ A GUID for the requested known folder.
+ A known folder representing the specified name.
+ Thrown if the given Known Folder ID is invalid.
+
+
+
+ Returns a known folder given a globally unique identifier.
+
+ A GUID for the requested known folder.
+ A known folder representing the specified name. Returns null if Known Folder is not found or could not be created.
+
+
+
+ Given a native KnownFolder (IKnownFolderNative), create the right type of
+ IKnownFolder object (FileSystemKnownFolder or NonFileSystemKnownFolder)
+
+ Native Known Folder
+
+
+
+
+ Returns the known folder given its canonical name.
+
+ A non-localized canonical name for the known folder, such as MyComputer.
+ A known folder representing the specified name.
+ Thrown if the given canonical name is invalid or if the KnownFolder could not be created.
+
+
+
+ Returns a known folder given its shell path, such as C:\users\public\documents or
+ ::{645FF040-5081-101B-9F08-00AA002F954E} for the Recycle Bin.
+
+ The path for the requested known folder; either a physical path or a virtual path.
+ A known folder representing the specified name.
+
+
+
+ Returns a known folder given its shell namespace parsing name, such as
+ ::{645FF040-5081-101B-9F08-00AA002F954E} for the Recycle Bin.
+
+ The parsing name (or path) for the requested known folder.
+ A known folder representing the specified name.
+ Thrown if the given parsing name is invalid.
+
+
+
+ Defines properties for known folders that identify the path of standard known folders.
+
+
+
+
+ Gets a strongly-typed read-only collection of all the registered known folders.
+
+
+
+
+ Gets the metadata for the Computer folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Conflict folder.
+
+ An object.
+
+
+
+ Gets the metadata for the ControlPanel folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Desktop folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Internet folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Network folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Printers folder.
+
+ An object.
+
+
+
+ Gets the metadata for the SyncManager folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Connections folder.
+
+ An object.
+
+
+
+ Gets the metadata for the SyncSetup folder.
+
+ An object.
+
+
+
+ Gets the metadata for the SyncResults folder.
+
+ An object.
+
+
+
+ Gets the metadata for the RecycleBin folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Fonts folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Startup folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Programs folder.
+
+ An object.
+
+
+
+ Gets the metadata for the per-user StartMenu folder.
+
+ An object.
+
+
+
+ Gets the metadata for the per-user Recent folder.
+
+ An object.
+
+
+
+ Gets the metadata for the per-user SendTo folder.
+
+ An object.
+
+
+
+ Gets the metadata for the per-user Documents folder.
+
+ An object.
+
+
+
+ Gets the metadata for the per-user Favorites folder.
+
+ An object.
+
+
+
+ Gets the metadata for the NetHood folder.
+
+ An object.
+
+
+
+ Gets the metadata for the PrintHood folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Templates folder.
+
+ An object.
+
+
+
+ Gets the metadata for the CommonStartup folder.
+
+ An object.
+
+
+
+ Gets the metadata for the CommonPrograms folder.
+
+ An object.
+
+
+
+ Gets the metadata for the CommonStartMenu folder.
+
+ An object.
+
+
+
+ Gets the metadata for the PublicDesktop folder.
+
+ An object.
+
+
+
+ Gets the metadata for the ProgramData folder.
+
+ An object.
+
+
+
+ Gets the metadata for the CommonTemplates folder.
+
+ An object.
+
+
+
+ Gets the metadata for the PublicDocuments folder.
+
+ An object.
+
+
+
+ Gets the metadata for the RoamingAppData folder.
+
+ An object.
+
+
+
+ Gets the metadata for the per-user LocalAppData
+ folder.
+
+ An object.
+
+
+
+ Gets the metadata for the LocalAppDataLow folder.
+
+ An object.
+
+
+
+ Gets the metadata for the InternetCache folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Cookies folder.
+
+ An object.
+
+
+
+ Gets the metadata for the History folder.
+
+ An object.
+
+
+
+ Gets the metadata for the System folder.
+
+ An object.
+
+
+
+ Gets the metadata for the SystemX86
+ folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Windows folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Profile folder.
+
+ An object.
+
+
+
+ Gets the metadata for the per-user Pictures folder.
+
+ An object.
+
+
+
+ Gets the metadata for the ProgramFilesX86 folder.
+
+ An object.
+
+
+
+ Gets the metadata for the ProgramFilesCommonX86 folder.
+
+ An object.
+
+
+
+ Gets the metadata for the ProgramsFilesX64 folder.
+
+ An object.
+
+
+
+ Gets the metadata for the ProgramFilesCommonX64 folder.
+
+ An object.
+
+
+
+ Gets the metadata for the ProgramFiles folder.
+
+ An object.
+
+
+
+ Gets the metadata for the ProgramFilesCommon folder.
+
+ An object.
+
+
+
+ Gets the metadata for the AdminTools folder.
+
+ An object.
+
+
+
+ Gets the metadata for the CommonAdminTools folder.
+
+ An object.
+
+
+
+ Gets the metadata for the per-user Music folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Videos folder.
+
+ An object.
+
+
+
+ Gets the metadata for the PublicPictures folder.
+
+ An object.
+
+
+
+ Gets the metadata for the PublicMusic folder.
+
+ An object.
+
+
+
+ Gets the metadata for the PublicVideos folder.
+
+ An object.
+
+
+
+ Gets the metadata for the ResourceDir folder.
+
+ An object.
+
+
+
+ Gets the metadata for the LocalizedResourcesDir folder.
+
+ An object.
+
+
+
+ Gets the metadata for the CommonOEMLinks folder.
+
+ An object.
+
+
+
+ Gets the metadata for the CDBurning folder.
+
+ An object.
+
+
+
+ Gets the metadata for the UserProfiles folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Playlists folder.
+
+ An object.
+
+
+
+ Gets the metadata for the SamplePlaylists folder.
+
+ An object.
+
+
+
+ Gets the metadata for the SampleMusic folder.
+
+ An object.
+
+
+
+ Gets the metadata for the SamplePictures folder.
+
+ An object.
+
+
+
+ Gets the metadata for the SampleVideos folder.
+
+ An object.
+
+
+
+ Gets the metadata for the PhotoAlbums folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Public folder.
+
+ An object.
+
+
+
+ Gets the metadata for the ChangeRemovePrograms folder.
+
+ An object.
+
+
+
+ Gets the metadata for the AppUpdates folder.
+
+ An object.
+
+
+
+ Gets the metadata for the AddNewPrograms folder.
+
+ An object.
+
+
+
+ Gets the metadata for the per-user Downloads folder.
+
+ An object.
+
+
+
+ Gets the metadata for the PublicDownloads folder.
+
+ An object.
+
+
+
+ Gets the metadata for the per-user SavedSearches folder.
+
+ An object.
+
+
+
+ Gets the metadata for the per-user QuickLaunch folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Contacts folder.
+
+ An object.
+
+
+
+ Gets the metadata for the SidebarParts folder.
+
+ An object.
+
+
+
+ Gets the metadata for the SidebarDefaultParts folder.
+
+ An object.
+
+
+
+ Gets the metadata for the TreeProperties folder.
+
+ An object.
+
+
+
+ Gets the metadata for the PublicGameTasks folder.
+
+ An object.
+
+
+
+ Gets the metadata for the GameTasks folder.
+
+ An object.
+
+
+
+ Gets the metadata for the per-user SavedGames folder.
+
+ An object.
+
+
+
+ Gets the metadata for the Games folder.
+
+ An object.
+
+
+
+ Gets the metadata for the RecordedTV folder.
+
+ An object.
+ This folder is not used.
+
+
+
+ Gets the metadata for the SearchMapi folder.
+
+ An object.
+
+
+
+ Gets the metadata for the SearchCsc folder.
+
+ An object.
+
+
+
+ Gets the metadata for the per-user Links folder.
+
+ An object.
+
+
+
+ Gets the metadata for the UsersFiles folder.
+
+ An object.
+
+
+
+ Gets the metadata for the SearchHome folder.
+
+ An object.
+
+
+
+ Gets the metadata for the OriginalImages folder.
+
+ An object.
+
+
+
+ Gets the metadata for the UserProgramFiles folder.
+
+
+
+
+ Gets the metadata for the UserProgramFilesCommon folder.
+
+
+
+
+ Gets the metadata for the Ringtones folder.
+
+
+
+
+ Gets the metadata for the PublicRingtones folder.
+
+
+
+
+ Gets the metadata for the UsersLibraries folder.
+
+
+
+
+ Gets the metadata for the DocumentsLibrary folder.
+
+
+
+
+ Gets the metadata for the MusicLibrary folder.
+
+
+
+
+ Gets the metadata for the PicturesLibrary folder.
+
+
+
+
+ Gets the metadata for the VideosLibrary folder.
+
+
+
+
+ Gets the metadata for the RecordedTVLibrary folder.
+
+
+
+
+ Gets the metadata for the OtherUsers folder.
+
+
+
+
+ Gets the metadata for the DeviceMetadataStore folder.
+
+
+
+
+ Gets the metadata for the Libraries folder.
+
+
+
+
+ Gets the metadata for the UserPinned folder.
+
+
+
+
+ Gets the metadata for the ImplicitAppShortcuts folder.
+
+
+
+
+ Internal class to represent the KnownFolder settings/properties
+
+
+
+
+ Populates a structure that contains
+ this known folder's properties.
+
+
+
+
+ Gets the path of this this known folder.
+
+
+ Returns false if the folder is virtual, or a boolean
+ value that indicates whether this known folder exists.
+
+ Native IKnownFolder reference
+
+ A containing the path, or if this known folder does not exist.
+
+
+
+
+ Gets the path for this known folder.
+
+ A object.
+
+
+
+ Gets the category designation for this known folder.
+
+ A value.
+
+
+
+ Gets this known folder's canonical name.
+
+ A object.
+
+
+
+ Gets this known folder's description.
+
+ A object.
+
+
+
+ Gets the unique identifier for this known folder's parent folder.
+
+ A value.
+
+
+
+ Gets this known folder's relative path.
+
+ A object.
+
+
+
+ Gets this known folder's tool tip text.
+
+ A object.
+
+
+
+ Gets the resource identifier for this
+ known folder's tool tip text.
+
+ A object.
+
+
+
+ Gets this known folder's localized name.
+
+ A object.
+
+
+
+ Gets the resource identifier for this
+ known folder's localized name.
+
+ A object.
+
+
+
+ Gets this known folder's security attributes.
+
+ A object.
+
+
+
+ Gets this known folder's file attributes,
+ such as "read-only".
+
+ A value.
+
+
+
+ Gets an value that describes this known folder's behaviors.
+
+ A value.
+
+
+
+ Gets the unique identifier for this known folder's type.
+
+ A value.
+
+
+
+ Gets a string representation of this known folder's type.
+
+ A object.
+
+
+
+ Gets the unique identifier for this known folder.
+
+ A value.
+
+
+
+ Gets a value that indicates whether this known folder's path exists on the computer.
+
+ A bool value.
+ If this property value is false,
+ the folder might be a virtual folder ( property will
+ be for virtual folders)
+
+
+
+ Gets a value that states whether this known folder
+ can have its path set to a new value,
+ including any restrictions on the redirection.
+
+ A value.
+
+
+
+ Specifies the redirection capabilities for known folders.
+
+
+
+
+ Redirection capability is unknown.
+
+
+
+
+ The known folder can be redirected.
+
+
+
+
+ The known folder can be redirected.
+ Currently, redirection exists only for
+ common and user folders; fixed and virtual folders
+ cannot be redirected.
+
+
+
+
+ Redirection is not allowed.
+
+
+
+
+ The folder cannot be redirected because it is
+ already redirected by group policy.
+
+
+
+
+ The folder cannot be redirected because the policy
+ prohibits redirecting this folder.
+
+
+
+
+ The folder cannot be redirected because the calling
+ application does not have sufficient permissions.
+
+
+
+
+ Contains special retrieval options for known folders.
+
+
+
+
+ A Serch Connector folder in the Shell Namespace
+
+
+
+
+ Indicates whether this feature is supported on the current platform.
+
+
+
+
+ CommonFileDialog AddPlace locations
+
+
+
+
+ At the bottom of the Favorites or Places list.
+
+
+
+
+ At the top of the Favorites or Places list.
+
+
+
+
+ One of the values that indicates how the ShellObject DisplayName should look.
+
+
+
+
+ Returns the display name relative to the desktop.
+
+
+
+
+ Returns the parsing name relative to the parent folder.
+
+
+
+
+ Returns the path relative to the parent folder in a
+ friendly format as displayed in an address bar.
+
+
+
+
+ Returns the parsing name relative to the desktop.
+
+
+
+
+ Returns the editing name relative to the parent folder.
+
+
+
+
+ Returns the editing name relative to the desktop.
+
+
+
+
+ Returns the display name relative to the file system path.
+
+
+
+
+ Returns the display name relative to a URL.
+
+
+
+
+ Available Library folder types
+
+
+
+
+ General Items
+
+
+
+
+ Documents
+
+
+
+
+ Music
+
+
+
+
+ Pictures
+
+
+
+
+ Videos
+
+
+
+
+ Flags controlling the appearance of a window
+
+
+
+
+ Hides the window and activates another window.
+
+
+
+
+ Activates and displays the window (including restoring
+ it to its original size and position).
+
+
+
+
+ Minimizes the window.
+
+
+
+
+ Maximizes the window.
+
+
+
+
+ Similar to , except that the window
+ is not activated.
+
+
+
+
+ Activates the window and displays it in its current size
+ and position.
+
+
+
+
+ Minimizes the window and activates the next top-level window.
+
+
+
+
+ Minimizes the window and does not activate it.
+
+
+
+
+ Similar to , except that the window is not
+ activated.
+
+
+
+
+ Activates and displays the window, restoring it to its original
+ size and position.
+
+
+
+
+ Sets the show state based on the initial value specified when
+ the process was created.
+
+
+
+
+ Minimizes a window, even if the thread owning the window is not
+ responding. Use this only to minimize windows from a different
+ thread.
+
+
+
+
+ Provides a set of flags to be used with
+ to indicate the operation in methods.
+
+
+
+
+ An implicit comparison between the value of the property and the value of the constant.
+
+
+
+
+ The value of the property and the value of the constant must be equal.
+
+
+
+
+ The value of the property and the value of the constant must not be equal.
+
+
+
+
+ The value of the property must be less than the value of the constant.
+
+
+
+
+ The value of the property must be greater than the value of the constant.
+
+
+
+
+ The value of the property must be less than or equal to the value of the constant.
+
+
+
+
+ The value of the property must be greater than or equal to the value of the constant.
+
+
+
+
+ The value of the property must begin with the value of the constant.
+
+
+
+
+ The value of the property must end with the value of the constant.
+
+
+
+
+ The value of the property must contain the value of the constant.
+
+
+
+
+ The value of the property must not contain the value of the constant.
+
+
+
+
+ The value of the property must match the value of the constant, where '?'
+ matches any single character and '*' matches any sequence of characters.
+
+
+
+
+ The value of the property must contain a word that is the value of the constant.
+
+
+
+
+ The value of the property must contain a word that begins with the value of the constant.
+
+
+
+
+ The application is free to interpret this in any suitable way.
+
+
+
+
+ Set of flags to be used with .
+
+
+
+
+ Indicates that the values of the subterms are combined by "AND".
+
+
+
+
+ Indicates that the values of the subterms are combined by "OR".
+
+
+
+
+ Indicates a "NOT" comparison of subterms.
+
+
+
+
+ Indicates that the node is a comparison between a property and a
+ constant value using a .
+
+
+
+
+ Used to describe the view mode.
+
+
+
+
+ The view is not specified.
+
+
+
+
+ This should have the same affect as Unspecified.
+
+
+
+
+ The minimum valid enumeration value. Used for validation purposes only.
+
+
+
+
+ Details view.
+
+
+
+
+ Tiles view.
+
+
+
+
+ Icons view.
+
+
+
+
+ Windows 7 and later. List view.
+
+
+
+
+ Windows 7 and later. Content view.
+
+
+
+
+ The maximum valid enumeration value. Used for validation purposes only.
+
+
+
+
+ The direction in which the items are sorted.
+
+
+
+
+ A default value for sort direction, this value should not be used;
+ instead use Descending or Ascending.
+
+
+
+
+ The items are sorted in descending order. Whether the sort is alphabetical, numerical,
+ and so on, is determined by the data type of the column indicated in propkey.
+
+
+
+
+ The items are sorted in ascending order. Whether the sort is alphabetical, numerical,
+ and so on, is determined by the data type of the column indicated in propkey.
+
+
+
+
+ Provides a set of flags to be used with IQueryParser::SetOption and
+ IQueryParser::GetOption to indicate individual options.
+
+
+
+
+ The value should be VT_LPWSTR and the path to a file containing a schema binary.
+
+
+
+
+ The value must be VT_EMPTY (the default) or a VT_UI4 that is an LCID. It is used
+ as the locale of contents (not keywords) in the query to be searched for, when no
+ other information is available. The default value is the current keyboard locale.
+ Retrieving the value always returns a VT_UI4.
+
+
+
+
+ This option is used to override the default word breaker used when identifying keywords
+ in queries. The default word breaker is chosen according to the language of the keywords
+ (cf. SQSO_LANGUAGE_KEYWORDS below). When setting this option, the value should be VT_EMPTY
+ for using the default word breaker, or a VT_UNKNOWN with an object supporting
+ the IWordBreaker interface. Retrieving the option always returns a VT_UNKNOWN with an object
+ supporting the IWordBreaker interface.
+
+
+
+
+ The value should be VT_EMPTY or VT_BOOL with VARIANT_TRUE to allow natural query
+ syntax (the default) or VT_BOOL with VARIANT_FALSE to allow only advanced query syntax.
+ Retrieving the option always returns a VT_BOOL.
+ This option is now deprecated, use SQSO_SYNTAX.
+
+
+
+
+ The value should be VT_BOOL with VARIANT_TRUE to generate query expressions
+ as if each word in the query had a star appended to it (unless followed by punctuation
+ other than a parenthesis), or VT_EMPTY or VT_BOOL with VARIANT_FALSE to
+ use the words as they are (the default). A word-wheeling application
+ will generally want to set this option to true.
+ Retrieving the option always returns a VT_BOOL.
+
+
+
+
+ Reserved. The value should be VT_EMPTY (the default) or VT_I4.
+ Retrieving the option always returns a VT_I4.
+
+
+
+
+ The value must be a VT_UI4 that is a LANGID. It defaults to the default user UI language.
+
+
+
+
+ The value must be a VT_UI4 that is a STRUCTURED_QUERY_SYNTAX value.
+ It defaults to SQS_NATURAL_QUERY_SYNTAX.
+
+
+
+
+ The value must be a VT_BLOB that is a copy of a TIME_ZONE_INFORMATION structure.
+ It defaults to the current time zone.
+
+
+
+
+ This setting decides what connector should be assumed between conditions when none is specified.
+ The value must be a VT_UI4 that is a CONDITION_TYPE. Only CT_AND_CONDITION and CT_OR_CONDITION
+ are valid. It defaults to CT_AND_CONDITION.
+
+
+
+
+ This setting decides whether there are special requirements on the case of connector keywords (such
+ as AND or OR). The value must be a VT_UI4 that is a CASE_REQUIREMENT value.
+ It defaults to CASE_REQUIREMENT_UPPER_IF_AQS.
+
+
+
+
+ Provides a set of flags to be used with IQueryParser::SetMultiOption
+ to indicate individual options.
+
+
+
+
+ The key should be property name P. The value should be a
+ VT_UNKNOWN with an IEnumVARIANT which has two values: a VT_BSTR that is another
+ property name Q and a VT_I4 that is a CONDITION_OPERATION cop. A predicate with
+ property name P, some operation and a value V will then be replaced by a predicate
+ with property name Q, operation cop and value V before further processing happens.
+
+
+
+
+ The key should be a value type name V. The value should be a
+ VT_LPWSTR with a property name P. A predicate with no property name and a value of type
+ V (or any subtype of V) will then use property P.
+
+
+
+
+ The key should be a value type name V. The value should be a
+ VT_UNKNOWN with a IConditionGenerator G. The GenerateForLeaf method of
+ G will then be applied to any predicate with value type V and if it returns a query
+ expression, that will be used. If it returns NULL, normal processing will be used
+ instead.
+
+
+
+
+ The key should be a property name P. The value should be a VT_VECTOR|VT_LPWSTR,
+ where each string is a property name. The count must be at least one. This "map" will be
+ added to those of the loaded schema and used during resolution. A second call with the
+ same key will replace the current map. If the value is VT_NULL, the map will be removed.
+
+
+
+
+ Used by IQueryParserManager::SetOption to set parsing options.
+ This can be used to specify schemas and localization options.
+
+
+
+
+ A VT_LPWSTR containing the name of the file that contains the schema binary.
+ The default value is StructuredQuerySchema.bin for the SystemIndex catalog
+ and StructuredQuerySchemaTrivial.bin for the trivial catalog.
+
+
+
+
+ Either a VT_BOOL or a VT_LPWSTR. If the value is a VT_BOOL and is FALSE,
+ a pre-localized schema will not be used. If the value is a VT_BOOL and is TRUE,
+ IQueryParserManager will use the pre-localized schema binary in
+ "%ALLUSERSPROFILE%\Microsoft\Windows". If the value is a VT_LPWSTR, the value should
+ contain the full path of the folder in which the pre-localized schema binary can be found.
+ The default value is VT_BOOL with TRUE.
+
+
+
+
+ A VT_LPWSTR containing the full path to the folder that contains the
+ unlocalized schema binary. The default value is "%SYSTEMROOT%\System32".
+
+
+
+
+ A VT_LPWSTR containing the full path to the folder that contains the
+ localized schema binary that can be read and written to as needed.
+ The default value is "%LOCALAPPDATA%\Microsoft\Windows".
+
+
+
+
+ A VT_BOOL. If TRUE, then the paths for pre-localized and localized binaries
+ have "\(LCID)" appended to them, where language code identifier (LCID) is
+ the decimal locale ID for the localized language. The default is TRUE.
+
+
+
+
+ A VT_UNKNOWN with an object supporting ISchemaLocalizerSupport.
+ This object will be used instead of the default localizer support object.
+
+
+
+
+ A Shell Library in the Shell Namespace
+
+
+
+
+ Creates a shell library in the Libraries Known Folder,
+ using the given IKnownFolder
+
+ KnownFolder from which to create the new Shell Library
+ If true , opens the library in read-only mode.
+
+
+
+ Creates a shell library in the Libraries Known Folder,
+ using the given shell library name.
+
+ The name of this library
+ Allow overwriting an existing library; if one exists with the same name
+
+
+
+ Creates a shell library in a given Known Folder,
+ using the given shell library name.
+
+ The name of this library
+ The known folder
+ Override an existing library with the same name
+
+
+
+ Creates a shell library in a given local folder,
+ using the given shell library name.
+
+ The name of this library
+ The path to the local folder
+ Override an existing library with the same name
+
+
+
+ Close the library, and release its associated file system resources
+
+
+
+
+ Load the library using a number of options
+
+ The name of the library
+ If true, loads the library in read-only mode.
+ A ShellLibrary Object
+
+
+
+ Load the library using a number of options
+
+ The name of the library.
+ The path to the library.
+ If true, opens the library in read-only mode.
+ A ShellLibrary Object
+
+
+
+ Load the library using a number of options
+
+ IShellItem
+ read-only flag
+ A ShellLibrary Object
+
+
+
+ Load the library using a number of options
+
+ A known folder.
+ If true, opens the library in read-only mode.
+ A ShellLibrary Object
+
+
+
+ Shows the library management dialog which enables users to mange the library folders and default save location.
+
+ The name of the library
+ The path to the library.
+ The parent window,or IntPtr.Zero for no parent
+ A title for the library management dialog, or null to use the library name as the title
+ An optional help string to display for the library management dialog
+ If true, do not show warning dialogs about locations that cannot be indexed
+ If the library is already open in read-write mode, the dialog will not save the changes.
+
+
+
+ Shows the library management dialog which enables users to mange the library folders and default save location.
+
+ The name of the library
+ The parent window,or IntPtr.Zero for no parent
+ A title for the library management dialog, or null to use the library name as the title
+ An optional help string to display for the library management dialog
+ If true, do not show warning dialogs about locations that cannot be indexed
+ If the library is already open in read-write mode, the dialog will not save the changes.
+
+
+
+ Shows the library management dialog which enables users to mange the library folders and default save location.
+
+ A known folder.
+ The parent window,or IntPtr.Zero for no parent
+ A title for the library management dialog, or null to use the library name as the title
+ An optional help string to display for the library management dialog
+ If true, do not show warning dialogs about locations that cannot be indexed
+ If the library is already open in read-write mode, the dialog will not save the changes.
+
+
+
+ Add a new FileSystemFolder or SearchConnector
+
+ The folder to add to the library.
+
+
+
+ Add an existing folder to this library
+
+ The path to the folder to be added to the library.
+
+
+
+ Clear all items of this Library
+
+
+
+
+ Remove a folder or search connector
+
+ The item to remove.
+ true if the item was removed.
+
+
+
+ Remove a folder or search connector
+
+ The path of the item to remove.
+ true if the item was removed.
+
+
+
+ Release resources
+
+ Indicates that this was called from Dispose(), rather than from the finalizer.
+
+
+
+ Release resources
+
+
+
+
+ Retrieves the collection enumerator.
+
+ The enumerator.
+
+
+
+ Retrieves the collection enumerator.
+
+ The enumerator.
+
+
+
+ Determines if an item with the specified path exists in the collection.
+
+ The path of the item.
+ true if the item exists in the collection.
+
+
+
+ Determines if a folder exists in the collection.
+
+ The folder.
+ true, if the folder exists in the collection.
+
+
+
+ Searches for the specified FileSystemFolder and returns the zero-based index of the
+ first occurrence within Library list.
+
+ The item to search for.
+ The index of the item in the collection, or -1 if the item does not exist.
+
+
+
+ Inserts a FileSystemFolder at the specified index.
+
+ The index to insert at.
+ The FileSystemFolder to insert.
+
+
+
+ Removes an item at the specified index.
+
+ The index to remove.
+
+
+
+ Copies the collection to an array.
+
+ The array to copy to.
+ The index in the array at which to start the copy.
+
+
+
+ The name of the library, every library must
+ have a name
+
+ Will throw if no Icon is set
+
+
+
+ The Resource Reference to the icon.
+
+
+
+
+ One of predefined Library types
+
+ Will throw if no Library Type is set
+
+
+
+ The Guid of the Library type
+
+ Will throw if no Library Type is set
+
+
+
+ By default, this folder is the first location
+ added to the library. The default save folder
+ is both the default folder where files can
+ be saved, and also where the library XML
+ file will be saved, if no other path is specified
+
+
+
+
+ Whether the library will be pinned to the
+ Explorer Navigation Pane
+
+
+
+
+ Get a the known folder FOLDERID_Libraries
+
+
+
+
+ Retrieves the folder at the specified index
+
+ The index of the folder to retrieve.
+ A folder.
+
+
+
+ The count of the items in the list.
+
+
+
+
+ Indicates whether this list is read-only or not.
+
+
+
+
+ Indicates whether this feature is supported on the current platform.
+
+
+
+
+ Defines the abstract base class for the common file dialogs.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified title.
+
+ The title to display in the dialog.
+
+
+
+ Tries to set the File(s) Type Combo to match the value in
+ 'DefaultExtension'. Only doing this if 'this' is a Save dialog
+ as it makes no sense to do this if only Opening a file.
+
+
+ The native/IFileDialog instance.
+
+
+
+
+ Adds a location, such as a folder, library, search connector, or known folder, to the list of
+ places available for a user to open or save items. This method actually adds an item
+ to the Favorite Links or Places section of the Open/Save dialog.
+
+ The item to add to the places list.
+ One of the enumeration values that indicates placement of the item in the list.
+
+
+
+ Adds a location (folder, library, search connector, known folder) to the list of
+ places available for the user to open or save items. This method actually adds an item
+ to the Favorite Links or Places section of the Open/Save dialog. Overload method
+ takes in a string for the path.
+
+ The item to add to the places list.
+ One of the enumeration values that indicates placement of the item in the list.
+
+
+
+ Displays the dialog.
+
+ Window handle of any top-level window that will own the modal dialog box.
+ A object.
+
+
+
+ Displays the dialog.
+
+ Top-level WPF window that will own the modal dialog box.
+ A object.
+
+
+
+ Displays the dialog.
+
+ A object.
+
+
+
+ Removes the current selection.
+
+
+
+
+ Returns if change to the colleciton is allowed.
+
+ true if collection change is allowed.
+
+
+
+ Applies changes to the collection.
+
+
+
+
+ Determines if changes to a specific property are allowed.
+
+ The name of the property.
+ The control propertyName applies to.
+ true if the property change is allowed.
+
+
+
+ Called when a control currently in the collection
+ has a property changed.
+
+ The name of the property changed.
+ The control whose property has changed.
+
+
+
+ Ensures that the user has selected one or more files.
+
+
+ The dialog has not been dismissed yet or the dialog was cancelled.
+
+
+
+
+ Ensures that the user has selected one or more files.
+
+
+ The dialog has not been dismissed yet or the dialog was cancelled.
+
+
+
+
+ Throws an exception when the dialog is showing preventing
+ a requested change to a property or the visible set of controls.
+
+ The message to include in the exception.
+ The dialog is in an
+ invalid state to perform the requested operation.
+
+
+
+ Get the IFileDialogCustomize interface, preparing to add controls.
+
+
+
+
+ Raises the event just before the dialog is about to return with a result.
+
+ The event data.
+
+
+
+ Raises the to stop navigation to a particular location.
+
+ Cancelable event arguments.
+
+
+
+ Raises the event when the user navigates to a new folder.
+
+ The event data.
+
+
+
+ Raises the event when the user changes the selection in the dialog's view.
+
+ The event data.
+
+
+
+ Raises the event when the dialog is opened to notify the
+ application of the initial chosen filetype.
+
+ The event data.
+
+
+
+ Raises the event when the dialog is opened.
+
+ The event data.
+
+
+
+ Releases the unmanaged resources used by the CommonFileDialog class and optionally
+ releases the managed resources.
+
+ true to release both managed and unmanaged resources;
+ false to release only unmanaged resources.
+
+
+
+ Releases the resources used by the current instance of the CommonFileDialog class.
+
+
+
+
+ The collection of names selected by the user.
+
+
+
+
+ Raised just before the dialog is about to return with a result. Occurs when the user clicks on the Open
+ or Save button on a file dialog box.
+
+
+
+
+ Raised just before the user navigates to a new folder.
+
+
+
+
+ Raised when the user navigates to a new folder.
+
+
+
+
+ Raised when the user changes the selection in the dialog's view.
+
+
+
+
+ Raised when the dialog is opened to notify the application of the initial chosen filetype.
+
+
+
+
+ Raised when the dialog is opening.
+
+
+
+
+ Gets the collection of controls for the dialog.
+
+
+
+
+ Gets the filters used by the dialog.
+
+
+
+
+ Gets or sets the dialog title.
+
+ A object.
+
+
+
+ Gets or sets a value that determines whether the file must exist beforehand.
+
+ A value. true if the file must exist.
+ This property cannot be set when the dialog is visible.
+
+
+
+ Gets or sets a value that specifies whether the returned file must be in an existing folder.
+
+ A value. true if the file must exist.
+ This property cannot be set when the dialog is visible.
+
+
+ Gets or sets a value that determines whether to validate file names.
+
+ A value. true to check for situations that would prevent an application from opening the selected file, such as sharing violations or access denied errors.
+ This property cannot be set when the dialog is visible.
+
+
+
+
+ Gets or sets a value that determines whether read-only items are returned.
+ Default value for CommonOpenFileDialog is true (allow read-only files) and
+ CommonSaveFileDialog is false (don't allow read-only files).
+
+ A value. true includes read-only items.
+ This property cannot be set when the dialog is visible.
+
+
+
+ Gets or sets a value that determines the restore directory.
+
+
+ This property cannot be set when the dialog is visible.
+
+
+
+ Gets or sets a value that controls whether
+ to show or hide the list of pinned places that
+ the user can choose.
+
+ A value. true if the list is visible; otherwise false.
+ This property cannot be set when the dialog is visible.
+
+
+
+ Gets or sets a value that controls whether to show or hide the list of places where the user has recently opened or saved items.
+
+ A value.
+ This property cannot be set when the dialog is visible.
+
+
+
+ Gets or sets a value that controls whether to show hidden items.
+
+ A value.true to show the items; otherwise false.
+ This property cannot be set when the dialog is visible.
+
+
+
+ Gets or sets a value that controls whether
+ properties can be edited.
+
+ A value.
+
+
+
+ Gets or sets a value that controls whether shortcuts should be treated as their target items, allowing an application to open a .lnk file.
+
+ A value. true indicates that shortcuts should be treated as their targets.
+ This property cannot be set when the dialog is visible.
+
+
+
+ Gets or sets the default file extension to be added to file names. If the value is null
+ or string.Empty, the extension is not added to the file names.
+
+
+
+
+ Gets the index for the currently selected file type.
+
+
+
+
+ Gets the selected filename.
+
+ A object.
+ This property cannot be used when multiple files are selected.
+
+
+
+ Gets the selected item as a ShellObject.
+
+ A object.
+ This property cannot be used when multiple files
+ are selected.
+
+
+
+ Gets or sets the initial directory displayed when the dialog is shown.
+ A null or empty string indicates that the dialog is using the default directory.
+
+ A object.
+
+
+
+ Gets or sets a location that is always selected when the dialog is opened,
+ regardless of previous user action. A null value implies that the dialog is using
+ the default location.
+
+
+
+
+ Sets the folder and path used as a default if there is not a recently used folder value available.
+
+
+
+
+ Sets the location (ShellContainer
+ used as a default if there is not a recently used folder value available.
+
+
+
+
+ Gets or sets a value that enables a calling application
+ to associate a GUID with a dialog's persisted state.
+
+
+
+
+ Default file name.
+
+
+
+
+ Indicates whether this feature is supported on the current platform.
+
+
+
+
+ Creates the push button controls used by the Common File Dialog.
+
+
+
+
+ Defines the properties and constructors for all prominent controls in the Common File Dialog.
+
+
+
+
+ Defines an abstract class that supports shared functionality for the
+ common file dialog controls.
+
+
+
+
+ Holds the text that is displayed for this control.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the text.
+
+ The text of the common file dialog control.
+
+
+
+ Creates a new instance of this class with the specified name and text.
+
+ The name of the common file dialog control.
+ The text of the common file dialog control.
+
+
+
+ Attach the custom control itself to the specified dialog
+
+ the target dialog
+
+
+
+ Gets or sets the text string that is displayed on the control.
+
+
+
+
+ Gets or sets a value that determines if this control is enabled.
+
+
+
+
+ Gets or sets a boolean value that indicates whether
+ this control is visible.
+
+
+
+
+ Has this control been added to the dialog
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified text.
+
+ The text to display for this control.
+
+
+
+ Creates a new instance of this class with the specified name and text.
+
+ The name of this control.
+ The text to display for this control.
+
+
+
+ Gets or sets the prominent value of this control.
+
+ Only one control can be specified as prominent. If more than one control is specified prominent,
+ then an 'E_UNEXPECTED' exception will be thrown when these controls are added to the dialog.
+ A group box control can only be specified as prominent if it contains one control and that control is of type 'CommonFileDialogProminentControl'.
+
+
+
+
+ Initializes a new instance of this class.
+
+
+
+
+ Initializes a new instance of this class with the text only.
+
+ The text to display for this control.
+
+
+
+ Initializes a new instance of this class with the specified name and text.
+
+ The name of this control.
+ The text to display for this control.
+
+
+
+ Attach the PushButton control to the dialog object
+
+ Target dialog
+
+
+
+ Occurs when the user clicks the control. This event is routed from COM via the event sink.
+
+
+
+
+ Creates the check button controls used by the Common File Dialog.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified text.
+
+ The text to display for this control.
+
+
+
+ Creates a new instance of this class with the specified name and text.
+
+ The name of this control.
+ The text to display for this control.
+
+
+
+ Creates a new instance of this class with the specified text and check state.
+
+ The text to display for this control.
+ The check state of this control.
+
+
+
+ Creates a new instance of this class with the specified name, text and check state.
+
+ The name of this control.
+ The text to display for this control.
+ The check state of this control.
+
+
+
+ Attach the CheckButton control to the dialog object.
+
+ the target dialog
+
+
+
+ Gets or sets the state of the check box.
+
+
+
+
+ Occurs when the user changes the check state.
+
+
+
+
+ Creates the ComboBox controls in the Common File Dialog.
+
+
+
+
+ Specifies a property, event and method that indexed controls need
+ to implement.
+
+
+
+ not sure where else to put this, so leaving here for now.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified name.
+
+ Text to display for this control
+
+
+
+ Raises the SelectedIndexChanged event if this control is
+ enabled.
+
+ Because this method is defined in an interface, we can either
+ have it as public, or make it private and explicitly implement (like below).
+ Making it public doesn't really help as its only internal (but can't have this
+ internal because of the interface)
+
+
+
+
+ Attach the ComboBox control to the dialog object
+
+ The target dialog
+
+
+
+ Gets the collection of CommonFileDialogComboBoxItem objects.
+
+
+
+
+ Gets or sets the current index of the selected item.
+
+
+
+
+ Occurs when the SelectedIndex is changed.
+
+
+
+ By initializing the SelectedIndexChanged event with an empty
+ delegate, it is not necessary to check
+ if the SelectedIndexChanged is not null.
+
+
+
+
+
+ Creates a ComboBoxItem for the Common File Dialog.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified text.
+
+ The text to use for the combo box item.
+
+
+
+ Gets or sets the string that is displayed for this item.
+
+
+
+
+ Provides a strongly typed collection for dialog controls.
+
+ DialogControl
+
+
+
+ Inserts an dialog control at the specified index.
+
+ The location to insert the control.
+ The item to insert.
+ A control with
+ the same name already exists in this collection -or-
+ the control is being hosted by another dialog -or- the associated dialog is
+ showing and cannot be modified.
+
+
+
+ Removes the control at the specified index.
+
+ The location of the control to remove.
+
+ The associated dialog is
+ showing and cannot be modified.
+
+
+
+ Recursively searches for the control who's id matches the value
+ passed in the parameter.
+
+
+ An integer containing the identifier of the
+ control being searched for.
+
+ A DialogControl who's id matches the value of the
+ parameter.
+
+
+
+
+ Recursively searches for a given control id in the
+ collection passed via the parameter.
+
+
+ A Collection<CommonFileDialogControl>
+ An int containing the identifier of the control
+ being searched for.
+
+ A DialogControl who's Id matches the value of the
+ parameter.
+
+
+
+
+ Defines the indexer that supports accessing controls by name.
+
+
+ Control names are case sensitive.
+ This indexer is useful when the dialog is created in XAML
+ rather than constructed in code.
+
+ The name cannot be null or a zero-length string.
+ If there is more than one control with the same name, only the first control will be returned.
+
+
+
+ Stores the file extensions used when filtering files in File Open and File Save dialogs.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified display name and
+ file extension list.
+
+ The name of this filter.
+ The list of extensions in
+ this filter. See remarks.
+ The can use a semicolon(";")
+ or comma (",") to separate extensions. Extensions can be prefaced
+ with a period (".") or with the file wild card specifier "*.".
+
+ The cannot be null or a
+ zero-length string.
+
+
+
+
+ Internal helper that generates a single filter
+ specification for this filter, used by the COM API.
+
+ Filter specification for this filter
+
+
+
+
+ Returns a string representation for this filter that includes
+ the display name and the list of extensions.
+
+ A .
+
+
+
+ Gets or sets the display name for this filter.
+
+
+ The value for this property cannot be set to null or a
+ zero-length string.
+
+
+
+
+ Gets a collection of the individual extensions
+ described by this filter.
+
+
+
+
+ Gets or sets a value that controls whether the extensions are displayed.
+
+
+
+
+ Provides a strongly typed collection for file dialog filters.
+
+
+
+
+ Creates the event data associated with event.
+
+
+
+
+
+ Creates a new instance of this class.
+
+ The name of the folder.
+
+
+
+ Gets or sets the name of the folder.
+
+
+
+
+ Represents a group box control for the Common File Dialog.
+ note
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Create a new instance of this class with the specified text.
+
+ The text to display for this control.
+
+
+
+ Creates a new instance of this class with the specified name and text.
+
+ The name of this control.
+ The text to display for this control.
+
+
+
+ Initializes the item collection for this class.
+
+
+
+
+ Attach the GroupBox control to the dialog object
+
+ Target dialog
+
+
+
+ Gets the collection of controls for this group box.
+
+
+
+
+ Defines the label controls in the Common File Dialog.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified text.
+
+ The text to display for this control.
+
+
+
+ Creates a new instance of this class with the specified name and text.
+
+ The name of this control.
+ The text to display for this control.
+
+
+
+ Attach this control to the dialog object
+
+ Target dialog
+
+
+
+ Defines the menu controls for the Common File Dialog.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified text.
+
+ The text to display for this control.
+
+
+
+ Creates a new instance of this class with the specified name and text.
+
+ The name of this control.
+ The text to display for this control.
+
+
+
+ Attach the Menu control to the dialog object.
+
+ the target dialog
+
+
+
+ Gets the collection of CommonFileDialogMenuItem objects.
+
+
+
+
+ Creates the CommonFileDialogMenuItem items for the Common File Dialog.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified text.
+
+ The text to display for this control.
+
+
+
+ Attach this control to the dialog object
+
+ Target dialog
+
+
+
+ Occurs when a user clicks a menu item.
+
+
+
+
+ Represents a radio button list for the Common File Dialog.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified name.
+
+ The name of this control.
+
+
+
+ Occurs when the user changes the SelectedIndex.
+
+ Because this method is defined in an interface, we can either
+ have it as public, or make it private and explicitly implement (like below).
+ Making it public doesn't really help as its only internal (but can't have this
+ internal because of the interface)
+
+
+
+
+ Attach the RadioButtonList control to the dialog object
+
+ The target dialog
+
+
+
+ Gets the collection of CommonFileDialogRadioButtonListItem objects
+
+
+
+
+ Gets or sets the current index of the selected item.
+
+
+
+
+ Occurs when the user changes the SelectedIndex.
+
+
+
+ By initializing the SelectedIndexChanged event with an empty
+ delegate, we can skip the test to determine
+ if the SelectedIndexChanged is null.
+ test.
+
+
+
+
+ Represents a list item for the CommonFileDialogRadioButtonList object.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified text.
+
+ The string that you want to display for this list item.
+
+
+
+ Gets or sets the string that will be displayed for this list item.
+
+
+
+
+ Specifies identifiers to indicate the return value of a CommonFileDialog dialog.
+
+
+
+
+ Default value for enumeration, a dialog box should never return this value.
+
+
+
+
+ The dialog box return value is OK (usually sent from a button labeled OK or Save).
+
+
+
+
+ The dialog box return value is Cancel (usually sent from a button labeled Cancel).
+
+
+
+
+ Defines the class for the simplest separator controls.
+
+
+
+
+ Attach the Separator control to the dialog object
+
+ Target dialog
+
+
+
+ Defines the class of commonly used file filters.
+
+
+
+
+ Gets a value that specifies the filter for *.txt files.
+
+
+
+
+ Gets a value that specifies the filter for picture files.
+
+
+
+
+ Gets a value that specifies the filter for Microsoft Office files.
+
+
+
+
+ Defines the text box controls in the Common File Dialog.
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified text.
+
+ The text to display for this control.
+
+
+
+ Creates a new instance of this class with the specified name and text.
+
+ The name of this control.
+ The text to display for this control.
+
+
+
+ Holds an instance of the customized (/native) dialog and should
+ be null until after the Attach() call is made.
+
+
+
+
+ Attach the TextBox control to the dialog object
+
+ Target dialog
+
+
+
+ Gets or sets a value for the text string contained in the CommonFileDialogTextBox.
+
+
+
+
+ Creates a Vista or Windows 7 Common File Dialog, allowing the user to select one or more files.
+
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified name.
+
+ The name of this dialog.
+
+
+
+ Gets a collection of the selected file names.
+
+ This property should only be used when the
+
+ property is true.
+
+
+
+ Gets a collection of the selected items as ShellObject objects.
+
+ This property should only be used when the
+
+ property is true.
+
+
+
+ Gets or sets a value that determines whether the user can select more than one file.
+
+
+
+
+ Gets or sets a value that determines whether the user can select folders or files.
+ Default value is false.
+
+
+
+
+ Gets or sets a value that determines whether the user can select non-filesystem items,
+ such as Library, Search Connectors, or Known Folders.
+
+
+
+
+ Creates a Vista or Windows 7 Common File Dialog, allowing the user to select the filename and location for a saved file.
+
+
+ to save a file. Associated enumeration: .
+
+
+
+
+ Creates a new instance of this class.
+
+
+
+
+ Creates a new instance of this class with the specified name.
+
+ The name of this dialog.
+
+
+
+ Sets an item to appear as the initial entry in a Save As dialog.
+
+ The initial entry to be set in the dialog.
+ The name of the item is displayed in the file name edit box,
+ and the containing folder is opened in the view. This would generally be
+ used when the application is saving an item that already exists.
+
+
+
+ Specifies which properties will be collected in the save dialog.
+
+ True to show default properties for the currently selected
+ filetype in addition to the properties specified by propertyList. False to show only properties
+ specified by pList.
+ List of properties to collect. This parameter can be null.
+
+
+ SetCollectedPropertyKeys can be called at any time before the dialog is displayed or while it
+ is visible. If different properties are to be collected depending on the chosen filetype,
+ then SetCollectedProperties can be called in response to CommonFileDialog::FileTypeChanged event.
+ Note: By default, no properties are collected in the save dialog.
+
+
+
+
+ Gets or sets a value that controls whether to prompt before
+ overwriting an existing file of the same name. Default value is true.
+
+
+ This property cannot be changed when the dialog is showing.
+
+
+
+
+ Gets or sets a value that controls whether to prompt for creation if the item returned in the save dialog does not exist.
+
+ Note that this does not actually create the item.
+
+ This property cannot be changed when the dialog is showing.
+
+
+
+
+ Gets or sets a value that controls whether to the save dialog
+ displays in expanded mode.
+
+ Expanded mode controls whether the dialog
+ shows folders for browsing or hides them.
+
+ This property cannot be changed when the dialog is showing.
+
+
+
+
+ Gets or sets a value that controls whether the
+ returned file name has a file extension that matches the
+ currently selected file type. If necessary, the dialog appends the correct
+ file extension.
+
+
+ This property cannot be changed when the dialog is showing.
+
+
+
+
+ Retrieves the set of property values for a saved item or an item in the process of being saved.
+
+ Collection of property values collected from the save dialog
+ This property can be called while the dialog is showing to retrieve the current
+ set of values in the metadata collection pane. It can also be called after the dialog
+ has closed, to retrieve the final set of values. The call to this method will fail
+ unless property collection has been turned on with a call to SetCollectedPropertyKeys method.
+
+
+
+
+ Internal class that contains interop declarations for
+ functions that are considered benign but that
+ are performance critical.
+
+
+ Functions that are benign but not performance critical
+ should be located in the NativeMethods class.
+
+
+
+
+ An in-memory property store cache
+
+
+
+
+ Gets the state of a property stored in the cache
+
+
+
+
+
+
+
+ Gets the valeu and state of a property in the cache
+
+
+
+
+
+
+
+
+ Sets the state of a property in the cache.
+
+
+
+
+
+
+
+ Sets the value and state in the cache.
+
+
+
+
+
+
+
+
+ A property store
+
+
+
+
+ Gets the number of properties contained in the property store.
+
+
+
+
+
+
+ Get a property key located at a specific index.
+
+
+
+
+
+
+
+ Gets the value of a property from the store
+
+
+
+
+
+
+
+ Sets the value of a property in the store
+
+
+
+
+
+
+
+ Commits the changes.
+
+
+
+
+
+ Sets the specified iconic thumbnail for the specified window.
+ This is typically done in response to a DWM message.
+
+ The window handle.
+ The thumbnail bitmap.
+
+
+
+ Sets the specified peek (live preview) bitmap for the specified
+ window. This is typically done in response to a DWM message.
+
+ The window handle.
+ The thumbnail bitmap.
+ Whether to display a standard window
+ frame around the bitmap.
+
+
+
+ Sets the specified peek (live preview) bitmap for the specified
+ window. This is typically done in response to a DWM message.
+
+ The window handle.
+ The thumbnail bitmap.
+ The client area offset at which to display
+ the specified bitmap. The rest of the parent window will be
+ displayed as "remembered" by the DWM.
+ Whether to display a standard window
+ frame around the bitmap.
+
+
+
+ Call this method to either enable custom previews on the taskbar (second argument as true)
+ or to disable (second argument as false). If called with True, the method will call DwmSetWindowAttribute
+ for the specific window handle and let DWM know that we will be providing a custom bitmap for the thumbnail
+ as well as Aero peek.
+
+
+
+
+
+
+ Defines a partial class that implements helper methods for retrieving Shell properties
+ using a canonical name, property key, or a strongly-typed property. Also provides
+ access to all the strongly-typed system properties and default properties collections.
+
+
+
+
+ Returns a property available in the default property collection using
+ the given property key.
+
+ The property key.
+ An IShellProperty.
+
+
+
+ Returns a property available in the default property collection using
+ the given canonical name.
+
+ The canonical name.
+ An IShellProperty.
+
+
+
+ Returns a strongly typed property available in the default property collection using
+ the given property key.
+
+ The type of property to retrieve.
+ The property key.
+ A strongly-typed ShellProperty for the given property key.
+
+
+
+ Returns a strongly typed property available in the default property collection using
+ the given canonical name.
+
+ The type of property to retrieve.
+ The canonical name.
+ A strongly-typed ShellProperty for the given canonical name.
+
+
+
+ Returns the shell property writer used when writing multiple properties.
+
+ A ShellPropertyWriter.
+ Use the Using pattern with the returned ShellPropertyWriter or
+ manually call the Close method on the writer to commit the changes
+ and dispose the writer
+
+
+
+ Cleans up memory
+
+
+
+
+ Cleans up memory
+
+
+
+
+ Gets all the properties for the system through an accessor.
+
+
+
+
+ Gets the collection of all the default properties for this item.
+
+
+
+
+ .System Properties
+
+
+
+
+ Base class for all the strongly-typed properties
+
+
+
+
+ Name: System.AcquisitionID -- PKEY_AcquisitionID
+ Description: Hash to determine acquisition session.
+
+ Type: Int32 -- VT_I4
+ FormatID: {65A98875-3C80-40AB-ABBC-EFDAF77DBEE2}, 100
+
+
+
+
+ Name: System.ApplicationName -- PKEY_ApplicationName
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR) Legacy code may treat this as VT_LPSTR.
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 18 (PIDSI_APPNAME)
+
+
+
+
+ Name: System.Author -- PKEY_Author
+ Description:
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR) Legacy code may treat this as VT_LPSTR.
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 4 (PIDSI_AUTHOR)
+
+
+
+
+ Name: System.Capacity -- PKEY_Capacity
+ Description: The amount of total space in bytes.
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_Volume) {9B174B35-40FF-11D2-A27E-00C04FC30871}, 3 (PID_VOLUME_CAPACITY) (Filesystem Volume Properties)
+
+
+
+
+ Name: System.Category -- PKEY_Category
+ Description: Legacy code treats this as VT_LPSTR.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 2 (PIDDSI_CATEGORY)
+
+
+
+
+ Name: System.Comment -- PKEY_Comment
+ Description: Comments.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR) Legacy code may treat this as VT_LPSTR.
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 6 (PIDSI_COMMENTS)
+
+
+
+
+ Name: System.Company -- PKEY_Company
+ Description: The company or publisher.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 15 (PIDDSI_COMPANY)
+
+
+
+
+ Name: System.ComputerName -- PKEY_ComputerName
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 5 (PID_COMPUTERNAME)
+
+
+
+
+ Name: System.ContainedItems -- PKEY_ContainedItems
+ Description: The list of type of items, this item contains. For example, this item contains urls, attachments etc.
+ This is represented as a vector array of GUIDs where each GUID represents certain type.
+
+ Type: Multivalue Guid -- VT_VECTOR | VT_CLSID (For variants: VT_ARRAY | VT_CLSID)
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 29
+
+
+
+
+ Name: System.ContentStatus -- PKEY_ContentStatus
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 27
+
+
+
+
+ Name: System.ContentType -- PKEY_ContentType
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 26
+
+
+
+
+ Name: System.Copyright -- PKEY_Copyright
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 11 (PIDMSI_COPYRIGHT)
+
+
+
+
+ Name: System.DateAccessed -- PKEY_DateAccessed
+ Description: The time of the last access to the item. The Indexing Service friendly name is 'access'.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 16 (PID_STG_ACCESSTIME)
+
+
+
+
+ Name: System.DateAcquired -- PKEY_DateAcquired
+ Description: The time the file entered the system via acquisition. This is not the same as System.DateImported.
+ Examples are when pictures are acquired from a camera, or when music is purchased online.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {2CBAA8F5-D81F-47CA-B17A-F8D822300131}, 100
+
+
+
+
+ Name: System.DateArchived -- PKEY_DateArchived
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {43F8D7B7-A444-4F87-9383-52271C9B915C}, 100
+
+
+
+
+ Name: System.DateCompleted -- PKEY_DateCompleted
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {72FAB781-ACDA-43E5-B155-B2434F85E678}, 100
+
+
+
+
+ Name: System.DateCreated -- PKEY_DateCreated
+ Description: The date and time the item was created. The Indexing Service friendly name is 'create'.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 15 (PID_STG_CREATETIME)
+
+
+
+
+ Name: System.DateImported -- PKEY_DateImported
+ Description: The time the file is imported into a separate database. This is not the same as System.DateAcquired. (Eg, 2003:05:22 13:55:04)
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 18258
+
+
+
+
+ Name: System.DateModified -- PKEY_DateModified
+ Description: The date and time of the last write to the item. The Indexing Service friendly name is 'write'.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 14 (PID_STG_WRITETIME)
+
+
+
+
+ Name: System.DescriptionID -- PKEY_DescriptionID
+ Description: The contents of a SHDESCRIPTIONID structure as a buffer of bytes.
+
+ Type: Buffer -- VT_VECTOR | VT_UI1 (For variants: VT_ARRAY | VT_UI1)
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 2 (PID_DESCRIPTIONID)
+
+
+
+
+ Name: System.DueDate -- PKEY_DueDate
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {3F8472B5-E0AF-4DB2-8071-C53FE76AE7CE}, 100
+
+
+
+
+ Name: System.EndDate -- PKEY_EndDate
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {C75FAA05-96FD-49E7-9CB4-9F601082D553}, 100
+
+
+
+
+ Name: System.FileAllocationSize -- PKEY_FileAllocationSize
+ Description:
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 18 (PID_STG_ALLOCSIZE)
+
+
+
+
+ Name: System.FileAttributes -- PKEY_FileAttributes
+ Description: This is the WIN32_FIND_DATA dwFileAttributes for the file-based item.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 13 (PID_STG_ATTRIBUTES)
+
+
+
+
+ Name: System.FileCount -- PKEY_FileCount
+ Description:
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 12
+
+
+
+
+ Name: System.FileDescription -- PKEY_FileDescription
+ Description: This is a user-friendly description of the file.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSFMTID_VERSION) {0CEF7D53-FA64-11D1-A203-0000F81FEDEE}, 3 (PIDVSI_FileDescription)
+
+
+
+
+ Name: System.FileExtension -- PKEY_FileExtension
+ Description: This is the file extension of the file based item, including the leading period.
+
+ If System.FileName is VT_EMPTY, then this property should be too. Otherwise, it should be derived
+ appropriately by the data source from System.FileName. If System.FileName does not have a file
+ extension, this value should be VT_EMPTY.
+
+ To obtain the type of any item (including an item that is not a file), use System.ItemType.
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" ".txt"
+ "\\server\share\mydir\goodnews.doc" ".doc"
+ "\\server\share\numbers.xls" ".xls"
+ "\\server\share\folder" VT_EMPTY
+ "c:\foo\MyFolder" VT_EMPTY
+ [desktop] VT_EMPTY
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E4F10A3C-49E6-405D-8288-A23BD4EEAA6C}, 100
+
+
+
+
+ Name: System.FileFRN -- PKEY_FileFRN
+ Description: This is the unique file ID, also known as the File Reference Number. For a given file, this is the same value
+ as is found in the structure variable FILE_ID_BOTH_DIR_INFO.FileId, via GetFileInformationByHandleEx().
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 21 (PID_STG_FRN)
+
+
+
+
+ Name: System.FileName -- PKEY_FileName
+ Description: This is the file name (including extension) of the file.
+
+ It is possible that the item might not exist on a filesystem (ie, it may not be opened
+ using CreateFile). Nonetheless, if the item is represented as a file from the logical sense
+ (and its name follows standard Win32 file-naming syntax), then the data source should emit this property.
+
+ If an item is not a file, then the value for this property is VT_EMPTY. See
+ System.ItemNameDisplay.
+
+ This has the same value as System.ParsingName for items that are provided by the Shell's file folder.
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" "hello.txt"
+ "\\server\share\mydir\goodnews.doc" "goodnews.doc"
+ "\\server\share\numbers.xls" "numbers.xls"
+ "c:\foo\MyFolder" "MyFolder"
+ (email message) VT_EMPTY
+ (song on portable device) "song.wma"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {41CF5AE0-F75A-4806-BD87-59C7D9248EB9}, 100
+
+
+
+
+ Name: System.FileOwner -- PKEY_FileOwner
+ Description: This is the owner of the file, according to the file system.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_Misc) {9B174B34-40FF-11D2-A27E-00C04FC30871}, 4 (PID_MISC_OWNER)
+
+
+
+
+ Name: System.FileVersion -- PKEY_FileVersion
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSFMTID_VERSION) {0CEF7D53-FA64-11D1-A203-0000F81FEDEE}, 4 (PIDVSI_FileVersion)
+
+
+
+
+ Name: System.FindData -- PKEY_FindData
+ Description: WIN32_FIND_DATAW in buffer of bytes.
+
+ Type: Buffer -- VT_VECTOR | VT_UI1 (For variants: VT_ARRAY | VT_UI1)
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 0 (PID_FINDDATA)
+
+
+
+
+ Name: System.FlagColor -- PKEY_FlagColor
+ Description:
+
+ Type: UInt16 -- VT_UI2
+ FormatID: {67DF94DE-0CA7-4D6F-B792-053A3E4F03CF}, 100
+
+
+
+
+ Name: System.FlagColorText -- PKEY_FlagColorText
+ Description: This is the user-friendly form of System.FlagColor. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {45EAE747-8E2A-40AE-8CBF-CA52ABA6152A}, 100
+
+
+
+
+ Name: System.FlagStatus -- PKEY_FlagStatus
+ Description: Status of Flag. Values: (0=none 1=white 2=Red). cdoPR_FLAG_STATUS
+
+ Type: Int32 -- VT_I4
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 12
+
+
+
+
+ Name: System.FlagStatusText -- PKEY_FlagStatusText
+ Description: This is the user-friendly form of System.FlagStatus. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {DC54FD2E-189D-4871-AA01-08C2F57A4ABC}, 100
+
+
+
+
+ Name: System.FreeSpace -- PKEY_FreeSpace
+ Description: The amount of free space in bytes.
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_Volume) {9B174B35-40FF-11D2-A27E-00C04FC30871}, 2 (PID_VOLUME_FREE) (Filesystem Volume Properties)
+
+
+
+
+ Name: System.FullText -- PKEY_FullText
+ Description: This PKEY is used to specify search terms that should be applied as broadly as possible,
+ across all valid properties for the data source(s) being searched. It should not be
+ emitted from a data source.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {1E3EE840-BC2B-476C-8237-2ACD1A839B22}, 6
+
+
+
+
+ Name: System.Identity -- PKEY_Identity
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {A26F4AFC-7346-4299-BE47-EB1AE613139F}, 100
+
+
+
+
+ Name: System.ImageParsingName -- PKEY_ImageParsingName
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D7750EE0-C6A4-48EC-B53E-B87B52E6D073}, 100
+
+
+
+
+ Name: System.Importance -- PKEY_Importance
+ Description:
+ Type: Int32 -- VT_I4
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 11
+
+
+
+
+ Name: System.ImportanceText -- PKEY_ImportanceText
+ Description: This is the user-friendly form of System.Importance. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {A3B29791-7713-4E1D-BB40-17DB85F01831}, 100
+
+
+
+
+ Name: System.InfoTipText -- PKEY_InfoTipText
+ Description: The text (with formatted property values) to show in the infotip.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 17
+
+
+
+
+ Name: System.InternalName -- PKEY_InternalName
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSFMTID_VERSION) {0CEF7D53-FA64-11D1-A203-0000F81FEDEE}, 5 (PIDVSI_InternalName)
+
+
+
+
+ Name: System.IsAttachment -- PKEY_IsAttachment
+ Description: Identifies if this item is an attachment.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {F23F425C-71A1-4FA8-922F-678EA4A60408}, 100
+
+
+
+
+ Name: System.IsDefaultNonOwnerSaveLocation -- PKEY_IsDefaultNonOwnerSaveLocation
+ Description: Identifies the default save location for a library for non-owners of the library
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {5D76B67F-9B3D-44BB-B6AE-25DA4F638A67}, 5
+
+
+
+
+ Name: System.IsDefaultSaveLocation -- PKEY_IsDefaultSaveLocation
+ Description: Identifies the default save location for a library for the owner of the library
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {5D76B67F-9B3D-44BB-B6AE-25DA4F638A67}, 3
+
+
+
+
+ Name: System.IsDeleted -- PKEY_IsDeleted
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {5CDA5FC8-33EE-4FF3-9094-AE7BD8868C4D}, 100
+
+
+
+
+ Name: System.IsEncrypted -- PKEY_IsEncrypted
+ Description: Is the item encrypted?
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {90E5E14E-648B-4826-B2AA-ACAF790E3513}, 10
+
+
+
+
+ Name: System.IsFlagged -- PKEY_IsFlagged
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {5DA84765-E3FF-4278-86B0-A27967FBDD03}, 100
+
+
+
+
+ Name: System.IsFlaggedComplete -- PKEY_IsFlaggedComplete
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {A6F360D2-55F9-48DE-B909-620E090A647C}, 100
+
+
+
+
+ Name: System.IsIncomplete -- PKEY_IsIncomplete
+ Description: Identifies if the message was not completely received for some error condition.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {346C8BD1-2E6A-4C45-89A4-61B78E8E700F}, 100
+
+
+
+
+ Name: System.IsLocationSupported -- PKEY_IsLocationSupported
+ Description: A bool value to know if a location is supported (locally indexable, or remotely indexed).
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {5D76B67F-9B3D-44BB-B6AE-25DA4F638A67}, 8
+
+
+
+
+ Name: System.IsPinnedToNameSpaceTree -- PKEY_IsPinnedToNameSpaceTree
+ Description: A bool value to know if a shell folder is pinned to the navigation pane
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {5D76B67F-9B3D-44BB-B6AE-25DA4F638A67}, 2
+
+
+
+
+ Name: System.IsRead -- PKEY_IsRead
+ Description: Has the item been read?
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 10
+
+
+
+
+ Name: System.IsSearchOnlyItem -- PKEY_IsSearchOnlyItem
+ Description: Identifies if a location or a library is search only
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {5D76B67F-9B3D-44BB-B6AE-25DA4F638A67}, 4
+
+
+
+
+ Name: System.IsSendToTarget -- PKEY_IsSendToTarget
+ Description: Provided by certain shell folders. Return TRUE if the folder is a valid Send To target.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 33
+
+
+
+
+ Name: System.IsShared -- PKEY_IsShared
+ Description: Is this item shared? This only checks for ACLs that are not inherited.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {EF884C5B-2BFE-41BB-AAE5-76EEDF4F9902}, 100
+
+
+
+
+ Name: System.ItemAuthors -- PKEY_ItemAuthors
+ Description: This is the generic list of authors associated with an item.
+
+ For example, the artist name for a track is the item author.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D0A04F0A-462A-48A4-BB2F-3706E88DBD7D}, 100
+
+
+
+
+ Name: System.ItemClassType -- PKEY_ItemClassType
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {048658AD-2DB8-41A4-BBB6-AC1EF1207EB1}, 100
+
+
+
+
+ Name: System.ItemDate -- PKEY_ItemDate
+ Description: This is the main date for an item. The date of interest.
+
+ For example, for photos this maps to System.Photo.DateTaken.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {F7DB74B4-4287-4103-AFBA-F1B13DCD75CF}, 100
+
+
+
+
+ Name: System.ItemFolderNameDisplay -- PKEY_ItemFolderNameDisplay
+ Description: This is the user-friendly display name of the parent folder of an item.
+
+ If System.ItemFolderPathDisplay is VT_EMPTY, then this property should be too. Otherwise, it
+ should be derived appropriately by the data source from System.ItemFolderPathDisplay.
+
+ If the folder is a file folder, the value will be localized if a localized name is available.
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" "bar"
+ "\\server\share\mydir\goodnews.doc" "mydir"
+ "\\server\share\numbers.xls" "share"
+ "c:\foo\MyFolder" "foo"
+ "/Mailbox Account/Inbox/'Re: Hello!'" "Inbox"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 2 (PID_STG_DIRECTORY)
+
+
+
+
+ Name: System.ItemFolderPathDisplay -- PKEY_ItemFolderPathDisplay
+ Description: This is the user-friendly display path of the parent folder of an item.
+
+ If System.ItemPathDisplay is VT_EMPTY, then this property should be too. Otherwise, it should
+ be derived appropriately by the data source from System.ItemPathDisplay.
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" "c:\foo\bar"
+ "\\server\share\mydir\goodnews.doc" "\\server\share\mydir"
+ "\\server\share\numbers.xls" "\\server\share"
+ "c:\foo\MyFolder" "c:\foo"
+ "/Mailbox Account/Inbox/'Re: Hello!'" "/Mailbox Account/Inbox"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 6
+
+
+
+
+ Name: System.ItemFolderPathDisplayNarrow -- PKEY_ItemFolderPathDisplayNarrow
+ Description: This is the user-friendly display path of the parent folder of an item. The format of the string
+ should be tailored such that the folder name comes first, to optimize for a narrow viewing column.
+
+ If the folder is a file folder, the value includes localized names if they are present.
+
+ If System.ItemFolderPathDisplay is VT_EMPTY, then this property should be too. Otherwise, it should
+ be derived appropriately by the data source from System.ItemFolderPathDisplay.
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" "bar (c:\foo)"
+ "\\server\share\mydir\goodnews.doc" "mydir (\\server\share)"
+ "\\server\share\numbers.xls" "share (\\server)"
+ "c:\foo\MyFolder" "foo (c:\)"
+ "/Mailbox Account/Inbox/'Re: Hello!'" "Inbox (/Mailbox Account)"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {DABD30ED-0043-4789-A7F8-D013A4736622}, 100
+
+
+
+
+ Name: System.ItemName -- PKEY_ItemName
+ Description: This is the base-name of the System.ItemNameDisplay.
+
+ If the item is a file this property
+ includes the extension in all cases, and will be localized if a localized name is available.
+
+ If the item is a message, then the value of this property does not include the forwarding or
+ reply prefixes (see System.ItemNamePrefix).
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6B8DA074-3B5C-43BC-886F-0A2CDCE00B6F}, 100
+
+
+
+
+ Name: System.ItemNameDisplay -- PKEY_ItemNameDisplay
+ Description: This is the display name in "most complete" form. This is the best effort unique representation
+ of the name of an item that makes sense for end users to read. It is the concatentation of
+ System.ItemNamePrefix and System.ItemName.
+
+ If the item is a file this property
+ includes the extension in all cases, and will be localized if a localized name is available.
+
+ There are acceptable cases when System.FileName is not VT_EMPTY, yet the value of this property
+ is completely different. Email messages are a key example. If the item is an email message,
+ the item name is likely the subject. In that case, the value must be the concatenation of the
+ System.ItemNamePrefix and System.ItemName. Since the value of System.ItemNamePrefix excludes
+ any trailing whitespace, the concatenation must include a whitespace when generating System.ItemNameDisplay.
+
+ Note that this property is not guaranteed to be unique, but the idea is to promote the most likely
+ candidate that can be unique and also makes sense for end users. For example, for documents, you
+ might think about using System.Title as the System.ItemNameDisplay, but in practice the title of
+ the documents may not be useful or unique enough to be of value as the sole System.ItemNameDisplay.
+ Instead, providing the value of System.FileName as the value of System.ItemNameDisplay is a better
+ candidate. In Windows Mail, the emails are stored in the file system as .eml files and the
+ System.FileName for those files are not human-friendly as they contain GUIDs. In this example,
+ promoting System.Subject as System.ItemNameDisplay makes more sense.
+
+ Compatibility notes:
+
+ Shell folder implementations on Vista: use PKEY_ItemNameDisplay for the name column when
+ you want Explorer to call ISF::GetDisplayNameOf(SHGDN_NORMAL) to get the value of the name. Use
+ another PKEY (like PKEY_ItemName) when you want Explorer to call either the folder's property store or
+ ISF2::GetDetailsEx in order to get the value of the name.
+
+ Shell folder implementations on XP: the first column needs to be the name column, and Explorer
+ will call ISF::GetDisplayNameOf to get the value of the name. The PKEY/SCID does not matter.
+
+ Example values:
+
+ File: "hello.txt"
+ Message: "Re: Let's talk about Tom's argyle socks!"
+ Device folder: "song.wma"
+ Folder: "Documents"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 10 (PID_STG_NAME)
+
+
+
+
+ Name: System.ItemNamePrefix -- PKEY_ItemNamePrefix
+ Description: This is the prefix of an item, used for email messages.
+ where the subject begins with "Re:" which is the prefix.
+
+ If the item is a file, then the value of this property is VT_EMPTY.
+
+ If the item is a message, then the value of this property is the forwarding or reply
+ prefixes (including delimiting colon, but no whitespace), or VT_EMPTY if there is no prefix.
+
+ Example values:
+
+ System.ItemNamePrefix System.ItemName System.ItemNameDisplay
+ --------------------- ------------------- ----------------------
+ VT_EMPTY "Great day" "Great day"
+ "Re:" "Great day" "Re: Great day"
+ "Fwd: " "Monthly budget" "Fwd: Monthly budget"
+ VT_EMPTY "accounts.xls" "accounts.xls"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D7313FF1-A77A-401C-8C99-3DBDD68ADD36}, 100
+
+
+
+
+ Name: System.ItemParticipants -- PKEY_ItemParticipants
+ Description: This is the generic list of people associated with an item and who contributed
+ to the item.
+
+ For example, this is the combination of people in the To list, Cc list and
+ sender of an email message.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D4D0AA16-9948-41A4-AA85-D97FF9646993}, 100
+
+
+
+
+ Name: System.ItemPathDisplay -- PKEY_ItemPathDisplay
+ Description: This is the user-friendly display path to the item.
+
+ If the item is a file or folder this property
+ includes the extension in all cases, and will be localized if a localized name is available.
+
+ For other items,this is the user-friendly equivalent, assuming the item exists in hierarchical storage.
+
+ Unlike System.ItemUrl, this property value does not include the URL scheme.
+
+ To parse an item path, use System.ItemUrl or System.ParsingPath. To reference shell
+ namespace items using shell APIs, use System.ParsingPath.
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" "c:\foo\bar\hello.txt"
+ "\\server\share\mydir\goodnews.doc" "\\server\share\mydir\goodnews.doc"
+ "\\server\share\numbers.xls" "\\server\share\numbers.xls"
+ "c:\foo\MyFolder" "c:\foo\MyFolder"
+ "/Mailbox Account/Inbox/'Re: Hello!'" "/Mailbox Account/Inbox/'Re: Hello!'"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 7
+
+
+
+
+ Name: System.ItemPathDisplayNarrow -- PKEY_ItemPathDisplayNarrow
+ Description: This is the user-friendly display path to the item. The format of the string should be
+ tailored such that the name comes first, to optimize for a narrow viewing column.
+
+ If the item is a file, the value excludes the file extension, and includes localized names if they are present.
+ If the item is a message, the value includes the System.ItemNamePrefix.
+
+ To parse an item path, use System.ItemUrl or System.ParsingPath.
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" "hello (c:\foo\bar)"
+ "\\server\share\mydir\goodnews.doc" "goodnews (\\server\share\mydir)"
+ "\\server\share\folder" "folder (\\server\share)"
+ "c:\foo\MyFolder" "MyFolder (c:\foo)"
+ "/Mailbox Account/Inbox/'Re: Hello!'" "Re: Hello! (/Mailbox Account/Inbox)"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 8
+
+
+
+
+ Name: System.ItemType -- PKEY_ItemType
+ Description: This is the canonical type of the item and is intended to be programmatically
+ parsed.
+
+ If there is no canonical type, the value is VT_EMPTY.
+
+ If the item is a file (ie, System.FileName is not VT_EMPTY), the value is the same as
+ System.FileExtension.
+
+ Use System.ItemTypeText when you want to display the type to end users in a view. (If
+ the item is a file, passing the System.ItemType value to PSFormatForDisplay will
+ result in the same value as System.ItemTypeText.)
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" ".txt"
+ "\\server\share\mydir\goodnews.doc" ".doc"
+ "\\server\share\folder" "Directory"
+ "c:\foo\MyFolder" "Directory"
+ [desktop] "Folder"
+ "/Mailbox Account/Inbox/'Re: Hello!'" "MAPI/IPM.Message"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 11
+
+
+
+
+ Name: System.ItemTypeText -- PKEY_ItemTypeText
+ Description: This is the user friendly type name of the item. This is not intended to be
+ programmatically parsed.
+
+ If System.ItemType is VT_EMPTY, the value of this property is also VT_EMPTY.
+
+ If the item is a file, the value of this property is the same as if you passed the
+ file's System.ItemType value to PSFormatForDisplay.
+
+ This property should not be confused with System.Kind, where System.Kind is a high-level
+ user friendly kind name. For example, for a document, System.Kind = "Document" and
+ System.Item.Type = ".doc" and System.Item.TypeText = "Microsoft Word Document"
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" "Text File"
+ "\\server\share\mydir\goodnews.doc" "Microsoft Word Document"
+ "\\server\share\folder" "File Folder"
+ "c:\foo\MyFolder" "File Folder"
+ "/Mailbox Account/Inbox/'Re: Hello!'" "Outlook E-Mail Message"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 4 (PID_STG_STORAGETYPE)
+
+
+
+
+ Name: System.ItemUrl -- PKEY_ItemUrl
+ Description: This always represents a well formed URL that points to the item.
+
+ To reference shell namespace items using shell APIs, use System.ParsingPath.
+
+ Example values:
+
+ Files: "file:///c:/foo/bar/hello.txt"
+ "csc://{GUID}/..."
+ Messages: "mapi://..."
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_Query) {49691C90-7E17-101A-A91C-08002B2ECDA9}, 9 (DISPID_QUERY_VIRTUALPATH)
+
+
+
+
+ Name: System.Keywords -- PKEY_Keywords
+ Description: The keywords for the item. Also referred to as tags.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR) Legacy code may treat this as VT_LPSTR.
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 5 (PIDSI_KEYWORDS)
+
+
+
+
+ Name: System.Kind -- PKEY_Kind
+ Description: System.Kind is used to map extensions to various .Search folders.
+ Extensions are mapped to Kinds at HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\KindMap
+ The list of kinds is not extensible.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {1E3EE840-BC2B-476C-8237-2ACD1A839B22}, 3
+
+
+
+
+ Name: System.KindText -- PKEY_KindText
+ Description: This is the user-friendly form of System.Kind. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {F04BEF95-C585-4197-A2B7-DF46FDC9EE6D}, 100
+
+
+
+
+ Name: System.Language -- PKEY_Language
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 28
+
+
+
+
+ Name: System.MileageInformation -- PKEY_MileageInformation
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {FDF84370-031A-4ADD-9E91-0D775F1C6605}, 100
+
+
+
+
+ Name: System.MIMEType -- PKEY_MIMEType
+ Description: The MIME type. Eg, for EML files: 'message/rfc822'.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {0B63E350-9CCC-11D0-BCDB-00805FCCCE04}, 5
+
+
+
+
+ Name: System.NamespaceCLSID -- PKEY_NamespaceCLSID
+ Description: The CLSID of the name space extension for an item, the object that implements IShellFolder for this item
+
+ Type: Guid -- VT_CLSID
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 6
+
+
+
+
+ Name: System.Null -- PKEY_Null
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {00000000-0000-0000-0000-000000000000}, 0
+
+
+
+
+ Name: System.OfflineAvailability -- PKEY_OfflineAvailability
+ Description:
+ Type: UInt32 -- VT_UI4
+ FormatID: {A94688B6-7D9F-4570-A648-E3DFC0AB2B3F}, 100
+
+
+
+
+ Name: System.OfflineStatus -- PKEY_OfflineStatus
+ Description:
+ Type: UInt32 -- VT_UI4
+ FormatID: {6D24888F-4718-4BDA-AFED-EA0FB4386CD8}, 100
+
+
+
+
+ Name: System.OriginalFileName -- PKEY_OriginalFileName
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSFMTID_VERSION) {0CEF7D53-FA64-11D1-A203-0000F81FEDEE}, 6
+
+
+
+
+ Name: System.OwnerSID -- PKEY_OwnerSID
+ Description: SID of the user that owns the library.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {5D76B67F-9B3D-44BB-B6AE-25DA4F638A67}, 6
+
+
+
+
+ Name: System.ParentalRating -- PKEY_ParentalRating
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 21 (PIDMSI_PARENTAL_RATING)
+
+
+
+
+ Name: System.ParentalRatingReason -- PKEY_ParentalRatingReason
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {10984E0A-F9F2-4321-B7EF-BAF195AF4319}, 100
+
+
+
+
+ Name: System.ParentalRatingsOrganization -- PKEY_ParentalRatingsOrganization
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {A7FE0840-1344-46F0-8D37-52ED712A4BF9}, 100
+
+
+
+
+ Name: System.ParsingBindContext -- PKEY_ParsingBindContext
+ Description: used to get the IBindCtx for an item for parsing
+
+ Type: Any -- VT_NULL Legacy code may treat this as VT_UNKNOWN.
+ FormatID: {DFB9A04D-362F-4CA3-B30B-0254B17B5B84}, 100
+
+
+
+
+ Name: System.ParsingName -- PKEY_ParsingName
+ Description: The shell namespace name of an item relative to a parent folder. This name may be passed to
+ IShellFolder::ParseDisplayName() of the parent shell folder.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 24
+
+
+
+
+ Name: System.ParsingPath -- PKEY_ParsingPath
+ Description: This is the shell namespace path to the item. This path may be passed to
+ SHParseDisplayName to parse the path to the correct shell folder.
+
+ If the item is a file, the value is identical to System.ItemPathDisplay.
+
+ If the item cannot be accessed through the shell namespace, this value is VT_EMPTY.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 30
+
+
+
+
+ Name: System.PerceivedType -- PKEY_PerceivedType
+ Description: The perceived type of a shell item, based upon its canonical type.
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 9
+
+
+
+
+ Name: System.PercentFull -- PKEY_PercentFull
+ Description: The amount filled as a percentage, multiplied by 100 (ie, the valid range is 0 through 100).
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_Volume) {9B174B35-40FF-11D2-A27E-00C04FC30871}, 5 (Filesystem Volume Properties)
+
+
+
+
+ Name: System.Priority -- PKEY_Priority
+ Description:
+
+ Type: UInt16 -- VT_UI2
+ FormatID: {9C1FCF74-2D97-41BA-B4AE-CB2E3661A6E4}, 5
+
+
+
+
+ Name: System.PriorityText -- PKEY_PriorityText
+ Description: This is the user-friendly form of System.Priority. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D98BE98B-B86B-4095-BF52-9D23B2E0A752}, 100
+
+
+
+
+ Name: System.Project -- PKEY_Project
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {39A7F922-477C-48DE-8BC8-B28441E342E3}, 100
+
+
+
+
+ Name: System.ProviderItemID -- PKEY_ProviderItemID
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {F21D9941-81F0-471A-ADEE-4E74B49217ED}, 100
+
+
+
+
+ Name: System.Rating -- PKEY_Rating
+ Description: Indicates the users preference rating of an item on a scale of 1-99 (1-12 = One Star,
+ 13-37 = Two Stars, 38-62 = Three Stars, 63-87 = Four Stars, 88-99 = Five Stars).
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 9 (PIDMSI_RATING)
+
+
+
+
+ Name: System.RatingText -- PKEY_RatingText
+ Description: This is the user-friendly form of System.Rating. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {90197CA7-FD8F-4E8C-9DA3-B57E1E609295}, 100
+
+
+
+
+ Name: System.Sensitivity -- PKEY_Sensitivity
+ Description:
+
+ Type: UInt16 -- VT_UI2
+ FormatID: {F8D3F6AC-4874-42CB-BE59-AB454B30716A}, 100
+
+
+
+
+ Name: System.SensitivityText -- PKEY_SensitivityText
+ Description: This is the user-friendly form of System.Sensitivity. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D0C7F054-3F72-4725-8527-129A577CB269}, 100
+
+
+
+
+ Name: System.SFGAOFlags -- PKEY_SFGAOFlags
+ Description: IShellFolder::GetAttributesOf flags, with SFGAO_PKEYSFGAOMASK attributes masked out.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 25
+
+
+
+
+ Name: System.SharedWith -- PKEY_SharedWith
+ Description: Who is the item shared with?
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {EF884C5B-2BFE-41BB-AAE5-76EEDF4F9902}, 200
+
+
+
+
+ Name: System.ShareUserRating -- PKEY_ShareUserRating
+ Description:
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 12 (PIDMSI_SHARE_USER_RATING)
+
+
+
+
+ Name: System.SharingStatus -- PKEY_SharingStatus
+ Description: What is the item's sharing status (not shared, shared, everyone (homegroup or everyone), or private)?
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {EF884C5B-2BFE-41BB-AAE5-76EEDF4F9902}, 300
+
+
+
+
+ Name: System.SimpleRating -- PKEY_SimpleRating
+ Description: Indicates the users preference rating of an item on a scale of 0-5 (0=unrated, 1=One Star, 2=Two Stars, 3=Three Stars,
+ 4=Four Stars, 5=Five Stars)
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {A09F084E-AD41-489F-8076-AA5BE3082BCA}, 100
+
+
+
+
+ Name: System.Size -- PKEY_Size
+ Description:
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 12 (PID_STG_SIZE)
+
+
+
+
+ Name: System.SoftwareUsed -- PKEY_SoftwareUsed
+ Description: PropertyTagSoftwareUsed
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 305
+
+
+
+
+ Name: System.SourceItem -- PKEY_SourceItem
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {668CDFA5-7A1B-4323-AE4B-E527393A1D81}, 100
+
+
+
+
+ Name: System.StartDate -- PKEY_StartDate
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {48FD6EC8-8A12-4CDF-A03E-4EC5A511EDDE}, 100
+
+
+
+
+ Name: System.Status -- PKEY_Status
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_IntSite) {000214A1-0000-0000-C000-000000000046}, 9
+
+
+
+
+ Name: System.Subject -- PKEY_Subject
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 3 (PIDSI_SUBJECT)
+
+
+
+
+ Name: System.Thumbnail -- PKEY_Thumbnail
+ Description: A data that represents the thumbnail in VT_CF format.
+
+ Type: Clipboard -- VT_CF
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 17 (PIDSI_THUMBNAIL)
+
+
+
+
+ Name: System.ThumbnailCacheId -- PKEY_ThumbnailCacheId
+ Description: Unique value that can be used as a key to cache thumbnails. The value changes when the name, volume, or data modified
+ of an item changes.
+
+ Type: UInt64 -- VT_UI8
+ FormatID: {446D16B1-8DAD-4870-A748-402EA43D788C}, 100
+
+
+
+
+ Name: System.ThumbnailStream -- PKEY_ThumbnailStream
+ Description: Data that represents the thumbnail in VT_STREAM format that GDI+/WindowsCodecs supports (jpg, png, etc).
+
+ Type: Stream -- VT_STREAM
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 27
+
+
+
+
+ Name: System.Title -- PKEY_Title
+ Description: Title of item.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR) Legacy code may treat this as VT_LPSTR.
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 2 (PIDSI_TITLE)
+
+
+
+
+ Name: System.TotalFileSize -- PKEY_TotalFileSize
+ Description:
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 14
+
+
+
+
+ Name: System.Trademarks -- PKEY_Trademarks
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSFMTID_VERSION) {0CEF7D53-FA64-11D1-A203-0000F81FEDEE}, 9 (PIDVSI_Trademarks)
+
+
+
+
+ System.AppUserModel Properties
+
+
+
+
+ System.Audio Properties
+
+
+
+
+ System.Calendar Properties
+
+
+
+
+ System.Communication Properties
+
+
+
+
+ System.Computer Properties
+
+
+
+
+ System.Contact Properties
+
+
+
+
+ System.Device Properties
+
+
+
+
+ System.DeviceInterface Properties
+
+
+
+
+ System.Devices Properties
+
+
+
+
+ System.Document Properties
+
+
+
+
+ System.DRM Properties
+
+
+
+
+ System.GPS Properties
+
+
+
+
+ System.Identity Properties
+
+
+
+
+ System.IdentityProvider Properties
+
+
+
+
+ System.Image Properties
+
+
+
+
+ System.Journal Properties
+
+
+
+
+ System.LayoutPattern Properties
+
+
+
+
+ System.Link Properties
+
+
+
+
+ System.Media Properties
+
+
+
+
+ System.Message Properties
+
+
+
+
+ System.Music Properties
+
+
+
+
+ System.Note Properties
+
+
+
+
+ System.Photo Properties
+
+
+
+
+ System.PropGroup Properties
+
+
+
+
+ System.PropList Properties
+
+
+
+
+ System.RecordedTV Properties
+
+
+
+
+ System.Search Properties
+
+
+
+
+ System.Shell Properties
+
+
+
+
+ System.Software Properties
+
+
+
+
+ System.Sync Properties
+
+
+
+
+ System.Task Properties
+
+
+
+
+ System.Video Properties
+
+
+
+
+ System.Volume Properties
+
+
+
+
+ System.AppUserModel Properties
+
+
+
+
+ Name: System.AppUserModel.ExcludeFromShowInNewInstall -- PKEY_AppUserModel_ExcludeFromShowInNewInstall
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}, 8
+
+
+
+
+ Name: System.AppUserModel.ID -- PKEY_AppUserModel_ID
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}, 5
+
+
+
+
+ Name: System.AppUserModel.IsDestListSeparator -- PKEY_AppUserModel_IsDestListSeparator
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}, 6
+
+
+
+
+ Name: System.AppUserModel.PreventPinning -- PKEY_AppUserModel_PreventPinning
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}, 9
+
+
+
+
+ Name: System.AppUserModel.RelaunchCommand -- PKEY_AppUserModel_RelaunchCommand
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}, 2
+
+
+
+
+ Name: System.AppUserModel.RelaunchDisplayNameResource -- PKEY_AppUserModel_RelaunchDisplayNameResource
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}, 4
+
+
+
+
+ Name: System.AppUserModel.RelaunchIconResource -- PKEY_AppUserModel_RelaunchIconResource
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}, 3
+
+
+
+
+ System.Audio Properties
+
+
+
+
+ Name: System.Audio.ChannelCount -- PKEY_Audio_ChannelCount
+ Description: Indicates the channel count for the audio file. Values: 1 (mono), 2 (stereo).
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 7 (PIDASI_CHANNEL_COUNT)
+
+
+
+
+ Name: System.Audio.Compression -- PKEY_Audio_Compression
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 10 (PIDASI_COMPRESSION)
+
+
+
+
+ Name: System.Audio.EncodingBitrate -- PKEY_Audio_EncodingBitrate
+ Description: Indicates the average data rate in Hz for the audio file in "bits per second".
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 4 (PIDASI_AVG_DATA_RATE)
+
+
+
+
+ Name: System.Audio.Format -- PKEY_Audio_Format
+ Description: Indicates the format of the audio file.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR) Legacy code may treat this as VT_BSTR.
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 2 (PIDASI_FORMAT)
+
+
+
+
+ Name: System.Audio.IsVariableBitRate -- PKEY_Audio_IsVariableBitRate
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {E6822FEE-8C17-4D62-823C-8E9CFCBD1D5C}, 100
+
+
+
+
+ Name: System.Audio.PeakValue -- PKEY_Audio_PeakValue
+ Description:
+ Type: UInt32 -- VT_UI4
+ FormatID: {2579E5D0-1116-4084-BD9A-9B4F7CB4DF5E}, 100
+
+
+
+
+ Name: System.Audio.SampleRate -- PKEY_Audio_SampleRate
+ Description: Indicates the audio sample rate for the audio file in "samples per second".
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 5 (PIDASI_SAMPLE_RATE)
+
+
+
+
+ Name: System.Audio.SampleSize -- PKEY_Audio_SampleSize
+ Description: Indicates the audio sample size for the audio file in "bits per sample".
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 6 (PIDASI_SAMPLE_SIZE)
+
+
+
+
+ Name: System.Audio.StreamName -- PKEY_Audio_StreamName
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 9 (PIDASI_STREAM_NAME)
+
+
+
+
+ Name: System.Audio.StreamNumber -- PKEY_Audio_StreamNumber
+ Description:
+
+ Type: UInt16 -- VT_UI2
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 8 (PIDASI_STREAM_NUMBER)
+
+
+
+
+ System.Calendar Properties
+
+
+
+
+ Name: System.Calendar.Duration -- PKEY_Calendar_Duration
+ Description: The duration as specified in a string.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {293CA35A-09AA-4DD2-B180-1FE245728A52}, 100
+
+
+
+
+ Name: System.Calendar.IsOnline -- PKEY_Calendar_IsOnline
+ Description: Identifies if the event is an online event.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {BFEE9149-E3E2-49A7-A862-C05988145CEC}, 100
+
+
+
+
+ Name: System.Calendar.IsRecurring -- PKEY_Calendar_IsRecurring
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {315B9C8D-80A9-4EF9-AE16-8E746DA51D70}, 100
+
+
+
+
+ Name: System.Calendar.Location -- PKEY_Calendar_Location
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {F6272D18-CECC-40B1-B26A-3911717AA7BD}, 100
+
+
+
+
+ Name: System.Calendar.OptionalAttendeeAddresses -- PKEY_Calendar_OptionalAttendeeAddresses
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D55BAE5A-3892-417A-A649-C6AC5AAAEAB3}, 100
+
+
+
+
+ Name: System.Calendar.OptionalAttendeeNames -- PKEY_Calendar_OptionalAttendeeNames
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {09429607-582D-437F-84C3-DE93A2B24C3C}, 100
+
+
+
+
+ Name: System.Calendar.OrganizerAddress -- PKEY_Calendar_OrganizerAddress
+ Description: Address of the organizer organizing the event.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {744C8242-4DF5-456C-AB9E-014EFB9021E3}, 100
+
+
+
+
+ Name: System.Calendar.OrganizerName -- PKEY_Calendar_OrganizerName
+ Description: Name of the organizer organizing the event.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {AAA660F9-9865-458E-B484-01BC7FE3973E}, 100
+
+
+
+
+ Name: System.Calendar.ReminderTime -- PKEY_Calendar_ReminderTime
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {72FC5BA4-24F9-4011-9F3F-ADD27AFAD818}, 100
+
+
+
+
+ Name: System.Calendar.RequiredAttendeeAddresses -- PKEY_Calendar_RequiredAttendeeAddresses
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {0BA7D6C3-568D-4159-AB91-781A91FB71E5}, 100
+
+
+
+
+ Name: System.Calendar.RequiredAttendeeNames -- PKEY_Calendar_RequiredAttendeeNames
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {B33AF30B-F552-4584-936C-CB93E5CDA29F}, 100
+
+
+
+
+ Name: System.Calendar.Resources -- PKEY_Calendar_Resources
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {00F58A38-C54B-4C40-8696-97235980EAE1}, 100
+
+
+
+
+ Name: System.Calendar.ResponseStatus -- PKEY_Calendar_ResponseStatus
+ Description: This property stores the status of the user responses to meetings in her calendar.
+
+ Type: UInt16 -- VT_UI2
+ FormatID: {188C1F91-3C40-4132-9EC5-D8B03B72A8A2}, 100
+
+
+
+
+ Name: System.Calendar.ShowTimeAs -- PKEY_Calendar_ShowTimeAs
+ Description:
+
+ Type: UInt16 -- VT_UI2
+ FormatID: {5BF396D4-5EB2-466F-BDE9-2FB3F2361D6E}, 100
+
+
+
+
+ Name: System.Calendar.ShowTimeAsText -- PKEY_Calendar_ShowTimeAsText
+ Description: This is the user-friendly form of System.Calendar.ShowTimeAs. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {53DA57CF-62C0-45C4-81DE-7610BCEFD7F5}, 100
+
+
+
+
+ System.Communication Properties
+
+
+
+
+ Name: System.Communication.AccountName -- PKEY_Communication_AccountName
+ Description: Account Name
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 9
+
+
+
+
+ Name: System.Communication.DateItemExpires -- PKEY_Communication_DateItemExpires
+ Description: Date the item expires due to the retention policy.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {428040AC-A177-4C8A-9760-F6F761227F9A}, 100
+
+
+
+
+ Name: System.Communication.FollowupIconIndex -- PKEY_Communication_FollowupIconIndex
+ Description: This is the icon index used on messages marked for followup.
+
+ Type: Int32 -- VT_I4
+ FormatID: {83A6347E-6FE4-4F40-BA9C-C4865240D1F4}, 100
+
+
+
+
+ Name: System.Communication.HeaderItem -- PKEY_Communication_HeaderItem
+ Description: This property will be true if the item is a header item which means the item hasn't been fully downloaded.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {C9C34F84-2241-4401-B607-BD20ED75AE7F}, 100
+
+
+
+
+ Name: System.Communication.PolicyTag -- PKEY_Communication_PolicyTag
+ Description: This a string used to identify the retention policy applied to the item.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {EC0B4191-AB0B-4C66-90B6-C6637CDEBBAB}, 100
+
+
+
+
+ Name: System.Communication.SecurityFlags -- PKEY_Communication_SecurityFlags
+ Description: Security flags associated with the item to know if the item is encrypted, signed or DRM enabled.
+
+ Type: Int32 -- VT_I4
+ FormatID: {8619A4B6-9F4D-4429-8C0F-B996CA59E335}, 100
+
+
+
+
+ Name: System.Communication.Suffix -- PKEY_Communication_Suffix
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {807B653A-9E91-43EF-8F97-11CE04EE20C5}, 100
+
+
+
+
+ Name: System.Communication.TaskStatus -- PKEY_Communication_TaskStatus
+ Description:
+ Type: UInt16 -- VT_UI2
+ FormatID: {BE1A72C6-9A1D-46B7-AFE7-AFAF8CEF4999}, 100
+
+
+
+
+ Name: System.Communication.TaskStatusText -- PKEY_Communication_TaskStatusText
+ Description: This is the user-friendly form of System.Communication.TaskStatus. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {A6744477-C237-475B-A075-54F34498292A}, 100
+
+
+
+
+ System.Computer Properties
+
+
+
+
+ Name: System.Computer.DecoratedFreeSpace -- PKEY_Computer_DecoratedFreeSpace
+ Description: Free space and total space: "%s free of %s"
+
+ Type: Multivalue UInt64 -- VT_VECTOR | VT_UI8 (For variants: VT_ARRAY | VT_UI8)
+ FormatID: (FMTID_Volume) {9B174B35-40FF-11D2-A27E-00C04FC30871}, 7 (Filesystem Volume Properties)
+
+
+
+
+ System.Contact Properties
+
+
+
+
+ Name: System.Contact.Anniversary -- PKEY_Contact_Anniversary
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {9AD5BADB-CEA7-4470-A03D-B84E51B9949E}, 100
+
+
+
+
+ Name: System.Contact.AssistantName -- PKEY_Contact_AssistantName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CD102C9C-5540-4A88-A6F6-64E4981C8CD1}, 100
+
+
+
+
+ Name: System.Contact.AssistantTelephone -- PKEY_Contact_AssistantTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {9A93244D-A7AD-4FF8-9B99-45EE4CC09AF6}, 100
+
+
+
+
+ Name: System.Contact.Birthday -- PKEY_Contact_Birthday
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 47
+
+
+
+
+ Name: System.Contact.BusinessAddress -- PKEY_Contact_BusinessAddress
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {730FB6DD-CF7C-426B-A03F-BD166CC9EE24}, 100
+
+
+
+
+ Name: System.Contact.BusinessAddressCity -- PKEY_Contact_BusinessAddressCity
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {402B5934-EC5A-48C3-93E6-85E86A2D934E}, 100
+
+
+
+
+ Name: System.Contact.BusinessAddressCountry -- PKEY_Contact_BusinessAddressCountry
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {B0B87314-FCF6-4FEB-8DFF-A50DA6AF561C}, 100
+
+
+
+
+ Name: System.Contact.BusinessAddressPostalCode -- PKEY_Contact_BusinessAddressPostalCode
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E1D4A09E-D758-4CD1-B6EC-34A8B5A73F80}, 100
+
+
+
+
+ Name: System.Contact.BusinessAddressPostOfficeBox -- PKEY_Contact_BusinessAddressPostOfficeBox
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {BC4E71CE-17F9-48D5-BEE9-021DF0EA5409}, 100
+
+
+
+
+ Name: System.Contact.BusinessAddressState -- PKEY_Contact_BusinessAddressState
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {446F787F-10C4-41CB-A6C4-4D0343551597}, 100
+
+
+
+
+ Name: System.Contact.BusinessAddressStreet -- PKEY_Contact_BusinessAddressStreet
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {DDD1460F-C0BF-4553-8CE4-10433C908FB0}, 100
+
+
+
+
+ Name: System.Contact.BusinessFaxNumber -- PKEY_Contact_BusinessFaxNumber
+ Description: Business fax number of the contact.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {91EFF6F3-2E27-42CA-933E-7C999FBE310B}, 100
+
+
+
+
+ Name: System.Contact.BusinessHomePage -- PKEY_Contact_BusinessHomePage
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {56310920-2491-4919-99CE-EADB06FAFDB2}, 100
+
+
+
+
+ Name: System.Contact.BusinessTelephone -- PKEY_Contact_BusinessTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6A15E5A0-0A1E-4CD7-BB8C-D2F1B0C929BC}, 100
+
+
+
+
+ Name: System.Contact.CallbackTelephone -- PKEY_Contact_CallbackTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {BF53D1C3-49E0-4F7F-8567-5A821D8AC542}, 100
+
+
+
+
+ Name: System.Contact.CarTelephone -- PKEY_Contact_CarTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {8FDC6DEA-B929-412B-BA90-397A257465FE}, 100
+
+
+
+
+ Name: System.Contact.Children -- PKEY_Contact_Children
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D4729704-8EF1-43EF-9024-2BD381187FD5}, 100
+
+
+
+
+ Name: System.Contact.CompanyMainTelephone -- PKEY_Contact_CompanyMainTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {8589E481-6040-473D-B171-7FA89C2708ED}, 100
+
+
+
+
+ Name: System.Contact.Department -- PKEY_Contact_Department
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {FC9F7306-FF8F-4D49-9FB6-3FFE5C0951EC}, 100
+
+
+
+
+ Name: System.Contact.EmailAddress -- PKEY_Contact_EmailAddress
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {F8FA7FA3-D12B-4785-8A4E-691A94F7A3E7}, 100
+
+
+
+
+ Name: System.Contact.EmailAddress2 -- PKEY_Contact_EmailAddress2
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {38965063-EDC8-4268-8491-B7723172CF29}, 100
+
+
+
+
+ Name: System.Contact.EmailAddress3 -- PKEY_Contact_EmailAddress3
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {644D37B4-E1B3-4BAD-B099-7E7C04966ACA}, 100
+
+
+
+
+ Name: System.Contact.EmailAddresses -- PKEY_Contact_EmailAddresses
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {84D8F337-981D-44B3-9615-C7596DBA17E3}, 100
+
+
+
+
+ Name: System.Contact.EmailName -- PKEY_Contact_EmailName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CC6F4F24-6083-4BD4-8754-674D0DE87AB8}, 100
+
+
+
+
+ Name: System.Contact.FileAsName -- PKEY_Contact_FileAsName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {F1A24AA7-9CA7-40F6-89EC-97DEF9FFE8DB}, 100
+
+
+
+
+ Name: System.Contact.FirstName -- PKEY_Contact_FirstName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {14977844-6B49-4AAD-A714-A4513BF60460}, 100
+
+
+
+
+ Name: System.Contact.FullName -- PKEY_Contact_FullName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {635E9051-50A5-4BA2-B9DB-4ED056C77296}, 100
+
+
+
+
+ Name: System.Contact.Gender -- PKEY_Contact_Gender
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {3C8CEE58-D4F0-4CF9-B756-4E5D24447BCD}, 100
+
+
+
+
+ Name: System.Contact.GenderValue -- PKEY_Contact_GenderValue
+ Description:
+ Type: UInt16 -- VT_UI2
+ FormatID: {3C8CEE58-D4F0-4CF9-B756-4E5D24447BCD}, 101
+
+
+
+
+ Name: System.Contact.Hobbies -- PKEY_Contact_Hobbies
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {5DC2253F-5E11-4ADF-9CFE-910DD01E3E70}, 100
+
+
+
+
+ Name: System.Contact.HomeAddress -- PKEY_Contact_HomeAddress
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {98F98354-617A-46B8-8560-5B1B64BF1F89}, 100
+
+
+
+
+ Name: System.Contact.HomeAddressCity -- PKEY_Contact_HomeAddressCity
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 65
+
+
+
+
+ Name: System.Contact.HomeAddressCountry -- PKEY_Contact_HomeAddressCountry
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {08A65AA1-F4C9-43DD-9DDF-A33D8E7EAD85}, 100
+
+
+
+
+ Name: System.Contact.HomeAddressPostalCode -- PKEY_Contact_HomeAddressPostalCode
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {8AFCC170-8A46-4B53-9EEE-90BAE7151E62}, 100
+
+
+
+
+ Name: System.Contact.HomeAddressPostOfficeBox -- PKEY_Contact_HomeAddressPostOfficeBox
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7B9F6399-0A3F-4B12-89BD-4ADC51C918AF}, 100
+
+
+
+
+ Name: System.Contact.HomeAddressState -- PKEY_Contact_HomeAddressState
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C89A23D0-7D6D-4EB8-87D4-776A82D493E5}, 100
+
+
+
+
+ Name: System.Contact.HomeAddressStreet -- PKEY_Contact_HomeAddressStreet
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {0ADEF160-DB3F-4308-9A21-06237B16FA2A}, 100
+
+
+
+
+ Name: System.Contact.HomeFaxNumber -- PKEY_Contact_HomeFaxNumber
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {660E04D6-81AB-4977-A09F-82313113AB26}, 100
+
+
+
+
+ Name: System.Contact.HomeTelephone -- PKEY_Contact_HomeTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 20
+
+
+
+
+ Name: System.Contact.IMAddress -- PKEY_Contact_IMAddress
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D68DBD8A-3374-4B81-9972-3EC30682DB3D}, 100
+
+
+
+
+ Name: System.Contact.Initials -- PKEY_Contact_Initials
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {F3D8F40D-50CB-44A2-9718-40CB9119495D}, 100
+
+
+
+
+ Name: System.Contact.JobTitle -- PKEY_Contact_JobTitle
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 6
+
+
+
+
+ Name: System.Contact.Label -- PKEY_Contact_Label
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {97B0AD89-DF49-49CC-834E-660974FD755B}, 100
+
+
+
+
+ Name: System.Contact.LastName -- PKEY_Contact_LastName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {8F367200-C270-457C-B1D4-E07C5BCD90C7}, 100
+
+
+
+
+ Name: System.Contact.MailingAddress -- PKEY_Contact_MailingAddress
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C0AC206A-827E-4650-95AE-77E2BB74FCC9}, 100
+
+
+
+
+ Name: System.Contact.MiddleName -- PKEY_Contact_MiddleName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 71
+
+
+
+
+ Name: System.Contact.MobileTelephone -- PKEY_Contact_MobileTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 35
+
+
+
+
+ Name: System.Contact.NickName -- PKEY_Contact_NickName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 74
+
+
+
+
+ Name: System.Contact.OfficeLocation -- PKEY_Contact_OfficeLocation
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 7
+
+
+
+
+ Name: System.Contact.OtherAddress -- PKEY_Contact_OtherAddress
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {508161FA-313B-43D5-83A1-C1ACCF68622C}, 100
+
+
+
+
+ Name: System.Contact.OtherAddressCity -- PKEY_Contact_OtherAddressCity
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6E682923-7F7B-4F0C-A337-CFCA296687BF}, 100
+
+
+
+
+ Name: System.Contact.OtherAddressCountry -- PKEY_Contact_OtherAddressCountry
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {8F167568-0AAE-4322-8ED9-6055B7B0E398}, 100
+
+
+
+
+ Name: System.Contact.OtherAddressPostalCode -- PKEY_Contact_OtherAddressPostalCode
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {95C656C1-2ABF-4148-9ED3-9EC602E3B7CD}, 100
+
+
+
+
+ Name: System.Contact.OtherAddressPostOfficeBox -- PKEY_Contact_OtherAddressPostOfficeBox
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {8B26EA41-058F-43F6-AECC-4035681CE977}, 100
+
+
+
+
+ Name: System.Contact.OtherAddressState -- PKEY_Contact_OtherAddressState
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {71B377D6-E570-425F-A170-809FAE73E54E}, 100
+
+
+
+
+ Name: System.Contact.OtherAddressStreet -- PKEY_Contact_OtherAddressStreet
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {FF962609-B7D6-4999-862D-95180D529AEA}, 100
+
+
+
+
+ Name: System.Contact.PagerTelephone -- PKEY_Contact_PagerTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D6304E01-F8F5-4F45-8B15-D024A6296789}, 100
+
+
+
+
+ Name: System.Contact.PersonalTitle -- PKEY_Contact_PersonalTitle
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 69
+
+
+
+
+ Name: System.Contact.PrimaryAddressCity -- PKEY_Contact_PrimaryAddressCity
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C8EA94F0-A9E3-4969-A94B-9C62A95324E0}, 100
+
+
+
+
+ Name: System.Contact.PrimaryAddressCountry -- PKEY_Contact_PrimaryAddressCountry
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E53D799D-0F3F-466E-B2FF-74634A3CB7A4}, 100
+
+
+
+
+ Name: System.Contact.PrimaryAddressPostalCode -- PKEY_Contact_PrimaryAddressPostalCode
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {18BBD425-ECFD-46EF-B612-7B4A6034EDA0}, 100
+
+
+
+
+ Name: System.Contact.PrimaryAddressPostOfficeBox -- PKEY_Contact_PrimaryAddressPostOfficeBox
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {DE5EF3C7-46E1-484E-9999-62C5308394C1}, 100
+
+
+
+
+ Name: System.Contact.PrimaryAddressState -- PKEY_Contact_PrimaryAddressState
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {F1176DFE-7138-4640-8B4C-AE375DC70A6D}, 100
+
+
+
+
+ Name: System.Contact.PrimaryAddressStreet -- PKEY_Contact_PrimaryAddressStreet
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {63C25B20-96BE-488F-8788-C09C407AD812}, 100
+
+
+
+
+ Name: System.Contact.PrimaryEmailAddress -- PKEY_Contact_PrimaryEmailAddress
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 48
+
+
+
+
+ Name: System.Contact.PrimaryTelephone -- PKEY_Contact_PrimaryTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 25
+
+
+
+
+ Name: System.Contact.Profession -- PKEY_Contact_Profession
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7268AF55-1CE4-4F6E-A41F-B6E4EF10E4A9}, 100
+
+
+
+
+ Name: System.Contact.SpouseName -- PKEY_Contact_SpouseName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {9D2408B6-3167-422B-82B0-F583B7A7CFE3}, 100
+
+
+
+
+ Name: System.Contact.Suffix -- PKEY_Contact_Suffix
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 73
+
+
+
+
+ Name: System.Contact.TelexNumber -- PKEY_Contact_TelexNumber
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C554493C-C1F7-40C1-A76C-EF8C0614003E}, 100
+
+
+
+
+ Name: System.Contact.TTYTDDTelephone -- PKEY_Contact_TTYTDDTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {AAF16BAC-2B55-45E6-9F6D-415EB94910DF}, 100
+
+
+
+
+ Name: System.Contact.WebPage -- PKEY_Contact_WebPage
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 18
+
+
+
+
+ Contact.JA Properties
+
+
+
+
+ Contact.JA Properties
+
+
+
+
+ Name: System.Contact.JA.CompanyNamePhonetic -- PKEY_Contact_JA_CompanyNamePhonetic
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {897B3694-FE9E-43E6-8066-260F590C0100}, 2
+
+
+
+
+ Name: System.Contact.JA.FirstNamePhonetic -- PKEY_Contact_JA_FirstNamePhonetic
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {897B3694-FE9E-43E6-8066-260F590C0100}, 3
+
+
+
+
+ Name: System.Contact.JA.LastNamePhonetic -- PKEY_Contact_JA_LastNamePhonetic
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {897B3694-FE9E-43E6-8066-260F590C0100}, 4
+
+
+
+
+ System.Device Properties
+
+
+
+
+ Name: System.Device.PrinterURL -- PKEY_Device_PrinterURL
+ Description: Printer information Printer URL.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {0B48F35A-BE6E-4F17-B108-3C4073D1669A}, 15
+
+
+
+
+ System.DeviceInterface Properties
+
+
+
+
+ Name: System.DeviceInterface.PrinterDriverDirectory -- PKEY_DeviceInterface_PrinterDriverDirectory
+ Description: Printer information Printer Driver Directory.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {847C66DE-B8D6-4AF9-ABC3-6F4F926BC039}, 14
+
+
+
+
+ Name: System.DeviceInterface.PrinterDriverName -- PKEY_DeviceInterface_PrinterDriverName
+ Description: Printer information Driver Name.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {AFC47170-14F5-498C-8F30-B0D19BE449C6}, 11
+
+
+
+
+ Name: System.DeviceInterface.PrinterName -- PKEY_DeviceInterface_PrinterName
+ Description: Printer information Printer Name.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {0A7B84EF-0C27-463F-84EF-06C5070001BE}, 10
+
+
+
+
+ Name: System.DeviceInterface.PrinterPortName -- PKEY_DeviceInterface_PrinterPortName
+ Description: Printer information Port Name.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {EEC7B761-6F94-41B1-949F-C729720DD13C}, 12
+
+
+
+
+ System.Devices Properties
+
+
+
+
+ Name: System.Devices.BatteryLife -- PKEY_Devices_BatteryLife
+ Description: Remaining battery life of the device as an integer between 0 and 100 percent.
+
+ Type: Byte -- VT_UI1
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 10
+
+
+
+
+ Name: System.Devices.BatteryPlusCharging -- PKEY_Devices_BatteryPlusCharging
+ Description: Remaining battery life of the device as an integer between 0 and 100 percent and the device's charging state.
+
+ Type: Byte -- VT_UI1
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 22
+
+
+
+
+ Name: System.Devices.BatteryPlusChargingText -- PKEY_Devices_BatteryPlusChargingText
+ Description: Remaining battery life of the device and the device's charging state as a string.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 23
+
+
+
+
+ Name: System.Devices.Category -- PKEY_Devices_Category_Desc_Singular
+ Description: Singular form of device category.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 91
+
+
+
+
+ Name: System.Devices.CategoryGroup -- PKEY_Devices_CategoryGroup_Desc
+ Description: Plural form of device category.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 94
+
+
+
+
+ Name: System.Devices.CategoryPlural -- PKEY_Devices_Category_Desc_Plural
+ Description: Plural form of device category.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 92
+
+
+
+
+ Name: System.Devices.ChargingState -- PKEY_Devices_ChargingState
+ Description: Boolean value representing if the device is currently charging.
+
+ Type: Byte -- VT_UI1
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 11
+
+
+
+
+ Name: System.Devices.Connected -- PKEY_Devices_IsConnected
+ Description: Device connection state. If VARIANT_TRUE, indicates the device is currently connected to the computer.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 55
+
+
+
+
+ Name: System.Devices.ContainerId -- PKEY_Devices_ContainerId
+ Description: Device container ID.
+
+ Type: Guid -- VT_CLSID
+ FormatID: {8C7ED206-3F8A-4827-B3AB-AE9E1FAEFC6C}, 2
+
+
+
+
+ Name: System.Devices.DefaultTooltip -- PKEY_Devices_DefaultTooltip
+ Description: Tooltip for default state
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {880F70A2-6082-47AC-8AAB-A739D1A300C3}, 153
+
+
+
+
+ Name: System.Devices.DeviceDescription1 -- PKEY_Devices_DeviceDescription1
+ Description: First line of descriptive text about the device.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 81
+
+
+
+
+ Name: System.Devices.DeviceDescription2 -- PKEY_Devices_DeviceDescription2
+ Description: Second line of descriptive text about the device.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 82
+
+
+
+
+ Name: System.Devices.DiscoveryMethod -- PKEY_Devices_DiscoveryMethod
+ Description: Device discovery method. This indicates on what transport or physical connection the device is discovered.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 52
+
+
+
+
+ Name: System.Devices.FriendlyName -- PKEY_Devices_FriendlyName
+ Description: Device friendly name.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {656A3BB3-ECC0-43FD-8477-4AE0404A96CD}, 12288
+
+
+
+
+ Name: System.Devices.FunctionPaths -- PKEY_Devices_FunctionPaths
+ Description: Available functions for this device.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D08DD4C0-3A9E-462E-8290-7B636B2576B9}, 3
+
+
+
+
+ Name: System.Devices.InterfacePaths -- PKEY_Devices_InterfacePaths
+ Description: Available interfaces for this device.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D08DD4C0-3A9E-462E-8290-7B636B2576B9}, 2
+
+
+
+
+ Name: System.Devices.IsDefault -- PKEY_Devices_IsDefaultDevice
+ Description: If VARIANT_TRUE, the device is not working properly.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 86
+
+
+
+
+ Name: System.Devices.IsNetworkConnected -- PKEY_Devices_IsNetworkDevice
+ Description: If VARIANT_TRUE, the device is not working properly.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 85
+
+
+
+
+ Name: System.Devices.IsShared -- PKEY_Devices_IsSharedDevice
+ Description: If VARIANT_TRUE, the device is not working properly.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 84
+
+
+
+
+ Name: System.Devices.IsSoftwareInstalling -- PKEY_Devices_IsSoftwareInstalling
+ Description: If VARIANT_TRUE, the device installer is currently installing software.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {83DA6326-97A6-4088-9453-A1923F573B29}, 9
+
+
+
+
+ Name: System.Devices.LaunchDeviceStageFromExplorer -- PKEY_Devices_LaunchDeviceStageFromExplorer
+ Description: Indicates whether to launch Device Stage or not
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 77
+
+
+
+
+ Name: System.Devices.LocalMachine -- PKEY_Devices_IsLocalMachine
+ Description: If VARIANT_TRUE, the device in question is actually the computer.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 70
+
+
+
+
+ Name: System.Devices.Manufacturer -- PKEY_Devices_Manufacturer
+ Description: Device manufacturer.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {656A3BB3-ECC0-43FD-8477-4AE0404A96CD}, 8192
+
+
+
+
+ Name: System.Devices.MissedCalls -- PKEY_Devices_MissedCalls
+ Description: Number of missed calls on the device.
+
+ Type: Byte -- VT_UI1
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 5
+
+
+
+
+ Name: System.Devices.ModelName -- PKEY_Devices_ModelName
+ Description: Model name of the device.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {656A3BB3-ECC0-43FD-8477-4AE0404A96CD}, 8194
+
+
+
+
+ Name: System.Devices.ModelNumber -- PKEY_Devices_ModelNumber
+ Description: Model number of the device.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {656A3BB3-ECC0-43FD-8477-4AE0404A96CD}, 8195
+
+
+
+
+ Name: System.Devices.NetworkedTooltip -- PKEY_Devices_NetworkedTooltip
+ Description: Tooltip for connection state
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {880F70A2-6082-47AC-8AAB-A739D1A300C3}, 152
+
+
+
+
+ Name: System.Devices.NetworkName -- PKEY_Devices_NetworkName
+ Description: Name of the device's network.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 7
+
+
+
+
+ Name: System.Devices.NetworkType -- PKEY_Devices_NetworkType
+ Description: String representing the type of the device's network.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 8
+
+
+
+
+ Name: System.Devices.NewPictures -- PKEY_Devices_NewPictures
+ Description: Number of new pictures on the device.
+
+ Type: UInt16 -- VT_UI2
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 4
+
+
+
+
+ Name: System.Devices.Notification -- PKEY_Devices_Notification
+ Description: Device Notification Property.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {06704B0C-E830-4C81-9178-91E4E95A80A0}, 3
+
+
+
+
+ Name: System.Devices.NotificationStore -- PKEY_Devices_NotificationStore
+ Description: Device Notification Store.
+
+ Type: Object -- VT_UNKNOWN
+ FormatID: {06704B0C-E830-4C81-9178-91E4E95A80A0}, 2
+
+
+
+
+ Name: System.Devices.NotWorkingProperly -- PKEY_Devices_IsNotWorkingProperly
+ Description: If VARIANT_TRUE, the device is not working properly.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 83
+
+
+
+
+ Name: System.Devices.Paired -- PKEY_Devices_IsPaired
+ Description: Device paired state. If VARIANT_TRUE, indicates the device is not paired with the computer.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 56
+
+
+
+
+ Name: System.Devices.PrimaryCategory -- PKEY_Devices_PrimaryCategory
+ Description: Primary category group for this device.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D08DD4C0-3A9E-462E-8290-7B636B2576B9}, 10
+
+
+
+
+ Name: System.Devices.Roaming -- PKEY_Devices_Roaming
+ Description: Status indicator used to indicate if the device is roaming.
+
+ Type: Byte -- VT_UI1
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 9
+
+
+
+
+ Name: System.Devices.SafeRemovalRequired -- PKEY_Devices_SafeRemovalRequired
+ Description: Indicates if a device requires safe removal or not
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {AFD97640-86A3-4210-B67C-289C41AABE55}, 2
+
+
+
+
+ Name: System.Devices.SharedTooltip -- PKEY_Devices_SharedTooltip
+ Description: Tooltip for sharing state
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {880F70A2-6082-47AC-8AAB-A739D1A300C3}, 151
+
+
+
+
+ Name: System.Devices.SignalStrength -- PKEY_Devices_SignalStrength
+ Description: Device signal strength.
+
+ Type: Byte -- VT_UI1
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 2
+
+
+
+
+ Name: System.Devices.Status1 -- PKEY_Devices_Status1
+ Description: 1st line of device status.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D08DD4C0-3A9E-462E-8290-7B636B2576B9}, 257
+
+
+
+
+ Name: System.Devices.Status2 -- PKEY_Devices_Status2
+ Description: 2nd line of device status.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D08DD4C0-3A9E-462E-8290-7B636B2576B9}, 258
+
+
+
+
+ Name: System.Devices.StorageCapacity -- PKEY_Devices_StorageCapacity
+ Description: Total storage capacity of the device.
+
+ Type: UInt64 -- VT_UI8
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 12
+
+
+
+
+ Name: System.Devices.StorageFreeSpace -- PKEY_Devices_StorageFreeSpace
+ Description: Total free space of the storage of the device.
+
+ Type: UInt64 -- VT_UI8
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 13
+
+
+
+
+ Name: System.Devices.StorageFreeSpacePercent -- PKEY_Devices_StorageFreeSpacePercent
+ Description: Total free space of the storage of the device as a percentage.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 14
+
+
+
+
+ Name: System.Devices.TextMessages -- PKEY_Devices_TextMessages
+ Description: Number of unread text messages on the device.
+
+ Type: Byte -- VT_UI1
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 3
+
+
+
+
+ Name: System.Devices.Voicemail -- PKEY_Devices_Voicemail
+ Description: Status indicator used to indicate if the device has voicemail.
+
+ Type: Byte -- VT_UI1
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 6
+
+
+
+
+ Devices.Notifications Properties
+
+
+
+
+ Devices.Notifications Properties
+
+
+
+
+ Name: System.Devices.Notifications.LowBattery -- PKEY_Devices_Notification_LowBattery
+ Description: Device Low Battery Notification.
+
+ Type: Byte -- VT_UI1
+ FormatID: {C4C07F2B-8524-4E66-AE3A-A6235F103BEB}, 2
+
+
+
+
+ Name: System.Devices.Notifications.MissedCall -- PKEY_Devices_Notification_MissedCall
+ Description: Device Missed Call Notification.
+
+ Type: Byte -- VT_UI1
+ FormatID: {6614EF48-4EFE-4424-9EDA-C79F404EDF3E}, 2
+
+
+
+
+ Name: System.Devices.Notifications.NewMessage -- PKEY_Devices_Notification_NewMessage
+ Description: Device New Message Notification.
+
+ Type: Byte -- VT_UI1
+ FormatID: {2BE9260A-2012-4742-A555-F41B638B7DCB}, 2
+
+
+
+
+ Name: System.Devices.Notifications.NewVoicemail -- PKEY_Devices_Notification_NewVoicemail
+ Description: Device Voicemail Notification.
+
+ Type: Byte -- VT_UI1
+ FormatID: {59569556-0A08-4212-95B9-FAE2AD6413DB}, 2
+
+
+
+
+ Name: System.Devices.Notifications.StorageFull -- PKEY_Devices_Notification_StorageFull
+ Description: Device Storage Full Notification.
+
+ Type: UInt64 -- VT_UI8
+ FormatID: {A0E00EE1-F0C7-4D41-B8E7-26A7BD8D38B0}, 2
+
+
+
+
+ Name: System.Devices.Notifications.StorageFullLinkText -- PKEY_Devices_Notification_StorageFullLinkText
+ Description: Link Text for the Device Storage Full Notification.
+
+ Type: UInt64 -- VT_UI8
+ FormatID: {A0E00EE1-F0C7-4D41-B8E7-26A7BD8D38B0}, 3
+
+
+
+
+ System.Document Properties
+
+
+
+
+ Name: System.Document.ByteCount -- PKEY_Document_ByteCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 4 (PIDDSI_BYTECOUNT)
+
+
+
+
+ Name: System.Document.CharacterCount -- PKEY_Document_CharacterCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 16 (PIDSI_CHARCOUNT)
+
+
+
+
+ Name: System.Document.ClientID -- PKEY_Document_ClientID
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {276D7BB0-5B34-4FB0-AA4B-158ED12A1809}, 100
+
+
+
+
+ Name: System.Document.Contributor -- PKEY_Document_Contributor
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {F334115E-DA1B-4509-9B3D-119504DC7ABB}, 100
+
+
+
+
+ Name: System.Document.DateCreated -- PKEY_Document_DateCreated
+ Description: This property is stored in the document, not obtained from the file system.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 12 (PIDSI_CREATE_DTM)
+
+
+
+
+ Name: System.Document.DatePrinted -- PKEY_Document_DatePrinted
+ Description: Legacy name: "DocLastPrinted".
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 11 (PIDSI_LASTPRINTED)
+
+
+
+
+ Name: System.Document.DateSaved -- PKEY_Document_DateSaved
+ Description: Legacy name: "DocLastSavedTm".
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 13 (PIDSI_LASTSAVE_DTM)
+
+
+
+
+ Name: System.Document.Division -- PKEY_Document_Division
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {1E005EE6-BF27-428B-B01C-79676ACD2870}, 100
+
+
+
+
+ Name: System.Document.DocumentID -- PKEY_Document_DocumentID
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E08805C8-E395-40DF-80D2-54F0D6C43154}, 100
+
+
+
+
+ Name: System.Document.HiddenSlideCount -- PKEY_Document_HiddenSlideCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 9 (PIDDSI_HIDDENCOUNT)
+
+
+
+
+ Name: System.Document.LastAuthor -- PKEY_Document_LastAuthor
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 8 (PIDSI_LASTAUTHOR)
+
+
+
+
+ Name: System.Document.LineCount -- PKEY_Document_LineCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 5 (PIDDSI_LINECOUNT)
+
+
+
+
+ Name: System.Document.Manager -- PKEY_Document_Manager
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 14 (PIDDSI_MANAGER)
+
+
+
+
+ Name: System.Document.MultimediaClipCount -- PKEY_Document_MultimediaClipCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 10 (PIDDSI_MMCLIPCOUNT)
+
+
+
+
+ Name: System.Document.NoteCount -- PKEY_Document_NoteCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 8 (PIDDSI_NOTECOUNT)
+
+
+
+
+ Name: System.Document.PageCount -- PKEY_Document_PageCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 14 (PIDSI_PAGECOUNT)
+
+
+
+
+ Name: System.Document.ParagraphCount -- PKEY_Document_ParagraphCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 6 (PIDDSI_PARCOUNT)
+
+
+
+
+ Name: System.Document.PresentationFormat -- PKEY_Document_PresentationFormat
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 3 (PIDDSI_PRESFORMAT)
+
+
+
+
+ Name: System.Document.RevisionNumber -- PKEY_Document_RevisionNumber
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 9 (PIDSI_REVNUMBER)
+
+
+
+
+ Name: System.Document.Security -- PKEY_Document_Security
+ Description: Access control information, from SummaryInfo propset
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 19
+
+
+
+
+ Name: System.Document.SlideCount -- PKEY_Document_SlideCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 7 (PIDDSI_SLIDECOUNT)
+
+
+
+
+ Name: System.Document.Template -- PKEY_Document_Template
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 7 (PIDSI_TEMPLATE)
+
+
+
+
+ Name: System.Document.TotalEditingTime -- PKEY_Document_TotalEditingTime
+ Description: 100ns units, not milliseconds. VT_FILETIME for IPropertySetStorage handlers (legacy)
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 10 (PIDSI_EDITTIME)
+
+
+
+
+ Name: System.Document.Version -- PKEY_Document_Version
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 29
+
+
+
+
+ Name: System.Document.WordCount -- PKEY_Document_WordCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 15 (PIDSI_WORDCOUNT)
+
+
+
+
+ System.DRM Properties
+
+
+
+
+ Name: System.DRM.DatePlayExpires -- PKEY_DRM_DatePlayExpires
+ Description: Indicates when play expires for digital rights management.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_DRM) {AEAC19E4-89AE-4508-B9B7-BB867ABEE2ED}, 6 (PIDDRSI_PLAYEXPIRES)
+
+
+
+
+ Name: System.DRM.DatePlayStarts -- PKEY_DRM_DatePlayStarts
+ Description: Indicates when play starts for digital rights management.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_DRM) {AEAC19E4-89AE-4508-B9B7-BB867ABEE2ED}, 5 (PIDDRSI_PLAYSTARTS)
+
+
+
+
+ Name: System.DRM.Description -- PKEY_DRM_Description
+ Description: Displays the description for digital rights management.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_DRM) {AEAC19E4-89AE-4508-B9B7-BB867ABEE2ED}, 3 (PIDDRSI_DESCRIPTION)
+
+
+
+
+ Name: System.DRM.IsProtected -- PKEY_DRM_IsProtected
+ Description:
+
+ Type: Boolean -- VT_BOOL
+ FormatID: (FMTID_DRM) {AEAC19E4-89AE-4508-B9B7-BB867ABEE2ED}, 2 (PIDDRSI_PROTECTED)
+
+
+
+
+ Name: System.DRM.PlayCount -- PKEY_DRM_PlayCount
+ Description: Indicates the play count for digital rights management.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_DRM) {AEAC19E4-89AE-4508-B9B7-BB867ABEE2ED}, 4 (PIDDRSI_PLAYCOUNT)
+
+
+
+
+ System.GPS Properties
+
+
+
+
+ Name: System.GPS.Altitude -- PKEY_GPS_Altitude
+ Description: Indicates the altitude based on the reference in PKEY_GPS_AltitudeRef. Calculated from PKEY_GPS_AltitudeNumerator and
+ PKEY_GPS_AltitudeDenominator
+
+ Type: Double -- VT_R8
+ FormatID: {827EDB4F-5B73-44A7-891D-FDFFABEA35CA}, 100
+
+
+
+
+ Name: System.GPS.AltitudeDenominator -- PKEY_GPS_AltitudeDenominator
+ Description: Denominator of PKEY_GPS_Altitude
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {78342DCB-E358-4145-AE9A-6BFE4E0F9F51}, 100
+
+
+
+
+ Name: System.GPS.AltitudeNumerator -- PKEY_GPS_AltitudeNumerator
+ Description: Numerator of PKEY_GPS_Altitude
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {2DAD1EB7-816D-40D3-9EC3-C9773BE2AADE}, 100
+
+
+
+
+ Name: System.GPS.AltitudeRef -- PKEY_GPS_AltitudeRef
+ Description: Indicates the reference for the altitude property. (eg: above sea level, below sea level, absolute value)
+
+ Type: Byte -- VT_UI1
+ FormatID: {46AC629D-75EA-4515-867F-6DC4321C5844}, 100
+
+
+
+
+ Name: System.GPS.AreaInformation -- PKEY_GPS_AreaInformation
+ Description: Represents the name of the GPS area
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {972E333E-AC7E-49F1-8ADF-A70D07A9BCAB}, 100
+
+
+
+
+ Name: System.GPS.Date -- PKEY_GPS_Date
+ Description: Date and time of the GPS record
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {3602C812-0F3B-45F0-85AD-603468D69423}, 100
+
+
+
+
+ Name: System.GPS.DestBearing -- PKEY_GPS_DestBearing
+ Description: Indicates the bearing to the destination point. Calculated from PKEY_GPS_DestBearingNumerator and
+ PKEY_GPS_DestBearingDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {C66D4B3C-E888-47CC-B99F-9DCA3EE34DEA}, 100
+
+
+
+
+ Name: System.GPS.DestBearingDenominator -- PKEY_GPS_DestBearingDenominator
+ Description: Denominator of PKEY_GPS_DestBearing
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {7ABCF4F8-7C3F-4988-AC91-8D2C2E97ECA5}, 100
+
+
+
+
+ Name: System.GPS.DestBearingNumerator -- PKEY_GPS_DestBearingNumerator
+ Description: Numerator of PKEY_GPS_DestBearing
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {BA3B1DA9-86EE-4B5D-A2A4-A271A429F0CF}, 100
+
+
+
+
+ Name: System.GPS.DestBearingRef -- PKEY_GPS_DestBearingRef
+ Description: Indicates the reference used for the giving the bearing to the destination point. (eg: true direction, magnetic direction)
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {9AB84393-2A0F-4B75-BB22-7279786977CB}, 100
+
+
+
+
+ Name: System.GPS.DestDistance -- PKEY_GPS_DestDistance
+ Description: Indicates the distance to the destination point. Calculated from PKEY_GPS_DestDistanceNumerator and
+ PKEY_GPS_DestDistanceDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {A93EAE04-6804-4F24-AC81-09B266452118}, 100
+
+
+
+
+ Name: System.GPS.DestDistanceDenominator -- PKEY_GPS_DestDistanceDenominator
+ Description: Denominator of PKEY_GPS_DestDistance
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {9BC2C99B-AC71-4127-9D1C-2596D0D7DCB7}, 100
+
+
+
+
+ Name: System.GPS.DestDistanceNumerator -- PKEY_GPS_DestDistanceNumerator
+ Description: Numerator of PKEY_GPS_DestDistance
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {2BDA47DA-08C6-4FE1-80BC-A72FC517C5D0}, 100
+
+
+
+
+ Name: System.GPS.DestDistanceRef -- PKEY_GPS_DestDistanceRef
+ Description: Indicates the unit used to express the distance to the destination. (eg: kilometers, miles, knots)
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {ED4DF2D3-8695-450B-856F-F5C1C53ACB66}, 100
+
+
+
+
+ Name: System.GPS.DestLatitude -- PKEY_GPS_DestLatitude
+ Description: Indicates the latitude of the destination point. This is an array of three values. Index 0 is the degrees, index 1
+ is the minutes, index 2 is the seconds. Each is calculated from the values in PKEY_GPS_DestLatitudeNumerator and
+ PKEY_GPS_DestLatitudeDenominator.
+
+ Type: Multivalue Double -- VT_VECTOR | VT_R8 (For variants: VT_ARRAY | VT_R8)
+ FormatID: {9D1D7CC5-5C39-451C-86B3-928E2D18CC47}, 100
+
+
+
+
+ Name: System.GPS.DestLatitudeDenominator -- PKEY_GPS_DestLatitudeDenominator
+ Description: Denominator of PKEY_GPS_DestLatitude
+
+ Type: Multivalue UInt32 -- VT_VECTOR | VT_UI4 (For variants: VT_ARRAY | VT_UI4)
+ FormatID: {3A372292-7FCA-49A7-99D5-E47BB2D4E7AB}, 100
+
+
+
+
+ Name: System.GPS.DestLatitudeNumerator -- PKEY_GPS_DestLatitudeNumerator
+ Description: Numerator of PKEY_GPS_DestLatitude
+
+ Type: Multivalue UInt32 -- VT_VECTOR | VT_UI4 (For variants: VT_ARRAY | VT_UI4)
+ FormatID: {ECF4B6F6-D5A6-433C-BB92-4076650FC890}, 100
+
+
+
+
+ Name: System.GPS.DestLatitudeRef -- PKEY_GPS_DestLatitudeRef
+ Description: Indicates whether the latitude destination point is north or south latitude
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CEA820B9-CE61-4885-A128-005D9087C192}, 100
+
+
+
+
+ Name: System.GPS.DestLongitude -- PKEY_GPS_DestLongitude
+ Description: Indicates the latitude of the destination point. This is an array of three values. Index 0 is the degrees, index 1
+ is the minutes, index 2 is the seconds. Each is calculated from the values in PKEY_GPS_DestLongitudeNumerator and
+ PKEY_GPS_DestLongitudeDenominator.
+
+ Type: Multivalue Double -- VT_VECTOR | VT_R8 (For variants: VT_ARRAY | VT_R8)
+ FormatID: {47A96261-CB4C-4807-8AD3-40B9D9DBC6BC}, 100
+
+
+
+
+ Name: System.GPS.DestLongitudeDenominator -- PKEY_GPS_DestLongitudeDenominator
+ Description: Denominator of PKEY_GPS_DestLongitude
+
+ Type: Multivalue UInt32 -- VT_VECTOR | VT_UI4 (For variants: VT_ARRAY | VT_UI4)
+ FormatID: {425D69E5-48AD-4900-8D80-6EB6B8D0AC86}, 100
+
+
+
+
+ Name: System.GPS.DestLongitudeNumerator -- PKEY_GPS_DestLongitudeNumerator
+ Description: Numerator of PKEY_GPS_DestLongitude
+
+ Type: Multivalue UInt32 -- VT_VECTOR | VT_UI4 (For variants: VT_ARRAY | VT_UI4)
+ FormatID: {A3250282-FB6D-48D5-9A89-DBCACE75CCCF}, 100
+
+
+
+
+ Name: System.GPS.DestLongitudeRef -- PKEY_GPS_DestLongitudeRef
+ Description: Indicates whether the longitude destination point is east or west longitude
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {182C1EA6-7C1C-4083-AB4B-AC6C9F4ED128}, 100
+
+
+
+
+ Name: System.GPS.Differential -- PKEY_GPS_Differential
+ Description: Indicates whether differential correction was applied to the GPS receiver
+
+ Type: UInt16 -- VT_UI2
+ FormatID: {AAF4EE25-BD3B-4DD7-BFC4-47F77BB00F6D}, 100
+
+
+
+
+ Name: System.GPS.DOP -- PKEY_GPS_DOP
+ Description: Indicates the GPS DOP (data degree of precision). Calculated from PKEY_GPS_DOPNumerator and PKEY_GPS_DOPDenominator
+
+ Type: Double -- VT_R8
+ FormatID: {0CF8FB02-1837-42F1-A697-A7017AA289B9}, 100
+
+
+
+
+ Name: System.GPS.DOPDenominator -- PKEY_GPS_DOPDenominator
+ Description: Denominator of PKEY_GPS_DOP
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {A0BE94C5-50BA-487B-BD35-0654BE8881ED}, 100
+
+
+
+
+ Name: System.GPS.DOPNumerator -- PKEY_GPS_DOPNumerator
+ Description: Numerator of PKEY_GPS_DOP
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {47166B16-364F-4AA0-9F31-E2AB3DF449C3}, 100
+
+
+
+
+ Name: System.GPS.ImgDirection -- PKEY_GPS_ImgDirection
+ Description: Indicates direction of the image when it was captured. Calculated from PKEY_GPS_ImgDirectionNumerator and
+ PKEY_GPS_ImgDirectionDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {16473C91-D017-4ED9-BA4D-B6BAA55DBCF8}, 100
+
+
+
+
+ Name: System.GPS.ImgDirectionDenominator -- PKEY_GPS_ImgDirectionDenominator
+ Description: Denominator of PKEY_GPS_ImgDirection
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {10B24595-41A2-4E20-93C2-5761C1395F32}, 100
+
+
+
+
+ Name: System.GPS.ImgDirectionNumerator -- PKEY_GPS_ImgDirectionNumerator
+ Description: Numerator of PKEY_GPS_ImgDirection
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {DC5877C7-225F-45F7-BAC7-E81334B6130A}, 100
+
+
+
+
+ Name: System.GPS.ImgDirectionRef -- PKEY_GPS_ImgDirectionRef
+ Description: Indicates reference for giving the direction of the image when it was captured. (eg: true direction, magnetic direction)
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {A4AAA5B7-1AD0-445F-811A-0F8F6E67F6B5}, 100
+
+
+
+
+ Name: System.GPS.Latitude -- PKEY_GPS_Latitude
+ Description: Indicates the latitude. This is an array of three values. Index 0 is the degrees, index 1 is the minutes, index 2
+ is the seconds. Each is calculated from the values in PKEY_GPS_LatitudeNumerator and PKEY_GPS_LatitudeDenominator.
+
+ Type: Multivalue Double -- VT_VECTOR | VT_R8 (For variants: VT_ARRAY | VT_R8)
+ FormatID: {8727CFFF-4868-4EC6-AD5B-81B98521D1AB}, 100
+
+
+
+
+ Name: System.GPS.LatitudeDenominator -- PKEY_GPS_LatitudeDenominator
+ Description: Denominator of PKEY_GPS_Latitude
+
+ Type: Multivalue UInt32 -- VT_VECTOR | VT_UI4 (For variants: VT_ARRAY | VT_UI4)
+ FormatID: {16E634EE-2BFF-497B-BD8A-4341AD39EEB9}, 100
+
+
+
+
+ Name: System.GPS.LatitudeNumerator -- PKEY_GPS_LatitudeNumerator
+ Description: Numerator of PKEY_GPS_Latitude
+
+ Type: Multivalue UInt32 -- VT_VECTOR | VT_UI4 (For variants: VT_ARRAY | VT_UI4)
+ FormatID: {7DDAAAD1-CCC8-41AE-B750-B2CB8031AEA2}, 100
+
+
+
+
+ Name: System.GPS.LatitudeRef -- PKEY_GPS_LatitudeRef
+ Description: Indicates whether latitude is north or south latitude
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {029C0252-5B86-46C7-ACA0-2769FFC8E3D4}, 100
+
+
+
+
+ Name: System.GPS.Longitude -- PKEY_GPS_Longitude
+ Description: Indicates the longitude. This is an array of three values. Index 0 is the degrees, index 1 is the minutes, index 2
+ is the seconds. Each is calculated from the values in PKEY_GPS_LongitudeNumerator and PKEY_GPS_LongitudeDenominator.
+
+ Type: Multivalue Double -- VT_VECTOR | VT_R8 (For variants: VT_ARRAY | VT_R8)
+ FormatID: {C4C4DBB2-B593-466B-BBDA-D03D27D5E43A}, 100
+
+
+
+
+ Name: System.GPS.LongitudeDenominator -- PKEY_GPS_LongitudeDenominator
+ Description: Denominator of PKEY_GPS_Longitude
+
+ Type: Multivalue UInt32 -- VT_VECTOR | VT_UI4 (For variants: VT_ARRAY | VT_UI4)
+ FormatID: {BE6E176C-4534-4D2C-ACE5-31DEDAC1606B}, 100
+
+
+
+
+ Name: System.GPS.LongitudeNumerator -- PKEY_GPS_LongitudeNumerator
+ Description: Numerator of PKEY_GPS_Longitude
+
+ Type: Multivalue UInt32 -- VT_VECTOR | VT_UI4 (For variants: VT_ARRAY | VT_UI4)
+ FormatID: {02B0F689-A914-4E45-821D-1DDA452ED2C4}, 100
+
+
+
+
+ Name: System.GPS.LongitudeRef -- PKEY_GPS_LongitudeRef
+ Description: Indicates whether longitude is east or west longitude
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {33DCF22B-28D5-464C-8035-1EE9EFD25278}, 100
+
+
+
+
+ Name: System.GPS.MapDatum -- PKEY_GPS_MapDatum
+ Description: Indicates the geodetic survey data used by the GPS receiver
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {2CA2DAE6-EDDC-407D-BEF1-773942ABFA95}, 100
+
+
+
+
+ Name: System.GPS.MeasureMode -- PKEY_GPS_MeasureMode
+ Description: Indicates the GPS measurement mode. (eg: 2-dimensional, 3-dimensional)
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {A015ED5D-AAEA-4D58-8A86-3C586920EA0B}, 100
+
+
+
+
+ Name: System.GPS.ProcessingMethod -- PKEY_GPS_ProcessingMethod
+ Description: Indicates the name of the method used for location finding
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {59D49E61-840F-4AA9-A939-E2099B7F6399}, 100
+
+
+
+
+ Name: System.GPS.Satellites -- PKEY_GPS_Satellites
+ Description: Indicates the GPS satellites used for measurements
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {467EE575-1F25-4557-AD4E-B8B58B0D9C15}, 100
+
+
+
+
+ Name: System.GPS.Speed -- PKEY_GPS_Speed
+ Description: Indicates the speed of the GPS receiver movement. Calculated from PKEY_GPS_SpeedNumerator and
+ PKEY_GPS_SpeedDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {DA5D0862-6E76-4E1B-BABD-70021BD25494}, 100
+
+
+
+
+ Name: System.GPS.SpeedDenominator -- PKEY_GPS_SpeedDenominator
+ Description: Denominator of PKEY_GPS_Speed
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {7D122D5A-AE5E-4335-8841-D71E7CE72F53}, 100
+
+
+
+
+ Name: System.GPS.SpeedNumerator -- PKEY_GPS_SpeedNumerator
+ Description: Numerator of PKEY_GPS_Speed
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {ACC9CE3D-C213-4942-8B48-6D0820F21C6D}, 100
+
+
+
+
+ Name: System.GPS.SpeedRef -- PKEY_GPS_SpeedRef
+ Description: Indicates the unit used to express the speed of the GPS receiver movement. (eg: kilometers per hour,
+ miles per hour, knots).
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {ECF7F4C9-544F-4D6D-9D98-8AD79ADAF453}, 100
+
+
+
+
+ Name: System.GPS.Status -- PKEY_GPS_Status
+ Description: Indicates the status of the GPS receiver when the image was recorded. (eg: measurement in progress,
+ measurement interoperability).
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {125491F4-818F-46B2-91B5-D537753617B2}, 100
+
+
+
+
+ Name: System.GPS.Track -- PKEY_GPS_Track
+ Description: Indicates the direction of the GPS receiver movement. Calculated from PKEY_GPS_TrackNumerator and
+ PKEY_GPS_TrackDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {76C09943-7C33-49E3-9E7E-CDBA872CFADA}, 100
+
+
+
+
+ Name: System.GPS.TrackDenominator -- PKEY_GPS_TrackDenominator
+ Description: Denominator of PKEY_GPS_Track
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {C8D1920C-01F6-40C0-AC86-2F3A4AD00770}, 100
+
+
+
+
+ Name: System.GPS.TrackNumerator -- PKEY_GPS_TrackNumerator
+ Description: Numerator of PKEY_GPS_Track
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {702926F4-44A6-43E1-AE71-45627116893B}, 100
+
+
+
+
+ Name: System.GPS.TrackRef -- PKEY_GPS_TrackRef
+ Description: Indicates reference for the direction of the GPS receiver movement. (eg: true direction, magnetic direction)
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {35DBE6FE-44C3-4400-AAAE-D2C799C407E8}, 100
+
+
+
+
+ Name: System.GPS.VersionID -- PKEY_GPS_VersionID
+ Description: Indicates the version of the GPS information
+
+ Type: Buffer -- VT_VECTOR | VT_UI1 (For variants: VT_ARRAY | VT_UI1)
+ FormatID: {22704DA4-C6B2-4A99-8E56-F16DF8C92599}, 100
+
+
+
+
+ System.Identity Properties
+
+
+
+
+ Name: System.Identity.Blob -- PKEY_Identity_Blob
+ Description: Blob used to import/export identities
+
+ Type: Blob -- VT_BLOB
+ FormatID: {8C3B93A4-BAED-1A83-9A32-102EE313F6EB}, 100
+
+
+
+
+ Name: System.Identity.DisplayName -- PKEY_Identity_DisplayName
+ Description: Display Name
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7D683FC9-D155-45A8-BB1F-89D19BCB792F}, 100
+
+
+
+
+ Name: System.Identity.IsMeIdentity -- PKEY_Identity_IsMeIdentity
+ Description: Is it Me Identity
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {A4108708-09DF-4377-9DFC-6D99986D5A67}, 100
+
+
+
+
+ Name: System.Identity.PrimaryEmailAddress -- PKEY_Identity_PrimaryEmailAddress
+ Description: Primary Email Address
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {FCC16823-BAED-4F24-9B32-A0982117F7FA}, 100
+
+
+
+
+ Name: System.Identity.ProviderID -- PKEY_Identity_ProviderID
+ Description: Provider ID
+
+ Type: Guid -- VT_CLSID
+ FormatID: {74A7DE49-FA11-4D3D-A006-DB7E08675916}, 100
+
+
+
+
+ Name: System.Identity.UniqueID -- PKEY_Identity_UniqueID
+ Description: Unique ID
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E55FC3B0-2B60-4220-918E-B21E8BF16016}, 100
+
+
+
+
+ Name: System.Identity.UserName -- PKEY_Identity_UserName
+ Description: Identity User Name
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C4322503-78CA-49C6-9ACC-A68E2AFD7B6B}, 100
+
+
+
+
+ System.IdentityProvider Properties
+
+
+
+
+ Name: System.IdentityProvider.Name -- PKEY_IdentityProvider_Name
+ Description: Identity Provider Name
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {B96EFF7B-35CA-4A35-8607-29E3A54C46EA}, 100
+
+
+
+
+ Name: System.IdentityProvider.Picture -- PKEY_IdentityProvider_Picture
+ Description: Picture for the Identity Provider
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {2425166F-5642-4864-992F-98FD98F294C3}, 100
+
+
+
+
+ System.Image Properties
+
+
+
+
+ Name: System.Image.BitDepth -- PKEY_Image_BitDepth
+ Description:
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (PSGUID_IMAGESUMMARYINFORMATION) {6444048F-4C8B-11D1-8B70-080036B11A03}, 7 (PIDISI_BITDEPTH)
+
+
+
+
+ Name: System.Image.ColorSpace -- PKEY_Image_ColorSpace
+ Description: PropertyTagExifColorSpace
+
+ Type: UInt16 -- VT_UI2
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 40961
+
+
+
+
+ Name: System.Image.CompressedBitsPerPixel -- PKEY_Image_CompressedBitsPerPixel
+ Description: Calculated from PKEY_Image_CompressedBitsPerPixelNumerator and PKEY_Image_CompressedBitsPerPixelDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {364B6FA9-37AB-482A-BE2B-AE02F60D4318}, 100
+
+
+
+
+ Name: System.Image.CompressedBitsPerPixelDenominator -- PKEY_Image_CompressedBitsPerPixelDenominator
+ Description: Denominator of PKEY_Image_CompressedBitsPerPixel.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {1F8844E1-24AD-4508-9DFD-5326A415CE02}, 100
+
+
+
+
+ Name: System.Image.CompressedBitsPerPixelNumerator -- PKEY_Image_CompressedBitsPerPixelNumerator
+ Description: Numerator of PKEY_Image_CompressedBitsPerPixel.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {D21A7148-D32C-4624-8900-277210F79C0F}, 100
+
+
+
+
+ Name: System.Image.Compression -- PKEY_Image_Compression
+ Description: Indicates the image compression level. PropertyTagCompression.
+
+ Type: UInt16 -- VT_UI2
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 259
+
+
+
+
+ Name: System.Image.CompressionText -- PKEY_Image_CompressionText
+ Description: This is the user-friendly form of System.Image.Compression. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {3F08E66F-2F44-4BB9-A682-AC35D2562322}, 100
+
+
+
+
+ Name: System.Image.Dimensions -- PKEY_Image_Dimensions
+ Description: Indicates the dimensions of the image.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_IMAGESUMMARYINFORMATION) {6444048F-4C8B-11D1-8B70-080036B11A03}, 13 (PIDISI_DIMENSIONS)
+
+
+
+
+ Name: System.Image.HorizontalResolution -- PKEY_Image_HorizontalResolution
+ Description:
+
+ Type: Double -- VT_R8
+ FormatID: (PSGUID_IMAGESUMMARYINFORMATION) {6444048F-4C8B-11D1-8B70-080036B11A03}, 5 (PIDISI_RESOLUTIONX)
+
+
+
+
+ Name: System.Image.HorizontalSize -- PKEY_Image_HorizontalSize
+ Description:
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (PSGUID_IMAGESUMMARYINFORMATION) {6444048F-4C8B-11D1-8B70-080036B11A03}, 3 (PIDISI_CX)
+
+
+
+
+ Name: System.Image.ImageID -- PKEY_Image_ImageID
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {10DABE05-32AA-4C29-BF1A-63E2D220587F}, 100
+
+
+
+
+ Name: System.Image.ResolutionUnit -- PKEY_Image_ResolutionUnit
+ Description:
+ Type: Int16 -- VT_I2
+ FormatID: {19B51FA6-1F92-4A5C-AB48-7DF0ABD67444}, 100
+
+
+
+
+ Name: System.Image.VerticalResolution -- PKEY_Image_VerticalResolution
+ Description:
+
+ Type: Double -- VT_R8
+ FormatID: (PSGUID_IMAGESUMMARYINFORMATION) {6444048F-4C8B-11D1-8B70-080036B11A03}, 6 (PIDISI_RESOLUTIONY)
+
+
+
+
+ Name: System.Image.VerticalSize -- PKEY_Image_VerticalSize
+ Description:
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (PSGUID_IMAGESUMMARYINFORMATION) {6444048F-4C8B-11D1-8B70-080036B11A03}, 4 (PIDISI_CY)
+
+
+
+
+ System.Journal Properties
+
+
+
+
+ Name: System.Journal.Contacts -- PKEY_Journal_Contacts
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {DEA7C82C-1D89-4A66-9427-A4E3DEBABCB1}, 100
+
+
+
+
+ Name: System.Journal.EntryType -- PKEY_Journal_EntryType
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {95BEB1FC-326D-4644-B396-CD3ED90E6DDF}, 100
+
+
+
+
+ System.LayoutPattern Properties
+
+
+
+
+ Name: System.LayoutPattern.ContentViewModeForBrowse -- PKEY_LayoutPattern_ContentViewModeForBrowse
+ Description: Specifies the layout pattern that the content view mode should apply for this item in the context of browsing.
+ Register the regvalue under the name of "ContentViewModeLayoutPatternForBrowse".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 500
+
+
+
+
+ Name: System.LayoutPattern.ContentViewModeForSearch -- PKEY_LayoutPattern_ContentViewModeForSearch
+ Description: Specifies the layout pattern that the content view mode should apply for this item in the context of searching.
+ Register the regvalue under the name of "ContentViewModeLayoutPatternForSearch".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 501
+
+
+
+
+ System.Link Properties
+
+
+
+
+ Name: System.Link.Arguments -- PKEY_Link_Arguments
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {436F2667-14E2-4FEB-B30A-146C53B5B674}, 100
+
+
+
+
+ Name: System.Link.Comment -- PKEY_Link_Comment
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_LINK) {B9B4B3FC-2B51-4A42-B5D8-324146AFCF25}, 5
+
+
+
+
+ Name: System.Link.DateVisited -- PKEY_Link_DateVisited
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {5CBF2787-48CF-4208-B90E-EE5E5D420294}, 23 (PKEYs relating to URLs. Used by IE History.)
+
+
+
+
+ Name: System.Link.Description -- PKEY_Link_Description
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {5CBF2787-48CF-4208-B90E-EE5E5D420294}, 21 (PKEYs relating to URLs. Used by IE History.)
+
+
+
+
+ Name: System.Link.Status -- PKEY_Link_Status
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (PSGUID_LINK) {B9B4B3FC-2B51-4A42-B5D8-324146AFCF25}, 3 (PID_LINK_TARGET_TYPE)
+
+
+
+
+ Name: System.Link.TargetExtension -- PKEY_Link_TargetExtension
+ Description: The file extension of the link target. See System.File.Extension
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {7A7D76F4-B630-4BD7-95FF-37CC51A975C9}, 2
+
+
+
+
+ Name: System.Link.TargetParsingPath -- PKEY_Link_TargetParsingPath
+ Description: This is the shell namespace path to the target of the link item. This path may be passed to
+ SHParseDisplayName to parse the path to the correct shell folder.
+
+ If the target item is a file, the value is identical to System.ItemPathDisplay.
+
+ If the target item cannot be accessed through the shell namespace, this value is VT_EMPTY.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_LINK) {B9B4B3FC-2B51-4A42-B5D8-324146AFCF25}, 2 (PID_LINK_TARGET)
+
+
+
+
+ Name: System.Link.TargetSFGAOFlags -- PKEY_Link_TargetSFGAOFlags
+ Description: IShellFolder::GetAttributesOf flags for the target of a link, with SFGAO_PKEYSFGAOMASK
+ attributes masked out.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (PSGUID_LINK) {B9B4B3FC-2B51-4A42-B5D8-324146AFCF25}, 8
+
+
+
+
+ Name: System.Link.TargetSFGAOFlagsStrings -- PKEY_Link_TargetSFGAOFlagsStrings
+ Description: Expresses the SFGAO flags of a link as string values and is used as a query optimization. See
+ PKEY_Shell_SFGAOFlagsStrings for possible values of this.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D6942081-D53B-443D-AD47-5E059D9CD27A}, 3
+
+
+
+
+ Name: System.Link.TargetUrl -- PKEY_Link_TargetUrl
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {5CBF2787-48CF-4208-B90E-EE5E5D420294}, 2 (PKEYs relating to URLs. Used by IE History.)
+
+
+
+
+ System.Media Properties
+
+
+
+
+ Name: System.Media.AuthorUrl -- PKEY_Media_AuthorUrl
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 32 (PIDMSI_AUTHOR_URL)
+
+
+
+
+ Name: System.Media.AverageLevel -- PKEY_Media_AverageLevel
+ Description:
+ Type: UInt32 -- VT_UI4
+ FormatID: {09EDD5B6-B301-43C5-9990-D00302EFFD46}, 100
+
+
+
+
+ Name: System.Media.ClassPrimaryID -- PKEY_Media_ClassPrimaryID
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 13 (PIDMSI_CLASS_PRIMARY_ID)
+
+
+
+
+ Name: System.Media.ClassSecondaryID -- PKEY_Media_ClassSecondaryID
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 14 (PIDMSI_CLASS_SECONDARY_ID)
+
+
+
+
+ Name: System.Media.CollectionGroupID -- PKEY_Media_CollectionGroupID
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 24 (PIDMSI_COLLECTION_GROUP_ID)
+
+
+
+
+ Name: System.Media.CollectionID -- PKEY_Media_CollectionID
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 25 (PIDMSI_COLLECTION_ID)
+
+
+
+
+ Name: System.Media.ContentDistributor -- PKEY_Media_ContentDistributor
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 18 (PIDMSI_CONTENTDISTRIBUTOR)
+
+
+
+
+ Name: System.Media.ContentID -- PKEY_Media_ContentID
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 26 (PIDMSI_CONTENT_ID)
+
+
+
+
+ Name: System.Media.CreatorApplication -- PKEY_Media_CreatorApplication
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 27 (PIDMSI_TOOL_NAME)
+
+
+
+
+ Name: System.Media.CreatorApplicationVersion -- PKEY_Media_CreatorApplicationVersion
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 28 (PIDMSI_TOOL_VERSION)
+
+
+
+
+ Name: System.Media.DateEncoded -- PKEY_Media_DateEncoded
+ Description: DateTime is in UTC (in the doc, not file system).
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {2E4B640D-5019-46D8-8881-55414CC5CAA0}, 100
+
+
+
+
+ Name: System.Media.DateReleased -- PKEY_Media_DateReleased
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {DE41CC29-6971-4290-B472-F59F2E2F31E2}, 100
+
+
+
+
+ Name: System.Media.Duration -- PKEY_Media_Duration
+ Description: 100ns units, not milliseconds
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 3 (PIDASI_TIMELENGTH)
+
+
+
+
+ Name: System.Media.DVDID -- PKEY_Media_DVDID
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 15 (PIDMSI_DVDID)
+
+
+
+
+ Name: System.Media.EncodedBy -- PKEY_Media_EncodedBy
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 36 (PIDMSI_ENCODED_BY)
+
+
+
+
+ Name: System.Media.EncodingSettings -- PKEY_Media_EncodingSettings
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 37 (PIDMSI_ENCODING_SETTINGS)
+
+
+
+
+ Name: System.Media.FrameCount -- PKEY_Media_FrameCount
+ Description: Indicates the frame count for the image.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (PSGUID_IMAGESUMMARYINFORMATION) {6444048F-4C8B-11D1-8B70-080036B11A03}, 12 (PIDISI_FRAMECOUNT)
+
+
+
+
+ Name: System.Media.MCDI -- PKEY_Media_MCDI
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 16 (PIDMSI_MCDI)
+
+
+
+
+ Name: System.Media.MetadataContentProvider -- PKEY_Media_MetadataContentProvider
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 17 (PIDMSI_PROVIDER)
+
+
+
+
+ Name: System.Media.Producer -- PKEY_Media_Producer
+ Description:
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 22 (PIDMSI_PRODUCER)
+
+
+
+
+ Name: System.Media.PromotionUrl -- PKEY_Media_PromotionUrl
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 33 (PIDMSI_PROMOTION_URL)
+
+
+
+
+ Name: System.Media.ProtectionType -- PKEY_Media_ProtectionType
+ Description: If media is protected, how is it protected?
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 38
+
+
+
+
+ Name: System.Media.ProviderRating -- PKEY_Media_ProviderRating
+ Description: Rating (0 - 99) supplied by metadata provider
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 39
+
+
+
+
+ Name: System.Media.ProviderStyle -- PKEY_Media_ProviderStyle
+ Description: Style of music or video, supplied by metadata provider
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 40
+
+
+
+
+ Name: System.Media.Publisher -- PKEY_Media_Publisher
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 30 (PIDMSI_PUBLISHER)
+
+
+
+
+ Name: System.Media.SubscriptionContentId -- PKEY_Media_SubscriptionContentId
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {9AEBAE7A-9644-487D-A92C-657585ED751A}, 100
+
+
+
+
+ Name: System.Media.SubTitle -- PKEY_Media_SubTitle
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 38 (PIDSI_MUSIC_SUB_TITLE)
+
+
+
+
+ Name: System.Media.UniqueFileIdentifier -- PKEY_Media_UniqueFileIdentifier
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 35 (PIDMSI_UNIQUE_FILE_IDENTIFIER)
+
+
+
+
+ Name: System.Media.UserNoAutoInfo -- PKEY_Media_UserNoAutoInfo
+ Description: If true, do NOT alter this file's metadata. Set by user.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 41
+
+
+
+
+ Name: System.Media.UserWebUrl -- PKEY_Media_UserWebUrl
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 34 (PIDMSI_USER_WEB_URL)
+
+
+
+
+ Name: System.Media.Writer -- PKEY_Media_Writer
+ Description:
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 23 (PIDMSI_WRITER)
+
+
+
+
+ Name: System.Media.Year -- PKEY_Media_Year
+ Description:
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 5 (PIDSI_MUSIC_YEAR)
+
+
+
+
+ System.Message Properties
+
+
+
+
+ Name: System.Message.AttachmentContents -- PKEY_Message_AttachmentContents
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {3143BF7C-80A8-4854-8880-E2E40189BDD0}, 100
+
+
+
+
+ Name: System.Message.AttachmentNames -- PKEY_Message_AttachmentNames
+ Description: The names of the attachments in a message
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 21
+
+
+
+
+ Name: System.Message.BccAddress -- PKEY_Message_BccAddress
+ Description: Addresses in Bcc: field
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 2
+
+
+
+
+ Name: System.Message.BccName -- PKEY_Message_BccName
+ Description: person names in Bcc: field
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 3
+
+
+
+
+ Name: System.Message.CcAddress -- PKEY_Message_CcAddress
+ Description: Addresses in Cc: field
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 4
+
+
+
+
+ Name: System.Message.CcName -- PKEY_Message_CcName
+ Description: person names in Cc: field
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 5
+
+
+
+
+ Name: System.Message.ConversationID -- PKEY_Message_ConversationID
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {DC8F80BD-AF1E-4289-85B6-3DFC1B493992}, 100
+
+
+
+
+ Name: System.Message.ConversationIndex -- PKEY_Message_ConversationIndex
+ Description:
+
+ Type: Buffer -- VT_VECTOR | VT_UI1 (For variants: VT_ARRAY | VT_UI1)
+ FormatID: {DC8F80BD-AF1E-4289-85B6-3DFC1B493992}, 101
+
+
+
+
+ Name: System.Message.DateReceived -- PKEY_Message_DateReceived
+ Description: Date and Time communication was received
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 20
+
+
+
+
+ Name: System.Message.DateSent -- PKEY_Message_DateSent
+ Description: Date and Time communication was sent
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 19
+
+
+
+
+ Name: System.Message.Flags -- PKEY_Message_Flags
+ Description: These are flags associated with email messages to know if a read receipt is pending, etc.
+ The values stored here by Outlook are defined for PR_MESSAGE_FLAGS on MSDN.
+
+ Type: Int32 -- VT_I4
+ FormatID: {A82D9EE7-CA67-4312-965E-226BCEA85023}, 100
+
+
+
+
+ Name: System.Message.FromAddress -- PKEY_Message_FromAddress
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 13
+
+
+
+
+ Name: System.Message.FromName -- PKEY_Message_FromName
+ Description: Address in from field as person name
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 14
+
+
+
+
+ Name: System.Message.HasAttachments -- PKEY_Message_HasAttachments
+ Description:
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {9C1FCF74-2D97-41BA-B4AE-CB2E3661A6E4}, 8
+
+
+
+
+ Name: System.Message.IsFwdOrReply -- PKEY_Message_IsFwdOrReply
+ Description:
+ Type: Int32 -- VT_I4
+ FormatID: {9A9BC088-4F6D-469E-9919-E705412040F9}, 100
+
+
+
+
+ Name: System.Message.MessageClass -- PKEY_Message_MessageClass
+ Description: What type of outlook msg this is (meeting, task, mail, etc.)
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CD9ED458-08CE-418F-A70E-F912C7BB9C5C}, 103
+
+
+
+
+ Name: System.Message.ProofInProgress -- PKEY_Message_ProofInProgress
+ Description: This property will be true if the message junk email proofing is still in progress.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {9098F33C-9A7D-48A8-8DE5-2E1227A64E91}, 100
+
+
+
+
+ Name: System.Message.SenderAddress -- PKEY_Message_SenderAddress
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {0BE1C8E7-1981-4676-AE14-FDD78F05A6E7}, 100
+
+
+
+
+ Name: System.Message.SenderName -- PKEY_Message_SenderName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {0DA41CFA-D224-4A18-AE2F-596158DB4B3A}, 100
+
+
+
+
+ Name: System.Message.Store -- PKEY_Message_Store
+ Description: The store (aka protocol handler) FILE, MAIL, OUTLOOKEXPRESS
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 15
+
+
+
+
+ Name: System.Message.ToAddress -- PKEY_Message_ToAddress
+ Description: Addresses in To: field
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 16
+
+
+
+
+ Name: System.Message.ToDoFlags -- PKEY_Message_ToDoFlags
+ Description: Flags associated with a message flagged to know if it's still active, if it was custom flagged, etc.
+
+ Type: Int32 -- VT_I4
+ FormatID: {1F856A9F-6900-4ABA-9505-2D5F1B4D66CB}, 100
+
+
+
+
+ Name: System.Message.ToDoTitle -- PKEY_Message_ToDoTitle
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {BCCC8A3C-8CEF-42E5-9B1C-C69079398BC7}, 100
+
+
+
+
+ Name: System.Message.ToName -- PKEY_Message_ToName
+ Description: Person names in To: field
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 17
+
+
+
+
+ System.Music Properties
+
+
+
+
+ Name: System.Music.AlbumArtist -- PKEY_Music_AlbumArtist
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 13 (PIDSI_MUSIC_ALBUM_ARTIST)
+
+
+
+
+ Name: System.Music.AlbumID -- PKEY_Music_AlbumID
+ Description: Concatenation of System.Music.AlbumArtist and System.Music.AlbumTitle, suitable for indexing and display.
+ Used to differentiate albums with the same title from different artists.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 100
+
+
+
+
+ Name: System.Music.AlbumTitle -- PKEY_Music_AlbumTitle
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 4 (PIDSI_MUSIC_ALBUM)
+
+
+
+
+ Name: System.Music.Artist -- PKEY_Music_Artist
+ Description:
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 2 (PIDSI_MUSIC_ARTIST)
+
+
+
+
+ Name: System.Music.BeatsPerMinute -- PKEY_Music_BeatsPerMinute
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 35 (PIDSI_MUSIC_BEATS_PER_MINUTE)
+
+
+
+
+ Name: System.Music.Composer -- PKEY_Music_Composer
+ Description:
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 19 (PIDMSI_COMPOSER)
+
+
+
+
+ Name: System.Music.Conductor -- PKEY_Music_Conductor
+ Description:
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 36 (PIDSI_MUSIC_CONDUCTOR)
+
+
+
+
+ Name: System.Music.ContentGroupDescription -- PKEY_Music_ContentGroupDescription
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 33 (PIDSI_MUSIC_CONTENT_GROUP_DESCRIPTION)
+
+
+
+
+ Name: System.Music.DisplayArtist -- PKEY_Music_DisplayArtist
+ Description: This property returns the best representation of Album Artist for a given music file
+ based upon AlbumArtist, ContributingArtist and compilation info.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {FD122953-FA93-4EF7-92C3-04C946B2F7C8}, 100
+
+
+
+
+ Name: System.Music.Genre -- PKEY_Music_Genre
+ Description:
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 11 (PIDSI_MUSIC_GENRE)
+
+
+
+
+ Name: System.Music.InitialKey -- PKEY_Music_InitialKey
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 34 (PIDSI_MUSIC_INITIAL_KEY)
+
+
+
+
+ Name: System.Music.IsCompilation -- PKEY_Music_IsCompilation
+ Description: Indicates whether the file is part of a compilation.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {C449D5CB-9EA4-4809-82E8-AF9D59DED6D1}, 100
+
+
+
+
+ Name: System.Music.Lyrics -- PKEY_Music_Lyrics
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 12 (PIDSI_MUSIC_LYRICS)
+
+
+
+
+ Name: System.Music.Mood -- PKEY_Music_Mood
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 39 (PIDSI_MUSIC_MOOD)
+
+
+
+
+ Name: System.Music.PartOfSet -- PKEY_Music_PartOfSet
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 37 (PIDSI_MUSIC_PART_OF_SET)
+
+
+
+
+ Name: System.Music.Period -- PKEY_Music_Period
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 31 (PIDMSI_PERIOD)
+
+
+
+
+ Name: System.Music.SynchronizedLyrics -- PKEY_Music_SynchronizedLyrics
+ Description:
+ Type: Blob -- VT_BLOB
+ FormatID: {6B223B6A-162E-4AA9-B39F-05D678FC6D77}, 100
+
+
+
+
+ Name: System.Music.TrackNumber -- PKEY_Music_TrackNumber
+ Description:
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 7 (PIDSI_MUSIC_TRACK)
+
+
+
+
+ System.Note Properties
+
+
+
+
+ Name: System.Note.Color -- PKEY_Note_Color
+ Description:
+ Type: UInt16 -- VT_UI2
+ FormatID: {4776CAFA-BCE4-4CB1-A23E-265E76D8EB11}, 100
+
+
+
+
+ Name: System.Note.ColorText -- PKEY_Note_ColorText
+ Description: This is the user-friendly form of System.Note.Color. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {46B4E8DE-CDB2-440D-885C-1658EB65B914}, 100
+
+
+
+
+ System.Photo Properties
+
+
+
+
+ Name: System.Photo.Aperture -- PKEY_Photo_Aperture
+ Description: PropertyTagExifAperture. Calculated from PKEY_Photo_ApertureNumerator and PKEY_Photo_ApertureDenominator
+
+ Type: Double -- VT_R8
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 37378
+
+
+
+
+ Name: System.Photo.ApertureDenominator -- PKEY_Photo_ApertureDenominator
+ Description: Denominator of PKEY_Photo_Aperture
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {E1A9A38B-6685-46BD-875E-570DC7AD7320}, 100
+
+
+
+
+ Name: System.Photo.ApertureNumerator -- PKEY_Photo_ApertureNumerator
+ Description: Numerator of PKEY_Photo_Aperture
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {0337ECEC-39FB-4581-A0BD-4C4CC51E9914}, 100
+
+
+
+
+ Name: System.Photo.Brightness -- PKEY_Photo_Brightness
+ Description: This is the brightness of the photo.
+
+ Calculated from PKEY_Photo_BrightnessNumerator and PKEY_Photo_BrightnessDenominator.
+
+ The units are "APEX", normally in the range of -99.99 to 99.99. If the numerator of
+ the recorded value is FFFFFFFF.H, "Unknown" should be indicated.
+
+ Type: Double -- VT_R8
+ FormatID: {1A701BF6-478C-4361-83AB-3701BB053C58}, 100 (PropertyTagExifBrightness)
+
+
+
+
+ Name: System.Photo.BrightnessDenominator -- PKEY_Photo_BrightnessDenominator
+ Description: Denominator of PKEY_Photo_Brightness
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {6EBE6946-2321-440A-90F0-C043EFD32476}, 100
+
+
+
+
+ Name: System.Photo.BrightnessNumerator -- PKEY_Photo_BrightnessNumerator
+ Description: Numerator of PKEY_Photo_Brightness
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {9E7D118F-B314-45A0-8CFB-D654B917C9E9}, 100
+
+
+
+
+ Name: System.Photo.CameraManufacturer -- PKEY_Photo_CameraManufacturer
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 271 (PropertyTagEquipMake)
+
+
+
+
+ Name: System.Photo.CameraModel -- PKEY_Photo_CameraModel
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 272 (PropertyTagEquipModel)
+
+
+
+
+ Name: System.Photo.CameraSerialNumber -- PKEY_Photo_CameraSerialNumber
+ Description: Serial number of camera that produced this photo
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 273
+
+
+
+
+ Name: System.Photo.Contrast -- PKEY_Photo_Contrast
+ Description: This indicates the direction of contrast processing applied by the camera
+ when the image was shot.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {2A785BA9-8D23-4DED-82E6-60A350C86A10}, 100
+
+
+
+
+ Name: System.Photo.ContrastText -- PKEY_Photo_ContrastText
+ Description: This is the user-friendly form of System.Photo.Contrast. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {59DDE9F2-5253-40EA-9A8B-479E96C6249A}, 100
+
+
+
+
+ Name: System.Photo.DateTaken -- PKEY_Photo_DateTaken
+ Description: PropertyTagExifDTOrig
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 36867
+
+
+
+
+ Name: System.Photo.DigitalZoom -- PKEY_Photo_DigitalZoom
+ Description: PropertyTagExifDigitalZoom. Calculated from PKEY_Photo_DigitalZoomNumerator and PKEY_Photo_DigitalZoomDenominator
+
+ Type: Double -- VT_R8
+ FormatID: {F85BF840-A925-4BC2-B0C4-8E36B598679E}, 100
+
+
+
+
+ Name: System.Photo.DigitalZoomDenominator -- PKEY_Photo_DigitalZoomDenominator
+ Description: Denominator of PKEY_Photo_DigitalZoom
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {745BAF0E-E5C1-4CFB-8A1B-D031A0A52393}, 100
+
+
+
+
+ Name: System.Photo.DigitalZoomNumerator -- PKEY_Photo_DigitalZoomNumerator
+ Description: Numerator of PKEY_Photo_DigitalZoom
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {16CBB924-6500-473B-A5BE-F1599BCBE413}, 100
+
+
+
+
+ Name: System.Photo.Event -- PKEY_Photo_Event
+ Description: The event at which the photo was taken
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 18248
+
+
+
+
+ Name: System.Photo.EXIFVersion -- PKEY_Photo_EXIFVersion
+ Description: The EXIF version.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D35F743A-EB2E-47F2-A286-844132CB1427}, 100
+
+
+
+
+ Name: System.Photo.ExposureBias -- PKEY_Photo_ExposureBias
+ Description: PropertyTagExifExposureBias. Calculated from PKEY_Photo_ExposureBiasNumerator and PKEY_Photo_ExposureBiasDenominator
+
+ Type: Double -- VT_R8
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 37380
+
+
+
+
+ Name: System.Photo.ExposureBiasDenominator -- PKEY_Photo_ExposureBiasDenominator
+ Description: Denominator of PKEY_Photo_ExposureBias
+
+ Type: Int32 -- VT_I4
+ FormatID: {AB205E50-04B7-461C-A18C-2F233836E627}, 100
+
+
+
+
+ Name: System.Photo.ExposureBiasNumerator -- PKEY_Photo_ExposureBiasNumerator
+ Description: Numerator of PKEY_Photo_ExposureBias
+
+ Type: Int32 -- VT_I4
+ FormatID: {738BF284-1D87-420B-92CF-5834BF6EF9ED}, 100
+
+
+
+
+ Name: System.Photo.ExposureIndex -- PKEY_Photo_ExposureIndex
+ Description: PropertyTagExifExposureIndex. Calculated from PKEY_Photo_ExposureIndexNumerator and PKEY_Photo_ExposureIndexDenominator
+
+ Type: Double -- VT_R8
+ FormatID: {967B5AF8-995A-46ED-9E11-35B3C5B9782D}, 100
+
+
+
+
+ Name: System.Photo.ExposureIndexDenominator -- PKEY_Photo_ExposureIndexDenominator
+ Description: Denominator of PKEY_Photo_ExposureIndex
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {93112F89-C28B-492F-8A9D-4BE2062CEE8A}, 100
+
+
+
+
+ Name: System.Photo.ExposureIndexNumerator -- PKEY_Photo_ExposureIndexNumerator
+ Description: Numerator of PKEY_Photo_ExposureIndex
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {CDEDCF30-8919-44DF-8F4C-4EB2FFDB8D89}, 100
+
+
+
+
+ Name: System.Photo.ExposureProgram -- PKEY_Photo_ExposureProgram
+ Description:
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 34850 (PropertyTagExifExposureProg)
+
+
+
+
+ Name: System.Photo.ExposureProgramText -- PKEY_Photo_ExposureProgramText
+ Description: This is the user-friendly form of System.Photo.ExposureProgram. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {FEC690B7-5F30-4646-AE47-4CAAFBA884A3}, 100
+
+
+
+
+ Name: System.Photo.ExposureTime -- PKEY_Photo_ExposureTime
+ Description: PropertyTagExifExposureTime. Calculated from PKEY_Photo_ExposureTimeNumerator and PKEY_Photo_ExposureTimeDenominator
+
+ Type: Double -- VT_R8
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 33434
+
+
+
+
+ Name: System.Photo.ExposureTimeDenominator -- PKEY_Photo_ExposureTimeDenominator
+ Description: Denominator of PKEY_Photo_ExposureTime
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {55E98597-AD16-42E0-B624-21599A199838}, 100
+
+
+
+
+ Name: System.Photo.ExposureTimeNumerator -- PKEY_Photo_ExposureTimeNumerator
+ Description: Numerator of PKEY_Photo_ExposureTime
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {257E44E2-9031-4323-AC38-85C552871B2E}, 100
+
+
+
+
+ Name: System.Photo.Flash -- PKEY_Photo_Flash
+ Description: PropertyTagExifFlash
+
+ Type: Byte -- VT_UI1
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 37385
+
+
+
+
+ Name: System.Photo.FlashEnergy -- PKEY_Photo_FlashEnergy
+ Description: PropertyTagExifFlashEnergy. Calculated from PKEY_Photo_FlashEnergyNumerator and PKEY_Photo_FlashEnergyDenominator
+
+ Type: Double -- VT_R8
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 41483
+
+
+
+
+ Name: System.Photo.FlashEnergyDenominator -- PKEY_Photo_FlashEnergyDenominator
+ Description: Denominator of PKEY_Photo_FlashEnergy
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {D7B61C70-6323-49CD-A5FC-C84277162C97}, 100
+
+
+
+
+ Name: System.Photo.FlashEnergyNumerator -- PKEY_Photo_FlashEnergyNumerator
+ Description: Numerator of PKEY_Photo_FlashEnergy
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {FCAD3D3D-0858-400F-AAA3-2F66CCE2A6BC}, 100
+
+
+
+
+ Name: System.Photo.FlashManufacturer -- PKEY_Photo_FlashManufacturer
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {AABAF6C9-E0C5-4719-8585-57B103E584FE}, 100
+
+
+
+
+ Name: System.Photo.FlashModel -- PKEY_Photo_FlashModel
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {FE83BB35-4D1A-42E2-916B-06F3E1AF719E}, 100
+
+
+
+
+ Name: System.Photo.FlashText -- PKEY_Photo_FlashText
+ Description: This is the user-friendly form of System.Photo.Flash. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6B8B68F6-200B-47EA-8D25-D8050F57339F}, 100
+
+
+
+
+ Name: System.Photo.FNumber -- PKEY_Photo_FNumber
+ Description: PropertyTagExifFNumber. Calculated from PKEY_Photo_FNumberNumerator and PKEY_Photo_FNumberDenominator
+
+ Type: Double -- VT_R8
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 33437
+
+
+
+
+ Name: System.Photo.FNumberDenominator -- PKEY_Photo_FNumberDenominator
+ Description: Denominator of PKEY_Photo_FNumber
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {E92A2496-223B-4463-A4E3-30EABBA79D80}, 100
+
+
+
+
+ Name: System.Photo.FNumberNumerator -- PKEY_Photo_FNumberNumerator
+ Description: Numerator of PKEY_Photo_FNumber
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {1B97738A-FDFC-462F-9D93-1957E08BE90C}, 100
+
+
+
+
+ Name: System.Photo.FocalLength -- PKEY_Photo_FocalLength
+ Description: PropertyTagExifFocalLength. Calculated from PKEY_Photo_FocalLengthNumerator and PKEY_Photo_FocalLengthDenominator
+
+ Type: Double -- VT_R8
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 37386
+
+
+
+
+ Name: System.Photo.FocalLengthDenominator -- PKEY_Photo_FocalLengthDenominator
+ Description: Denominator of PKEY_Photo_FocalLength
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {305BC615-DCA1-44A5-9FD4-10C0BA79412E}, 100
+
+
+
+
+ Name: System.Photo.FocalLengthInFilm -- PKEY_Photo_FocalLengthInFilm
+ Description:
+ Type: UInt16 -- VT_UI2
+ FormatID: {A0E74609-B84D-4F49-B860-462BD9971F98}, 100
+
+
+
+
+ Name: System.Photo.FocalLengthNumerator -- PKEY_Photo_FocalLengthNumerator
+ Description: Numerator of PKEY_Photo_FocalLength
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {776B6B3B-1E3D-4B0C-9A0E-8FBAF2A8492A}, 100
+
+
+
+
+ Name: System.Photo.FocalPlaneXResolution -- PKEY_Photo_FocalPlaneXResolution
+ Description: PropertyTagExifFocalXRes. Calculated from PKEY_Photo_FocalPlaneXResolutionNumerator and
+ PKEY_Photo_FocalPlaneXResolutionDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {CFC08D97-C6F7-4484-89DD-EBEF4356FE76}, 100
+
+
+
+
+ Name: System.Photo.FocalPlaneXResolutionDenominator -- PKEY_Photo_FocalPlaneXResolutionDenominator
+ Description: Denominator of PKEY_Photo_FocalPlaneXResolution
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {0933F3F5-4786-4F46-A8E8-D64DD37FA521}, 100
+
+
+
+
+ Name: System.Photo.FocalPlaneXResolutionNumerator -- PKEY_Photo_FocalPlaneXResolutionNumerator
+ Description: Numerator of PKEY_Photo_FocalPlaneXResolution
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {DCCB10AF-B4E2-4B88-95F9-031B4D5AB490}, 100
+
+
+
+
+ Name: System.Photo.FocalPlaneYResolution -- PKEY_Photo_FocalPlaneYResolution
+ Description: PropertyTagExifFocalYRes. Calculated from PKEY_Photo_FocalPlaneYResolutionNumerator and
+ PKEY_Photo_FocalPlaneYResolutionDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {4FFFE4D0-914F-4AC4-8D6F-C9C61DE169B1}, 100
+
+
+
+
+ Name: System.Photo.FocalPlaneYResolutionDenominator -- PKEY_Photo_FocalPlaneYResolutionDenominator
+ Description: Denominator of PKEY_Photo_FocalPlaneYResolution
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {1D6179A6-A876-4031-B013-3347B2B64DC8}, 100
+
+
+
+
+ Name: System.Photo.FocalPlaneYResolutionNumerator -- PKEY_Photo_FocalPlaneYResolutionNumerator
+ Description: Numerator of PKEY_Photo_FocalPlaneYResolution
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {A2E541C5-4440-4BA8-867E-75CFC06828CD}, 100
+
+
+
+
+ Name: System.Photo.GainControl -- PKEY_Photo_GainControl
+ Description: This indicates the degree of overall image gain adjustment.
+
+ Calculated from PKEY_Photo_GainControlNumerator and PKEY_Photo_GainControlDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {FA304789-00C7-4D80-904A-1E4DCC7265AA}, 100 (PropertyTagExifGainControl)
+
+
+
+
+ Name: System.Photo.GainControlDenominator -- PKEY_Photo_GainControlDenominator
+ Description: Denominator of PKEY_Photo_GainControl
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {42864DFD-9DA4-4F77-BDED-4AAD7B256735}, 100
+
+
+
+
+ Name: System.Photo.GainControlNumerator -- PKEY_Photo_GainControlNumerator
+ Description: Numerator of PKEY_Photo_GainControl
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {8E8ECF7C-B7B8-4EB8-A63F-0EE715C96F9E}, 100
+
+
+
+
+ Name: System.Photo.GainControlText -- PKEY_Photo_GainControlText
+ Description: This is the user-friendly form of System.Photo.GainControl. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C06238B2-0BF9-4279-A723-25856715CB9D}, 100
+
+
+
+
+ Name: System.Photo.ISOSpeed -- PKEY_Photo_ISOSpeed
+ Description: PropertyTagExifISOSpeed
+
+ Type: UInt16 -- VT_UI2
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 34855
+
+
+
+
+ Name: System.Photo.LensManufacturer -- PKEY_Photo_LensManufacturer
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E6DDCAF7-29C5-4F0A-9A68-D19412EC7090}, 100
+
+
+
+
+ Name: System.Photo.LensModel -- PKEY_Photo_LensModel
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E1277516-2B5F-4869-89B1-2E585BD38B7A}, 100
+
+
+
+
+ Name: System.Photo.LightSource -- PKEY_Photo_LightSource
+ Description: PropertyTagExifLightSource
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 37384
+
+
+
+
+ Name: System.Photo.MakerNote -- PKEY_Photo_MakerNote
+ Description:
+ Type: Buffer -- VT_VECTOR | VT_UI1 (For variants: VT_ARRAY | VT_UI1)
+ FormatID: {FA303353-B659-4052-85E9-BCAC79549B84}, 100
+
+
+
+
+ Name: System.Photo.MakerNoteOffset -- PKEY_Photo_MakerNoteOffset
+ Description:
+ Type: UInt64 -- VT_UI8
+ FormatID: {813F4124-34E6-4D17-AB3E-6B1F3C2247A1}, 100
+
+
+
+
+ Name: System.Photo.MaxAperture -- PKEY_Photo_MaxAperture
+ Description: Calculated from PKEY_Photo_MaxApertureNumerator and PKEY_Photo_MaxApertureDenominator
+
+ Type: Double -- VT_R8
+ FormatID: {08F6D7C2-E3F2-44FC-AF1E-5AA5C81A2D3E}, 100
+
+
+
+
+ Name: System.Photo.MaxApertureDenominator -- PKEY_Photo_MaxApertureDenominator
+ Description: Denominator of PKEY_Photo_MaxAperture
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {C77724D4-601F-46C5-9B89-C53F93BCEB77}, 100
+
+
+
+
+ Name: System.Photo.MaxApertureNumerator -- PKEY_Photo_MaxApertureNumerator
+ Description: Numerator of PKEY_Photo_MaxAperture
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {C107E191-A459-44C5-9AE6-B952AD4B906D}, 100
+
+
+
+
+ Name: System.Photo.MeteringMode -- PKEY_Photo_MeteringMode
+ Description: PropertyTagExifMeteringMode
+
+ Type: UInt16 -- VT_UI2
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 37383
+
+
+
+
+ Name: System.Photo.MeteringModeText -- PKEY_Photo_MeteringModeText
+ Description: This is the user-friendly form of System.Photo.MeteringMode. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {F628FD8C-7BA8-465A-A65B-C5AA79263A9E}, 100
+
+
+
+
+ Name: System.Photo.Orientation -- PKEY_Photo_Orientation
+ Description: This is the image orientation viewed in terms of rows and columns.
+
+ Type: UInt16 -- VT_UI2
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 274 (PropertyTagOrientation)
+
+
+
+
+ Name: System.Photo.OrientationText -- PKEY_Photo_OrientationText
+ Description: This is the user-friendly form of System.Photo.Orientation. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {A9EA193C-C511-498A-A06B-58E2776DCC28}, 100
+
+
+
+
+ Name: System.Photo.PeopleNames -- PKEY_Photo_PeopleNames
+ Description: The people tags on an image.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR) Legacy code may treat this as VT_LPSTR.
+ FormatID: {E8309B6E-084C-49B4-B1FC-90A80331B638}, 100
+
+
+
+
+ Name: System.Photo.PhotometricInterpretation -- PKEY_Photo_PhotometricInterpretation
+ Description: This is the pixel composition. In JPEG compressed data, a JPEG marker is used
+ instead of this property.
+
+ Type: UInt16 -- VT_UI2
+ FormatID: {341796F1-1DF9-4B1C-A564-91BDEFA43877}, 100
+
+
+
+
+ Name: System.Photo.PhotometricInterpretationText -- PKEY_Photo_PhotometricInterpretationText
+ Description: This is the user-friendly form of System.Photo.PhotometricInterpretation. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {821437D6-9EAB-4765-A589-3B1CBBD22A61}, 100
+
+
+
+
+ Name: System.Photo.ProgramMode -- PKEY_Photo_ProgramMode
+ Description: This is the class of the program used by the camera to set exposure when the
+ picture is taken.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {6D217F6D-3F6A-4825-B470-5F03CA2FBE9B}, 100
+
+
+
+
+ Name: System.Photo.ProgramModeText -- PKEY_Photo_ProgramModeText
+ Description: This is the user-friendly form of System.Photo.ProgramMode. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7FE3AA27-2648-42F3-89B0-454E5CB150C3}, 100
+
+
+
+
+ Name: System.Photo.RelatedSoundFile -- PKEY_Photo_RelatedSoundFile
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {318A6B45-087F-4DC2-B8CC-05359551FC9E}, 100
+
+
+
+
+ Name: System.Photo.Saturation -- PKEY_Photo_Saturation
+ Description: This indicates the direction of saturation processing applied by the camera when
+ the image was shot.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {49237325-A95A-4F67-B211-816B2D45D2E0}, 100
+
+
+
+
+ Name: System.Photo.SaturationText -- PKEY_Photo_SaturationText
+ Description: This is the user-friendly form of System.Photo.Saturation. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {61478C08-B600-4A84-BBE4-E99C45F0A072}, 100
+
+
+
+
+ Name: System.Photo.Sharpness -- PKEY_Photo_Sharpness
+ Description: This indicates the direction of sharpness processing applied by the camera when
+ the image was shot.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {FC6976DB-8349-4970-AE97-B3C5316A08F0}, 100
+
+
+
+
+ Name: System.Photo.SharpnessText -- PKEY_Photo_SharpnessText
+ Description: This is the user-friendly form of System.Photo.Sharpness. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {51EC3F47-DD50-421D-8769-334F50424B1E}, 100
+
+
+
+
+ Name: System.Photo.ShutterSpeed -- PKEY_Photo_ShutterSpeed
+ Description: PropertyTagExifShutterSpeed. Calculated from PKEY_Photo_ShutterSpeedNumerator and PKEY_Photo_ShutterSpeedDenominator
+
+ Type: Double -- VT_R8
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 37377
+
+
+
+
+ Name: System.Photo.ShutterSpeedDenominator -- PKEY_Photo_ShutterSpeedDenominator
+ Description: Denominator of PKEY_Photo_ShutterSpeed
+
+ Type: Int32 -- VT_I4
+ FormatID: {E13D8975-81C7-4948-AE3F-37CAE11E8FF7}, 100
+
+
+
+
+ Name: System.Photo.ShutterSpeedNumerator -- PKEY_Photo_ShutterSpeedNumerator
+ Description: Numerator of PKEY_Photo_ShutterSpeed
+
+ Type: Int32 -- VT_I4
+ FormatID: {16EA4042-D6F4-4BCA-8349-7C78D30FB333}, 100
+
+
+
+
+ Name: System.Photo.SubjectDistance -- PKEY_Photo_SubjectDistance
+ Description: PropertyTagExifSubjectDist. Calculated from PKEY_Photo_SubjectDistanceNumerator and PKEY_Photo_SubjectDistanceDenominator
+
+ Type: Double -- VT_R8
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 37382
+
+
+
+
+ Name: System.Photo.SubjectDistanceDenominator -- PKEY_Photo_SubjectDistanceDenominator
+ Description: Denominator of PKEY_Photo_SubjectDistance
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {0C840A88-B043-466D-9766-D4B26DA3FA77}, 100
+
+
+
+
+ Name: System.Photo.SubjectDistanceNumerator -- PKEY_Photo_SubjectDistanceNumerator
+ Description: Numerator of PKEY_Photo_SubjectDistance
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {8AF4961C-F526-43E5-AA81-DB768219178D}, 100
+
+
+
+
+ Name: System.Photo.TagViewAggregate -- PKEY_Photo_TagViewAggregate
+ Description: A read-only aggregation of tag-like properties for use in building views.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR) Legacy code may treat this as VT_LPSTR.
+ FormatID: {B812F15D-C2D8-4BBF-BACD-79744346113F}, 100
+
+
+
+
+ Name: System.Photo.TranscodedForSync -- PKEY_Photo_TranscodedForSync
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {9A8EBB75-6458-4E82-BACB-35C0095B03BB}, 100
+
+
+
+
+ Name: System.Photo.WhiteBalance -- PKEY_Photo_WhiteBalance
+ Description: This indicates the white balance mode set when the image was shot.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {EE3D3D8A-5381-4CFA-B13B-AAF66B5F4EC9}, 100
+
+
+
+
+ Name: System.Photo.WhiteBalanceText -- PKEY_Photo_WhiteBalanceText
+ Description: This is the user-friendly form of System.Photo.WhiteBalance. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6336B95E-C7A7-426D-86FD-7AE3D39C84B4}, 100
+
+
+
+
+ System.PropGroup Properties
+
+
+
+
+ Name: System.PropGroup.Advanced -- PKEY_PropGroup_Advanced
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {900A403B-097B-4B95-8AE2-071FDAEEB118}, 100
+
+
+
+
+ Name: System.PropGroup.Audio -- PKEY_PropGroup_Audio
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {2804D469-788F-48AA-8570-71B9C187E138}, 100
+
+
+
+
+ Name: System.PropGroup.Calendar -- PKEY_PropGroup_Calendar
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {9973D2B5-BFD8-438A-BA94-5349B293181A}, 100
+
+
+
+
+ Name: System.PropGroup.Camera -- PKEY_PropGroup_Camera
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {DE00DE32-547E-4981-AD4B-542F2E9007D8}, 100
+
+
+
+
+ Name: System.PropGroup.Contact -- PKEY_PropGroup_Contact
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {DF975FD3-250A-4004-858F-34E29A3E37AA}, 100
+
+
+
+
+ Name: System.PropGroup.Content -- PKEY_PropGroup_Content
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {D0DAB0BA-368A-4050-A882-6C010FD19A4F}, 100
+
+
+
+
+ Name: System.PropGroup.Description -- PKEY_PropGroup_Description
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {8969B275-9475-4E00-A887-FF93B8B41E44}, 100
+
+
+
+
+ Name: System.PropGroup.FileSystem -- PKEY_PropGroup_FileSystem
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {E3A7D2C1-80FC-4B40-8F34-30EA111BDC2E}, 100
+
+
+
+
+ Name: System.PropGroup.General -- PKEY_PropGroup_General
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {CC301630-B192-4C22-B372-9F4C6D338E07}, 100
+
+
+
+
+ Name: System.PropGroup.GPS -- PKEY_PropGroup_GPS
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {F3713ADA-90E3-4E11-AAE5-FDC17685B9BE}, 100
+
+
+
+
+ Name: System.PropGroup.Image -- PKEY_PropGroup_Image
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {E3690A87-0FA8-4A2A-9A9F-FCE8827055AC}, 100
+
+
+
+
+ Name: System.PropGroup.Media -- PKEY_PropGroup_Media
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {61872CF7-6B5E-4B4B-AC2D-59DA84459248}, 100
+
+
+
+
+ Name: System.PropGroup.MediaAdvanced -- PKEY_PropGroup_MediaAdvanced
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {8859A284-DE7E-4642-99BA-D431D044B1EC}, 100
+
+
+
+
+ Name: System.PropGroup.Message -- PKEY_PropGroup_Message
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {7FD7259D-16B4-4135-9F97-7C96ECD2FA9E}, 100
+
+
+
+
+ Name: System.PropGroup.Music -- PKEY_PropGroup_Music
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {68DD6094-7216-40F1-A029-43FE7127043F}, 100
+
+
+
+
+ Name: System.PropGroup.Origin -- PKEY_PropGroup_Origin
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {2598D2FB-5569-4367-95DF-5CD3A177E1A5}, 100
+
+
+
+
+ Name: System.PropGroup.PhotoAdvanced -- PKEY_PropGroup_PhotoAdvanced
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {0CB2BF5A-9EE7-4A86-8222-F01E07FDADAF}, 100
+
+
+
+
+ Name: System.PropGroup.RecordedTV -- PKEY_PropGroup_RecordedTV
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {E7B33238-6584-4170-A5C0-AC25EFD9DA56}, 100
+
+
+
+
+ Name: System.PropGroup.Video -- PKEY_PropGroup_Video
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {BEBE0920-7671-4C54-A3EB-49FDDFC191EE}, 100
+
+
+
+
+ System.PropList Properties
+
+
+
+
+ Name: System.PropList.ConflictPrompt -- PKEY_PropList_ConflictPrompt
+ Description: The list of properties to show in the file operation conflict resolution dialog. Properties with empty
+ values will not be displayed. Register under the regvalue of "ConflictPrompt".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 11
+
+
+
+
+ Name: System.PropList.ContentViewModeForBrowse -- PKEY_PropList_ContentViewModeForBrowse
+ Description: The list of properties to show in the content view mode of an item in the context of browsing.
+ Register the regvalue under the name of "ContentViewModeForBrowse".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 13
+
+
+
+
+ Name: System.PropList.ContentViewModeForSearch -- PKEY_PropList_ContentViewModeForSearch
+ Description: The list of properties to show in the content view mode of an item in the context of searching.
+ Register the regvalue under the name of "ContentViewModeForSearch".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 14
+
+
+
+
+ Name: System.PropList.ExtendedTileInfo -- PKEY_PropList_ExtendedTileInfo
+ Description: The list of properties to show in the listview on extended tiles. Register under the regvalue of
+ "ExtendedTileInfo".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 9
+
+
+
+
+ Name: System.PropList.FileOperationPrompt -- PKEY_PropList_FileOperationPrompt
+ Description: The list of properties to show in the file operation confirmation dialog. Properties with empty values
+ will not be displayed. If this list is not specified, then the InfoTip property list is used instead.
+ Register under the regvalue of "FileOperationPrompt".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 10
+
+
+
+
+ Name: System.PropList.FullDetails -- PKEY_PropList_FullDetails
+ Description: The list of all the properties to show in the details page. Property groups can be included in this list
+ in order to more easily organize the UI. Register under the regvalue of "FullDetails".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 2
+
+
+
+
+ Name: System.PropList.InfoTip -- PKEY_PropList_InfoTip
+ Description: The list of properties to show in the infotip. Properties with empty values will not be displayed. Register
+ under the regvalue of "InfoTip".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 4 (PID_PROPLIST_INFOTIP)
+
+
+
+
+ Name: System.PropList.NonPersonal -- PKEY_PropList_NonPersonal
+ Description: The list of properties that are considered 'non-personal'. When told to remove all non-personal properties
+ from a given file, the system will leave these particular properties untouched. Register under the regvalue
+ of "NonPersonal".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {49D1091F-082E-493F-B23F-D2308AA9668C}, 100
+
+
+
+
+ Name: System.PropList.PreviewDetails -- PKEY_PropList_PreviewDetails
+ Description: The list of properties to display in the preview pane. Register under the regvalue of "PreviewDetails".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 8
+
+
+
+
+ Name: System.PropList.PreviewTitle -- PKEY_PropList_PreviewTitle
+ Description: The one or two properties to display in the preview pane title section. The optional second property is
+ displayed as a subtitle. Register under the regvalue of "PreviewTitle".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 6
+
+
+
+
+ Name: System.PropList.QuickTip -- PKEY_PropList_QuickTip
+ Description: The list of properties to show in the infotip when the item is on a slow network. Properties with empty
+ values will not be displayed. Register under the regvalue of "QuickTip".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 5 (PID_PROPLIST_QUICKTIP)
+
+
+
+
+ Name: System.PropList.TileInfo -- PKEY_PropList_TileInfo
+ Description: The list of properties to show in the listview on tiles. Register under the regvalue of "TileInfo".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 3 (PID_PROPLIST_TILEINFO)
+
+
+
+
+ Name: System.PropList.XPDetailsPanel -- PKEY_PropList_XPDetailsPanel
+ Description: The list of properties to display in the XP webview details panel. Obsolete.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_WebView) {F2275480-F782-4291-BD94-F13693513AEC}, 0 (PID_DISPLAY_PROPERTIES)
+
+
+
+
+ System.RecordedTV Properties
+
+
+
+
+ Name: System.RecordedTV.ChannelNumber -- PKEY_RecordedTV_ChannelNumber
+ Description: Example: 42
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 7
+
+
+
+
+ Name: System.RecordedTV.Credits -- PKEY_RecordedTV_Credits
+ Description: Example: "Don Messick/Frank Welker/Casey Kasem/Heather North/Nicole Jaffe;;;"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 4
+
+
+
+
+ Name: System.RecordedTV.DateContentExpires -- PKEY_RecordedTV_DateContentExpires
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 15
+
+
+
+
+ Name: System.RecordedTV.EpisodeName -- PKEY_RecordedTV_EpisodeName
+ Description: Example: "Nowhere to Hyde"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 2
+
+
+
+
+ Name: System.RecordedTV.IsATSCContent -- PKEY_RecordedTV_IsATSCContent
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 16
+
+
+
+
+ Name: System.RecordedTV.IsClosedCaptioningAvailable -- PKEY_RecordedTV_IsClosedCaptioningAvailable
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 12
+
+
+
+
+ Name: System.RecordedTV.IsDTVContent -- PKEY_RecordedTV_IsDTVContent
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 17
+
+
+
+
+ Name: System.RecordedTV.IsHDContent -- PKEY_RecordedTV_IsHDContent
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 18
+
+
+
+
+ Name: System.RecordedTV.IsRepeatBroadcast -- PKEY_RecordedTV_IsRepeatBroadcast
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 13
+
+
+
+
+ Name: System.RecordedTV.IsSAP -- PKEY_RecordedTV_IsSAP
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 14
+
+
+
+
+ Name: System.RecordedTV.NetworkAffiliation -- PKEY_RecordedTV_NetworkAffiliation
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {2C53C813-FB63-4E22-A1AB-0B331CA1E273}, 100
+
+
+
+
+ Name: System.RecordedTV.OriginalBroadcastDate -- PKEY_RecordedTV_OriginalBroadcastDate
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {4684FE97-8765-4842-9C13-F006447B178C}, 100
+
+
+
+
+ Name: System.RecordedTV.ProgramDescription -- PKEY_RecordedTV_ProgramDescription
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 3
+
+
+
+
+ Name: System.RecordedTV.RecordingTime -- PKEY_RecordedTV_RecordingTime
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {A5477F61-7A82-4ECA-9DDE-98B69B2479B3}, 100
+
+
+
+
+ Name: System.RecordedTV.StationCallSign -- PKEY_RecordedTV_StationCallSign
+ Description: Example: "TOONP"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 5
+
+
+
+
+ Name: System.RecordedTV.StationName -- PKEY_RecordedTV_StationName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {1B5439E7-EBA1-4AF8-BDD7-7AF1D4549493}, 100
+
+
+
+
+ System.Search Properties
+
+
+
+
+ Name: System.Search.AutoSummary -- PKEY_Search_AutoSummary
+ Description: General Summary of the document.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {560C36C0-503A-11CF-BAA1-00004C752A9A}, 2
+
+
+
+
+ Name: System.Search.ContainerHash -- PKEY_Search_ContainerHash
+ Description: Hash code used to identify attachments to be deleted based on a common container url
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {BCEEE283-35DF-4D53-826A-F36A3EEFC6BE}, 100
+
+
+
+
+ Name: System.Search.Contents -- PKEY_Search_Contents
+ Description: The contents of the item. This property is for query restrictions only; it cannot be retrieved in a
+ query result. The Indexing Service friendly name is 'contents'.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 19 (PID_STG_CONTENTS)
+
+
+
+
+ Name: System.Search.EntryID -- PKEY_Search_EntryID
+ Description: The entry ID for an item within a given catalog in the Windows Search Index.
+ This value may be recycled, and therefore is not considered unique over time.
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_Query) {49691C90-7E17-101A-A91C-08002B2ECDA9}, 5 (PROPID_QUERY_WORKID)
+
+
+
+
+ Name: System.Search.ExtendedProperties -- PKEY_Search_ExtendedProperties
+ Description:
+ Type: Blob -- VT_BLOB
+ FormatID: {7B03B546-FA4F-4A52-A2FE-03D5311E5865}, 100
+
+
+
+
+ Name: System.Search.GatherTime -- PKEY_Search_GatherTime
+ Description: The Datetime that the Windows Search Gatherer process last pushed properties of this document to the Windows Search Gatherer Plugins.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {0B63E350-9CCC-11D0-BCDB-00805FCCCE04}, 8
+
+
+
+
+ Name: System.Search.HitCount -- PKEY_Search_HitCount
+ Description: When using CONTAINS over the Windows Search Index, this is the number of matches of the term.
+ If there are multiple CONTAINS, an AND computes the min number of hits and an OR the max number of hits.
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_Query) {49691C90-7E17-101A-A91C-08002B2ECDA9}, 4 (PROPID_QUERY_HITCOUNT)
+
+
+
+
+ Name: System.Search.IsClosedDirectory -- PKEY_Search_IsClosedDirectory
+ Description: If this property is emitted with a value of TRUE, then it indicates that this URL's last modified time applies to all of it's children, and if this URL is deleted then all of it's children are deleted as well. For example, this would be emitted as TRUE when emitting the URL of an email so that all attachments are tied to the last modified time of that email.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {0B63E343-9CCC-11D0-BCDB-00805FCCCE04}, 23
+
+
+
+
+ Name: System.Search.IsFullyContained -- PKEY_Search_IsFullyContained
+ Description: Any child URL of a URL which has System.Search.IsClosedDirectory=TRUE must emit System.Search.IsFullyContained=TRUE. This ensures that the URL is not deleted at the end of a crawl because it hasn't been visited (which is the normal mechanism for detecting deletes). For example an email attachment would emit this property
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {0B63E343-9CCC-11D0-BCDB-00805FCCCE04}, 24
+
+
+
+
+ Name: System.Search.QueryFocusedSummary -- PKEY_Search_QueryFocusedSummary
+ Description: Query Focused Summary of the document.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {560C36C0-503A-11CF-BAA1-00004C752A9A}, 3
+
+
+
+
+ Name: System.Search.QueryFocusedSummaryWithFallback -- PKEY_Search_QueryFocusedSummaryWithFallback
+ Description: Query Focused Summary of the document, if none is available it returns the AutoSummary.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {560C36C0-503A-11CF-BAA1-00004C752A9A}, 4
+
+
+
+
+ Name: System.Search.Rank -- PKEY_Search_Rank
+ Description: Relevance rank of row. Ranges from 0-1000. Larger numbers = better matches. Query-time only.
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_Query) {49691C90-7E17-101A-A91C-08002B2ECDA9}, 3 (PROPID_QUERY_RANK)
+
+
+
+
+ Name: System.Search.Store -- PKEY_Search_Store
+ Description: The identifier for the protocol handler that produced this item. (E.g. MAPI, CSC, FILE etc.)
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {A06992B3-8CAF-4ED7-A547-B259E32AC9FC}, 100
+
+
+
+
+ Name: System.Search.UrlToIndex -- PKEY_Search_UrlToIndex
+ Description: This property should be emitted by a container IFilter for each child URL within the container. The children will eventually be crawled by the indexer if they are within scope.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {0B63E343-9CCC-11D0-BCDB-00805FCCCE04}, 2
+
+
+
+
+ Name: System.Search.UrlToIndexWithModificationTime -- PKEY_Search_UrlToIndexWithModificationTime
+ Description: This property is the same as System.Search.UrlToIndex except that it includes the time the URL was last modified. This is an optimization for the indexer as it doesn't have to call back into the protocol handler to ask for this information to determine if the content needs to be indexed again. The property is a vector with two elements, a VT_LPWSTR with the URL and a VT_FILETIME for the last modified time.
+
+ Type: Multivalue Any -- VT_VECTOR | VT_NULL (For variants: VT_ARRAY | VT_NULL)
+ FormatID: {0B63E343-9CCC-11D0-BCDB-00805FCCCE04}, 12
+
+
+
+
+ System.Shell Properties
+
+
+
+
+ Name: System.Shell.OmitFromView -- PKEY_Shell_OmitFromView
+ Description: Set this to a string value of 'True' to omit this item from shell views
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {DE35258C-C695-4CBC-B982-38B0AD24CED0}, 2
+
+
+
+
+ Name: System.Shell.SFGAOFlagsStrings -- PKEY_Shell_SFGAOFlagsStrings
+ Description: Expresses the SFGAO flags as string values and is used as a query optimization.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D6942081-D53B-443D-AD47-5E059D9CD27A}, 2
+
+
+
+
+ System.Software Properties
+
+
+
+
+ Name: System.Software.DateLastUsed -- PKEY_Software_DateLastUsed
+ Description:
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {841E4F90-FF59-4D16-8947-E81BBFFAB36D}, 16
+
+
+
+
+ Name: System.Software.ProductName -- PKEY_Software_ProductName
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSFMTID_VERSION) {0CEF7D53-FA64-11D1-A203-0000F81FEDEE}, 7
+
+
+
+
+ System.Sync Properties
+
+
+
+
+ Name: System.Sync.Comments -- PKEY_Sync_Comments
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 13
+
+
+
+
+ Name: System.Sync.ConflictDescription -- PKEY_Sync_ConflictDescription
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CE50C159-2FB8-41FD-BE68-D3E042E274BC}, 4
+
+
+
+
+ Name: System.Sync.ConflictFirstLocation -- PKEY_Sync_ConflictFirstLocation
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CE50C159-2FB8-41FD-BE68-D3E042E274BC}, 6
+
+
+
+
+ Name: System.Sync.ConflictSecondLocation -- PKEY_Sync_ConflictSecondLocation
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CE50C159-2FB8-41FD-BE68-D3E042E274BC}, 7
+
+
+
+
+ Name: System.Sync.HandlerCollectionID -- PKEY_Sync_HandlerCollectionID
+ Description:
+ Type: Guid -- VT_CLSID
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 2
+
+
+
+
+ Name: System.Sync.HandlerID -- PKEY_Sync_HandlerID
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 3
+
+
+
+
+ Name: System.Sync.HandlerName -- PKEY_Sync_HandlerName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CE50C159-2FB8-41FD-BE68-D3E042E274BC}, 2
+
+
+
+
+ Name: System.Sync.HandlerType -- PKEY_Sync_HandlerType
+ Description:
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 8
+
+
+
+
+ Name: System.Sync.HandlerTypeLabel -- PKEY_Sync_HandlerTypeLabel
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 9
+
+
+
+
+ Name: System.Sync.ItemID -- PKEY_Sync_ItemID
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 6
+
+
+
+
+ Name: System.Sync.ItemName -- PKEY_Sync_ItemName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CE50C159-2FB8-41FD-BE68-D3E042E274BC}, 3
+
+
+
+
+ Name: System.Sync.ProgressPercentage -- PKEY_Sync_ProgressPercentage
+ Description: An integer value between 0 and 100 representing the percentage completed.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 23
+
+
+
+
+ Name: System.Sync.State -- PKEY_Sync_State
+ Description: Sync state.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 24
+
+
+
+
+ Name: System.Sync.Status -- PKEY_Sync_Status
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 10
+
+
+
+
+ System.Task Properties
+
+
+
+
+ Name: System.Task.BillingInformation -- PKEY_Task_BillingInformation
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D37D52C6-261C-4303-82B3-08B926AC6F12}, 100
+
+
+
+
+ Name: System.Task.CompletionStatus -- PKEY_Task_CompletionStatus
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {084D8A0A-E6D5-40DE-BF1F-C8820E7C877C}, 100
+
+
+
+
+ Name: System.Task.Owner -- PKEY_Task_Owner
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {08C7CC5F-60F2-4494-AD75-55E3E0B5ADD0}, 100
+
+
+
+
+ System.Video Properties
+
+
+
+
+ Name: System.Video.Compression -- PKEY_Video_Compression
+ Description: Indicates the level of compression for the video stream. "Compression".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 10 (PIDVSI_COMPRESSION)
+
+
+
+
+ Name: System.Video.Director -- PKEY_Video_Director
+ Description:
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 20 (PIDMSI_DIRECTOR)
+
+
+
+
+ Name: System.Video.EncodingBitrate -- PKEY_Video_EncodingBitrate
+ Description: Indicates the data rate in "bits per second" for the video stream. "DataRate".
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 8 (PIDVSI_DATA_RATE)
+
+
+
+
+ Name: System.Video.FourCC -- PKEY_Video_FourCC
+ Description: Indicates the 4CC for the video stream.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 44
+
+
+
+
+ Name: System.Video.FrameHeight -- PKEY_Video_FrameHeight
+ Description: Indicates the frame height for the video stream.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 4
+
+
+
+
+ Name: System.Video.FrameRate -- PKEY_Video_FrameRate
+ Description: Indicates the frame rate in "frames per millisecond" for the video stream. "FrameRate".
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 6 (PIDVSI_FRAME_RATE)
+
+
+
+
+ Name: System.Video.FrameWidth -- PKEY_Video_FrameWidth
+ Description: Indicates the frame width for the video stream.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 3
+
+
+
+
+ Name: System.Video.HorizontalAspectRatio -- PKEY_Video_HorizontalAspectRatio
+ Description: Indicates the horizontal portion of the aspect ratio. The X portion of XX:YY,
+ like 16:9.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 42
+
+
+
+
+ Name: System.Video.SampleSize -- PKEY_Video_SampleSize
+ Description: Indicates the sample size in bits for the video stream. "SampleSize".
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 9 (PIDVSI_SAMPLE_SIZE)
+
+
+
+
+ Name: System.Video.StreamName -- PKEY_Video_StreamName
+ Description: Indicates the name for the video stream. "StreamName".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 2 (PIDVSI_STREAM_NAME)
+
+
+
+
+ Name: System.Video.StreamNumber -- PKEY_Video_StreamNumber
+ Description: "Stream Number".
+
+ Type: UInt16 -- VT_UI2
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 11 (PIDVSI_STREAM_NUMBER)
+
+
+
+
+ Name: System.Video.TotalBitrate -- PKEY_Video_TotalBitrate
+ Description: Indicates the total data rate in "bits per second" for all video and audio streams.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 43 (PIDVSI_TOTAL_BITRATE)
+
+
+
+
+ Name: System.Video.TranscodedForSync -- PKEY_Video_TranscodedForSync
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 46
+
+
+
+
+ Name: System.Video.VerticalAspectRatio -- PKEY_Video_VerticalAspectRatio
+ Description: Indicates the vertical portion of the aspect ratio. The Y portion of
+ XX:YY, like 16:9.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 45
+
+
+
+
+ System.Volume Properties
+
+
+
+
+ Name: System.Volume.FileSystem -- PKEY_Volume_FileSystem
+ Description: Indicates the filesystem of the volume.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_Volume) {9B174B35-40FF-11D2-A27E-00C04FC30871}, 4 (PID_VOLUME_FILESYSTEM) (Filesystem Volume Properties)
+
+
+
+
+ Name: System.Volume.IsMappedDrive -- PKEY_Volume_IsMappedDrive
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {149C0B69-2C2D-48FC-808F-D318D78C4636}, 2
+
+
+
+
+ Name: System.Volume.IsRoot -- PKEY_Volume_IsRoot
+ Description:
+
+ Type: Boolean -- VT_BOOL
+ FormatID: (FMTID_Volume) {9B174B35-40FF-11D2-A27E-00C04FC30871}, 10 (Filesystem Volume Properties)
+
+
+
+
+ Property store cache state
+
+
+
+
+ Contained in file, not updated.
+
+
+
+
+ Not contained in file.
+
+
+
+
+ Contained in file, has been updated since file was consumed.
+
+
+
+
+ Delineates the format of a property string.
+
+
+ Typically use one, or a bitwise combination of
+ these flags, to specify the format. Some flags are mutually exclusive,
+ so combinations like ShortTime | LongTime | HideTime are not allowed.
+
+
+
+
+ The format settings specified in the property's .propdesc file.
+
+
+
+
+ The value preceded with the property's display name.
+
+
+ This flag is ignored when the hideLabelPrefix attribute of the labelInfo element
+ in the property's .propinfo file is set to true.
+
+
+
+
+ The string treated as a file name.
+
+
+
+
+ The sizes displayed in kilobytes (KB), regardless of size.
+
+
+ This flag applies to properties of Integer types and aligns the values in the column.
+
+
+
+
+ Reserved.
+
+
+
+
+ The time displayed as 'hh:mm am/pm'.
+
+
+
+
+ The time displayed as 'hh:mm:ss am/pm'.
+
+
+
+
+ The time portion of date/time hidden.
+
+
+
+
+ The date displayed as 'MM/DD/YY'. For example, '3/21/04'.
+
+
+
+
+ The date displayed as 'DayOfWeek Month day, year'.
+ For example, 'Monday, March 21, 2004'.
+
+
+
+
+ The date portion of date/time hidden.
+
+
+
+
+ The friendly date descriptions, such as "Yesterday".
+
+
+
+
+ The text displayed in a text box as a cue for the user, such as 'Enter your name'.
+
+
+ The invitation text is returned if formatting failed or the value was empty.
+ Invitation text is text displayed in a text box as a cue for the user,
+ Formatting can fail if the data entered
+ is not of an expected type, such as putting alpha characters in
+ a phone number field.
+
+
+
+
+ This flag requires UseEditInvitation to also be specified. When the
+ formatting flags are ReadOnly | UseEditInvitation and the algorithm
+ would have shown invitation text, a string is returned that indicates
+ the value is "Unknown" instead of the invitation text.
+
+
+
+
+ The detection of the reading order is not automatic. Useful when converting
+ to ANSI to omit the Unicode reading order characters.
+
+
+
+
+ Smart display of DateTime values
+
+
+
+
+ Specifies the display types for a property.
+
+
+
+
+ The String Display. This is the default if the property doesn't specify a display type.
+
+
+
+
+ The Number Display.
+
+
+
+
+ The Boolean Display.
+
+
+
+
+ The DateTime Display.
+
+
+
+
+ The Enumerated Display.
+
+
+
+
+ Property Aggregation Type
+
+
+
+
+ The string "Multiple Values" is displayed.
+
+
+
+
+ The first value in the selection is displayed.
+
+
+
+
+ The sum of the selected values is displayed. This flag is never returned
+ for data types VT_LPWSTR, VT_BOOL, and VT_FILETIME.
+
+
+
+
+ The numerical average of the selected values is displayed. This flag
+ is never returned for data types VT_LPWSTR, VT_BOOL, and VT_FILETIME.
+
+
+
+
+ The date range of the selected values is displayed. This flag is only
+ returned for values of the VT_FILETIME data type.
+
+
+
+
+ A concatenated string of all the values is displayed. The order of
+ individual values in the string is undefined. The concatenated
+ string omits duplicate values; if a value occurs more than once,
+ it only appears a single time in the concatenated string.
+
+
+
+
+ The highest of the selected values is displayed.
+
+
+
+
+ The lowest of the selected values is displayed.
+
+
+
+
+ Property Enumeration Types
+
+
+
+
+ Use DisplayText and either RangeMinValue or RangeSetValue.
+
+
+
+
+ Use DisplayText and either RangeMinValue or RangeSetValue
+
+
+
+
+ Use DisplayText
+
+
+
+
+ Use Value or RangeMinValue
+
+
+
+
+ Describes how a property should be treated for display purposes.
+
+
+
+
+ Default value
+
+
+
+
+ The value is displayed as a string.
+
+
+
+
+ The value is displayed as an integer.
+
+
+
+
+ The value is displayed as a date/time.
+
+
+
+
+ A mask for display type values StringType, IntegerType, and DateType.
+
+
+
+
+ The column should be on by default in Details view.
+
+
+
+
+ Will be slow to compute. Perform on a background thread.
+
+
+
+
+ Provided by a handler, not the folder.
+
+
+
+
+ Not displayed in the context menu, but is listed in the More... dialog.
+
+
+
+
+ Not displayed in the user interface (UI).
+
+
+
+
+ VarCmp produces same result as IShellFolder::CompareIDs.
+
+
+
+
+ PSFormatForDisplay produces same result as IShellFolder::CompareIDs.
+
+
+
+
+ Do not sort folders separately.
+
+
+
+
+ Only displayed in the UI.
+
+
+
+
+ Marks columns with values that should be read in a batch.
+
+
+
+
+ Grouping is disabled for this column.
+
+
+
+
+ Can't resize the column.
+
+
+
+
+ The width is the same in all dots per inch (dpi)s.
+
+
+
+
+ Fixed width and height ratio.
+
+
+
+
+ Filters out new display flags.
+
+
+
+
+ Specifies the condition type to use when displaying the property in the query builder user interface (UI).
+
+
+
+
+ The default condition type.
+
+
+
+
+ The string type.
+
+
+
+
+ The size type.
+
+
+
+
+ The date/time type.
+
+
+
+
+ The Boolean type.
+
+
+
+
+ The number type.
+
+
+
+
+ Provides a set of flags to be used with IConditionFactory,
+ ICondition, and IConditionGenerator to indicate the operation.
+
+
+
+
+ The implicit comparison between the value of the property and the value of the constant.
+
+
+
+
+ The value of the property and the value of the constant must be equal.
+
+
+
+
+ The value of the property and the value of the constant must not be equal.
+
+
+
+
+ The value of the property must be less than the value of the constant.
+
+
+
+
+ The value of the property must be greater than the value of the constant.
+
+
+
+
+ The value of the property must be less than or equal to the value of the constant.
+
+
+
+
+ The value of the property must be greater than or equal to the value of the constant.
+
+
+
+
+ The value of the property must begin with the value of the constant.
+
+
+
+
+ The value of the property must end with the value of the constant.
+
+
+
+
+ The value of the property must contain the value of the constant.
+
+
+
+
+ The value of the property must not contain the value of the constant.
+
+
+
+
+ The value of the property must match the value of the constant, where '?' matches any single character and '*' matches any sequence of characters.
+
+
+
+
+ The value of the property must contain a word that is the value of the constant.
+
+
+
+
+ The value of the property must contain a word that begins with the value of the constant.
+
+
+
+
+ The application is free to interpret this in any suitable way.
+
+
+
+
+ Specifies the property description grouping ranges.
+
+
+
+
+ The individual values.
+
+
+
+
+ The static alphanumeric ranges.
+
+
+
+
+ The static size ranges.
+
+
+
+
+ The dynamically-created ranges.
+
+
+
+
+ The month and year groups.
+
+
+
+
+ The percent groups.
+
+
+
+
+ The enumerated groups.
+
+
+
+
+ Describes the particular wordings of sort offerings.
+
+
+ Note that the strings shown are English versions only;
+ localized strings are used for other locales.
+
+
+
+
+ The default ascending or descending property sort, "Sort going up", "Sort going down".
+
+
+
+
+ The alphabetical sort, "A on top", "Z on top".
+
+
+
+
+ The numerical sort, "Lowest on top", "Highest on top".
+
+
+
+
+ The size sort, "Smallest on top", "Largest on top".
+
+
+
+
+ The chronological sort, "Oldest on top", "Newest on top".
+
+
+
+
+ Describes the attributes of the typeInfo element in the property's .propdesc file.
+
+
+
+
+ The property uses the default values for all attributes.
+
+
+
+
+ The property can have multiple values.
+
+
+ These values are stored as a VT_VECTOR in the PROPVARIANT structure.
+ This value is set by the multipleValues attribute of the typeInfo element in the property's .propdesc file.
+
+
+
+
+ This property cannot be written to.
+
+
+ This value is set by the isInnate attribute of the typeInfo element in the property's .propdesc file.
+
+
+
+
+ The property is a group heading.
+
+
+ This value is set by the isGroup attribute of the typeInfo element in the property's .propdesc file.
+
+
+
+
+ The user can group by this property.
+
+
+ This value is set by the canGroupBy attribute of the typeInfo element in the property's .propdesc file.
+
+
+
+
+ The user can stack by this property.
+
+
+ This value is set by the canStackBy attribute of the typeInfo element in the property's .propdesc file.
+
+
+
+
+ This property contains a hierarchy.
+
+
+ This value is set by the isTreeProperty attribute of the typeInfo element in the property's .propdesc file.
+
+
+
+
+ Include this property in any full text query that is performed.
+
+
+ This value is set by the includeInFullTextQuery attribute of the typeInfo element in the property's .propdesc file.
+
+
+
+
+ This property is meant to be viewed by the user.
+
+
+ This influences whether the property shows up in the "Choose Columns" dialog, for example.
+ This value is set by the isViewable attribute of the typeInfo element in the property's .propdesc file.
+
+
+
+
+ This property is included in the list of properties that can be queried.
+
+
+ A queryable property must also be viewable.
+ This influences whether the property shows up in the query builder UI.
+ This value is set by the isQueryable attribute of the typeInfo element in the property's .propdesc file.
+
+
+
+
+ Used with an innate property (that is, a value calculated from other property values) to indicate that it can be deleted.
+
+
+ Windows Vista with Service Pack 1 (SP1) and later.
+ This value is used by the Remove Properties user interface (UI) to determine whether to display a check box next to an property that allows that property to be selected for removal.
+ Note that a property that is not innate can always be purged regardless of the presence or absence of this flag.
+
+
+
+
+ This property is owned by the system.
+
+
+
+
+ A mask used to retrieve all flags.
+
+
+
+
+ Associates property names with property description list strings.
+
+
+
+
+ The property is shown by default.
+
+
+
+
+ The property is centered.
+
+
+
+
+ The property is right aligned.
+
+
+
+
+ The property is shown as the beginning of the next collection of properties in the view.
+
+
+
+
+ The remainder of the view area is filled with the content of this property.
+
+
+
+
+ The property is reverse sorted if it is a property in a list of sorted properties.
+
+
+
+
+ The property is only shown if it is present.
+
+
+
+
+ The property is shown by default in a view (where applicable).
+
+
+
+
+ The property is shown by default in primary column selection user interface (UI).
+
+
+
+
+ The property is shown by default in secondary column selection UI.
+
+
+
+
+ The label is hidden if the view is normally inclined to show the label.
+
+
+
+
+ The property is not displayed as a column in the UI.
+
+
+
+
+ The property is wrapped to the next row.
+
+
+
+
+ A mask used to retrieve all flags.
+
+
+
+
+ Defines the enumeration values for a property type.
+
+
+
+
+ Gets display text from an enumeration information structure.
+
+
+
+
+ Gets an enumeration type from an enumeration information structure.
+
+
+
+
+ Gets a minimum value from an enumeration information structure.
+
+
+
+
+ Gets a set value from an enumeration information structure.
+
+
+
+
+ Gets a value from an enumeration information structure.
+
+
+
+
+ Represents a registered file system Known Folder
+
+
+
+
+ Release resources
+
+ Indicates that this mothod is being called from Dispose() rather than the finalizer.
+
+
+
+ Gets the path for this known folder.
+
+ A object.
+
+
+
+ Gets the category designation for this known folder.
+
+ A value.
+
+
+
+ Gets this known folder's canonical name.
+
+ A object.
+
+
+
+ Gets this known folder's description.
+
+ A object.
+
+
+
+ Gets the unique identifier for this known folder's parent folder.
+
+ A value.
+
+
+
+ Gets this known folder's relative path.
+
+ A object.
+
+
+
+ Gets this known folder's parsing name.
+
+ A object.
+
+
+
+ Gets this known folder's tool tip text.
+
+ A object.
+
+
+
+ Gets the resource identifier for this
+ known folder's tool tip text.
+
+ A object.
+
+
+
+ Gets this known folder's localized name.
+
+ A object.
+
+
+
+ Gets the resource identifier for this
+ known folder's localized name.
+
+ A object.
+
+
+
+ Gets this known folder's security attributes.
+
+ A object.
+
+
+
+ Gets this known folder's file attributes,
+ such as "read-only".
+
+ A value.
+
+
+
+ Gets an value that describes this known folder's behaviors.
+
+ A value.
+
+
+
+ Gets the unique identifier for this known folder's type.
+
+ A value.
+
+
+
+ Gets a string representation of this known folder's type.
+
+ A object.
+
+
+
+ Gets the unique identifier for this known folder.
+
+ A value.
+
+
+
+ Gets a value that indicates whether this known folder's path exists on the computer.
+
+ A bool value.
+ If this property value is false,
+ the folder might be a virtual folder ( property will
+ be for virtual folders)
+
+
+
+ Gets a value that states whether this known folder
+ can have its path set to a new value,
+ including any restrictions on the redirection.
+
+ A value.
+
+
+
+ Represents a non filesystem item (e.g. virtual items inside Control Panel)
+
+
+
+
+ Represents a Non FileSystem folder (e.g. My Computer, Control Panel)
+
+
+
+
+ Represents a registered non file system Known Folder
+
+
+
+
+ Release resources
+
+ Indicates that this mothod is being called from Dispose() rather than the finalizer.
+
+
+
+ Gets the path for this known folder.
+
+ A object.
+
+
+
+ Gets the category designation for this known folder.
+
+ A value.
+
+
+
+ Gets this known folder's canonical name.
+
+ A object.
+
+
+
+ Gets this known folder's description.
+
+ A object.
+
+
+
+ Gets the unique identifier for this known folder's parent folder.
+
+ A value.
+
+
+
+ Gets this known folder's relative path.
+
+ A object.
+
+
+
+ Gets this known folder's parsing name.
+
+ A object.
+
+
+
+ Gets this known folder's tool tip text.
+
+ A object.
+
+
+
+ Gets the resource identifier for this
+ known folder's tool tip text.
+
+ A object.
+
+
+
+ Gets this known folder's localized name.
+
+ A object.
+
+
+
+ Gets the resource identifier for this
+ known folder's localized name.
+
+ A object.
+
+
+
+ Gets this known folder's security attributes.
+
+ A object.
+
+
+
+ Gets this known folder's file attributes,
+ such as "read-only".
+
+ A value.
+
+
+
+ Gets an value that describes this known folder's behaviors.
+
+ A value.
+
+
+
+ Gets the unique identifier for this known folder's type.
+
+ A value.
+
+
+
+ Gets a string representation of this known folder's type.
+
+ A object.
+
+
+
+ Gets the unique identifier for this known folder.
+
+ A value.
+
+
+
+ Gets a value that indicates whether this known folder's path exists on the computer.
+
+ A bool value.
+ If this property value is false,
+ the folder might be a virtual folder ( property will
+ be for virtual folders)
+
+
+
+ Gets a value that states whether this known folder
+ can have its path set to a new value,
+ including any restrictions on the redirection.
+
+ A value.
+
+
+
+ Represents the different retrieval options for the thumbnail or icon,
+ such as extracting the thumbnail or icon from a file,
+ from the cache only, or from memory only.
+
+
+
+
+ The default behavior loads a thumbnail. If there is no thumbnail for the current ShellItem,
+ the icon is retrieved. The thumbnail or icon is extracted if it is not currently cached.
+
+
+
+
+ The CacheOnly behavior returns a cached thumbnail if it is available. Allows access to the disk,
+ but only to retrieve a cached item. If no cached thumbnail is available, a cached per-instance icon is returned but
+ a thumbnail or icon is not extracted.
+
+
+
+
+ The MemoryOnly behavior returns the item only if it is in memory. The disk is not accessed even if the item is cached.
+ Note that this only returns an already-cached icon and can fall back to a per-class icon if
+ an item has a per-instance icon that has not been cached yet. Retrieving a thumbnail,
+ even if it is cached, always requires the disk to be accessed, so this method should not be
+ called from the user interface (UI) thread without passing ShellThumbnailCacheOptions.MemoryOnly.
+
+
+
+
+ Represents the format options for the thumbnails and icons.
+
+
+
+
+ The default behavior loads a thumbnail. An HBITMAP for the icon of the item is retrieved if there is no thumbnail for the current Shell Item.
+
+
+
+
+ The ThumbnailOnly behavior returns only the thumbnails, never the icon. Note that not all items have thumbnails
+ so ShellThumbnailFormatOption.ThumbnailOnly can fail in these cases.
+
+
+
+
+ The IconOnly behavior returns only the icon, never the thumbnail.
+
+
+
+
+ Represents a link to existing FileSystem or Virtual item.
+
+
+
+
+ Path for this file e.g. c:\Windows\file.txt,
+
+
+
+
+ The path for this link
+
+
+
+
+ Gets the location to which this link points to.
+
+
+
+
+ Gets the ShellObject to which this link points to.
+
+
+
+
+ Gets or sets the link's title
+
+
+
+
+ Gets the arguments associated with this link.
+
+
+
+
+ Gets the comments associated with this link.
+
+
+
+
+ Factory class for creating typed ShellProperties.
+ Generates/caches expressions to create generic ShellProperties.
+
+
+
+
+ Creates a generic ShellProperty.
+
+ PropertyKey
+ Shell object from which to get property
+ ShellProperty matching type of value in property.
+
+
+
+ Creates a generic ShellProperty.
+
+ PropertyKey
+ IPropertyStore from which to get property
+ ShellProperty matching type of value in property.
+
+
+
+ Converts VarEnum to its associated .net Type.
+
+ VarEnum value
+ Associated .net equivelent.
+
+
+
+ Creates a property writer capable of setting multiple properties for a given ShellObject.
+
+
+
+
+ Writes the given property key and value.
+
+ The property key.
+ The value associated with the key.
+
+
+
+ Writes the given property key and value. To allow truncation of the given value, set allowTruncatedValue
+ to true.
+
+ The property key.
+ The value associated with the key.
+ True to allow truncation (default); otherwise False.
+ If the writable property store is already
+ closed.
+ If AllowTruncatedValue is set to false
+ and while setting the value on the property it had to be truncated in a string or rounded in
+ a numeric value.
+
+
+
+ Writes the specified property given the canonical name and a value.
+
+ The canonical name.
+ The property value.
+
+
+
+ Writes the specified property given the canonical name and a value. To allow truncation of the given value, set allowTruncatedValue
+ to true.
+
+ The canonical name.
+ The property value.
+ True to allow truncation (default); otherwise False.
+ If the given canonical name is not valid.
+
+
+
+ Writes the specified property using an IShellProperty and a value.
+
+ The property name.
+ The property value.
+
+
+
+ Writes the specified property given an IShellProperty and a value. To allow truncation of the given value, set allowTruncatedValue
+ to true.
+
+ The property name.
+ The property value.
+ True to allow truncation (default); otherwise False.
+
+
+
+ Writes the specified property using a strongly-typed ShellProperty and a value.
+
+ The type of the property name.
+ The property name.
+ The property value.
+
+
+
+ Writes the specified property given a strongly-typed ShellProperty and a value. To allow truncation of the given value, set allowTruncatedValue
+ to true.
+
+ The type of the property name.
+ The property name.
+ The property value.
+ True to allow truncation (default); otherwise False.
+
+
+
+ Release the native objects.
+
+
+
+
+
+
+
+
+
+ Release the native and managed objects.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+
+ Call this method to commit the writes (calls to WriteProperty method)
+ and dispose off the writer.
+
+
+
+
+ Reference to parent ShellObject (associated with this writer)
+
+
+
+
+ Provides easy access to all the system properties (property keys and their descriptions)
+
+
+
+
+ Returns the property description for a given property key.
+
+ Property key of the property whose description is required.
+ Property Description for a given property key
+
+
+
+ Gets the property description for a given property's canonical name.
+
+ Canonical name of the property whose description is required.
+ Property Description for a given property key
+
+
+
+ System Properties
+
+
+
+
+ Name: System.AcquisitionID -- PKEY_AcquisitionID
+ Description: Hash to determine acquisition session.
+
+ Type: Int32 -- VT_I4
+ FormatID: {65A98875-3C80-40AB-ABBC-EFDAF77DBEE2}, 100
+
+
+
+
+ Name: System.ApplicationName -- PKEY_ApplicationName
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR) Legacy code may treat this as VT_LPSTR.
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 18 (PIDSI_APPNAME)
+
+
+
+
+ Name: System.Author -- PKEY_Author
+ Description:
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR) Legacy code may treat this as VT_LPSTR.
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 4 (PIDSI_AUTHOR)
+
+
+
+
+ Name: System.Capacity -- PKEY_Capacity
+ Description: The amount of total space in bytes.
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_Volume) {9B174B35-40FF-11D2-A27E-00C04FC30871}, 3 (PID_VOLUME_CAPACITY) (Filesystem Volume Properties)
+
+
+
+
+ Name: System.Category -- PKEY_Category
+ Description: Legacy code treats this as VT_LPSTR.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 2 (PIDDSI_CATEGORY)
+
+
+
+
+ Name: System.Comment -- PKEY_Comment
+ Description: Comments.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR) Legacy code may treat this as VT_LPSTR.
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 6 (PIDSI_COMMENTS)
+
+
+
+
+ Name: System.Company -- PKEY_Company
+ Description: The company or publisher.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 15 (PIDDSI_COMPANY)
+
+
+
+
+ Name: System.ComputerName -- PKEY_ComputerName
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 5 (PID_COMPUTERNAME)
+
+
+
+
+ Name: System.ContainedItems -- PKEY_ContainedItems
+ Description: The list of type of items, this item contains. For example, this item contains urls, attachments etc.
+ This is represented as a vector array of GUIDs where each GUID represents certain type.
+
+ Type: Multivalue Guid -- VT_VECTOR | VT_CLSID (For variants: VT_ARRAY | VT_CLSID)
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 29
+
+
+
+
+ Name: System.ContentStatus -- PKEY_ContentStatus
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 27
+
+
+
+
+ Name: System.ContentType -- PKEY_ContentType
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 26
+
+
+
+
+ Name: System.Copyright -- PKEY_Copyright
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 11 (PIDMSI_COPYRIGHT)
+
+
+
+
+ Name: System.DateAccessed -- PKEY_DateAccessed
+ Description: The time of the last access to the item. The Indexing Service friendly name is 'access'.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 16 (PID_STG_ACCESSTIME)
+
+
+
+
+ Name: System.DateAcquired -- PKEY_DateAcquired
+ Description: The time the file entered the system via acquisition. This is not the same as System.DateImported.
+ Examples are when pictures are acquired from a camera, or when music is purchased online.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {2CBAA8F5-D81F-47CA-B17A-F8D822300131}, 100
+
+
+
+
+ Name: System.DateArchived -- PKEY_DateArchived
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {43F8D7B7-A444-4F87-9383-52271C9B915C}, 100
+
+
+
+
+ Name: System.DateCompleted -- PKEY_DateCompleted
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {72FAB781-ACDA-43E5-B155-B2434F85E678}, 100
+
+
+
+
+ Name: System.DateCreated -- PKEY_DateCreated
+ Description: The date and time the item was created. The Indexing Service friendly name is 'create'.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 15 (PID_STG_CREATETIME)
+
+
+
+
+ Name: System.DateImported -- PKEY_DateImported
+ Description: The time the file is imported into a separate database. This is not the same as System.DateAcquired. (Eg, 2003:05:22 13:55:04)
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 18258
+
+
+
+
+ Name: System.DateModified -- PKEY_DateModified
+ Description: The date and time of the last write to the item. The Indexing Service friendly name is 'write'.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 14 (PID_STG_WRITETIME)
+
+
+
+
+ Name: System.DescriptionID -- PKEY_DescriptionID
+ Description: The contents of a SHDESCRIPTIONID structure as a buffer of bytes.
+
+ Type: Buffer -- VT_VECTOR | VT_UI1 (For variants: VT_ARRAY | VT_UI1)
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 2 (PID_DESCRIPTIONID)
+
+
+
+
+ Name: System.DueDate -- PKEY_DueDate
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {3F8472B5-E0AF-4DB2-8071-C53FE76AE7CE}, 100
+
+
+
+
+ Name: System.EndDate -- PKEY_EndDate
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {C75FAA05-96FD-49E7-9CB4-9F601082D553}, 100
+
+
+
+
+ Name: System.FileAllocationSize -- PKEY_FileAllocationSize
+ Description:
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 18 (PID_STG_ALLOCSIZE)
+
+
+
+
+ Name: System.FileAttributes -- PKEY_FileAttributes
+ Description: This is the WIN32_FIND_DATA dwFileAttributes for the file-based item.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 13 (PID_STG_ATTRIBUTES)
+
+
+
+
+ Name: System.FileCount -- PKEY_FileCount
+ Description:
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 12
+
+
+
+
+ Name: System.FileDescription -- PKEY_FileDescription
+ Description: This is a user-friendly description of the file.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSFMTID_VERSION) {0CEF7D53-FA64-11D1-A203-0000F81FEDEE}, 3 (PIDVSI_FileDescription)
+
+
+
+
+ Name: System.FileExtension -- PKEY_FileExtension
+ Description: This is the file extension of the file based item, including the leading period.
+
+ If System.FileName is VT_EMPTY, then this property should be too. Otherwise, it should be derived
+ appropriately by the data source from System.FileName. If System.FileName does not have a file
+ extension, this value should be VT_EMPTY.
+
+ To obtain the type of any item (including an item that is not a file), use System.ItemType.
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" ".txt"
+ "\\server\share\mydir\goodnews.doc" ".doc"
+ "\\server\share\numbers.xls" ".xls"
+ "\\server\share\folder" VT_EMPTY
+ "c:\foo\MyFolder" VT_EMPTY
+ [desktop] VT_EMPTY
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E4F10A3C-49E6-405D-8288-A23BD4EEAA6C}, 100
+
+
+
+
+ Name: System.FileFRN -- PKEY_FileFRN
+ Description: This is the unique file ID, also known as the File Reference Number. For a given file, this is the same value
+ as is found in the structure variable FILE_ID_BOTH_DIR_INFO.FileId, via GetFileInformationByHandleEx().
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 21 (PID_STG_FRN)
+
+
+
+
+ Name: System.FileName -- PKEY_FileName
+ Description: This is the file name (including extension) of the file.
+
+ It is possible that the item might not exist on a filesystem (ie, it may not be opened
+ using CreateFile). Nonetheless, if the item is represented as a file from the logical sense
+ (and its name follows standard Win32 file-naming syntax), then the data source should emit this property.
+
+ If an item is not a file, then the value for this property is VT_EMPTY. See
+ System.ItemNameDisplay.
+
+ This has the same value as System.ParsingName for items that are provided by the Shell's file folder.
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" "hello.txt"
+ "\\server\share\mydir\goodnews.doc" "goodnews.doc"
+ "\\server\share\numbers.xls" "numbers.xls"
+ "c:\foo\MyFolder" "MyFolder"
+ (email message) VT_EMPTY
+ (song on portable device) "song.wma"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {41CF5AE0-F75A-4806-BD87-59C7D9248EB9}, 100
+
+
+
+
+ Name: System.FileOwner -- PKEY_FileOwner
+ Description: This is the owner of the file, according to the file system.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_Misc) {9B174B34-40FF-11D2-A27E-00C04FC30871}, 4 (PID_MISC_OWNER)
+
+
+
+
+ Name: System.FileVersion -- PKEY_FileVersion
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSFMTID_VERSION) {0CEF7D53-FA64-11D1-A203-0000F81FEDEE}, 4 (PIDVSI_FileVersion)
+
+
+
+
+ Name: System.FindData -- PKEY_FindData
+ Description: WIN32_FIND_DATAW in buffer of bytes.
+
+ Type: Buffer -- VT_VECTOR | VT_UI1 (For variants: VT_ARRAY | VT_UI1)
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 0 (PID_FINDDATA)
+
+
+
+
+ Name: System.FlagColor -- PKEY_FlagColor
+ Description:
+
+ Type: UInt16 -- VT_UI2
+ FormatID: {67DF94DE-0CA7-4D6F-B792-053A3E4F03CF}, 100
+
+
+
+
+ Name: System.FlagColorText -- PKEY_FlagColorText
+ Description: This is the user-friendly form of System.FlagColor. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {45EAE747-8E2A-40AE-8CBF-CA52ABA6152A}, 100
+
+
+
+
+ Name: System.FlagStatus -- PKEY_FlagStatus
+ Description: Status of Flag. Values: (0=none 1=white 2=Red). cdoPR_FLAG_STATUS
+
+ Type: Int32 -- VT_I4
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 12
+
+
+
+
+ Name: System.FlagStatusText -- PKEY_FlagStatusText
+ Description: This is the user-friendly form of System.FlagStatus. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {DC54FD2E-189D-4871-AA01-08C2F57A4ABC}, 100
+
+
+
+
+ Name: System.FreeSpace -- PKEY_FreeSpace
+ Description: The amount of free space in bytes.
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_Volume) {9B174B35-40FF-11D2-A27E-00C04FC30871}, 2 (PID_VOLUME_FREE) (Filesystem Volume Properties)
+
+
+
+
+ Name: System.FullText -- PKEY_FullText
+ Description: This PKEY is used to specify search terms that should be applied as broadly as possible,
+ across all valid properties for the data source(s) being searched. It should not be
+ emitted from a data source.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {1E3EE840-BC2B-476C-8237-2ACD1A839B22}, 6
+
+
+
+
+ Name: System.Identity -- PKEY_Identity
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {A26F4AFC-7346-4299-BE47-EB1AE613139F}, 100
+
+
+
+
+ Name: System.ImageParsingName -- PKEY_ImageParsingName
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D7750EE0-C6A4-48EC-B53E-B87B52E6D073}, 100
+
+
+
+
+ Name: System.Importance -- PKEY_Importance
+ Description:
+ Type: Int32 -- VT_I4
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 11
+
+
+
+
+ Name: System.ImportanceText -- PKEY_ImportanceText
+ Description: This is the user-friendly form of System.Importance. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {A3B29791-7713-4E1D-BB40-17DB85F01831}, 100
+
+
+
+
+ Name: System.InfoTipText -- PKEY_InfoTipText
+ Description: The text (with formatted property values) to show in the infotip.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 17
+
+
+
+
+ Name: System.InternalName -- PKEY_InternalName
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSFMTID_VERSION) {0CEF7D53-FA64-11D1-A203-0000F81FEDEE}, 5 (PIDVSI_InternalName)
+
+
+
+
+ Name: System.IsAttachment -- PKEY_IsAttachment
+ Description: Identifies if this item is an attachment.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {F23F425C-71A1-4FA8-922F-678EA4A60408}, 100
+
+
+
+
+ Name: System.IsDefaultNonOwnerSaveLocation -- PKEY_IsDefaultNonOwnerSaveLocation
+ Description: Identifies the default save location for a library for non-owners of the library
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {5D76B67F-9B3D-44BB-B6AE-25DA4F638A67}, 5
+
+
+
+
+ Name: System.IsDefaultSaveLocation -- PKEY_IsDefaultSaveLocation
+ Description: Identifies the default save location for a library for the owner of the library
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {5D76B67F-9B3D-44BB-B6AE-25DA4F638A67}, 3
+
+
+
+
+ Name: System.IsDeleted -- PKEY_IsDeleted
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {5CDA5FC8-33EE-4FF3-9094-AE7BD8868C4D}, 100
+
+
+
+
+ Name: System.IsEncrypted -- PKEY_IsEncrypted
+ Description: Is the item encrypted?
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {90E5E14E-648B-4826-B2AA-ACAF790E3513}, 10
+
+
+
+
+ Name: System.IsFlagged -- PKEY_IsFlagged
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {5DA84765-E3FF-4278-86B0-A27967FBDD03}, 100
+
+
+
+
+ Name: System.IsFlaggedComplete -- PKEY_IsFlaggedComplete
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {A6F360D2-55F9-48DE-B909-620E090A647C}, 100
+
+
+
+
+ Name: System.IsIncomplete -- PKEY_IsIncomplete
+ Description: Identifies if the message was not completely received for some error condition.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {346C8BD1-2E6A-4C45-89A4-61B78E8E700F}, 100
+
+
+
+
+ Name: System.IsLocationSupported -- PKEY_IsLocationSupported
+ Description: A bool value to know if a location is supported (locally indexable, or remotely indexed).
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {5D76B67F-9B3D-44BB-B6AE-25DA4F638A67}, 8
+
+
+
+
+ Name: System.IsPinnedToNameSpaceTree -- PKEY_IsPinnedToNameSpaceTree
+ Description: A bool value to know if a shell folder is pinned to the navigation pane
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {5D76B67F-9B3D-44BB-B6AE-25DA4F638A67}, 2
+
+
+
+
+ Name: System.IsRead -- PKEY_IsRead
+ Description: Has the item been read?
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 10
+
+
+
+
+ Name: System.IsSearchOnlyItem -- PKEY_IsSearchOnlyItem
+ Description: Identifies if a location or a library is search only
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {5D76B67F-9B3D-44BB-B6AE-25DA4F638A67}, 4
+
+
+
+
+ Name: System.IsSendToTarget -- PKEY_IsSendToTarget
+ Description: Provided by certain shell folders. Return TRUE if the folder is a valid Send To target.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 33
+
+
+
+
+ Name: System.IsShared -- PKEY_IsShared
+ Description: Is this item shared? This only checks for ACLs that are not inherited.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {EF884C5B-2BFE-41BB-AAE5-76EEDF4F9902}, 100
+
+
+
+
+ Name: System.ItemAuthors -- PKEY_ItemAuthors
+ Description: This is the generic list of authors associated with an item.
+
+ For example, the artist name for a track is the item author.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D0A04F0A-462A-48A4-BB2F-3706E88DBD7D}, 100
+
+
+
+
+ Name: System.ItemClassType -- PKEY_ItemClassType
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {048658AD-2DB8-41A4-BBB6-AC1EF1207EB1}, 100
+
+
+
+
+ Name: System.ItemDate -- PKEY_ItemDate
+ Description: This is the main date for an item. The date of interest.
+
+ For example, for photos this maps to System.Photo.DateTaken.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {F7DB74B4-4287-4103-AFBA-F1B13DCD75CF}, 100
+
+
+
+
+ Name: System.ItemFolderNameDisplay -- PKEY_ItemFolderNameDisplay
+ Description: This is the user-friendly display name of the parent folder of an item.
+
+ If System.ItemFolderPathDisplay is VT_EMPTY, then this property should be too. Otherwise, it
+ should be derived appropriately by the data source from System.ItemFolderPathDisplay.
+
+ If the folder is a file folder, the value will be localized if a localized name is available.
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" "bar"
+ "\\server\share\mydir\goodnews.doc" "mydir"
+ "\\server\share\numbers.xls" "share"
+ "c:\foo\MyFolder" "foo"
+ "/Mailbox Account/Inbox/'Re: Hello!'" "Inbox"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 2 (PID_STG_DIRECTORY)
+
+
+
+
+ Name: System.ItemFolderPathDisplay -- PKEY_ItemFolderPathDisplay
+ Description: This is the user-friendly display path of the parent folder of an item.
+
+ If System.ItemPathDisplay is VT_EMPTY, then this property should be too. Otherwise, it should
+ be derived appropriately by the data source from System.ItemPathDisplay.
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" "c:\foo\bar"
+ "\\server\share\mydir\goodnews.doc" "\\server\share\mydir"
+ "\\server\share\numbers.xls" "\\server\share"
+ "c:\foo\MyFolder" "c:\foo"
+ "/Mailbox Account/Inbox/'Re: Hello!'" "/Mailbox Account/Inbox"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 6
+
+
+
+
+ Name: System.ItemFolderPathDisplayNarrow -- PKEY_ItemFolderPathDisplayNarrow
+ Description: This is the user-friendly display path of the parent folder of an item. The format of the string
+ should be tailored such that the folder name comes first, to optimize for a narrow viewing column.
+
+ If the folder is a file folder, the value includes localized names if they are present.
+
+ If System.ItemFolderPathDisplay is VT_EMPTY, then this property should be too. Otherwise, it should
+ be derived appropriately by the data source from System.ItemFolderPathDisplay.
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" "bar (c:\foo)"
+ "\\server\share\mydir\goodnews.doc" "mydir (\\server\share)"
+ "\\server\share\numbers.xls" "share (\\server)"
+ "c:\foo\MyFolder" "foo (c:\)"
+ "/Mailbox Account/Inbox/'Re: Hello!'" "Inbox (/Mailbox Account)"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {DABD30ED-0043-4789-A7F8-D013A4736622}, 100
+
+
+
+
+ Name: System.ItemName -- PKEY_ItemName
+ Description: This is the base-name of the System.ItemNameDisplay.
+
+ If the item is a file this property
+ includes the extension in all cases, and will be localized if a localized name is available.
+
+ If the item is a message, then the value of this property does not include the forwarding or
+ reply prefixes (see System.ItemNamePrefix).
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6B8DA074-3B5C-43BC-886F-0A2CDCE00B6F}, 100
+
+
+
+
+ Name: System.ItemNameDisplay -- PKEY_ItemNameDisplay
+ Description: This is the display name in "most complete" form. This is the best effort unique representation
+ of the name of an item that makes sense for end users to read. It is the concatentation of
+ System.ItemNamePrefix and System.ItemName.
+
+ If the item is a file this property
+ includes the extension in all cases, and will be localized if a localized name is available.
+
+ There are acceptable cases when System.FileName is not VT_EMPTY, yet the value of this property
+ is completely different. Email messages are a key example. If the item is an email message,
+ the item name is likely the subject. In that case, the value must be the concatenation of the
+ System.ItemNamePrefix and System.ItemName. Since the value of System.ItemNamePrefix excludes
+ any trailing whitespace, the concatenation must include a whitespace when generating System.ItemNameDisplay.
+
+ Note that this property is not guaranteed to be unique, but the idea is to promote the most likely
+ candidate that can be unique and also makes sense for end users. For example, for documents, you
+ might think about using System.Title as the System.ItemNameDisplay, but in practice the title of
+ the documents may not be useful or unique enough to be of value as the sole System.ItemNameDisplay.
+ Instead, providing the value of System.FileName as the value of System.ItemNameDisplay is a better
+ candidate. In Windows Mail, the emails are stored in the file system as .eml files and the
+ System.FileName for those files are not human-friendly as they contain GUIDs. In this example,
+ promoting System.Subject as System.ItemNameDisplay makes more sense.
+
+ Compatibility notes:
+
+ Shell folder implementations on Vista: use PKEY_ItemNameDisplay for the name column when
+ you want Explorer to call ISF::GetDisplayNameOf(SHGDN_NORMAL) to get the value of the name. Use
+ another PKEY (like PKEY_ItemName) when you want Explorer to call either the folder's property store or
+ ISF2::GetDetailsEx in order to get the value of the name.
+
+ Shell folder implementations on XP: the first column needs to be the name column, and Explorer
+ will call ISF::GetDisplayNameOf to get the value of the name. The PKEY/SCID does not matter.
+
+ Example values:
+
+ File: "hello.txt"
+ Message: "Re: Let's talk about Tom's argyle socks!"
+ Device folder: "song.wma"
+ Folder: "Documents"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 10 (PID_STG_NAME)
+
+
+
+
+ Name: System.ItemNamePrefix -- PKEY_ItemNamePrefix
+ Description: This is the prefix of an item, used for email messages.
+ where the subject begins with "Re:" which is the prefix.
+
+ If the item is a file, then the value of this property is VT_EMPTY.
+
+ If the item is a message, then the value of this property is the forwarding or reply
+ prefixes (including delimiting colon, but no whitespace), or VT_EMPTY if there is no prefix.
+
+ Example values:
+
+ System.ItemNamePrefix System.ItemName System.ItemNameDisplay
+ --------------------- ------------------- ----------------------
+ VT_EMPTY "Great day" "Great day"
+ "Re:" "Great day" "Re: Great day"
+ "Fwd: " "Monthly budget" "Fwd: Monthly budget"
+ VT_EMPTY "accounts.xls" "accounts.xls"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D7313FF1-A77A-401C-8C99-3DBDD68ADD36}, 100
+
+
+
+
+ Name: System.ItemParticipants -- PKEY_ItemParticipants
+ Description: This is the generic list of people associated with an item and who contributed
+ to the item.
+
+ For example, this is the combination of people in the To list, Cc list and
+ sender of an email message.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D4D0AA16-9948-41A4-AA85-D97FF9646993}, 100
+
+
+
+
+ Name: System.ItemPathDisplay -- PKEY_ItemPathDisplay
+ Description: This is the user-friendly display path to the item.
+
+ If the item is a file or folder this property
+ includes the extension in all cases, and will be localized if a localized name is available.
+
+ For other items,this is the user-friendly equivalent, assuming the item exists in hierarchical storage.
+
+ Unlike System.ItemUrl, this property value does not include the URL scheme.
+
+ To parse an item path, use System.ItemUrl or System.ParsingPath. To reference shell
+ namespace items using shell APIs, use System.ParsingPath.
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" "c:\foo\bar\hello.txt"
+ "\\server\share\mydir\goodnews.doc" "\\server\share\mydir\goodnews.doc"
+ "\\server\share\numbers.xls" "\\server\share\numbers.xls"
+ "c:\foo\MyFolder" "c:\foo\MyFolder"
+ "/Mailbox Account/Inbox/'Re: Hello!'" "/Mailbox Account/Inbox/'Re: Hello!'"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 7
+
+
+
+
+ Name: System.ItemPathDisplayNarrow -- PKEY_ItemPathDisplayNarrow
+ Description: This is the user-friendly display path to the item. The format of the string should be
+ tailored such that the name comes first, to optimize for a narrow viewing column.
+
+ If the item is a file, the value excludes the file extension, and includes localized names if they are present.
+ If the item is a message, the value includes the System.ItemNamePrefix.
+
+ To parse an item path, use System.ItemUrl or System.ParsingPath.
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" "hello (c:\foo\bar)"
+ "\\server\share\mydir\goodnews.doc" "goodnews (\\server\share\mydir)"
+ "\\server\share\folder" "folder (\\server\share)"
+ "c:\foo\MyFolder" "MyFolder (c:\foo)"
+ "/Mailbox Account/Inbox/'Re: Hello!'" "Re: Hello! (/Mailbox Account/Inbox)"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 8
+
+
+
+
+ Name: System.ItemType -- PKEY_ItemType
+ Description: This is the canonical type of the item and is intended to be programmatically
+ parsed.
+
+ If there is no canonical type, the value is VT_EMPTY.
+
+ If the item is a file (ie, System.FileName is not VT_EMPTY), the value is the same as
+ System.FileExtension.
+
+ Use System.ItemTypeText when you want to display the type to end users in a view. (If
+ the item is a file, passing the System.ItemType value to PSFormatForDisplay will
+ result in the same value as System.ItemTypeText.)
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" ".txt"
+ "\\server\share\mydir\goodnews.doc" ".doc"
+ "\\server\share\folder" "Directory"
+ "c:\foo\MyFolder" "Directory"
+ [desktop] "Folder"
+ "/Mailbox Account/Inbox/'Re: Hello!'" "MAPI/IPM.Message"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 11
+
+
+
+
+ Name: System.ItemTypeText -- PKEY_ItemTypeText
+ Description: This is the user friendly type name of the item. This is not intended to be
+ programmatically parsed.
+
+ If System.ItemType is VT_EMPTY, the value of this property is also VT_EMPTY.
+
+ If the item is a file, the value of this property is the same as if you passed the
+ file's System.ItemType value to PSFormatForDisplay.
+
+ This property should not be confused with System.Kind, where System.Kind is a high-level
+ user friendly kind name. For example, for a document, System.Kind = "Document" and
+ System.Item.Type = ".doc" and System.Item.TypeText = "Microsoft Word Document"
+
+ Example values:
+
+ If the path is... The property value is...
+ ----------------- ------------------------
+ "c:\foo\bar\hello.txt" "Text File"
+ "\\server\share\mydir\goodnews.doc" "Microsoft Word Document"
+ "\\server\share\folder" "File Folder"
+ "c:\foo\MyFolder" "File Folder"
+ "/Mailbox Account/Inbox/'Re: Hello!'" "Outlook E-Mail Message"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 4 (PID_STG_STORAGETYPE)
+
+
+
+
+ Name: System.ItemUrl -- PKEY_ItemUrl
+ Description: This always represents a well formed URL that points to the item.
+
+ To reference shell namespace items using shell APIs, use System.ParsingPath.
+
+ Example values:
+
+ Files: "file:///c:/foo/bar/hello.txt"
+ "csc://{GUID}/..."
+ Messages: "mapi://..."
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_Query) {49691C90-7E17-101A-A91C-08002B2ECDA9}, 9 (DISPID_QUERY_VIRTUALPATH)
+
+
+
+
+ Name: System.Keywords -- PKEY_Keywords
+ Description: The keywords for the item. Also referred to as tags.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR) Legacy code may treat this as VT_LPSTR.
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 5 (PIDSI_KEYWORDS)
+
+
+
+
+ Name: System.Kind -- PKEY_Kind
+ Description: System.Kind is used to map extensions to various .Search folders.
+ Extensions are mapped to Kinds at HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\KindMap
+ The list of kinds is not extensible.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {1E3EE840-BC2B-476C-8237-2ACD1A839B22}, 3
+
+
+
+
+ Name: System.KindText -- PKEY_KindText
+ Description: This is the user-friendly form of System.Kind. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {F04BEF95-C585-4197-A2B7-DF46FDC9EE6D}, 100
+
+
+
+
+ Name: System.Language -- PKEY_Language
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 28
+
+
+
+
+ Name: System.MileageInformation -- PKEY_MileageInformation
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {FDF84370-031A-4ADD-9E91-0D775F1C6605}, 100
+
+
+
+
+ Name: System.MIMEType -- PKEY_MIMEType
+ Description: The MIME type. Eg, for EML files: 'message/rfc822'.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {0B63E350-9CCC-11D0-BCDB-00805FCCCE04}, 5
+
+
+
+
+ Name: System.NamespaceCLSID -- PKEY_NamespaceCLSID
+ Description: The CLSID of the name space extension for an item, the object that implements IShellFolder for this item
+
+ Type: Guid -- VT_CLSID
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 6
+
+
+
+
+ Name: System.Null -- PKEY_Null
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {00000000-0000-0000-0000-000000000000}, 0
+
+
+
+
+ Name: System.OfflineAvailability -- PKEY_OfflineAvailability
+ Description:
+ Type: UInt32 -- VT_UI4
+ FormatID: {A94688B6-7D9F-4570-A648-E3DFC0AB2B3F}, 100
+
+
+
+
+ Name: System.OfflineStatus -- PKEY_OfflineStatus
+ Description:
+ Type: UInt32 -- VT_UI4
+ FormatID: {6D24888F-4718-4BDA-AFED-EA0FB4386CD8}, 100
+
+
+
+
+ Name: System.OriginalFileName -- PKEY_OriginalFileName
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSFMTID_VERSION) {0CEF7D53-FA64-11D1-A203-0000F81FEDEE}, 6
+
+
+
+
+ Name: System.OwnerSID -- PKEY_OwnerSID
+ Description: SID of the user that owns the library.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {5D76B67F-9B3D-44BB-B6AE-25DA4F638A67}, 6
+
+
+
+
+ Name: System.ParentalRating -- PKEY_ParentalRating
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 21 (PIDMSI_PARENTAL_RATING)
+
+
+
+
+ Name: System.ParentalRatingReason -- PKEY_ParentalRatingReason
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {10984E0A-F9F2-4321-B7EF-BAF195AF4319}, 100
+
+
+
+
+ Name: System.ParentalRatingsOrganization -- PKEY_ParentalRatingsOrganization
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {A7FE0840-1344-46F0-8D37-52ED712A4BF9}, 100
+
+
+
+
+ Name: System.ParsingBindContext -- PKEY_ParsingBindContext
+ Description: used to get the IBindCtx for an item for parsing
+
+ Type: Any -- VT_NULL Legacy code may treat this as VT_UNKNOWN.
+ FormatID: {DFB9A04D-362F-4CA3-B30B-0254B17B5B84}, 100
+
+
+
+
+ Name: System.ParsingName -- PKEY_ParsingName
+ Description: The shell namespace name of an item relative to a parent folder. This name may be passed to
+ IShellFolder::ParseDisplayName() of the parent shell folder.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 24
+
+
+
+
+ Name: System.ParsingPath -- PKEY_ParsingPath
+ Description: This is the shell namespace path to the item. This path may be passed to
+ SHParseDisplayName to parse the path to the correct shell folder.
+
+ If the item is a file, the value is identical to System.ItemPathDisplay.
+
+ If the item cannot be accessed through the shell namespace, this value is VT_EMPTY.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 30
+
+
+
+
+ Name: System.PerceivedType -- PKEY_PerceivedType
+ Description: The perceived type of a shell item, based upon its canonical type.
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 9
+
+
+
+
+ Name: System.PercentFull -- PKEY_PercentFull
+ Description: The amount filled as a percentage, multiplied by 100 (ie, the valid range is 0 through 100).
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_Volume) {9B174B35-40FF-11D2-A27E-00C04FC30871}, 5 (Filesystem Volume Properties)
+
+
+
+
+ Name: System.Priority -- PKEY_Priority
+ Description:
+
+ Type: UInt16 -- VT_UI2
+ FormatID: {9C1FCF74-2D97-41BA-B4AE-CB2E3661A6E4}, 5
+
+
+
+
+ Name: System.PriorityText -- PKEY_PriorityText
+ Description: This is the user-friendly form of System.Priority. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D98BE98B-B86B-4095-BF52-9D23B2E0A752}, 100
+
+
+
+
+ Name: System.Project -- PKEY_Project
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {39A7F922-477C-48DE-8BC8-B28441E342E3}, 100
+
+
+
+
+ Name: System.ProviderItemID -- PKEY_ProviderItemID
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {F21D9941-81F0-471A-ADEE-4E74B49217ED}, 100
+
+
+
+
+ Name: System.Rating -- PKEY_Rating
+ Description: Indicates the users preference rating of an item on a scale of 1-99 (1-12 = One Star,
+ 13-37 = Two Stars, 38-62 = Three Stars, 63-87 = Four Stars, 88-99 = Five Stars).
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 9 (PIDMSI_RATING)
+
+
+
+
+ Name: System.RatingText -- PKEY_RatingText
+ Description: This is the user-friendly form of System.Rating. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {90197CA7-FD8F-4E8C-9DA3-B57E1E609295}, 100
+
+
+
+
+ Name: System.Sensitivity -- PKEY_Sensitivity
+ Description:
+
+ Type: UInt16 -- VT_UI2
+ FormatID: {F8D3F6AC-4874-42CB-BE59-AB454B30716A}, 100
+
+
+
+
+ Name: System.SensitivityText -- PKEY_SensitivityText
+ Description: This is the user-friendly form of System.Sensitivity. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D0C7F054-3F72-4725-8527-129A577CB269}, 100
+
+
+
+
+ Name: System.SFGAOFlags -- PKEY_SFGAOFlags
+ Description: IShellFolder::GetAttributesOf flags, with SFGAO_PKEYSFGAOMASK attributes masked out.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 25
+
+
+
+
+ Name: System.SharedWith -- PKEY_SharedWith
+ Description: Who is the item shared with?
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {EF884C5B-2BFE-41BB-AAE5-76EEDF4F9902}, 200
+
+
+
+
+ Name: System.ShareUserRating -- PKEY_ShareUserRating
+ Description:
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 12 (PIDMSI_SHARE_USER_RATING)
+
+
+
+
+ Name: System.SharingStatus -- PKEY_SharingStatus
+ Description: What is the item's sharing status (not shared, shared, everyone (homegroup or everyone), or private)?
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {EF884C5B-2BFE-41BB-AAE5-76EEDF4F9902}, 300
+
+
+
+
+ Name: System.SimpleRating -- PKEY_SimpleRating
+ Description: Indicates the users preference rating of an item on a scale of 0-5 (0=unrated, 1=One Star, 2=Two Stars, 3=Three Stars,
+ 4=Four Stars, 5=Five Stars)
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {A09F084E-AD41-489F-8076-AA5BE3082BCA}, 100
+
+
+
+
+ Name: System.Size -- PKEY_Size
+ Description:
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 12 (PID_STG_SIZE)
+
+
+
+
+ Name: System.SoftwareUsed -- PKEY_SoftwareUsed
+ Description: PropertyTagSoftwareUsed
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 305
+
+
+
+
+ Name: System.SourceItem -- PKEY_SourceItem
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {668CDFA5-7A1B-4323-AE4B-E527393A1D81}, 100
+
+
+
+
+ Name: System.StartDate -- PKEY_StartDate
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {48FD6EC8-8A12-4CDF-A03E-4EC5A511EDDE}, 100
+
+
+
+
+ Name: System.Status -- PKEY_Status
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_IntSite) {000214A1-0000-0000-C000-000000000046}, 9
+
+
+
+
+ Name: System.Subject -- PKEY_Subject
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 3 (PIDSI_SUBJECT)
+
+
+
+
+ Name: System.Thumbnail -- PKEY_Thumbnail
+ Description: A data that represents the thumbnail in VT_CF format.
+
+ Type: Clipboard -- VT_CF
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 17 (PIDSI_THUMBNAIL)
+
+
+
+
+ Name: System.ThumbnailCacheId -- PKEY_ThumbnailCacheId
+ Description: Unique value that can be used as a key to cache thumbnails. The value changes when the name, volume, or data modified
+ of an item changes.
+
+ Type: UInt64 -- VT_UI8
+ FormatID: {446D16B1-8DAD-4870-A748-402EA43D788C}, 100
+
+
+
+
+ Name: System.ThumbnailStream -- PKEY_ThumbnailStream
+ Description: Data that represents the thumbnail in VT_STREAM format that GDI+/WindowsCodecs supports (jpg, png, etc).
+
+ Type: Stream -- VT_STREAM
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 27
+
+
+
+
+ Name: System.Title -- PKEY_Title
+ Description: Title of item.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR) Legacy code may treat this as VT_LPSTR.
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 2 (PIDSI_TITLE)
+
+
+
+
+ Name: System.TotalFileSize -- PKEY_TotalFileSize
+ Description:
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 14
+
+
+
+
+ Name: System.Trademarks -- PKEY_Trademarks
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSFMTID_VERSION) {0CEF7D53-FA64-11D1-A203-0000F81FEDEE}, 9 (PIDVSI_Trademarks)
+
+
+
+
+ AppUserModel Properties
+
+
+
+
+ Name: System.AppUserModel.ExcludeFromShowInNewInstall -- PKEY_AppUserModel_ExcludeFromShowInNewInstall
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}, 8
+
+
+
+
+ Name: System.AppUserModel.ID -- PKEY_AppUserModel_ID
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}, 5
+
+
+
+
+ Name: System.AppUserModel.IsDestListSeparator -- PKEY_AppUserModel_IsDestListSeparator
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}, 6
+
+
+
+
+ Name: System.AppUserModel.PreventPinning -- PKEY_AppUserModel_PreventPinning
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}, 9
+
+
+
+
+ Name: System.AppUserModel.RelaunchCommand -- PKEY_AppUserModel_RelaunchCommand
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}, 2
+
+
+
+
+ Name: System.AppUserModel.RelaunchDisplayNameResource -- PKEY_AppUserModel_RelaunchDisplayNameResource
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}, 4
+
+
+
+
+ Name: System.AppUserModel.RelaunchIconResource -- PKEY_AppUserModel_RelaunchIconResource
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}, 3
+
+
+
+
+ Audio Properties
+
+
+
+
+ Name: System.Audio.ChannelCount -- PKEY_Audio_ChannelCount
+ Description: Indicates the channel count for the audio file. Values: 1 (mono), 2 (stereo).
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 7 (PIDASI_CHANNEL_COUNT)
+
+
+
+
+ Name: System.Audio.Compression -- PKEY_Audio_Compression
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 10 (PIDASI_COMPRESSION)
+
+
+
+
+ Name: System.Audio.EncodingBitrate -- PKEY_Audio_EncodingBitrate
+ Description: Indicates the average data rate in Hz for the audio file in "bits per second".
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 4 (PIDASI_AVG_DATA_RATE)
+
+
+
+
+ Name: System.Audio.Format -- PKEY_Audio_Format
+ Description: Indicates the format of the audio file.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR) Legacy code may treat this as VT_BSTR.
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 2 (PIDASI_FORMAT)
+
+
+
+
+ Name: System.Audio.IsVariableBitRate -- PKEY_Audio_IsVariableBitRate
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {E6822FEE-8C17-4D62-823C-8E9CFCBD1D5C}, 100
+
+
+
+
+ Name: System.Audio.PeakValue -- PKEY_Audio_PeakValue
+ Description:
+ Type: UInt32 -- VT_UI4
+ FormatID: {2579E5D0-1116-4084-BD9A-9B4F7CB4DF5E}, 100
+
+
+
+
+ Name: System.Audio.SampleRate -- PKEY_Audio_SampleRate
+ Description: Indicates the audio sample rate for the audio file in "samples per second".
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 5 (PIDASI_SAMPLE_RATE)
+
+
+
+
+ Name: System.Audio.SampleSize -- PKEY_Audio_SampleSize
+ Description: Indicates the audio sample size for the audio file in "bits per sample".
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 6 (PIDASI_SAMPLE_SIZE)
+
+
+
+
+ Name: System.Audio.StreamName -- PKEY_Audio_StreamName
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 9 (PIDASI_STREAM_NAME)
+
+
+
+
+ Name: System.Audio.StreamNumber -- PKEY_Audio_StreamNumber
+ Description:
+
+ Type: UInt16 -- VT_UI2
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 8 (PIDASI_STREAM_NUMBER)
+
+
+
+
+ Calendar Properties
+
+
+
+
+ Name: System.Calendar.Duration -- PKEY_Calendar_Duration
+ Description: The duration as specified in a string.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {293CA35A-09AA-4DD2-B180-1FE245728A52}, 100
+
+
+
+
+ Name: System.Calendar.IsOnline -- PKEY_Calendar_IsOnline
+ Description: Identifies if the event is an online event.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {BFEE9149-E3E2-49A7-A862-C05988145CEC}, 100
+
+
+
+
+ Name: System.Calendar.IsRecurring -- PKEY_Calendar_IsRecurring
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {315B9C8D-80A9-4EF9-AE16-8E746DA51D70}, 100
+
+
+
+
+ Name: System.Calendar.Location -- PKEY_Calendar_Location
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {F6272D18-CECC-40B1-B26A-3911717AA7BD}, 100
+
+
+
+
+ Name: System.Calendar.OptionalAttendeeAddresses -- PKEY_Calendar_OptionalAttendeeAddresses
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D55BAE5A-3892-417A-A649-C6AC5AAAEAB3}, 100
+
+
+
+
+ Name: System.Calendar.OptionalAttendeeNames -- PKEY_Calendar_OptionalAttendeeNames
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {09429607-582D-437F-84C3-DE93A2B24C3C}, 100
+
+
+
+
+ Name: System.Calendar.OrganizerAddress -- PKEY_Calendar_OrganizerAddress
+ Description: Address of the organizer organizing the event.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {744C8242-4DF5-456C-AB9E-014EFB9021E3}, 100
+
+
+
+
+ Name: System.Calendar.OrganizerName -- PKEY_Calendar_OrganizerName
+ Description: Name of the organizer organizing the event.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {AAA660F9-9865-458E-B484-01BC7FE3973E}, 100
+
+
+
+
+ Name: System.Calendar.ReminderTime -- PKEY_Calendar_ReminderTime
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {72FC5BA4-24F9-4011-9F3F-ADD27AFAD818}, 100
+
+
+
+
+ Name: System.Calendar.RequiredAttendeeAddresses -- PKEY_Calendar_RequiredAttendeeAddresses
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {0BA7D6C3-568D-4159-AB91-781A91FB71E5}, 100
+
+
+
+
+ Name: System.Calendar.RequiredAttendeeNames -- PKEY_Calendar_RequiredAttendeeNames
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {B33AF30B-F552-4584-936C-CB93E5CDA29F}, 100
+
+
+
+
+ Name: System.Calendar.Resources -- PKEY_Calendar_Resources
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {00F58A38-C54B-4C40-8696-97235980EAE1}, 100
+
+
+
+
+ Name: System.Calendar.ResponseStatus -- PKEY_Calendar_ResponseStatus
+ Description: This property stores the status of the user responses to meetings in her calendar.
+
+ Type: UInt16 -- VT_UI2
+ FormatID: {188C1F91-3C40-4132-9EC5-D8B03B72A8A2}, 100
+
+
+
+
+ Name: System.Calendar.ShowTimeAs -- PKEY_Calendar_ShowTimeAs
+ Description:
+
+ Type: UInt16 -- VT_UI2
+ FormatID: {5BF396D4-5EB2-466F-BDE9-2FB3F2361D6E}, 100
+
+
+
+
+ Name: System.Calendar.ShowTimeAsText -- PKEY_Calendar_ShowTimeAsText
+ Description: This is the user-friendly form of System.Calendar.ShowTimeAs. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {53DA57CF-62C0-45C4-81DE-7610BCEFD7F5}, 100
+
+
+
+
+ Communication Properties
+
+
+
+
+ Name: System.Communication.AccountName -- PKEY_Communication_AccountName
+ Description: Account Name
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 9
+
+
+
+
+ Name: System.Communication.DateItemExpires -- PKEY_Communication_DateItemExpires
+ Description: Date the item expires due to the retention policy.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {428040AC-A177-4C8A-9760-F6F761227F9A}, 100
+
+
+
+
+ Name: System.Communication.FollowupIconIndex -- PKEY_Communication_FollowupIconIndex
+ Description: This is the icon index used on messages marked for followup.
+
+ Type: Int32 -- VT_I4
+ FormatID: {83A6347E-6FE4-4F40-BA9C-C4865240D1F4}, 100
+
+
+
+
+ Name: System.Communication.HeaderItem -- PKEY_Communication_HeaderItem
+ Description: This property will be true if the item is a header item which means the item hasn't been fully downloaded.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {C9C34F84-2241-4401-B607-BD20ED75AE7F}, 100
+
+
+
+
+ Name: System.Communication.PolicyTag -- PKEY_Communication_PolicyTag
+ Description: This a string used to identify the retention policy applied to the item.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {EC0B4191-AB0B-4C66-90B6-C6637CDEBBAB}, 100
+
+
+
+
+ Name: System.Communication.SecurityFlags -- PKEY_Communication_SecurityFlags
+ Description: Security flags associated with the item to know if the item is encrypted, signed or DRM enabled.
+
+ Type: Int32 -- VT_I4
+ FormatID: {8619A4B6-9F4D-4429-8C0F-B996CA59E335}, 100
+
+
+
+
+ Name: System.Communication.Suffix -- PKEY_Communication_Suffix
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {807B653A-9E91-43EF-8F97-11CE04EE20C5}, 100
+
+
+
+
+ Name: System.Communication.TaskStatus -- PKEY_Communication_TaskStatus
+ Description:
+ Type: UInt16 -- VT_UI2
+ FormatID: {BE1A72C6-9A1D-46B7-AFE7-AFAF8CEF4999}, 100
+
+
+
+
+ Name: System.Communication.TaskStatusText -- PKEY_Communication_TaskStatusText
+ Description: This is the user-friendly form of System.Communication.TaskStatus. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {A6744477-C237-475B-A075-54F34498292A}, 100
+
+
+
+
+ Computer Properties
+
+
+
+
+ Name: System.Computer.DecoratedFreeSpace -- PKEY_Computer_DecoratedFreeSpace
+ Description: Free space and total space: "%s free of %s"
+
+ Type: Multivalue UInt64 -- VT_VECTOR | VT_UI8 (For variants: VT_ARRAY | VT_UI8)
+ FormatID: (FMTID_Volume) {9B174B35-40FF-11D2-A27E-00C04FC30871}, 7 (Filesystem Volume Properties)
+
+
+
+
+ Contact Properties
+
+
+
+
+ Name: System.Contact.Anniversary -- PKEY_Contact_Anniversary
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {9AD5BADB-CEA7-4470-A03D-B84E51B9949E}, 100
+
+
+
+
+ Name: System.Contact.AssistantName -- PKEY_Contact_AssistantName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CD102C9C-5540-4A88-A6F6-64E4981C8CD1}, 100
+
+
+
+
+ Name: System.Contact.AssistantTelephone -- PKEY_Contact_AssistantTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {9A93244D-A7AD-4FF8-9B99-45EE4CC09AF6}, 100
+
+
+
+
+ Name: System.Contact.Birthday -- PKEY_Contact_Birthday
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 47
+
+
+
+
+ Name: System.Contact.BusinessAddress -- PKEY_Contact_BusinessAddress
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {730FB6DD-CF7C-426B-A03F-BD166CC9EE24}, 100
+
+
+
+
+ Name: System.Contact.BusinessAddressCity -- PKEY_Contact_BusinessAddressCity
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {402B5934-EC5A-48C3-93E6-85E86A2D934E}, 100
+
+
+
+
+ Name: System.Contact.BusinessAddressCountry -- PKEY_Contact_BusinessAddressCountry
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {B0B87314-FCF6-4FEB-8DFF-A50DA6AF561C}, 100
+
+
+
+
+ Name: System.Contact.BusinessAddressPostalCode -- PKEY_Contact_BusinessAddressPostalCode
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E1D4A09E-D758-4CD1-B6EC-34A8B5A73F80}, 100
+
+
+
+
+ Name: System.Contact.BusinessAddressPostOfficeBox -- PKEY_Contact_BusinessAddressPostOfficeBox
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {BC4E71CE-17F9-48D5-BEE9-021DF0EA5409}, 100
+
+
+
+
+ Name: System.Contact.BusinessAddressState -- PKEY_Contact_BusinessAddressState
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {446F787F-10C4-41CB-A6C4-4D0343551597}, 100
+
+
+
+
+ Name: System.Contact.BusinessAddressStreet -- PKEY_Contact_BusinessAddressStreet
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {DDD1460F-C0BF-4553-8CE4-10433C908FB0}, 100
+
+
+
+
+ Name: System.Contact.BusinessFaxNumber -- PKEY_Contact_BusinessFaxNumber
+ Description: Business fax number of the contact.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {91EFF6F3-2E27-42CA-933E-7C999FBE310B}, 100
+
+
+
+
+ Name: System.Contact.BusinessHomePage -- PKEY_Contact_BusinessHomePage
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {56310920-2491-4919-99CE-EADB06FAFDB2}, 100
+
+
+
+
+ Name: System.Contact.BusinessTelephone -- PKEY_Contact_BusinessTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6A15E5A0-0A1E-4CD7-BB8C-D2F1B0C929BC}, 100
+
+
+
+
+ Name: System.Contact.CallbackTelephone -- PKEY_Contact_CallbackTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {BF53D1C3-49E0-4F7F-8567-5A821D8AC542}, 100
+
+
+
+
+ Name: System.Contact.CarTelephone -- PKEY_Contact_CarTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {8FDC6DEA-B929-412B-BA90-397A257465FE}, 100
+
+
+
+
+ Name: System.Contact.Children -- PKEY_Contact_Children
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D4729704-8EF1-43EF-9024-2BD381187FD5}, 100
+
+
+
+
+ Name: System.Contact.CompanyMainTelephone -- PKEY_Contact_CompanyMainTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {8589E481-6040-473D-B171-7FA89C2708ED}, 100
+
+
+
+
+ Name: System.Contact.Department -- PKEY_Contact_Department
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {FC9F7306-FF8F-4D49-9FB6-3FFE5C0951EC}, 100
+
+
+
+
+ Name: System.Contact.EmailAddress -- PKEY_Contact_EmailAddress
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {F8FA7FA3-D12B-4785-8A4E-691A94F7A3E7}, 100
+
+
+
+
+ Name: System.Contact.EmailAddress2 -- PKEY_Contact_EmailAddress2
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {38965063-EDC8-4268-8491-B7723172CF29}, 100
+
+
+
+
+ Name: System.Contact.EmailAddress3 -- PKEY_Contact_EmailAddress3
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {644D37B4-E1B3-4BAD-B099-7E7C04966ACA}, 100
+
+
+
+
+ Name: System.Contact.EmailAddresses -- PKEY_Contact_EmailAddresses
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {84D8F337-981D-44B3-9615-C7596DBA17E3}, 100
+
+
+
+
+ Name: System.Contact.EmailName -- PKEY_Contact_EmailName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CC6F4F24-6083-4BD4-8754-674D0DE87AB8}, 100
+
+
+
+
+ Name: System.Contact.FileAsName -- PKEY_Contact_FileAsName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {F1A24AA7-9CA7-40F6-89EC-97DEF9FFE8DB}, 100
+
+
+
+
+ Name: System.Contact.FirstName -- PKEY_Contact_FirstName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {14977844-6B49-4AAD-A714-A4513BF60460}, 100
+
+
+
+
+ Name: System.Contact.FullName -- PKEY_Contact_FullName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {635E9051-50A5-4BA2-B9DB-4ED056C77296}, 100
+
+
+
+
+ Name: System.Contact.Gender -- PKEY_Contact_Gender
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {3C8CEE58-D4F0-4CF9-B756-4E5D24447BCD}, 100
+
+
+
+
+ Name: System.Contact.GenderValue -- PKEY_Contact_GenderValue
+ Description:
+ Type: UInt16 -- VT_UI2
+ FormatID: {3C8CEE58-D4F0-4CF9-B756-4E5D24447BCD}, 101
+
+
+
+
+ Name: System.Contact.Hobbies -- PKEY_Contact_Hobbies
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {5DC2253F-5E11-4ADF-9CFE-910DD01E3E70}, 100
+
+
+
+
+ Name: System.Contact.HomeAddress -- PKEY_Contact_HomeAddress
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {98F98354-617A-46B8-8560-5B1B64BF1F89}, 100
+
+
+
+
+ Name: System.Contact.HomeAddressCity -- PKEY_Contact_HomeAddressCity
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 65
+
+
+
+
+ Name: System.Contact.HomeAddressCountry -- PKEY_Contact_HomeAddressCountry
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {08A65AA1-F4C9-43DD-9DDF-A33D8E7EAD85}, 100
+
+
+
+
+ Name: System.Contact.HomeAddressPostalCode -- PKEY_Contact_HomeAddressPostalCode
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {8AFCC170-8A46-4B53-9EEE-90BAE7151E62}, 100
+
+
+
+
+ Name: System.Contact.HomeAddressPostOfficeBox -- PKEY_Contact_HomeAddressPostOfficeBox
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7B9F6399-0A3F-4B12-89BD-4ADC51C918AF}, 100
+
+
+
+
+ Name: System.Contact.HomeAddressState -- PKEY_Contact_HomeAddressState
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C89A23D0-7D6D-4EB8-87D4-776A82D493E5}, 100
+
+
+
+
+ Name: System.Contact.HomeAddressStreet -- PKEY_Contact_HomeAddressStreet
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {0ADEF160-DB3F-4308-9A21-06237B16FA2A}, 100
+
+
+
+
+ Name: System.Contact.HomeFaxNumber -- PKEY_Contact_HomeFaxNumber
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {660E04D6-81AB-4977-A09F-82313113AB26}, 100
+
+
+
+
+ Name: System.Contact.HomeTelephone -- PKEY_Contact_HomeTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 20
+
+
+
+
+ Name: System.Contact.IMAddress -- PKEY_Contact_IMAddress
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D68DBD8A-3374-4B81-9972-3EC30682DB3D}, 100
+
+
+
+
+ Name: System.Contact.Initials -- PKEY_Contact_Initials
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {F3D8F40D-50CB-44A2-9718-40CB9119495D}, 100
+
+
+
+
+ Name: System.Contact.JobTitle -- PKEY_Contact_JobTitle
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 6
+
+
+
+
+ Name: System.Contact.Label -- PKEY_Contact_Label
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {97B0AD89-DF49-49CC-834E-660974FD755B}, 100
+
+
+
+
+ Name: System.Contact.LastName -- PKEY_Contact_LastName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {8F367200-C270-457C-B1D4-E07C5BCD90C7}, 100
+
+
+
+
+ Name: System.Contact.MailingAddress -- PKEY_Contact_MailingAddress
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C0AC206A-827E-4650-95AE-77E2BB74FCC9}, 100
+
+
+
+
+ Name: System.Contact.MiddleName -- PKEY_Contact_MiddleName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 71
+
+
+
+
+ Name: System.Contact.MobileTelephone -- PKEY_Contact_MobileTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 35
+
+
+
+
+ Name: System.Contact.NickName -- PKEY_Contact_NickName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 74
+
+
+
+
+ Name: System.Contact.OfficeLocation -- PKEY_Contact_OfficeLocation
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 7
+
+
+
+
+ Name: System.Contact.OtherAddress -- PKEY_Contact_OtherAddress
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {508161FA-313B-43D5-83A1-C1ACCF68622C}, 100
+
+
+
+
+ Name: System.Contact.OtherAddressCity -- PKEY_Contact_OtherAddressCity
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6E682923-7F7B-4F0C-A337-CFCA296687BF}, 100
+
+
+
+
+ Name: System.Contact.OtherAddressCountry -- PKEY_Contact_OtherAddressCountry
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {8F167568-0AAE-4322-8ED9-6055B7B0E398}, 100
+
+
+
+
+ Name: System.Contact.OtherAddressPostalCode -- PKEY_Contact_OtherAddressPostalCode
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {95C656C1-2ABF-4148-9ED3-9EC602E3B7CD}, 100
+
+
+
+
+ Name: System.Contact.OtherAddressPostOfficeBox -- PKEY_Contact_OtherAddressPostOfficeBox
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {8B26EA41-058F-43F6-AECC-4035681CE977}, 100
+
+
+
+
+ Name: System.Contact.OtherAddressState -- PKEY_Contact_OtherAddressState
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {71B377D6-E570-425F-A170-809FAE73E54E}, 100
+
+
+
+
+ Name: System.Contact.OtherAddressStreet -- PKEY_Contact_OtherAddressStreet
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {FF962609-B7D6-4999-862D-95180D529AEA}, 100
+
+
+
+
+ Name: System.Contact.PagerTelephone -- PKEY_Contact_PagerTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D6304E01-F8F5-4F45-8B15-D024A6296789}, 100
+
+
+
+
+ Name: System.Contact.PersonalTitle -- PKEY_Contact_PersonalTitle
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 69
+
+
+
+
+ Name: System.Contact.PrimaryAddressCity -- PKEY_Contact_PrimaryAddressCity
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C8EA94F0-A9E3-4969-A94B-9C62A95324E0}, 100
+
+
+
+
+ Name: System.Contact.PrimaryAddressCountry -- PKEY_Contact_PrimaryAddressCountry
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E53D799D-0F3F-466E-B2FF-74634A3CB7A4}, 100
+
+
+
+
+ Name: System.Contact.PrimaryAddressPostalCode -- PKEY_Contact_PrimaryAddressPostalCode
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {18BBD425-ECFD-46EF-B612-7B4A6034EDA0}, 100
+
+
+
+
+ Name: System.Contact.PrimaryAddressPostOfficeBox -- PKEY_Contact_PrimaryAddressPostOfficeBox
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {DE5EF3C7-46E1-484E-9999-62C5308394C1}, 100
+
+
+
+
+ Name: System.Contact.PrimaryAddressState -- PKEY_Contact_PrimaryAddressState
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {F1176DFE-7138-4640-8B4C-AE375DC70A6D}, 100
+
+
+
+
+ Name: System.Contact.PrimaryAddressStreet -- PKEY_Contact_PrimaryAddressStreet
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {63C25B20-96BE-488F-8788-C09C407AD812}, 100
+
+
+
+
+ Name: System.Contact.PrimaryEmailAddress -- PKEY_Contact_PrimaryEmailAddress
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 48
+
+
+
+
+ Name: System.Contact.PrimaryTelephone -- PKEY_Contact_PrimaryTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 25
+
+
+
+
+ Name: System.Contact.Profession -- PKEY_Contact_Profession
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7268AF55-1CE4-4F6E-A41F-B6E4EF10E4A9}, 100
+
+
+
+
+ Name: System.Contact.SpouseName -- PKEY_Contact_SpouseName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {9D2408B6-3167-422B-82B0-F583B7A7CFE3}, 100
+
+
+
+
+ Name: System.Contact.Suffix -- PKEY_Contact_Suffix
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {176DC63C-2688-4E89-8143-A347800F25E9}, 73
+
+
+
+
+ Name: System.Contact.TelexNumber -- PKEY_Contact_TelexNumber
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C554493C-C1F7-40C1-A76C-EF8C0614003E}, 100
+
+
+
+
+ Name: System.Contact.TTYTDDTelephone -- PKEY_Contact_TTYTDDTelephone
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {AAF16BAC-2B55-45E6-9F6D-415EB94910DF}, 100
+
+
+
+
+ Name: System.Contact.WebPage -- PKEY_Contact_WebPage
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 18
+
+
+
+
+ JA Properties
+
+
+
+
+ Name: System.Contact.JA.CompanyNamePhonetic -- PKEY_Contact_JA_CompanyNamePhonetic
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {897B3694-FE9E-43E6-8066-260F590C0100}, 2
+
+
+
+
+ Name: System.Contact.JA.FirstNamePhonetic -- PKEY_Contact_JA_FirstNamePhonetic
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {897B3694-FE9E-43E6-8066-260F590C0100}, 3
+
+
+
+
+ Name: System.Contact.JA.LastNamePhonetic -- PKEY_Contact_JA_LastNamePhonetic
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {897B3694-FE9E-43E6-8066-260F590C0100}, 4
+
+
+
+
+ JA Properties
+
+
+
+
+ Name: System.Contact.JA.CompanyNamePhonetic -- PKEY_Contact_JA_CompanyNamePhonetic
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {897B3694-FE9E-43E6-8066-260F590C0100}, 2
+
+
+
+
+ Name: System.Contact.JA.FirstNamePhonetic -- PKEY_Contact_JA_FirstNamePhonetic
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {897B3694-FE9E-43E6-8066-260F590C0100}, 3
+
+
+
+
+ Name: System.Contact.JA.LastNamePhonetic -- PKEY_Contact_JA_LastNamePhonetic
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {897B3694-FE9E-43E6-8066-260F590C0100}, 4
+
+
+
+
+ Device Properties
+
+
+
+
+ Name: System.Device.PrinterURL -- PKEY_Device_PrinterURL
+ Description: Printer information Printer URL.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {0B48F35A-BE6E-4F17-B108-3C4073D1669A}, 15
+
+
+
+
+ DeviceInterface Properties
+
+
+
+
+ Name: System.DeviceInterface.PrinterDriverDirectory -- PKEY_DeviceInterface_PrinterDriverDirectory
+ Description: Printer information Printer Driver Directory.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {847C66DE-B8D6-4AF9-ABC3-6F4F926BC039}, 14
+
+
+
+
+ Name: System.DeviceInterface.PrinterDriverName -- PKEY_DeviceInterface_PrinterDriverName
+ Description: Printer information Driver Name.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {AFC47170-14F5-498C-8F30-B0D19BE449C6}, 11
+
+
+
+
+ Name: System.DeviceInterface.PrinterName -- PKEY_DeviceInterface_PrinterName
+ Description: Printer information Printer Name.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {0A7B84EF-0C27-463F-84EF-06C5070001BE}, 10
+
+
+
+
+ Name: System.DeviceInterface.PrinterPortName -- PKEY_DeviceInterface_PrinterPortName
+ Description: Printer information Port Name.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {EEC7B761-6F94-41B1-949F-C729720DD13C}, 12
+
+
+
+
+ Devices Properties
+
+
+
+
+ Name: System.Devices.BatteryLife -- PKEY_Devices_BatteryLife
+ Description: Remaining battery life of the device as an integer between 0 and 100 percent.
+
+ Type: Byte -- VT_UI1
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 10
+
+
+
+
+ Name: System.Devices.BatteryPlusCharging -- PKEY_Devices_BatteryPlusCharging
+ Description: Remaining battery life of the device as an integer between 0 and 100 percent and the device's charging state.
+
+ Type: Byte -- VT_UI1
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 22
+
+
+
+
+ Name: System.Devices.BatteryPlusChargingText -- PKEY_Devices_BatteryPlusChargingText
+ Description: Remaining battery life of the device and the device's charging state as a string.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 23
+
+
+
+
+ Name: System.Devices.Category -- PKEY_Devices_Category_Desc_Singular
+ Description: Singular form of device category.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 91
+
+
+
+
+ Name: System.Devices.CategoryGroup -- PKEY_Devices_CategoryGroup_Desc
+ Description: Plural form of device category.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 94
+
+
+
+
+ Name: System.Devices.CategoryPlural -- PKEY_Devices_Category_Desc_Plural
+ Description: Plural form of device category.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 92
+
+
+
+
+ Name: System.Devices.ChargingState -- PKEY_Devices_ChargingState
+ Description: Boolean value representing if the device is currently charging.
+
+ Type: Byte -- VT_UI1
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 11
+
+
+
+
+ Name: System.Devices.Connected -- PKEY_Devices_IsConnected
+ Description: Device connection state. If VARIANT_TRUE, indicates the device is currently connected to the computer.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 55
+
+
+
+
+ Name: System.Devices.ContainerId -- PKEY_Devices_ContainerId
+ Description: Device container ID.
+
+ Type: Guid -- VT_CLSID
+ FormatID: {8C7ED206-3F8A-4827-B3AB-AE9E1FAEFC6C}, 2
+
+
+
+
+ Name: System.Devices.DefaultTooltip -- PKEY_Devices_DefaultTooltip
+ Description: Tooltip for default state
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {880F70A2-6082-47AC-8AAB-A739D1A300C3}, 153
+
+
+
+
+ Name: System.Devices.DeviceDescription1 -- PKEY_Devices_DeviceDescription1
+ Description: First line of descriptive text about the device.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 81
+
+
+
+
+ Name: System.Devices.DeviceDescription2 -- PKEY_Devices_DeviceDescription2
+ Description: Second line of descriptive text about the device.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 82
+
+
+
+
+ Name: System.Devices.DiscoveryMethod -- PKEY_Devices_DiscoveryMethod
+ Description: Device discovery method. This indicates on what transport or physical connection the device is discovered.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 52
+
+
+
+
+ Name: System.Devices.FriendlyName -- PKEY_Devices_FriendlyName
+ Description: Device friendly name.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {656A3BB3-ECC0-43FD-8477-4AE0404A96CD}, 12288
+
+
+
+
+ Name: System.Devices.FunctionPaths -- PKEY_Devices_FunctionPaths
+ Description: Available functions for this device.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D08DD4C0-3A9E-462E-8290-7B636B2576B9}, 3
+
+
+
+
+ Name: System.Devices.InterfacePaths -- PKEY_Devices_InterfacePaths
+ Description: Available interfaces for this device.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D08DD4C0-3A9E-462E-8290-7B636B2576B9}, 2
+
+
+
+
+ Name: System.Devices.IsDefault -- PKEY_Devices_IsDefaultDevice
+ Description: If VARIANT_TRUE, the device is not working properly.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 86
+
+
+
+
+ Name: System.Devices.IsNetworkConnected -- PKEY_Devices_IsNetworkDevice
+ Description: If VARIANT_TRUE, the device is not working properly.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 85
+
+
+
+
+ Name: System.Devices.IsShared -- PKEY_Devices_IsSharedDevice
+ Description: If VARIANT_TRUE, the device is not working properly.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 84
+
+
+
+
+ Name: System.Devices.IsSoftwareInstalling -- PKEY_Devices_IsSoftwareInstalling
+ Description: If VARIANT_TRUE, the device installer is currently installing software.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {83DA6326-97A6-4088-9453-A1923F573B29}, 9
+
+
+
+
+ Name: System.Devices.LaunchDeviceStageFromExplorer -- PKEY_Devices_LaunchDeviceStageFromExplorer
+ Description: Indicates whether to launch Device Stage or not
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 77
+
+
+
+
+ Name: System.Devices.LocalMachine -- PKEY_Devices_IsLocalMachine
+ Description: If VARIANT_TRUE, the device in question is actually the computer.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 70
+
+
+
+
+ Name: System.Devices.Manufacturer -- PKEY_Devices_Manufacturer
+ Description: Device manufacturer.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {656A3BB3-ECC0-43FD-8477-4AE0404A96CD}, 8192
+
+
+
+
+ Name: System.Devices.MissedCalls -- PKEY_Devices_MissedCalls
+ Description: Number of missed calls on the device.
+
+ Type: Byte -- VT_UI1
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 5
+
+
+
+
+ Name: System.Devices.ModelName -- PKEY_Devices_ModelName
+ Description: Model name of the device.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {656A3BB3-ECC0-43FD-8477-4AE0404A96CD}, 8194
+
+
+
+
+ Name: System.Devices.ModelNumber -- PKEY_Devices_ModelNumber
+ Description: Model number of the device.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {656A3BB3-ECC0-43FD-8477-4AE0404A96CD}, 8195
+
+
+
+
+ Name: System.Devices.NetworkedTooltip -- PKEY_Devices_NetworkedTooltip
+ Description: Tooltip for connection state
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {880F70A2-6082-47AC-8AAB-A739D1A300C3}, 152
+
+
+
+
+ Name: System.Devices.NetworkName -- PKEY_Devices_NetworkName
+ Description: Name of the device's network.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 7
+
+
+
+
+ Name: System.Devices.NetworkType -- PKEY_Devices_NetworkType
+ Description: String representing the type of the device's network.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 8
+
+
+
+
+ Name: System.Devices.NewPictures -- PKEY_Devices_NewPictures
+ Description: Number of new pictures on the device.
+
+ Type: UInt16 -- VT_UI2
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 4
+
+
+
+
+ Name: System.Devices.Notification -- PKEY_Devices_Notification
+ Description: Device Notification Property.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {06704B0C-E830-4C81-9178-91E4E95A80A0}, 3
+
+
+
+
+ Name: System.Devices.NotificationStore -- PKEY_Devices_NotificationStore
+ Description: Device Notification Store.
+
+ Type: Object -- VT_UNKNOWN
+ FormatID: {06704B0C-E830-4C81-9178-91E4E95A80A0}, 2
+
+
+
+
+ Name: System.Devices.NotWorkingProperly -- PKEY_Devices_IsNotWorkingProperly
+ Description: If VARIANT_TRUE, the device is not working properly.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 83
+
+
+
+
+ Name: System.Devices.Paired -- PKEY_Devices_IsPaired
+ Description: Device paired state. If VARIANT_TRUE, indicates the device is not paired with the computer.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {78C34FC8-104A-4ACA-9EA4-524D52996E57}, 56
+
+
+
+
+ Name: System.Devices.PrimaryCategory -- PKEY_Devices_PrimaryCategory
+ Description: Primary category group for this device.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D08DD4C0-3A9E-462E-8290-7B636B2576B9}, 10
+
+
+
+
+ Name: System.Devices.Roaming -- PKEY_Devices_Roaming
+ Description: Status indicator used to indicate if the device is roaming.
+
+ Type: Byte -- VT_UI1
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 9
+
+
+
+
+ Name: System.Devices.SafeRemovalRequired -- PKEY_Devices_SafeRemovalRequired
+ Description: Indicates if a device requires safe removal or not
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {AFD97640-86A3-4210-B67C-289C41AABE55}, 2
+
+
+
+
+ Name: System.Devices.SharedTooltip -- PKEY_Devices_SharedTooltip
+ Description: Tooltip for sharing state
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {880F70A2-6082-47AC-8AAB-A739D1A300C3}, 151
+
+
+
+
+ Name: System.Devices.SignalStrength -- PKEY_Devices_SignalStrength
+ Description: Device signal strength.
+
+ Type: Byte -- VT_UI1
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 2
+
+
+
+
+ Name: System.Devices.Status1 -- PKEY_Devices_Status1
+ Description: 1st line of device status.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D08DD4C0-3A9E-462E-8290-7B636B2576B9}, 257
+
+
+
+
+ Name: System.Devices.Status2 -- PKEY_Devices_Status2
+ Description: 2nd line of device status.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D08DD4C0-3A9E-462E-8290-7B636B2576B9}, 258
+
+
+
+
+ Name: System.Devices.StorageCapacity -- PKEY_Devices_StorageCapacity
+ Description: Total storage capacity of the device.
+
+ Type: UInt64 -- VT_UI8
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 12
+
+
+
+
+ Name: System.Devices.StorageFreeSpace -- PKEY_Devices_StorageFreeSpace
+ Description: Total free space of the storage of the device.
+
+ Type: UInt64 -- VT_UI8
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 13
+
+
+
+
+ Name: System.Devices.StorageFreeSpacePercent -- PKEY_Devices_StorageFreeSpacePercent
+ Description: Total free space of the storage of the device as a percentage.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 14
+
+
+
+
+ Name: System.Devices.TextMessages -- PKEY_Devices_TextMessages
+ Description: Number of unread text messages on the device.
+
+ Type: Byte -- VT_UI1
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 3
+
+
+
+
+ Name: System.Devices.Voicemail -- PKEY_Devices_Voicemail
+ Description: Status indicator used to indicate if the device has voicemail.
+
+ Type: Byte -- VT_UI1
+ FormatID: {49CD1F76-5626-4B17-A4E8-18B4AA1A2213}, 6
+
+
+
+
+ Notifications Properties
+
+
+
+
+ Name: System.Devices.Notifications.LowBattery -- PKEY_Devices_Notification_LowBattery
+ Description: Device Low Battery Notification.
+
+ Type: Byte -- VT_UI1
+ FormatID: {C4C07F2B-8524-4E66-AE3A-A6235F103BEB}, 2
+
+
+
+
+ Name: System.Devices.Notifications.MissedCall -- PKEY_Devices_Notification_MissedCall
+ Description: Device Missed Call Notification.
+
+ Type: Byte -- VT_UI1
+ FormatID: {6614EF48-4EFE-4424-9EDA-C79F404EDF3E}, 2
+
+
+
+
+ Name: System.Devices.Notifications.NewMessage -- PKEY_Devices_Notification_NewMessage
+ Description: Device New Message Notification.
+
+ Type: Byte -- VT_UI1
+ FormatID: {2BE9260A-2012-4742-A555-F41B638B7DCB}, 2
+
+
+
+
+ Name: System.Devices.Notifications.NewVoicemail -- PKEY_Devices_Notification_NewVoicemail
+ Description: Device Voicemail Notification.
+
+ Type: Byte -- VT_UI1
+ FormatID: {59569556-0A08-4212-95B9-FAE2AD6413DB}, 2
+
+
+
+
+ Name: System.Devices.Notifications.StorageFull -- PKEY_Devices_Notification_StorageFull
+ Description: Device Storage Full Notification.
+
+ Type: UInt64 -- VT_UI8
+ FormatID: {A0E00EE1-F0C7-4D41-B8E7-26A7BD8D38B0}, 2
+
+
+
+
+ Name: System.Devices.Notifications.StorageFullLinkText -- PKEY_Devices_Notification_StorageFullLinkText
+ Description: Link Text for the Device Storage Full Notification.
+
+ Type: UInt64 -- VT_UI8
+ FormatID: {A0E00EE1-F0C7-4D41-B8E7-26A7BD8D38B0}, 3
+
+
+
+
+ Notifications Properties
+
+
+
+
+ Name: System.Devices.Notifications.LowBattery -- PKEY_Devices_Notification_LowBattery
+ Description: Device Low Battery Notification.
+
+ Type: Byte -- VT_UI1
+ FormatID: {C4C07F2B-8524-4E66-AE3A-A6235F103BEB}, 2
+
+
+
+
+ Name: System.Devices.Notifications.MissedCall -- PKEY_Devices_Notification_MissedCall
+ Description: Device Missed Call Notification.
+
+ Type: Byte -- VT_UI1
+ FormatID: {6614EF48-4EFE-4424-9EDA-C79F404EDF3E}, 2
+
+
+
+
+ Name: System.Devices.Notifications.NewMessage -- PKEY_Devices_Notification_NewMessage
+ Description: Device New Message Notification.
+
+ Type: Byte -- VT_UI1
+ FormatID: {2BE9260A-2012-4742-A555-F41B638B7DCB}, 2
+
+
+
+
+ Name: System.Devices.Notifications.NewVoicemail -- PKEY_Devices_Notification_NewVoicemail
+ Description: Device Voicemail Notification.
+
+ Type: Byte -- VT_UI1
+ FormatID: {59569556-0A08-4212-95B9-FAE2AD6413DB}, 2
+
+
+
+
+ Name: System.Devices.Notifications.StorageFull -- PKEY_Devices_Notification_StorageFull
+ Description: Device Storage Full Notification.
+
+ Type: UInt64 -- VT_UI8
+ FormatID: {A0E00EE1-F0C7-4D41-B8E7-26A7BD8D38B0}, 2
+
+
+
+
+ Name: System.Devices.Notifications.StorageFullLinkText -- PKEY_Devices_Notification_StorageFullLinkText
+ Description: Link Text for the Device Storage Full Notification.
+
+ Type: UInt64 -- VT_UI8
+ FormatID: {A0E00EE1-F0C7-4D41-B8E7-26A7BD8D38B0}, 3
+
+
+
+
+ Document Properties
+
+
+
+
+ Name: System.Document.ByteCount -- PKEY_Document_ByteCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 4 (PIDDSI_BYTECOUNT)
+
+
+
+
+ Name: System.Document.CharacterCount -- PKEY_Document_CharacterCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 16 (PIDSI_CHARCOUNT)
+
+
+
+
+ Name: System.Document.ClientID -- PKEY_Document_ClientID
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {276D7BB0-5B34-4FB0-AA4B-158ED12A1809}, 100
+
+
+
+
+ Name: System.Document.Contributor -- PKEY_Document_Contributor
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {F334115E-DA1B-4509-9B3D-119504DC7ABB}, 100
+
+
+
+
+ Name: System.Document.DateCreated -- PKEY_Document_DateCreated
+ Description: This property is stored in the document, not obtained from the file system.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 12 (PIDSI_CREATE_DTM)
+
+
+
+
+ Name: System.Document.DatePrinted -- PKEY_Document_DatePrinted
+ Description: Legacy name: "DocLastPrinted".
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 11 (PIDSI_LASTPRINTED)
+
+
+
+
+ Name: System.Document.DateSaved -- PKEY_Document_DateSaved
+ Description: Legacy name: "DocLastSavedTm".
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 13 (PIDSI_LASTSAVE_DTM)
+
+
+
+
+ Name: System.Document.Division -- PKEY_Document_Division
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {1E005EE6-BF27-428B-B01C-79676ACD2870}, 100
+
+
+
+
+ Name: System.Document.DocumentID -- PKEY_Document_DocumentID
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E08805C8-E395-40DF-80D2-54F0D6C43154}, 100
+
+
+
+
+ Name: System.Document.HiddenSlideCount -- PKEY_Document_HiddenSlideCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 9 (PIDDSI_HIDDENCOUNT)
+
+
+
+
+ Name: System.Document.LastAuthor -- PKEY_Document_LastAuthor
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 8 (PIDSI_LASTAUTHOR)
+
+
+
+
+ Name: System.Document.LineCount -- PKEY_Document_LineCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 5 (PIDDSI_LINECOUNT)
+
+
+
+
+ Name: System.Document.Manager -- PKEY_Document_Manager
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 14 (PIDDSI_MANAGER)
+
+
+
+
+ Name: System.Document.MultimediaClipCount -- PKEY_Document_MultimediaClipCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 10 (PIDDSI_MMCLIPCOUNT)
+
+
+
+
+ Name: System.Document.NoteCount -- PKEY_Document_NoteCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 8 (PIDDSI_NOTECOUNT)
+
+
+
+
+ Name: System.Document.PageCount -- PKEY_Document_PageCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 14 (PIDSI_PAGECOUNT)
+
+
+
+
+ Name: System.Document.ParagraphCount -- PKEY_Document_ParagraphCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 6 (PIDDSI_PARCOUNT)
+
+
+
+
+ Name: System.Document.PresentationFormat -- PKEY_Document_PresentationFormat
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 3 (PIDDSI_PRESFORMAT)
+
+
+
+
+ Name: System.Document.RevisionNumber -- PKEY_Document_RevisionNumber
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 9 (PIDSI_REVNUMBER)
+
+
+
+
+ Name: System.Document.Security -- PKEY_Document_Security
+ Description: Access control information, from SummaryInfo propset
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 19
+
+
+
+
+ Name: System.Document.SlideCount -- PKEY_Document_SlideCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 7 (PIDDSI_SLIDECOUNT)
+
+
+
+
+ Name: System.Document.Template -- PKEY_Document_Template
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 7 (PIDSI_TEMPLATE)
+
+
+
+
+ Name: System.Document.TotalEditingTime -- PKEY_Document_TotalEditingTime
+ Description: 100ns units, not milliseconds. VT_FILETIME for IPropertySetStorage handlers (legacy)
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 10 (PIDSI_EDITTIME)
+
+
+
+
+ Name: System.Document.Version -- PKEY_Document_Version
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_DocumentSummaryInformation) {D5CDD502-2E9C-101B-9397-08002B2CF9AE}, 29
+
+
+
+
+ Name: System.Document.WordCount -- PKEY_Document_WordCount
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_SummaryInformation) {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 15 (PIDSI_WORDCOUNT)
+
+
+
+
+ DRM Properties
+
+
+
+
+ Name: System.DRM.DatePlayExpires -- PKEY_DRM_DatePlayExpires
+ Description: Indicates when play expires for digital rights management.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_DRM) {AEAC19E4-89AE-4508-B9B7-BB867ABEE2ED}, 6 (PIDDRSI_PLAYEXPIRES)
+
+
+
+
+ Name: System.DRM.DatePlayStarts -- PKEY_DRM_DatePlayStarts
+ Description: Indicates when play starts for digital rights management.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_DRM) {AEAC19E4-89AE-4508-B9B7-BB867ABEE2ED}, 5 (PIDDRSI_PLAYSTARTS)
+
+
+
+
+ Name: System.DRM.Description -- PKEY_DRM_Description
+ Description: Displays the description for digital rights management.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_DRM) {AEAC19E4-89AE-4508-B9B7-BB867ABEE2ED}, 3 (PIDDRSI_DESCRIPTION)
+
+
+
+
+ Name: System.DRM.IsProtected -- PKEY_DRM_IsProtected
+ Description:
+
+ Type: Boolean -- VT_BOOL
+ FormatID: (FMTID_DRM) {AEAC19E4-89AE-4508-B9B7-BB867ABEE2ED}, 2 (PIDDRSI_PROTECTED)
+
+
+
+
+ Name: System.DRM.PlayCount -- PKEY_DRM_PlayCount
+ Description: Indicates the play count for digital rights management.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_DRM) {AEAC19E4-89AE-4508-B9B7-BB867ABEE2ED}, 4 (PIDDRSI_PLAYCOUNT)
+
+
+
+
+ GPS Properties
+
+
+
+
+ Name: System.GPS.Altitude -- PKEY_GPS_Altitude
+ Description: Indicates the altitude based on the reference in PKEY_GPS_AltitudeRef. Calculated from PKEY_GPS_AltitudeNumerator and
+ PKEY_GPS_AltitudeDenominator
+
+ Type: Double -- VT_R8
+ FormatID: {827EDB4F-5B73-44A7-891D-FDFFABEA35CA}, 100
+
+
+
+
+ Name: System.GPS.AltitudeDenominator -- PKEY_GPS_AltitudeDenominator
+ Description: Denominator of PKEY_GPS_Altitude
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {78342DCB-E358-4145-AE9A-6BFE4E0F9F51}, 100
+
+
+
+
+ Name: System.GPS.AltitudeNumerator -- PKEY_GPS_AltitudeNumerator
+ Description: Numerator of PKEY_GPS_Altitude
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {2DAD1EB7-816D-40D3-9EC3-C9773BE2AADE}, 100
+
+
+
+
+ Name: System.GPS.AltitudeRef -- PKEY_GPS_AltitudeRef
+ Description: Indicates the reference for the altitude property. (eg: above sea level, below sea level, absolute value)
+
+ Type: Byte -- VT_UI1
+ FormatID: {46AC629D-75EA-4515-867F-6DC4321C5844}, 100
+
+
+
+
+ Name: System.GPS.AreaInformation -- PKEY_GPS_AreaInformation
+ Description: Represents the name of the GPS area
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {972E333E-AC7E-49F1-8ADF-A70D07A9BCAB}, 100
+
+
+
+
+ Name: System.GPS.Date -- PKEY_GPS_Date
+ Description: Date and time of the GPS record
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {3602C812-0F3B-45F0-85AD-603468D69423}, 100
+
+
+
+
+ Name: System.GPS.DestBearing -- PKEY_GPS_DestBearing
+ Description: Indicates the bearing to the destination point. Calculated from PKEY_GPS_DestBearingNumerator and
+ PKEY_GPS_DestBearingDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {C66D4B3C-E888-47CC-B99F-9DCA3EE34DEA}, 100
+
+
+
+
+ Name: System.GPS.DestBearingDenominator -- PKEY_GPS_DestBearingDenominator
+ Description: Denominator of PKEY_GPS_DestBearing
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {7ABCF4F8-7C3F-4988-AC91-8D2C2E97ECA5}, 100
+
+
+
+
+ Name: System.GPS.DestBearingNumerator -- PKEY_GPS_DestBearingNumerator
+ Description: Numerator of PKEY_GPS_DestBearing
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {BA3B1DA9-86EE-4B5D-A2A4-A271A429F0CF}, 100
+
+
+
+
+ Name: System.GPS.DestBearingRef -- PKEY_GPS_DestBearingRef
+ Description: Indicates the reference used for the giving the bearing to the destination point. (eg: true direction, magnetic direction)
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {9AB84393-2A0F-4B75-BB22-7279786977CB}, 100
+
+
+
+
+ Name: System.GPS.DestDistance -- PKEY_GPS_DestDistance
+ Description: Indicates the distance to the destination point. Calculated from PKEY_GPS_DestDistanceNumerator and
+ PKEY_GPS_DestDistanceDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {A93EAE04-6804-4F24-AC81-09B266452118}, 100
+
+
+
+
+ Name: System.GPS.DestDistanceDenominator -- PKEY_GPS_DestDistanceDenominator
+ Description: Denominator of PKEY_GPS_DestDistance
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {9BC2C99B-AC71-4127-9D1C-2596D0D7DCB7}, 100
+
+
+
+
+ Name: System.GPS.DestDistanceNumerator -- PKEY_GPS_DestDistanceNumerator
+ Description: Numerator of PKEY_GPS_DestDistance
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {2BDA47DA-08C6-4FE1-80BC-A72FC517C5D0}, 100
+
+
+
+
+ Name: System.GPS.DestDistanceRef -- PKEY_GPS_DestDistanceRef
+ Description: Indicates the unit used to express the distance to the destination. (eg: kilometers, miles, knots)
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {ED4DF2D3-8695-450B-856F-F5C1C53ACB66}, 100
+
+
+
+
+ Name: System.GPS.DestLatitude -- PKEY_GPS_DestLatitude
+ Description: Indicates the latitude of the destination point. This is an array of three values. Index 0 is the degrees, index 1
+ is the minutes, index 2 is the seconds. Each is calculated from the values in PKEY_GPS_DestLatitudeNumerator and
+ PKEY_GPS_DestLatitudeDenominator.
+
+ Type: Multivalue Double -- VT_VECTOR | VT_R8 (For variants: VT_ARRAY | VT_R8)
+ FormatID: {9D1D7CC5-5C39-451C-86B3-928E2D18CC47}, 100
+
+
+
+
+ Name: System.GPS.DestLatitudeDenominator -- PKEY_GPS_DestLatitudeDenominator
+ Description: Denominator of PKEY_GPS_DestLatitude
+
+ Type: Multivalue UInt32 -- VT_VECTOR | VT_UI4 (For variants: VT_ARRAY | VT_UI4)
+ FormatID: {3A372292-7FCA-49A7-99D5-E47BB2D4E7AB}, 100
+
+
+
+
+ Name: System.GPS.DestLatitudeNumerator -- PKEY_GPS_DestLatitudeNumerator
+ Description: Numerator of PKEY_GPS_DestLatitude
+
+ Type: Multivalue UInt32 -- VT_VECTOR | VT_UI4 (For variants: VT_ARRAY | VT_UI4)
+ FormatID: {ECF4B6F6-D5A6-433C-BB92-4076650FC890}, 100
+
+
+
+
+ Name: System.GPS.DestLatitudeRef -- PKEY_GPS_DestLatitudeRef
+ Description: Indicates whether the latitude destination point is north or south latitude
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CEA820B9-CE61-4885-A128-005D9087C192}, 100
+
+
+
+
+ Name: System.GPS.DestLongitude -- PKEY_GPS_DestLongitude
+ Description: Indicates the latitude of the destination point. This is an array of three values. Index 0 is the degrees, index 1
+ is the minutes, index 2 is the seconds. Each is calculated from the values in PKEY_GPS_DestLongitudeNumerator and
+ PKEY_GPS_DestLongitudeDenominator.
+
+ Type: Multivalue Double -- VT_VECTOR | VT_R8 (For variants: VT_ARRAY | VT_R8)
+ FormatID: {47A96261-CB4C-4807-8AD3-40B9D9DBC6BC}, 100
+
+
+
+
+ Name: System.GPS.DestLongitudeDenominator -- PKEY_GPS_DestLongitudeDenominator
+ Description: Denominator of PKEY_GPS_DestLongitude
+
+ Type: Multivalue UInt32 -- VT_VECTOR | VT_UI4 (For variants: VT_ARRAY | VT_UI4)
+ FormatID: {425D69E5-48AD-4900-8D80-6EB6B8D0AC86}, 100
+
+
+
+
+ Name: System.GPS.DestLongitudeNumerator -- PKEY_GPS_DestLongitudeNumerator
+ Description: Numerator of PKEY_GPS_DestLongitude
+
+ Type: Multivalue UInt32 -- VT_VECTOR | VT_UI4 (For variants: VT_ARRAY | VT_UI4)
+ FormatID: {A3250282-FB6D-48D5-9A89-DBCACE75CCCF}, 100
+
+
+
+
+ Name: System.GPS.DestLongitudeRef -- PKEY_GPS_DestLongitudeRef
+ Description: Indicates whether the longitude destination point is east or west longitude
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {182C1EA6-7C1C-4083-AB4B-AC6C9F4ED128}, 100
+
+
+
+
+ Name: System.GPS.Differential -- PKEY_GPS_Differential
+ Description: Indicates whether differential correction was applied to the GPS receiver
+
+ Type: UInt16 -- VT_UI2
+ FormatID: {AAF4EE25-BD3B-4DD7-BFC4-47F77BB00F6D}, 100
+
+
+
+
+ Name: System.GPS.DOP -- PKEY_GPS_DOP
+ Description: Indicates the GPS DOP (data degree of precision). Calculated from PKEY_GPS_DOPNumerator and PKEY_GPS_DOPDenominator
+
+ Type: Double -- VT_R8
+ FormatID: {0CF8FB02-1837-42F1-A697-A7017AA289B9}, 100
+
+
+
+
+ Name: System.GPS.DOPDenominator -- PKEY_GPS_DOPDenominator
+ Description: Denominator of PKEY_GPS_DOP
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {A0BE94C5-50BA-487B-BD35-0654BE8881ED}, 100
+
+
+
+
+ Name: System.GPS.DOPNumerator -- PKEY_GPS_DOPNumerator
+ Description: Numerator of PKEY_GPS_DOP
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {47166B16-364F-4AA0-9F31-E2AB3DF449C3}, 100
+
+
+
+
+ Name: System.GPS.ImgDirection -- PKEY_GPS_ImgDirection
+ Description: Indicates direction of the image when it was captured. Calculated from PKEY_GPS_ImgDirectionNumerator and
+ PKEY_GPS_ImgDirectionDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {16473C91-D017-4ED9-BA4D-B6BAA55DBCF8}, 100
+
+
+
+
+ Name: System.GPS.ImgDirectionDenominator -- PKEY_GPS_ImgDirectionDenominator
+ Description: Denominator of PKEY_GPS_ImgDirection
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {10B24595-41A2-4E20-93C2-5761C1395F32}, 100
+
+
+
+
+ Name: System.GPS.ImgDirectionNumerator -- PKEY_GPS_ImgDirectionNumerator
+ Description: Numerator of PKEY_GPS_ImgDirection
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {DC5877C7-225F-45F7-BAC7-E81334B6130A}, 100
+
+
+
+
+ Name: System.GPS.ImgDirectionRef -- PKEY_GPS_ImgDirectionRef
+ Description: Indicates reference for giving the direction of the image when it was captured. (eg: true direction, magnetic direction)
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {A4AAA5B7-1AD0-445F-811A-0F8F6E67F6B5}, 100
+
+
+
+
+ Name: System.GPS.Latitude -- PKEY_GPS_Latitude
+ Description: Indicates the latitude. This is an array of three values. Index 0 is the degrees, index 1 is the minutes, index 2
+ is the seconds. Each is calculated from the values in PKEY_GPS_LatitudeNumerator and PKEY_GPS_LatitudeDenominator.
+
+ Type: Multivalue Double -- VT_VECTOR | VT_R8 (For variants: VT_ARRAY | VT_R8)
+ FormatID: {8727CFFF-4868-4EC6-AD5B-81B98521D1AB}, 100
+
+
+
+
+ Name: System.GPS.LatitudeDenominator -- PKEY_GPS_LatitudeDenominator
+ Description: Denominator of PKEY_GPS_Latitude
+
+ Type: Multivalue UInt32 -- VT_VECTOR | VT_UI4 (For variants: VT_ARRAY | VT_UI4)
+ FormatID: {16E634EE-2BFF-497B-BD8A-4341AD39EEB9}, 100
+
+
+
+
+ Name: System.GPS.LatitudeNumerator -- PKEY_GPS_LatitudeNumerator
+ Description: Numerator of PKEY_GPS_Latitude
+
+ Type: Multivalue UInt32 -- VT_VECTOR | VT_UI4 (For variants: VT_ARRAY | VT_UI4)
+ FormatID: {7DDAAAD1-CCC8-41AE-B750-B2CB8031AEA2}, 100
+
+
+
+
+ Name: System.GPS.LatitudeRef -- PKEY_GPS_LatitudeRef
+ Description: Indicates whether latitude is north or south latitude
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {029C0252-5B86-46C7-ACA0-2769FFC8E3D4}, 100
+
+
+
+
+ Name: System.GPS.Longitude -- PKEY_GPS_Longitude
+ Description: Indicates the longitude. This is an array of three values. Index 0 is the degrees, index 1 is the minutes, index 2
+ is the seconds. Each is calculated from the values in PKEY_GPS_LongitudeNumerator and PKEY_GPS_LongitudeDenominator.
+
+ Type: Multivalue Double -- VT_VECTOR | VT_R8 (For variants: VT_ARRAY | VT_R8)
+ FormatID: {C4C4DBB2-B593-466B-BBDA-D03D27D5E43A}, 100
+
+
+
+
+ Name: System.GPS.LongitudeDenominator -- PKEY_GPS_LongitudeDenominator
+ Description: Denominator of PKEY_GPS_Longitude
+
+ Type: Multivalue UInt32 -- VT_VECTOR | VT_UI4 (For variants: VT_ARRAY | VT_UI4)
+ FormatID: {BE6E176C-4534-4D2C-ACE5-31DEDAC1606B}, 100
+
+
+
+
+ Name: System.GPS.LongitudeNumerator -- PKEY_GPS_LongitudeNumerator
+ Description: Numerator of PKEY_GPS_Longitude
+
+ Type: Multivalue UInt32 -- VT_VECTOR | VT_UI4 (For variants: VT_ARRAY | VT_UI4)
+ FormatID: {02B0F689-A914-4E45-821D-1DDA452ED2C4}, 100
+
+
+
+
+ Name: System.GPS.LongitudeRef -- PKEY_GPS_LongitudeRef
+ Description: Indicates whether longitude is east or west longitude
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {33DCF22B-28D5-464C-8035-1EE9EFD25278}, 100
+
+
+
+
+ Name: System.GPS.MapDatum -- PKEY_GPS_MapDatum
+ Description: Indicates the geodetic survey data used by the GPS receiver
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {2CA2DAE6-EDDC-407D-BEF1-773942ABFA95}, 100
+
+
+
+
+ Name: System.GPS.MeasureMode -- PKEY_GPS_MeasureMode
+ Description: Indicates the GPS measurement mode. (eg: 2-dimensional, 3-dimensional)
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {A015ED5D-AAEA-4D58-8A86-3C586920EA0B}, 100
+
+
+
+
+ Name: System.GPS.ProcessingMethod -- PKEY_GPS_ProcessingMethod
+ Description: Indicates the name of the method used for location finding
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {59D49E61-840F-4AA9-A939-E2099B7F6399}, 100
+
+
+
+
+ Name: System.GPS.Satellites -- PKEY_GPS_Satellites
+ Description: Indicates the GPS satellites used for measurements
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {467EE575-1F25-4557-AD4E-B8B58B0D9C15}, 100
+
+
+
+
+ Name: System.GPS.Speed -- PKEY_GPS_Speed
+ Description: Indicates the speed of the GPS receiver movement. Calculated from PKEY_GPS_SpeedNumerator and
+ PKEY_GPS_SpeedDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {DA5D0862-6E76-4E1B-BABD-70021BD25494}, 100
+
+
+
+
+ Name: System.GPS.SpeedDenominator -- PKEY_GPS_SpeedDenominator
+ Description: Denominator of PKEY_GPS_Speed
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {7D122D5A-AE5E-4335-8841-D71E7CE72F53}, 100
+
+
+
+
+ Name: System.GPS.SpeedNumerator -- PKEY_GPS_SpeedNumerator
+ Description: Numerator of PKEY_GPS_Speed
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {ACC9CE3D-C213-4942-8B48-6D0820F21C6D}, 100
+
+
+
+
+ Name: System.GPS.SpeedRef -- PKEY_GPS_SpeedRef
+ Description: Indicates the unit used to express the speed of the GPS receiver movement. (eg: kilometers per hour,
+ miles per hour, knots).
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {ECF7F4C9-544F-4D6D-9D98-8AD79ADAF453}, 100
+
+
+
+
+ Name: System.GPS.Status -- PKEY_GPS_Status
+ Description: Indicates the status of the GPS receiver when the image was recorded. (eg: measurement in progress,
+ measurement interoperability).
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {125491F4-818F-46B2-91B5-D537753617B2}, 100
+
+
+
+
+ Name: System.GPS.Track -- PKEY_GPS_Track
+ Description: Indicates the direction of the GPS receiver movement. Calculated from PKEY_GPS_TrackNumerator and
+ PKEY_GPS_TrackDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {76C09943-7C33-49E3-9E7E-CDBA872CFADA}, 100
+
+
+
+
+ Name: System.GPS.TrackDenominator -- PKEY_GPS_TrackDenominator
+ Description: Denominator of PKEY_GPS_Track
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {C8D1920C-01F6-40C0-AC86-2F3A4AD00770}, 100
+
+
+
+
+ Name: System.GPS.TrackNumerator -- PKEY_GPS_TrackNumerator
+ Description: Numerator of PKEY_GPS_Track
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {702926F4-44A6-43E1-AE71-45627116893B}, 100
+
+
+
+
+ Name: System.GPS.TrackRef -- PKEY_GPS_TrackRef
+ Description: Indicates reference for the direction of the GPS receiver movement. (eg: true direction, magnetic direction)
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {35DBE6FE-44C3-4400-AAAE-D2C799C407E8}, 100
+
+
+
+
+ Name: System.GPS.VersionID -- PKEY_GPS_VersionID
+ Description: Indicates the version of the GPS information
+
+ Type: Buffer -- VT_VECTOR | VT_UI1 (For variants: VT_ARRAY | VT_UI1)
+ FormatID: {22704DA4-C6B2-4A99-8E56-F16DF8C92599}, 100
+
+
+
+
+ Identity Properties
+
+
+
+
+ Name: System.Identity.Blob -- PKEY_Identity_Blob
+ Description: Blob used to import/export identities
+
+ Type: Blob -- VT_BLOB
+ FormatID: {8C3B93A4-BAED-1A83-9A32-102EE313F6EB}, 100
+
+
+
+
+ Name: System.Identity.DisplayName -- PKEY_Identity_DisplayName
+ Description: Display Name
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7D683FC9-D155-45A8-BB1F-89D19BCB792F}, 100
+
+
+
+
+ Name: System.Identity.IsMeIdentity -- PKEY_Identity_IsMeIdentity
+ Description: Is it Me Identity
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {A4108708-09DF-4377-9DFC-6D99986D5A67}, 100
+
+
+
+
+ Name: System.Identity.PrimaryEmailAddress -- PKEY_Identity_PrimaryEmailAddress
+ Description: Primary Email Address
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {FCC16823-BAED-4F24-9B32-A0982117F7FA}, 100
+
+
+
+
+ Name: System.Identity.ProviderID -- PKEY_Identity_ProviderID
+ Description: Provider ID
+
+ Type: Guid -- VT_CLSID
+ FormatID: {74A7DE49-FA11-4D3D-A006-DB7E08675916}, 100
+
+
+
+
+ Name: System.Identity.UniqueID -- PKEY_Identity_UniqueID
+ Description: Unique ID
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E55FC3B0-2B60-4220-918E-B21E8BF16016}, 100
+
+
+
+
+ Name: System.Identity.UserName -- PKEY_Identity_UserName
+ Description: Identity User Name
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C4322503-78CA-49C6-9ACC-A68E2AFD7B6B}, 100
+
+
+
+
+ IdentityProvider Properties
+
+
+
+
+ Name: System.IdentityProvider.Name -- PKEY_IdentityProvider_Name
+ Description: Identity Provider Name
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {B96EFF7B-35CA-4A35-8607-29E3A54C46EA}, 100
+
+
+
+
+ Name: System.IdentityProvider.Picture -- PKEY_IdentityProvider_Picture
+ Description: Picture for the Identity Provider
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {2425166F-5642-4864-992F-98FD98F294C3}, 100
+
+
+
+
+ Image Properties
+
+
+
+
+ Name: System.Image.BitDepth -- PKEY_Image_BitDepth
+ Description:
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (PSGUID_IMAGESUMMARYINFORMATION) {6444048F-4C8B-11D1-8B70-080036B11A03}, 7 (PIDISI_BITDEPTH)
+
+
+
+
+ Name: System.Image.ColorSpace -- PKEY_Image_ColorSpace
+ Description: PropertyTagExifColorSpace
+
+ Type: UInt16 -- VT_UI2
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 40961
+
+
+
+
+ Name: System.Image.CompressedBitsPerPixel -- PKEY_Image_CompressedBitsPerPixel
+ Description: Calculated from PKEY_Image_CompressedBitsPerPixelNumerator and PKEY_Image_CompressedBitsPerPixelDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {364B6FA9-37AB-482A-BE2B-AE02F60D4318}, 100
+
+
+
+
+ Name: System.Image.CompressedBitsPerPixelDenominator -- PKEY_Image_CompressedBitsPerPixelDenominator
+ Description: Denominator of PKEY_Image_CompressedBitsPerPixel.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {1F8844E1-24AD-4508-9DFD-5326A415CE02}, 100
+
+
+
+
+ Name: System.Image.CompressedBitsPerPixelNumerator -- PKEY_Image_CompressedBitsPerPixelNumerator
+ Description: Numerator of PKEY_Image_CompressedBitsPerPixel.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {D21A7148-D32C-4624-8900-277210F79C0F}, 100
+
+
+
+
+ Name: System.Image.Compression -- PKEY_Image_Compression
+ Description: Indicates the image compression level. PropertyTagCompression.
+
+ Type: UInt16 -- VT_UI2
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 259
+
+
+
+
+ Name: System.Image.CompressionText -- PKEY_Image_CompressionText
+ Description: This is the user-friendly form of System.Image.Compression. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {3F08E66F-2F44-4BB9-A682-AC35D2562322}, 100
+
+
+
+
+ Name: System.Image.Dimensions -- PKEY_Image_Dimensions
+ Description: Indicates the dimensions of the image.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_IMAGESUMMARYINFORMATION) {6444048F-4C8B-11D1-8B70-080036B11A03}, 13 (PIDISI_DIMENSIONS)
+
+
+
+
+ Name: System.Image.HorizontalResolution -- PKEY_Image_HorizontalResolution
+ Description:
+
+ Type: Double -- VT_R8
+ FormatID: (PSGUID_IMAGESUMMARYINFORMATION) {6444048F-4C8B-11D1-8B70-080036B11A03}, 5 (PIDISI_RESOLUTIONX)
+
+
+
+
+ Name: System.Image.HorizontalSize -- PKEY_Image_HorizontalSize
+ Description:
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (PSGUID_IMAGESUMMARYINFORMATION) {6444048F-4C8B-11D1-8B70-080036B11A03}, 3 (PIDISI_CX)
+
+
+
+
+ Name: System.Image.ImageID -- PKEY_Image_ImageID
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {10DABE05-32AA-4C29-BF1A-63E2D220587F}, 100
+
+
+
+
+ Name: System.Image.ResolutionUnit -- PKEY_Image_ResolutionUnit
+ Description:
+ Type: Int16 -- VT_I2
+ FormatID: {19B51FA6-1F92-4A5C-AB48-7DF0ABD67444}, 100
+
+
+
+
+ Name: System.Image.VerticalResolution -- PKEY_Image_VerticalResolution
+ Description:
+
+ Type: Double -- VT_R8
+ FormatID: (PSGUID_IMAGESUMMARYINFORMATION) {6444048F-4C8B-11D1-8B70-080036B11A03}, 6 (PIDISI_RESOLUTIONY)
+
+
+
+
+ Name: System.Image.VerticalSize -- PKEY_Image_VerticalSize
+ Description:
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (PSGUID_IMAGESUMMARYINFORMATION) {6444048F-4C8B-11D1-8B70-080036B11A03}, 4 (PIDISI_CY)
+
+
+
+
+ Journal Properties
+
+
+
+
+ Name: System.Journal.Contacts -- PKEY_Journal_Contacts
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {DEA7C82C-1D89-4A66-9427-A4E3DEBABCB1}, 100
+
+
+
+
+ Name: System.Journal.EntryType -- PKEY_Journal_EntryType
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {95BEB1FC-326D-4644-B396-CD3ED90E6DDF}, 100
+
+
+
+
+ LayoutPattern Properties
+
+
+
+
+ Name: System.LayoutPattern.ContentViewModeForBrowse -- PKEY_LayoutPattern_ContentViewModeForBrowse
+ Description: Specifies the layout pattern that the content view mode should apply for this item in the context of browsing.
+ Register the regvalue under the name of "ContentViewModeLayoutPatternForBrowse".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 500
+
+
+
+
+ Name: System.LayoutPattern.ContentViewModeForSearch -- PKEY_LayoutPattern_ContentViewModeForSearch
+ Description: Specifies the layout pattern that the content view mode should apply for this item in the context of searching.
+ Register the regvalue under the name of "ContentViewModeLayoutPatternForSearch".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 501
+
+
+
+
+ Link Properties
+
+
+
+
+ Name: System.Link.Arguments -- PKEY_Link_Arguments
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {436F2667-14E2-4FEB-B30A-146C53B5B674}, 100
+
+
+
+
+ Name: System.Link.Comment -- PKEY_Link_Comment
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_LINK) {B9B4B3FC-2B51-4A42-B5D8-324146AFCF25}, 5
+
+
+
+
+ Name: System.Link.DateVisited -- PKEY_Link_DateVisited
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {5CBF2787-48CF-4208-B90E-EE5E5D420294}, 23 (PKEYs relating to URLs. Used by IE History.)
+
+
+
+
+ Name: System.Link.Description -- PKEY_Link_Description
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {5CBF2787-48CF-4208-B90E-EE5E5D420294}, 21 (PKEYs relating to URLs. Used by IE History.)
+
+
+
+
+ Name: System.Link.Status -- PKEY_Link_Status
+ Description:
+
+ Type: Int32 -- VT_I4
+ FormatID: (PSGUID_LINK) {B9B4B3FC-2B51-4A42-B5D8-324146AFCF25}, 3 (PID_LINK_TARGET_TYPE)
+
+
+
+
+ Name: System.Link.TargetExtension -- PKEY_Link_TargetExtension
+ Description: The file extension of the link target. See System.File.Extension
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {7A7D76F4-B630-4BD7-95FF-37CC51A975C9}, 2
+
+
+
+
+ Name: System.Link.TargetParsingPath -- PKEY_Link_TargetParsingPath
+ Description: This is the shell namespace path to the target of the link item. This path may be passed to
+ SHParseDisplayName to parse the path to the correct shell folder.
+
+ If the target item is a file, the value is identical to System.ItemPathDisplay.
+
+ If the target item cannot be accessed through the shell namespace, this value is VT_EMPTY.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_LINK) {B9B4B3FC-2B51-4A42-B5D8-324146AFCF25}, 2 (PID_LINK_TARGET)
+
+
+
+
+ Name: System.Link.TargetSFGAOFlags -- PKEY_Link_TargetSFGAOFlags
+ Description: IShellFolder::GetAttributesOf flags for the target of a link, with SFGAO_PKEYSFGAOMASK
+ attributes masked out.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (PSGUID_LINK) {B9B4B3FC-2B51-4A42-B5D8-324146AFCF25}, 8
+
+
+
+
+ Name: System.Link.TargetSFGAOFlagsStrings -- PKEY_Link_TargetSFGAOFlagsStrings
+ Description: Expresses the SFGAO flags of a link as string values and is used as a query optimization. See
+ PKEY_Shell_SFGAOFlagsStrings for possible values of this.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D6942081-D53B-443D-AD47-5E059D9CD27A}, 3
+
+
+
+
+ Name: System.Link.TargetUrl -- PKEY_Link_TargetUrl
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {5CBF2787-48CF-4208-B90E-EE5E5D420294}, 2 (PKEYs relating to URLs. Used by IE History.)
+
+
+
+
+ Media Properties
+
+
+
+
+ Name: System.Media.AuthorUrl -- PKEY_Media_AuthorUrl
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 32 (PIDMSI_AUTHOR_URL)
+
+
+
+
+ Name: System.Media.AverageLevel -- PKEY_Media_AverageLevel
+ Description:
+ Type: UInt32 -- VT_UI4
+ FormatID: {09EDD5B6-B301-43C5-9990-D00302EFFD46}, 100
+
+
+
+
+ Name: System.Media.ClassPrimaryID -- PKEY_Media_ClassPrimaryID
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 13 (PIDMSI_CLASS_PRIMARY_ID)
+
+
+
+
+ Name: System.Media.ClassSecondaryID -- PKEY_Media_ClassSecondaryID
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 14 (PIDMSI_CLASS_SECONDARY_ID)
+
+
+
+
+ Name: System.Media.CollectionGroupID -- PKEY_Media_CollectionGroupID
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 24 (PIDMSI_COLLECTION_GROUP_ID)
+
+
+
+
+ Name: System.Media.CollectionID -- PKEY_Media_CollectionID
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 25 (PIDMSI_COLLECTION_ID)
+
+
+
+
+ Name: System.Media.ContentDistributor -- PKEY_Media_ContentDistributor
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 18 (PIDMSI_CONTENTDISTRIBUTOR)
+
+
+
+
+ Name: System.Media.ContentID -- PKEY_Media_ContentID
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 26 (PIDMSI_CONTENT_ID)
+
+
+
+
+ Name: System.Media.CreatorApplication -- PKEY_Media_CreatorApplication
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 27 (PIDMSI_TOOL_NAME)
+
+
+
+
+ Name: System.Media.CreatorApplicationVersion -- PKEY_Media_CreatorApplicationVersion
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 28 (PIDMSI_TOOL_VERSION)
+
+
+
+
+ Name: System.Media.DateEncoded -- PKEY_Media_DateEncoded
+ Description: DateTime is in UTC (in the doc, not file system).
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {2E4B640D-5019-46D8-8881-55414CC5CAA0}, 100
+
+
+
+
+ Name: System.Media.DateReleased -- PKEY_Media_DateReleased
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {DE41CC29-6971-4290-B472-F59F2E2F31E2}, 100
+
+
+
+
+ Name: System.Media.Duration -- PKEY_Media_Duration
+ Description: 100ns units, not milliseconds
+
+ Type: UInt64 -- VT_UI8
+ FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 3 (PIDASI_TIMELENGTH)
+
+
+
+
+ Name: System.Media.DVDID -- PKEY_Media_DVDID
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 15 (PIDMSI_DVDID)
+
+
+
+
+ Name: System.Media.EncodedBy -- PKEY_Media_EncodedBy
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 36 (PIDMSI_ENCODED_BY)
+
+
+
+
+ Name: System.Media.EncodingSettings -- PKEY_Media_EncodingSettings
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 37 (PIDMSI_ENCODING_SETTINGS)
+
+
+
+
+ Name: System.Media.FrameCount -- PKEY_Media_FrameCount
+ Description: Indicates the frame count for the image.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (PSGUID_IMAGESUMMARYINFORMATION) {6444048F-4C8B-11D1-8B70-080036B11A03}, 12 (PIDISI_FRAMECOUNT)
+
+
+
+
+ Name: System.Media.MCDI -- PKEY_Media_MCDI
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 16 (PIDMSI_MCDI)
+
+
+
+
+ Name: System.Media.MetadataContentProvider -- PKEY_Media_MetadataContentProvider
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 17 (PIDMSI_PROVIDER)
+
+
+
+
+ Name: System.Media.Producer -- PKEY_Media_Producer
+ Description:
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 22 (PIDMSI_PRODUCER)
+
+
+
+
+ Name: System.Media.PromotionUrl -- PKEY_Media_PromotionUrl
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 33 (PIDMSI_PROMOTION_URL)
+
+
+
+
+ Name: System.Media.ProtectionType -- PKEY_Media_ProtectionType
+ Description: If media is protected, how is it protected?
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 38
+
+
+
+
+ Name: System.Media.ProviderRating -- PKEY_Media_ProviderRating
+ Description: Rating (0 - 99) supplied by metadata provider
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 39
+
+
+
+
+ Name: System.Media.ProviderStyle -- PKEY_Media_ProviderStyle
+ Description: Style of music or video, supplied by metadata provider
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 40
+
+
+
+
+ Name: System.Media.Publisher -- PKEY_Media_Publisher
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 30 (PIDMSI_PUBLISHER)
+
+
+
+
+ Name: System.Media.SubscriptionContentId -- PKEY_Media_SubscriptionContentId
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {9AEBAE7A-9644-487D-A92C-657585ED751A}, 100
+
+
+
+
+ Name: System.Media.SubTitle -- PKEY_Media_SubTitle
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 38 (PIDSI_MUSIC_SUB_TITLE)
+
+
+
+
+ Name: System.Media.UniqueFileIdentifier -- PKEY_Media_UniqueFileIdentifier
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 35 (PIDMSI_UNIQUE_FILE_IDENTIFIER)
+
+
+
+
+ Name: System.Media.UserNoAutoInfo -- PKEY_Media_UserNoAutoInfo
+ Description: If true, do NOT alter this file's metadata. Set by user.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 41
+
+
+
+
+ Name: System.Media.UserWebUrl -- PKEY_Media_UserWebUrl
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 34 (PIDMSI_USER_WEB_URL)
+
+
+
+
+ Name: System.Media.Writer -- PKEY_Media_Writer
+ Description:
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 23 (PIDMSI_WRITER)
+
+
+
+
+ Name: System.Media.Year -- PKEY_Media_Year
+ Description:
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 5 (PIDSI_MUSIC_YEAR)
+
+
+
+
+ Message Properties
+
+
+
+
+ Name: System.Message.AttachmentContents -- PKEY_Message_AttachmentContents
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {3143BF7C-80A8-4854-8880-E2E40189BDD0}, 100
+
+
+
+
+ Name: System.Message.AttachmentNames -- PKEY_Message_AttachmentNames
+ Description: The names of the attachments in a message
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 21
+
+
+
+
+ Name: System.Message.BccAddress -- PKEY_Message_BccAddress
+ Description: Addresses in Bcc: field
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 2
+
+
+
+
+ Name: System.Message.BccName -- PKEY_Message_BccName
+ Description: person names in Bcc: field
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 3
+
+
+
+
+ Name: System.Message.CcAddress -- PKEY_Message_CcAddress
+ Description: Addresses in Cc: field
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 4
+
+
+
+
+ Name: System.Message.CcName -- PKEY_Message_CcName
+ Description: person names in Cc: field
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 5
+
+
+
+
+ Name: System.Message.ConversationID -- PKEY_Message_ConversationID
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {DC8F80BD-AF1E-4289-85B6-3DFC1B493992}, 100
+
+
+
+
+ Name: System.Message.ConversationIndex -- PKEY_Message_ConversationIndex
+ Description:
+
+ Type: Buffer -- VT_VECTOR | VT_UI1 (For variants: VT_ARRAY | VT_UI1)
+ FormatID: {DC8F80BD-AF1E-4289-85B6-3DFC1B493992}, 101
+
+
+
+
+ Name: System.Message.DateReceived -- PKEY_Message_DateReceived
+ Description: Date and Time communication was received
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 20
+
+
+
+
+ Name: System.Message.DateSent -- PKEY_Message_DateSent
+ Description: Date and Time communication was sent
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 19
+
+
+
+
+ Name: System.Message.Flags -- PKEY_Message_Flags
+ Description: These are flags associated with email messages to know if a read receipt is pending, etc.
+ The values stored here by Outlook are defined for PR_MESSAGE_FLAGS on MSDN.
+
+ Type: Int32 -- VT_I4
+ FormatID: {A82D9EE7-CA67-4312-965E-226BCEA85023}, 100
+
+
+
+
+ Name: System.Message.FromAddress -- PKEY_Message_FromAddress
+ Description:
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 13
+
+
+
+
+ Name: System.Message.FromName -- PKEY_Message_FromName
+ Description: Address in from field as person name
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 14
+
+
+
+
+ Name: System.Message.HasAttachments -- PKEY_Message_HasAttachments
+ Description:
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {9C1FCF74-2D97-41BA-B4AE-CB2E3661A6E4}, 8
+
+
+
+
+ Name: System.Message.IsFwdOrReply -- PKEY_Message_IsFwdOrReply
+ Description:
+ Type: Int32 -- VT_I4
+ FormatID: {9A9BC088-4F6D-469E-9919-E705412040F9}, 100
+
+
+
+
+ Name: System.Message.MessageClass -- PKEY_Message_MessageClass
+ Description: What type of outlook msg this is (meeting, task, mail, etc.)
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CD9ED458-08CE-418F-A70E-F912C7BB9C5C}, 103
+
+
+
+
+ Name: System.Message.ProofInProgress -- PKEY_Message_ProofInProgress
+ Description: This property will be true if the message junk email proofing is still in progress.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {9098F33C-9A7D-48A8-8DE5-2E1227A64E91}, 100
+
+
+
+
+ Name: System.Message.SenderAddress -- PKEY_Message_SenderAddress
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {0BE1C8E7-1981-4676-AE14-FDD78F05A6E7}, 100
+
+
+
+
+ Name: System.Message.SenderName -- PKEY_Message_SenderName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {0DA41CFA-D224-4A18-AE2F-596158DB4B3A}, 100
+
+
+
+
+ Name: System.Message.Store -- PKEY_Message_Store
+ Description: The store (aka protocol handler) FILE, MAIL, OUTLOOKEXPRESS
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 15
+
+
+
+
+ Name: System.Message.ToAddress -- PKEY_Message_ToAddress
+ Description: Addresses in To: field
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 16
+
+
+
+
+ Name: System.Message.ToDoFlags -- PKEY_Message_ToDoFlags
+ Description: Flags associated with a message flagged to know if it's still active, if it was custom flagged, etc.
+
+ Type: Int32 -- VT_I4
+ FormatID: {1F856A9F-6900-4ABA-9505-2D5F1B4D66CB}, 100
+
+
+
+
+ Name: System.Message.ToDoTitle -- PKEY_Message_ToDoTitle
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {BCCC8A3C-8CEF-42E5-9B1C-C69079398BC7}, 100
+
+
+
+
+ Name: System.Message.ToName -- PKEY_Message_ToName
+ Description: Person names in To: field
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {E3E0584C-B788-4A5A-BB20-7F5A44C9ACDD}, 17
+
+
+
+
+ Music Properties
+
+
+
+
+ Name: System.Music.AlbumArtist -- PKEY_Music_AlbumArtist
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 13 (PIDSI_MUSIC_ALBUM_ARTIST)
+
+
+
+
+ Name: System.Music.AlbumID -- PKEY_Music_AlbumID
+ Description: Concatenation of System.Music.AlbumArtist and System.Music.AlbumTitle, suitable for indexing and display.
+ Used to differentiate albums with the same title from different artists.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 100
+
+
+
+
+ Name: System.Music.AlbumTitle -- PKEY_Music_AlbumTitle
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 4 (PIDSI_MUSIC_ALBUM)
+
+
+
+
+ Name: System.Music.Artist -- PKEY_Music_Artist
+ Description:
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 2 (PIDSI_MUSIC_ARTIST)
+
+
+
+
+ Name: System.Music.BeatsPerMinute -- PKEY_Music_BeatsPerMinute
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 35 (PIDSI_MUSIC_BEATS_PER_MINUTE)
+
+
+
+
+ Name: System.Music.Composer -- PKEY_Music_Composer
+ Description:
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 19 (PIDMSI_COMPOSER)
+
+
+
+
+ Name: System.Music.Conductor -- PKEY_Music_Conductor
+ Description:
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 36 (PIDSI_MUSIC_CONDUCTOR)
+
+
+
+
+ Name: System.Music.ContentGroupDescription -- PKEY_Music_ContentGroupDescription
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 33 (PIDSI_MUSIC_CONTENT_GROUP_DESCRIPTION)
+
+
+
+
+ Name: System.Music.DisplayArtist -- PKEY_Music_DisplayArtist
+ Description: This property returns the best representation of Album Artist for a given music file
+ based upon AlbumArtist, ContributingArtist and compilation info.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {FD122953-FA93-4EF7-92C3-04C946B2F7C8}, 100
+
+
+
+
+ Name: System.Music.Genre -- PKEY_Music_Genre
+ Description:
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 11 (PIDSI_MUSIC_GENRE)
+
+
+
+
+ Name: System.Music.InitialKey -- PKEY_Music_InitialKey
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 34 (PIDSI_MUSIC_INITIAL_KEY)
+
+
+
+
+ Name: System.Music.IsCompilation -- PKEY_Music_IsCompilation
+ Description: Indicates whether the file is part of a compilation.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {C449D5CB-9EA4-4809-82E8-AF9D59DED6D1}, 100
+
+
+
+
+ Name: System.Music.Lyrics -- PKEY_Music_Lyrics
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 12 (PIDSI_MUSIC_LYRICS)
+
+
+
+
+ Name: System.Music.Mood -- PKEY_Music_Mood
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 39 (PIDSI_MUSIC_MOOD)
+
+
+
+
+ Name: System.Music.PartOfSet -- PKEY_Music_PartOfSet
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 37 (PIDSI_MUSIC_PART_OF_SET)
+
+
+
+
+ Name: System.Music.Period -- PKEY_Music_Period
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 31 (PIDMSI_PERIOD)
+
+
+
+
+ Name: System.Music.SynchronizedLyrics -- PKEY_Music_SynchronizedLyrics
+ Description:
+ Type: Blob -- VT_BLOB
+ FormatID: {6B223B6A-162E-4AA9-B39F-05D678FC6D77}, 100
+
+
+
+
+ Name: System.Music.TrackNumber -- PKEY_Music_TrackNumber
+ Description:
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_MUSIC) {56A3372E-CE9C-11D2-9F0E-006097C686F6}, 7 (PIDSI_MUSIC_TRACK)
+
+
+
+
+ Note Properties
+
+
+
+
+ Name: System.Note.Color -- PKEY_Note_Color
+ Description:
+ Type: UInt16 -- VT_UI2
+ FormatID: {4776CAFA-BCE4-4CB1-A23E-265E76D8EB11}, 100
+
+
+
+
+ Name: System.Note.ColorText -- PKEY_Note_ColorText
+ Description: This is the user-friendly form of System.Note.Color. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {46B4E8DE-CDB2-440D-885C-1658EB65B914}, 100
+
+
+
+
+ Photo Properties
+
+
+
+
+ Name: System.Photo.Aperture -- PKEY_Photo_Aperture
+ Description: PropertyTagExifAperture. Calculated from PKEY_Photo_ApertureNumerator and PKEY_Photo_ApertureDenominator
+
+ Type: Double -- VT_R8
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 37378
+
+
+
+
+ Name: System.Photo.ApertureDenominator -- PKEY_Photo_ApertureDenominator
+ Description: Denominator of PKEY_Photo_Aperture
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {E1A9A38B-6685-46BD-875E-570DC7AD7320}, 100
+
+
+
+
+ Name: System.Photo.ApertureNumerator -- PKEY_Photo_ApertureNumerator
+ Description: Numerator of PKEY_Photo_Aperture
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {0337ECEC-39FB-4581-A0BD-4C4CC51E9914}, 100
+
+
+
+
+ Name: System.Photo.Brightness -- PKEY_Photo_Brightness
+ Description: This is the brightness of the photo.
+
+ Calculated from PKEY_Photo_BrightnessNumerator and PKEY_Photo_BrightnessDenominator.
+
+ The units are "APEX", normally in the range of -99.99 to 99.99. If the numerator of
+ the recorded value is FFFFFFFF.H, "Unknown" should be indicated.
+
+ Type: Double -- VT_R8
+ FormatID: {1A701BF6-478C-4361-83AB-3701BB053C58}, 100 (PropertyTagExifBrightness)
+
+
+
+
+ Name: System.Photo.BrightnessDenominator -- PKEY_Photo_BrightnessDenominator
+ Description: Denominator of PKEY_Photo_Brightness
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {6EBE6946-2321-440A-90F0-C043EFD32476}, 100
+
+
+
+
+ Name: System.Photo.BrightnessNumerator -- PKEY_Photo_BrightnessNumerator
+ Description: Numerator of PKEY_Photo_Brightness
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {9E7D118F-B314-45A0-8CFB-D654B917C9E9}, 100
+
+
+
+
+ Name: System.Photo.CameraManufacturer -- PKEY_Photo_CameraManufacturer
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 271 (PropertyTagEquipMake)
+
+
+
+
+ Name: System.Photo.CameraModel -- PKEY_Photo_CameraModel
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 272 (PropertyTagEquipModel)
+
+
+
+
+ Name: System.Photo.CameraSerialNumber -- PKEY_Photo_CameraSerialNumber
+ Description: Serial number of camera that produced this photo
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 273
+
+
+
+
+ Name: System.Photo.Contrast -- PKEY_Photo_Contrast
+ Description: This indicates the direction of contrast processing applied by the camera
+ when the image was shot.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {2A785BA9-8D23-4DED-82E6-60A350C86A10}, 100
+
+
+
+
+ Name: System.Photo.ContrastText -- PKEY_Photo_ContrastText
+ Description: This is the user-friendly form of System.Photo.Contrast. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {59DDE9F2-5253-40EA-9A8B-479E96C6249A}, 100
+
+
+
+
+ Name: System.Photo.DateTaken -- PKEY_Photo_DateTaken
+ Description: PropertyTagExifDTOrig
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 36867
+
+
+
+
+ Name: System.Photo.DigitalZoom -- PKEY_Photo_DigitalZoom
+ Description: PropertyTagExifDigitalZoom. Calculated from PKEY_Photo_DigitalZoomNumerator and PKEY_Photo_DigitalZoomDenominator
+
+ Type: Double -- VT_R8
+ FormatID: {F85BF840-A925-4BC2-B0C4-8E36B598679E}, 100
+
+
+
+
+ Name: System.Photo.DigitalZoomDenominator -- PKEY_Photo_DigitalZoomDenominator
+ Description: Denominator of PKEY_Photo_DigitalZoom
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {745BAF0E-E5C1-4CFB-8A1B-D031A0A52393}, 100
+
+
+
+
+ Name: System.Photo.DigitalZoomNumerator -- PKEY_Photo_DigitalZoomNumerator
+ Description: Numerator of PKEY_Photo_DigitalZoom
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {16CBB924-6500-473B-A5BE-F1599BCBE413}, 100
+
+
+
+
+ Name: System.Photo.Event -- PKEY_Photo_Event
+ Description: The event at which the photo was taken
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 18248
+
+
+
+
+ Name: System.Photo.EXIFVersion -- PKEY_Photo_EXIFVersion
+ Description: The EXIF version.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D35F743A-EB2E-47F2-A286-844132CB1427}, 100
+
+
+
+
+ Name: System.Photo.ExposureBias -- PKEY_Photo_ExposureBias
+ Description: PropertyTagExifExposureBias. Calculated from PKEY_Photo_ExposureBiasNumerator and PKEY_Photo_ExposureBiasDenominator
+
+ Type: Double -- VT_R8
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 37380
+
+
+
+
+ Name: System.Photo.ExposureBiasDenominator -- PKEY_Photo_ExposureBiasDenominator
+ Description: Denominator of PKEY_Photo_ExposureBias
+
+ Type: Int32 -- VT_I4
+ FormatID: {AB205E50-04B7-461C-A18C-2F233836E627}, 100
+
+
+
+
+ Name: System.Photo.ExposureBiasNumerator -- PKEY_Photo_ExposureBiasNumerator
+ Description: Numerator of PKEY_Photo_ExposureBias
+
+ Type: Int32 -- VT_I4
+ FormatID: {738BF284-1D87-420B-92CF-5834BF6EF9ED}, 100
+
+
+
+
+ Name: System.Photo.ExposureIndex -- PKEY_Photo_ExposureIndex
+ Description: PropertyTagExifExposureIndex. Calculated from PKEY_Photo_ExposureIndexNumerator and PKEY_Photo_ExposureIndexDenominator
+
+ Type: Double -- VT_R8
+ FormatID: {967B5AF8-995A-46ED-9E11-35B3C5B9782D}, 100
+
+
+
+
+ Name: System.Photo.ExposureIndexDenominator -- PKEY_Photo_ExposureIndexDenominator
+ Description: Denominator of PKEY_Photo_ExposureIndex
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {93112F89-C28B-492F-8A9D-4BE2062CEE8A}, 100
+
+
+
+
+ Name: System.Photo.ExposureIndexNumerator -- PKEY_Photo_ExposureIndexNumerator
+ Description: Numerator of PKEY_Photo_ExposureIndex
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {CDEDCF30-8919-44DF-8F4C-4EB2FFDB8D89}, 100
+
+
+
+
+ Name: System.Photo.ExposureProgram -- PKEY_Photo_ExposureProgram
+ Description:
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 34850 (PropertyTagExifExposureProg)
+
+
+
+
+ Name: System.Photo.ExposureProgramText -- PKEY_Photo_ExposureProgramText
+ Description: This is the user-friendly form of System.Photo.ExposureProgram. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {FEC690B7-5F30-4646-AE47-4CAAFBA884A3}, 100
+
+
+
+
+ Name: System.Photo.ExposureTime -- PKEY_Photo_ExposureTime
+ Description: PropertyTagExifExposureTime. Calculated from PKEY_Photo_ExposureTimeNumerator and PKEY_Photo_ExposureTimeDenominator
+
+ Type: Double -- VT_R8
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 33434
+
+
+
+
+ Name: System.Photo.ExposureTimeDenominator -- PKEY_Photo_ExposureTimeDenominator
+ Description: Denominator of PKEY_Photo_ExposureTime
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {55E98597-AD16-42E0-B624-21599A199838}, 100
+
+
+
+
+ Name: System.Photo.ExposureTimeNumerator -- PKEY_Photo_ExposureTimeNumerator
+ Description: Numerator of PKEY_Photo_ExposureTime
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {257E44E2-9031-4323-AC38-85C552871B2E}, 100
+
+
+
+
+ Name: System.Photo.Flash -- PKEY_Photo_Flash
+ Description: PropertyTagExifFlash
+
+ Type: Byte -- VT_UI1
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 37385
+
+
+
+
+ Name: System.Photo.FlashEnergy -- PKEY_Photo_FlashEnergy
+ Description: PropertyTagExifFlashEnergy. Calculated from PKEY_Photo_FlashEnergyNumerator and PKEY_Photo_FlashEnergyDenominator
+
+ Type: Double -- VT_R8
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 41483
+
+
+
+
+ Name: System.Photo.FlashEnergyDenominator -- PKEY_Photo_FlashEnergyDenominator
+ Description: Denominator of PKEY_Photo_FlashEnergy
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {D7B61C70-6323-49CD-A5FC-C84277162C97}, 100
+
+
+
+
+ Name: System.Photo.FlashEnergyNumerator -- PKEY_Photo_FlashEnergyNumerator
+ Description: Numerator of PKEY_Photo_FlashEnergy
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {FCAD3D3D-0858-400F-AAA3-2F66CCE2A6BC}, 100
+
+
+
+
+ Name: System.Photo.FlashManufacturer -- PKEY_Photo_FlashManufacturer
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {AABAF6C9-E0C5-4719-8585-57B103E584FE}, 100
+
+
+
+
+ Name: System.Photo.FlashModel -- PKEY_Photo_FlashModel
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {FE83BB35-4D1A-42E2-916B-06F3E1AF719E}, 100
+
+
+
+
+ Name: System.Photo.FlashText -- PKEY_Photo_FlashText
+ Description: This is the user-friendly form of System.Photo.Flash. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6B8B68F6-200B-47EA-8D25-D8050F57339F}, 100
+
+
+
+
+ Name: System.Photo.FNumber -- PKEY_Photo_FNumber
+ Description: PropertyTagExifFNumber. Calculated from PKEY_Photo_FNumberNumerator and PKEY_Photo_FNumberDenominator
+
+ Type: Double -- VT_R8
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 33437
+
+
+
+
+ Name: System.Photo.FNumberDenominator -- PKEY_Photo_FNumberDenominator
+ Description: Denominator of PKEY_Photo_FNumber
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {E92A2496-223B-4463-A4E3-30EABBA79D80}, 100
+
+
+
+
+ Name: System.Photo.FNumberNumerator -- PKEY_Photo_FNumberNumerator
+ Description: Numerator of PKEY_Photo_FNumber
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {1B97738A-FDFC-462F-9D93-1957E08BE90C}, 100
+
+
+
+
+ Name: System.Photo.FocalLength -- PKEY_Photo_FocalLength
+ Description: PropertyTagExifFocalLength. Calculated from PKEY_Photo_FocalLengthNumerator and PKEY_Photo_FocalLengthDenominator
+
+ Type: Double -- VT_R8
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 37386
+
+
+
+
+ Name: System.Photo.FocalLengthDenominator -- PKEY_Photo_FocalLengthDenominator
+ Description: Denominator of PKEY_Photo_FocalLength
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {305BC615-DCA1-44A5-9FD4-10C0BA79412E}, 100
+
+
+
+
+ Name: System.Photo.FocalLengthInFilm -- PKEY_Photo_FocalLengthInFilm
+ Description:
+ Type: UInt16 -- VT_UI2
+ FormatID: {A0E74609-B84D-4F49-B860-462BD9971F98}, 100
+
+
+
+
+ Name: System.Photo.FocalLengthNumerator -- PKEY_Photo_FocalLengthNumerator
+ Description: Numerator of PKEY_Photo_FocalLength
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {776B6B3B-1E3D-4B0C-9A0E-8FBAF2A8492A}, 100
+
+
+
+
+ Name: System.Photo.FocalPlaneXResolution -- PKEY_Photo_FocalPlaneXResolution
+ Description: PropertyTagExifFocalXRes. Calculated from PKEY_Photo_FocalPlaneXResolutionNumerator and
+ PKEY_Photo_FocalPlaneXResolutionDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {CFC08D97-C6F7-4484-89DD-EBEF4356FE76}, 100
+
+
+
+
+ Name: System.Photo.FocalPlaneXResolutionDenominator -- PKEY_Photo_FocalPlaneXResolutionDenominator
+ Description: Denominator of PKEY_Photo_FocalPlaneXResolution
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {0933F3F5-4786-4F46-A8E8-D64DD37FA521}, 100
+
+
+
+
+ Name: System.Photo.FocalPlaneXResolutionNumerator -- PKEY_Photo_FocalPlaneXResolutionNumerator
+ Description: Numerator of PKEY_Photo_FocalPlaneXResolution
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {DCCB10AF-B4E2-4B88-95F9-031B4D5AB490}, 100
+
+
+
+
+ Name: System.Photo.FocalPlaneYResolution -- PKEY_Photo_FocalPlaneYResolution
+ Description: PropertyTagExifFocalYRes. Calculated from PKEY_Photo_FocalPlaneYResolutionNumerator and
+ PKEY_Photo_FocalPlaneYResolutionDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {4FFFE4D0-914F-4AC4-8D6F-C9C61DE169B1}, 100
+
+
+
+
+ Name: System.Photo.FocalPlaneYResolutionDenominator -- PKEY_Photo_FocalPlaneYResolutionDenominator
+ Description: Denominator of PKEY_Photo_FocalPlaneYResolution
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {1D6179A6-A876-4031-B013-3347B2B64DC8}, 100
+
+
+
+
+ Name: System.Photo.FocalPlaneYResolutionNumerator -- PKEY_Photo_FocalPlaneYResolutionNumerator
+ Description: Numerator of PKEY_Photo_FocalPlaneYResolution
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {A2E541C5-4440-4BA8-867E-75CFC06828CD}, 100
+
+
+
+
+ Name: System.Photo.GainControl -- PKEY_Photo_GainControl
+ Description: This indicates the degree of overall image gain adjustment.
+
+ Calculated from PKEY_Photo_GainControlNumerator and PKEY_Photo_GainControlDenominator.
+
+ Type: Double -- VT_R8
+ FormatID: {FA304789-00C7-4D80-904A-1E4DCC7265AA}, 100 (PropertyTagExifGainControl)
+
+
+
+
+ Name: System.Photo.GainControlDenominator -- PKEY_Photo_GainControlDenominator
+ Description: Denominator of PKEY_Photo_GainControl
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {42864DFD-9DA4-4F77-BDED-4AAD7B256735}, 100
+
+
+
+
+ Name: System.Photo.GainControlNumerator -- PKEY_Photo_GainControlNumerator
+ Description: Numerator of PKEY_Photo_GainControl
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {8E8ECF7C-B7B8-4EB8-A63F-0EE715C96F9E}, 100
+
+
+
+
+ Name: System.Photo.GainControlText -- PKEY_Photo_GainControlText
+ Description: This is the user-friendly form of System.Photo.GainControl. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C06238B2-0BF9-4279-A723-25856715CB9D}, 100
+
+
+
+
+ Name: System.Photo.ISOSpeed -- PKEY_Photo_ISOSpeed
+ Description: PropertyTagExifISOSpeed
+
+ Type: UInt16 -- VT_UI2
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 34855
+
+
+
+
+ Name: System.Photo.LensManufacturer -- PKEY_Photo_LensManufacturer
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E6DDCAF7-29C5-4F0A-9A68-D19412EC7090}, 100
+
+
+
+
+ Name: System.Photo.LensModel -- PKEY_Photo_LensModel
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {E1277516-2B5F-4869-89B1-2E585BD38B7A}, 100
+
+
+
+
+ Name: System.Photo.LightSource -- PKEY_Photo_LightSource
+ Description: PropertyTagExifLightSource
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 37384
+
+
+
+
+ Name: System.Photo.MakerNote -- PKEY_Photo_MakerNote
+ Description:
+ Type: Buffer -- VT_VECTOR | VT_UI1 (For variants: VT_ARRAY | VT_UI1)
+ FormatID: {FA303353-B659-4052-85E9-BCAC79549B84}, 100
+
+
+
+
+ Name: System.Photo.MakerNoteOffset -- PKEY_Photo_MakerNoteOffset
+ Description:
+ Type: UInt64 -- VT_UI8
+ FormatID: {813F4124-34E6-4D17-AB3E-6B1F3C2247A1}, 100
+
+
+
+
+ Name: System.Photo.MaxAperture -- PKEY_Photo_MaxAperture
+ Description: Calculated from PKEY_Photo_MaxApertureNumerator and PKEY_Photo_MaxApertureDenominator
+
+ Type: Double -- VT_R8
+ FormatID: {08F6D7C2-E3F2-44FC-AF1E-5AA5C81A2D3E}, 100
+
+
+
+
+ Name: System.Photo.MaxApertureDenominator -- PKEY_Photo_MaxApertureDenominator
+ Description: Denominator of PKEY_Photo_MaxAperture
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {C77724D4-601F-46C5-9B89-C53F93BCEB77}, 100
+
+
+
+
+ Name: System.Photo.MaxApertureNumerator -- PKEY_Photo_MaxApertureNumerator
+ Description: Numerator of PKEY_Photo_MaxAperture
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {C107E191-A459-44C5-9AE6-B952AD4B906D}, 100
+
+
+
+
+ Name: System.Photo.MeteringMode -- PKEY_Photo_MeteringMode
+ Description: PropertyTagExifMeteringMode
+
+ Type: UInt16 -- VT_UI2
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 37383
+
+
+
+
+ Name: System.Photo.MeteringModeText -- PKEY_Photo_MeteringModeText
+ Description: This is the user-friendly form of System.Photo.MeteringMode. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {F628FD8C-7BA8-465A-A65B-C5AA79263A9E}, 100
+
+
+
+
+ Name: System.Photo.Orientation -- PKEY_Photo_Orientation
+ Description: This is the image orientation viewed in terms of rows and columns.
+
+ Type: UInt16 -- VT_UI2
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 274 (PropertyTagOrientation)
+
+
+
+
+ Name: System.Photo.OrientationText -- PKEY_Photo_OrientationText
+ Description: This is the user-friendly form of System.Photo.Orientation. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {A9EA193C-C511-498A-A06B-58E2776DCC28}, 100
+
+
+
+
+ Name: System.Photo.PeopleNames -- PKEY_Photo_PeopleNames
+ Description: The people tags on an image.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR) Legacy code may treat this as VT_LPSTR.
+ FormatID: {E8309B6E-084C-49B4-B1FC-90A80331B638}, 100
+
+
+
+
+ Name: System.Photo.PhotometricInterpretation -- PKEY_Photo_PhotometricInterpretation
+ Description: This is the pixel composition. In JPEG compressed data, a JPEG marker is used
+ instead of this property.
+
+ Type: UInt16 -- VT_UI2
+ FormatID: {341796F1-1DF9-4B1C-A564-91BDEFA43877}, 100
+
+
+
+
+ Name: System.Photo.PhotometricInterpretationText -- PKEY_Photo_PhotometricInterpretationText
+ Description: This is the user-friendly form of System.Photo.PhotometricInterpretation. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {821437D6-9EAB-4765-A589-3B1CBBD22A61}, 100
+
+
+
+
+ Name: System.Photo.ProgramMode -- PKEY_Photo_ProgramMode
+ Description: This is the class of the program used by the camera to set exposure when the
+ picture is taken.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {6D217F6D-3F6A-4825-B470-5F03CA2FBE9B}, 100
+
+
+
+
+ Name: System.Photo.ProgramModeText -- PKEY_Photo_ProgramModeText
+ Description: This is the user-friendly form of System.Photo.ProgramMode. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7FE3AA27-2648-42F3-89B0-454E5CB150C3}, 100
+
+
+
+
+ Name: System.Photo.RelatedSoundFile -- PKEY_Photo_RelatedSoundFile
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {318A6B45-087F-4DC2-B8CC-05359551FC9E}, 100
+
+
+
+
+ Name: System.Photo.Saturation -- PKEY_Photo_Saturation
+ Description: This indicates the direction of saturation processing applied by the camera when
+ the image was shot.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {49237325-A95A-4F67-B211-816B2D45D2E0}, 100
+
+
+
+
+ Name: System.Photo.SaturationText -- PKEY_Photo_SaturationText
+ Description: This is the user-friendly form of System.Photo.Saturation. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {61478C08-B600-4A84-BBE4-E99C45F0A072}, 100
+
+
+
+
+ Name: System.Photo.Sharpness -- PKEY_Photo_Sharpness
+ Description: This indicates the direction of sharpness processing applied by the camera when
+ the image was shot.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {FC6976DB-8349-4970-AE97-B3C5316A08F0}, 100
+
+
+
+
+ Name: System.Photo.SharpnessText -- PKEY_Photo_SharpnessText
+ Description: This is the user-friendly form of System.Photo.Sharpness. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {51EC3F47-DD50-421D-8769-334F50424B1E}, 100
+
+
+
+
+ Name: System.Photo.ShutterSpeed -- PKEY_Photo_ShutterSpeed
+ Description: PropertyTagExifShutterSpeed. Calculated from PKEY_Photo_ShutterSpeedNumerator and PKEY_Photo_ShutterSpeedDenominator
+
+ Type: Double -- VT_R8
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 37377
+
+
+
+
+ Name: System.Photo.ShutterSpeedDenominator -- PKEY_Photo_ShutterSpeedDenominator
+ Description: Denominator of PKEY_Photo_ShutterSpeed
+
+ Type: Int32 -- VT_I4
+ FormatID: {E13D8975-81C7-4948-AE3F-37CAE11E8FF7}, 100
+
+
+
+
+ Name: System.Photo.ShutterSpeedNumerator -- PKEY_Photo_ShutterSpeedNumerator
+ Description: Numerator of PKEY_Photo_ShutterSpeed
+
+ Type: Int32 -- VT_I4
+ FormatID: {16EA4042-D6F4-4BCA-8349-7C78D30FB333}, 100
+
+
+
+
+ Name: System.Photo.SubjectDistance -- PKEY_Photo_SubjectDistance
+ Description: PropertyTagExifSubjectDist. Calculated from PKEY_Photo_SubjectDistanceNumerator and PKEY_Photo_SubjectDistanceDenominator
+
+ Type: Double -- VT_R8
+ FormatID: (FMTID_ImageProperties) {14B81DA1-0135-4D31-96D9-6CBFC9671A99}, 37382
+
+
+
+
+ Name: System.Photo.SubjectDistanceDenominator -- PKEY_Photo_SubjectDistanceDenominator
+ Description: Denominator of PKEY_Photo_SubjectDistance
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {0C840A88-B043-466D-9766-D4B26DA3FA77}, 100
+
+
+
+
+ Name: System.Photo.SubjectDistanceNumerator -- PKEY_Photo_SubjectDistanceNumerator
+ Description: Numerator of PKEY_Photo_SubjectDistance
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {8AF4961C-F526-43E5-AA81-DB768219178D}, 100
+
+
+
+
+ Name: System.Photo.TagViewAggregate -- PKEY_Photo_TagViewAggregate
+ Description: A read-only aggregation of tag-like properties for use in building views.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR) Legacy code may treat this as VT_LPSTR.
+ FormatID: {B812F15D-C2D8-4BBF-BACD-79744346113F}, 100
+
+
+
+
+ Name: System.Photo.TranscodedForSync -- PKEY_Photo_TranscodedForSync
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {9A8EBB75-6458-4E82-BACB-35C0095B03BB}, 100
+
+
+
+
+ Name: System.Photo.WhiteBalance -- PKEY_Photo_WhiteBalance
+ Description: This indicates the white balance mode set when the image was shot.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {EE3D3D8A-5381-4CFA-B13B-AAF66B5F4EC9}, 100
+
+
+
+
+ Name: System.Photo.WhiteBalanceText -- PKEY_Photo_WhiteBalanceText
+ Description: This is the user-friendly form of System.Photo.WhiteBalance. Not intended to be parsed
+ programmatically.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6336B95E-C7A7-426D-86FD-7AE3D39C84B4}, 100
+
+
+
+
+ PropGroup Properties
+
+
+
+
+ Name: System.PropGroup.Advanced -- PKEY_PropGroup_Advanced
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {900A403B-097B-4B95-8AE2-071FDAEEB118}, 100
+
+
+
+
+ Name: System.PropGroup.Audio -- PKEY_PropGroup_Audio
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {2804D469-788F-48AA-8570-71B9C187E138}, 100
+
+
+
+
+ Name: System.PropGroup.Calendar -- PKEY_PropGroup_Calendar
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {9973D2B5-BFD8-438A-BA94-5349B293181A}, 100
+
+
+
+
+ Name: System.PropGroup.Camera -- PKEY_PropGroup_Camera
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {DE00DE32-547E-4981-AD4B-542F2E9007D8}, 100
+
+
+
+
+ Name: System.PropGroup.Contact -- PKEY_PropGroup_Contact
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {DF975FD3-250A-4004-858F-34E29A3E37AA}, 100
+
+
+
+
+ Name: System.PropGroup.Content -- PKEY_PropGroup_Content
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {D0DAB0BA-368A-4050-A882-6C010FD19A4F}, 100
+
+
+
+
+ Name: System.PropGroup.Description -- PKEY_PropGroup_Description
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {8969B275-9475-4E00-A887-FF93B8B41E44}, 100
+
+
+
+
+ Name: System.PropGroup.FileSystem -- PKEY_PropGroup_FileSystem
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {E3A7D2C1-80FC-4B40-8F34-30EA111BDC2E}, 100
+
+
+
+
+ Name: System.PropGroup.General -- PKEY_PropGroup_General
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {CC301630-B192-4C22-B372-9F4C6D338E07}, 100
+
+
+
+
+ Name: System.PropGroup.GPS -- PKEY_PropGroup_GPS
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {F3713ADA-90E3-4E11-AAE5-FDC17685B9BE}, 100
+
+
+
+
+ Name: System.PropGroup.Image -- PKEY_PropGroup_Image
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {E3690A87-0FA8-4A2A-9A9F-FCE8827055AC}, 100
+
+
+
+
+ Name: System.PropGroup.Media -- PKEY_PropGroup_Media
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {61872CF7-6B5E-4B4B-AC2D-59DA84459248}, 100
+
+
+
+
+ Name: System.PropGroup.MediaAdvanced -- PKEY_PropGroup_MediaAdvanced
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {8859A284-DE7E-4642-99BA-D431D044B1EC}, 100
+
+
+
+
+ Name: System.PropGroup.Message -- PKEY_PropGroup_Message
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {7FD7259D-16B4-4135-9F97-7C96ECD2FA9E}, 100
+
+
+
+
+ Name: System.PropGroup.Music -- PKEY_PropGroup_Music
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {68DD6094-7216-40F1-A029-43FE7127043F}, 100
+
+
+
+
+ Name: System.PropGroup.Origin -- PKEY_PropGroup_Origin
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {2598D2FB-5569-4367-95DF-5CD3A177E1A5}, 100
+
+
+
+
+ Name: System.PropGroup.PhotoAdvanced -- PKEY_PropGroup_PhotoAdvanced
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {0CB2BF5A-9EE7-4A86-8222-F01E07FDADAF}, 100
+
+
+
+
+ Name: System.PropGroup.RecordedTV -- PKEY_PropGroup_RecordedTV
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {E7B33238-6584-4170-A5C0-AC25EFD9DA56}, 100
+
+
+
+
+ Name: System.PropGroup.Video -- PKEY_PropGroup_Video
+ Description:
+ Type: Null -- VT_NULL
+ FormatID: {BEBE0920-7671-4C54-A3EB-49FDDFC191EE}, 100
+
+
+
+
+ PropList Properties
+
+
+
+
+ Name: System.PropList.ConflictPrompt -- PKEY_PropList_ConflictPrompt
+ Description: The list of properties to show in the file operation conflict resolution dialog. Properties with empty
+ values will not be displayed. Register under the regvalue of "ConflictPrompt".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 11
+
+
+
+
+ Name: System.PropList.ContentViewModeForBrowse -- PKEY_PropList_ContentViewModeForBrowse
+ Description: The list of properties to show in the content view mode of an item in the context of browsing.
+ Register the regvalue under the name of "ContentViewModeForBrowse".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 13
+
+
+
+
+ Name: System.PropList.ContentViewModeForSearch -- PKEY_PropList_ContentViewModeForSearch
+ Description: The list of properties to show in the content view mode of an item in the context of searching.
+ Register the regvalue under the name of "ContentViewModeForSearch".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 14
+
+
+
+
+ Name: System.PropList.ExtendedTileInfo -- PKEY_PropList_ExtendedTileInfo
+ Description: The list of properties to show in the listview on extended tiles. Register under the regvalue of
+ "ExtendedTileInfo".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 9
+
+
+
+
+ Name: System.PropList.FileOperationPrompt -- PKEY_PropList_FileOperationPrompt
+ Description: The list of properties to show in the file operation confirmation dialog. Properties with empty values
+ will not be displayed. If this list is not specified, then the InfoTip property list is used instead.
+ Register under the regvalue of "FileOperationPrompt".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 10
+
+
+
+
+ Name: System.PropList.FullDetails -- PKEY_PropList_FullDetails
+ Description: The list of all the properties to show in the details page. Property groups can be included in this list
+ in order to more easily organize the UI. Register under the regvalue of "FullDetails".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 2
+
+
+
+
+ Name: System.PropList.InfoTip -- PKEY_PropList_InfoTip
+ Description: The list of properties to show in the infotip. Properties with empty values will not be displayed. Register
+ under the regvalue of "InfoTip".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 4 (PID_PROPLIST_INFOTIP)
+
+
+
+
+ Name: System.PropList.NonPersonal -- PKEY_PropList_NonPersonal
+ Description: The list of properties that are considered 'non-personal'. When told to remove all non-personal properties
+ from a given file, the system will leave these particular properties untouched. Register under the regvalue
+ of "NonPersonal".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {49D1091F-082E-493F-B23F-D2308AA9668C}, 100
+
+
+
+
+ Name: System.PropList.PreviewDetails -- PKEY_PropList_PreviewDetails
+ Description: The list of properties to display in the preview pane. Register under the regvalue of "PreviewDetails".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 8
+
+
+
+
+ Name: System.PropList.PreviewTitle -- PKEY_PropList_PreviewTitle
+ Description: The one or two properties to display in the preview pane title section. The optional second property is
+ displayed as a subtitle. Register under the regvalue of "PreviewTitle".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 6
+
+
+
+
+ Name: System.PropList.QuickTip -- PKEY_PropList_QuickTip
+ Description: The list of properties to show in the infotip when the item is on a slow network. Properties with empty
+ values will not be displayed. Register under the regvalue of "QuickTip".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 5 (PID_PROPLIST_QUICKTIP)
+
+
+
+
+ Name: System.PropList.TileInfo -- PKEY_PropList_TileInfo
+ Description: The list of properties to show in the listview on tiles. Register under the regvalue of "TileInfo".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {C9944A21-A406-48FE-8225-AEC7E24C211B}, 3 (PID_PROPLIST_TILEINFO)
+
+
+
+
+ Name: System.PropList.XPDetailsPanel -- PKEY_PropList_XPDetailsPanel
+ Description: The list of properties to display in the XP webview details panel. Obsolete.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_WebView) {F2275480-F782-4291-BD94-F13693513AEC}, 0 (PID_DISPLAY_PROPERTIES)
+
+
+
+
+ RecordedTV Properties
+
+
+
+
+ Name: System.RecordedTV.ChannelNumber -- PKEY_RecordedTV_ChannelNumber
+ Description: Example: 42
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 7
+
+
+
+
+ Name: System.RecordedTV.Credits -- PKEY_RecordedTV_Credits
+ Description: Example: "Don Messick/Frank Welker/Casey Kasem/Heather North/Nicole Jaffe;;;"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 4
+
+
+
+
+ Name: System.RecordedTV.DateContentExpires -- PKEY_RecordedTV_DateContentExpires
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 15
+
+
+
+
+ Name: System.RecordedTV.EpisodeName -- PKEY_RecordedTV_EpisodeName
+ Description: Example: "Nowhere to Hyde"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 2
+
+
+
+
+ Name: System.RecordedTV.IsATSCContent -- PKEY_RecordedTV_IsATSCContent
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 16
+
+
+
+
+ Name: System.RecordedTV.IsClosedCaptioningAvailable -- PKEY_RecordedTV_IsClosedCaptioningAvailable
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 12
+
+
+
+
+ Name: System.RecordedTV.IsDTVContent -- PKEY_RecordedTV_IsDTVContent
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 17
+
+
+
+
+ Name: System.RecordedTV.IsHDContent -- PKEY_RecordedTV_IsHDContent
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 18
+
+
+
+
+ Name: System.RecordedTV.IsRepeatBroadcast -- PKEY_RecordedTV_IsRepeatBroadcast
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 13
+
+
+
+
+ Name: System.RecordedTV.IsSAP -- PKEY_RecordedTV_IsSAP
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 14
+
+
+
+
+ Name: System.RecordedTV.NetworkAffiliation -- PKEY_RecordedTV_NetworkAffiliation
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {2C53C813-FB63-4E22-A1AB-0B331CA1E273}, 100
+
+
+
+
+ Name: System.RecordedTV.OriginalBroadcastDate -- PKEY_RecordedTV_OriginalBroadcastDate
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {4684FE97-8765-4842-9C13-F006447B178C}, 100
+
+
+
+
+ Name: System.RecordedTV.ProgramDescription -- PKEY_RecordedTV_ProgramDescription
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 3
+
+
+
+
+ Name: System.RecordedTV.RecordingTime -- PKEY_RecordedTV_RecordingTime
+ Description:
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {A5477F61-7A82-4ECA-9DDE-98B69B2479B3}, 100
+
+
+
+
+ Name: System.RecordedTV.StationCallSign -- PKEY_RecordedTV_StationCallSign
+ Description: Example: "TOONP"
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {6D748DE2-8D38-4CC3-AC60-F009B057C557}, 5
+
+
+
+
+ Name: System.RecordedTV.StationName -- PKEY_RecordedTV_StationName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {1B5439E7-EBA1-4AF8-BDD7-7AF1D4549493}, 100
+
+
+
+
+ Search Properties
+
+
+
+
+ Name: System.Search.AutoSummary -- PKEY_Search_AutoSummary
+ Description: General Summary of the document.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {560C36C0-503A-11CF-BAA1-00004C752A9A}, 2
+
+
+
+
+ Name: System.Search.ContainerHash -- PKEY_Search_ContainerHash
+ Description: Hash code used to identify attachments to be deleted based on a common container url
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {BCEEE283-35DF-4D53-826A-F36A3EEFC6BE}, 100
+
+
+
+
+ Name: System.Search.Contents -- PKEY_Search_Contents
+ Description: The contents of the item. This property is for query restrictions only; it cannot be retrieved in a
+ query result. The Indexing Service friendly name is 'contents'.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 19 (PID_STG_CONTENTS)
+
+
+
+
+ Name: System.Search.EntryID -- PKEY_Search_EntryID
+ Description: The entry ID for an item within a given catalog in the Windows Search Index.
+ This value may be recycled, and therefore is not considered unique over time.
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_Query) {49691C90-7E17-101A-A91C-08002B2ECDA9}, 5 (PROPID_QUERY_WORKID)
+
+
+
+
+ Name: System.Search.ExtendedProperties -- PKEY_Search_ExtendedProperties
+ Description:
+ Type: Blob -- VT_BLOB
+ FormatID: {7B03B546-FA4F-4A52-A2FE-03D5311E5865}, 100
+
+
+
+
+ Name: System.Search.GatherTime -- PKEY_Search_GatherTime
+ Description: The Datetime that the Windows Search Gatherer process last pushed properties of this document to the Windows Search Gatherer Plugins.
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {0B63E350-9CCC-11D0-BCDB-00805FCCCE04}, 8
+
+
+
+
+ Name: System.Search.HitCount -- PKEY_Search_HitCount
+ Description: When using CONTAINS over the Windows Search Index, this is the number of matches of the term.
+ If there are multiple CONTAINS, an AND computes the min number of hits and an OR the max number of hits.
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_Query) {49691C90-7E17-101A-A91C-08002B2ECDA9}, 4 (PROPID_QUERY_HITCOUNT)
+
+
+
+
+ Name: System.Search.IsClosedDirectory -- PKEY_Search_IsClosedDirectory
+ Description: If this property is emitted with a value of TRUE, then it indicates that this URL's last modified time applies to all of it's children, and if this URL is deleted then all of it's children are deleted as well. For example, this would be emitted as TRUE when emitting the URL of an email so that all attachments are tied to the last modified time of that email.
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {0B63E343-9CCC-11D0-BCDB-00805FCCCE04}, 23
+
+
+
+
+ Name: System.Search.IsFullyContained -- PKEY_Search_IsFullyContained
+ Description: Any child URL of a URL which has System.Search.IsClosedDirectory=TRUE must emit System.Search.IsFullyContained=TRUE. This ensures that the URL is not deleted at the end of a crawl because it hasn't been visited (which is the normal mechanism for detecting deletes). For example an email attachment would emit this property
+
+ Type: Boolean -- VT_BOOL
+ FormatID: {0B63E343-9CCC-11D0-BCDB-00805FCCCE04}, 24
+
+
+
+
+ Name: System.Search.QueryFocusedSummary -- PKEY_Search_QueryFocusedSummary
+ Description: Query Focused Summary of the document.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {560C36C0-503A-11CF-BAA1-00004C752A9A}, 3
+
+
+
+
+ Name: System.Search.QueryFocusedSummaryWithFallback -- PKEY_Search_QueryFocusedSummaryWithFallback
+ Description: Query Focused Summary of the document, if none is available it returns the AutoSummary.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {560C36C0-503A-11CF-BAA1-00004C752A9A}, 4
+
+
+
+
+ Name: System.Search.Rank -- PKEY_Search_Rank
+ Description: Relevance rank of row. Ranges from 0-1000. Larger numbers = better matches. Query-time only.
+
+ Type: Int32 -- VT_I4
+ FormatID: (FMTID_Query) {49691C90-7E17-101A-A91C-08002B2ECDA9}, 3 (PROPID_QUERY_RANK)
+
+
+
+
+ Name: System.Search.Store -- PKEY_Search_Store
+ Description: The identifier for the protocol handler that produced this item. (E.g. MAPI, CSC, FILE etc.)
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {A06992B3-8CAF-4ED7-A547-B259E32AC9FC}, 100
+
+
+
+
+ Name: System.Search.UrlToIndex -- PKEY_Search_UrlToIndex
+ Description: This property should be emitted by a container IFilter for each child URL within the container. The children will eventually be crawled by the indexer if they are within scope.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {0B63E343-9CCC-11D0-BCDB-00805FCCCE04}, 2
+
+
+
+
+ Name: System.Search.UrlToIndexWithModificationTime -- PKEY_Search_UrlToIndexWithModificationTime
+ Description: This property is the same as System.Search.UrlToIndex except that it includes the time the URL was last modified. This is an optimization for the indexer as it doesn't have to call back into the protocol handler to ask for this information to determine if the content needs to be indexed again. The property is a vector with two elements, a VT_LPWSTR with the URL and a VT_FILETIME for the last modified time.
+
+ Type: Multivalue Any -- VT_VECTOR | VT_NULL (For variants: VT_ARRAY | VT_NULL)
+ FormatID: {0B63E343-9CCC-11D0-BCDB-00805FCCCE04}, 12
+
+
+
+
+ Shell Properties
+
+
+
+
+ Name: System.Shell.OmitFromView -- PKEY_Shell_OmitFromView
+ Description: Set this to a string value of 'True' to omit this item from shell views
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {DE35258C-C695-4CBC-B982-38B0AD24CED0}, 2
+
+
+
+
+ Name: System.Shell.SFGAOFlagsStrings -- PKEY_Shell_SFGAOFlagsStrings
+ Description: Expresses the SFGAO flags as string values and is used as a query optimization.
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: {D6942081-D53B-443D-AD47-5E059D9CD27A}, 2
+
+
+
+
+ Software Properties
+
+
+
+
+ Name: System.Software.DateLastUsed -- PKEY_Software_DateLastUsed
+ Description:
+
+ Type: DateTime -- VT_FILETIME (For variants: VT_DATE)
+ FormatID: {841E4F90-FF59-4D16-8947-E81BBFFAB36D}, 16
+
+
+
+
+ Name: System.Software.ProductName -- PKEY_Software_ProductName
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (PSFMTID_VERSION) {0CEF7D53-FA64-11D1-A203-0000F81FEDEE}, 7
+
+
+
+
+ Sync Properties
+
+
+
+
+ Name: System.Sync.Comments -- PKEY_Sync_Comments
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 13
+
+
+
+
+ Name: System.Sync.ConflictDescription -- PKEY_Sync_ConflictDescription
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CE50C159-2FB8-41FD-BE68-D3E042E274BC}, 4
+
+
+
+
+ Name: System.Sync.ConflictFirstLocation -- PKEY_Sync_ConflictFirstLocation
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CE50C159-2FB8-41FD-BE68-D3E042E274BC}, 6
+
+
+
+
+ Name: System.Sync.ConflictSecondLocation -- PKEY_Sync_ConflictSecondLocation
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CE50C159-2FB8-41FD-BE68-D3E042E274BC}, 7
+
+
+
+
+ Name: System.Sync.HandlerCollectionID -- PKEY_Sync_HandlerCollectionID
+ Description:
+ Type: Guid -- VT_CLSID
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 2
+
+
+
+
+ Name: System.Sync.HandlerID -- PKEY_Sync_HandlerID
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 3
+
+
+
+
+ Name: System.Sync.HandlerName -- PKEY_Sync_HandlerName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CE50C159-2FB8-41FD-BE68-D3E042E274BC}, 2
+
+
+
+
+ Name: System.Sync.HandlerType -- PKEY_Sync_HandlerType
+ Description:
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 8
+
+
+
+
+ Name: System.Sync.HandlerTypeLabel -- PKEY_Sync_HandlerTypeLabel
+ Description:
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 9
+
+
+
+
+ Name: System.Sync.ItemID -- PKEY_Sync_ItemID
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 6
+
+
+
+
+ Name: System.Sync.ItemName -- PKEY_Sync_ItemName
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {CE50C159-2FB8-41FD-BE68-D3E042E274BC}, 3
+
+
+
+
+ Name: System.Sync.ProgressPercentage -- PKEY_Sync_ProgressPercentage
+ Description: An integer value between 0 and 100 representing the percentage completed.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 23
+
+
+
+
+ Name: System.Sync.State -- PKEY_Sync_State
+ Description: Sync state.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 24
+
+
+
+
+ Name: System.Sync.Status -- PKEY_Sync_Status
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {7BD5533E-AF15-44DB-B8C8-BD6624E1D032}, 10
+
+
+
+
+ Task Properties
+
+
+
+
+ Name: System.Task.BillingInformation -- PKEY_Task_BillingInformation
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {D37D52C6-261C-4303-82B3-08B926AC6F12}, 100
+
+
+
+
+ Name: System.Task.CompletionStatus -- PKEY_Task_CompletionStatus
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {084D8A0A-E6D5-40DE-BF1F-C8820E7C877C}, 100
+
+
+
+
+ Name: System.Task.Owner -- PKEY_Task_Owner
+ Description:
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: {08C7CC5F-60F2-4494-AD75-55E3E0B5ADD0}, 100
+
+
+
+
+ Video Properties
+
+
+
+
+ Name: System.Video.Compression -- PKEY_Video_Compression
+ Description: Indicates the level of compression for the video stream. "Compression".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 10 (PIDVSI_COMPRESSION)
+
+
+
+
+ Name: System.Video.Director -- PKEY_Video_Director
+ Description:
+
+ Type: Multivalue String -- VT_VECTOR | VT_LPWSTR (For variants: VT_ARRAY | VT_BSTR)
+ FormatID: (PSGUID_MEDIAFILESUMMARYINFORMATION) {64440492-4C8B-11D1-8B70-080036B11A03}, 20 (PIDMSI_DIRECTOR)
+
+
+
+
+ Name: System.Video.EncodingBitrate -- PKEY_Video_EncodingBitrate
+ Description: Indicates the data rate in "bits per second" for the video stream. "DataRate".
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 8 (PIDVSI_DATA_RATE)
+
+
+
+
+ Name: System.Video.FourCC -- PKEY_Video_FourCC
+ Description: Indicates the 4CC for the video stream.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 44
+
+
+
+
+ Name: System.Video.FrameHeight -- PKEY_Video_FrameHeight
+ Description: Indicates the frame height for the video stream.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 4
+
+
+
+
+ Name: System.Video.FrameRate -- PKEY_Video_FrameRate
+ Description: Indicates the frame rate in "frames per millisecond" for the video stream. "FrameRate".
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 6 (PIDVSI_FRAME_RATE)
+
+
+
+
+ Name: System.Video.FrameWidth -- PKEY_Video_FrameWidth
+ Description: Indicates the frame width for the video stream.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 3
+
+
+
+
+ Name: System.Video.HorizontalAspectRatio -- PKEY_Video_HorizontalAspectRatio
+ Description: Indicates the horizontal portion of the aspect ratio. The X portion of XX:YY,
+ like 16:9.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 42
+
+
+
+
+ Name: System.Video.SampleSize -- PKEY_Video_SampleSize
+ Description: Indicates the sample size in bits for the video stream. "SampleSize".
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 9 (PIDVSI_SAMPLE_SIZE)
+
+
+
+
+ Name: System.Video.StreamName -- PKEY_Video_StreamName
+ Description: Indicates the name for the video stream. "StreamName".
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 2 (PIDVSI_STREAM_NAME)
+
+
+
+
+ Name: System.Video.StreamNumber -- PKEY_Video_StreamNumber
+ Description: "Stream Number".
+
+ Type: UInt16 -- VT_UI2
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 11 (PIDVSI_STREAM_NUMBER)
+
+
+
+
+ Name: System.Video.TotalBitrate -- PKEY_Video_TotalBitrate
+ Description: Indicates the total data rate in "bits per second" for all video and audio streams.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 43 (PIDVSI_TOTAL_BITRATE)
+
+
+
+
+ Name: System.Video.TranscodedForSync -- PKEY_Video_TranscodedForSync
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 46
+
+
+
+
+ Name: System.Video.VerticalAspectRatio -- PKEY_Video_VerticalAspectRatio
+ Description: Indicates the vertical portion of the aspect ratio. The Y portion of
+ XX:YY, like 16:9.
+
+ Type: UInt32 -- VT_UI4
+ FormatID: (FMTID_VideoSummaryInformation) {64440491-4C8B-11D1-8B70-080036B11A03}, 45
+
+
+
+
+ Volume Properties
+
+
+
+
+ Name: System.Volume.FileSystem -- PKEY_Volume_FileSystem
+ Description: Indicates the filesystem of the volume.
+
+ Type: String -- VT_LPWSTR (For variants: VT_BSTR)
+ FormatID: (FMTID_Volume) {9B174B35-40FF-11D2-A27E-00C04FC30871}, 4 (PID_VOLUME_FILESYSTEM) (Filesystem Volume Properties)
+
+
+
+
+ Name: System.Volume.IsMappedDrive -- PKEY_Volume_IsMappedDrive
+ Description:
+ Type: Boolean -- VT_BOOL
+ FormatID: {149C0B69-2C2D-48FC-808F-D318D78C4636}, 2
+
+
+
+
+ Name: System.Volume.IsRoot -- PKEY_Volume_IsRoot
+ Description:
+
+ Type: Boolean -- VT_BOOL
+ FormatID: (FMTID_Volume) {9B174B35-40FF-11D2-A27E-00C04FC30871}, 10 (Filesystem Volume Properties)
+
+
+
+
+ Helper class to modify properties for a given window
+
+
+
+
+ Sets a shell property for a given window
+
+ The property to set
+ Handle to the window that the property will be set on
+ The value to set for the property
+
+
+
+ Sets a shell property for a given window
+
+ The property to set
+ Window that the property will be set on
+ The value to set for the property
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to AddToMostRecentlyUsedList cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to AlwaysAppendDefaultExtension cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to Index was outside the bounds of the CommonFileDialogComboBox..
+
+
+
+
+ Looks up a localized string similar to File name not available - dialog was canceled..
+
+
+
+
+ Looks up a localized string similar to Shell item could not be created..
+
+
+
+
+ Looks up a localized string similar to Handle provided cannot be IntPtr.Zero..
+
+
+
+
+ Looks up a localized string similar to Multiple files selected - the FileNames property should be used instead..
+
+
+
+
+ Looks up a localized string similar to Multiple files selected - the Items property should be used instead..
+
+
+
+
+ Looks up a localized string similar to File name not available - dialog has not closed yet..
+
+
+
+
+ Looks up a localized string similar to Common File Dialog requires Windows Vista or later..
+
+
+
+
+ Looks up a localized string similar to Office Files.
+
+
+
+
+ Looks up a localized string similar to All Picture Files.
+
+
+
+
+ Looks up a localized string similar to Text Files.
+
+
+
+
+ Looks up a localized string similar to CreatePrompt cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to Custom controls cannot be removed from a File dialog once added..
+
+
+
+
+ Looks up a localized string similar to Control name cannot be null or zero length..
+
+
+
+
+ Looks up a localized string similar to CommonFileDialogMenuItem controls can only be added to CommonFileDialogMenu controls..
+
+
+
+
+ Looks up a localized string similar to Modifying controls collection while dialog is showing is not supported..
+
+
+
+
+ Looks up a localized string similar to Dialog cannot have more than one control with the same name..
+
+
+
+
+ Looks up a localized string similar to Dialog control must be removed from current collections first..
+
+
+
+
+ Looks up a localized string similar to EnsureFileExists cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to EnsurePathExists cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to EnsureReadOnly cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to EnsureValidNames cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to Browsing to object failed..
+
+
+
+
+ Looks up a localized string similar to ExplorerBrowser failed to get current view..
+
+
+
+
+ Looks up a localized string similar to Unable to get icon size..
+
+
+
+
+ Looks up a localized string similar to Unexpected error retrieving item count..
+
+
+
+
+ Looks up a localized string similar to Unexpected error retrieving selected item count..
+
+
+
+
+ Looks up a localized string similar to Unexpected error retrieving selection..
+
+
+
+
+ Looks up a localized string similar to Unexpected error retrieving view items..
+
+
+
+
+ Looks up a localized string similar to The given path does not exist ({0}).
+
+
+
+
+ Looks up a localized string similar to Guid does not identify a known folder..
+
+
+
+
+ Looks up a localized string similar to ControlPanel Category.
+
+
+
+
+ Looks up a localized string similar to ControlPanel Classic.
+
+
+
+
+ Looks up a localized string similar to Communications.
+
+
+
+
+ Looks up a localized string similar to Compressed Folder.
+
+
+
+
+ Looks up a localized string similar to Contacts.
+
+
+
+
+ Looks up a localized string similar to Documents.
+
+
+
+
+ Looks up a localized string similar to Games.
+
+
+
+
+ Looks up a localized string similar to Generic Library.
+
+
+
+
+ Looks up a localized string similar to Invalid.
+
+
+
+
+ Looks up a localized string similar to Library.
+
+
+
+
+ Looks up a localized string similar to Music.
+
+
+
+
+ Looks up a localized string similar to Music Icons.
+
+
+
+
+ Looks up a localized string similar to Network Explorer.
+
+
+
+
+ Looks up a localized string similar to Not Specified.
+
+
+
+
+ Looks up a localized string similar to Open Search.
+
+
+
+
+ Looks up a localized string similar to Other Users.
+
+
+
+
+ Looks up a localized string similar to Pictures.
+
+
+
+
+ Looks up a localized string similar to Printers.
+
+
+
+
+ Looks up a localized string similar to RecordedTV.
+
+
+
+
+ Looks up a localized string similar to RecycleBin.
+
+
+
+
+ Looks up a localized string similar to Saved Games.
+
+
+
+
+ Looks up a localized string similar to Search Connector.
+
+
+
+
+ Looks up a localized string similar to Searches.
+
+
+
+
+ Looks up a localized string similar to Generic SearchResults.
+
+
+
+
+ Looks up a localized string similar to Software Explorer.
+
+
+
+
+ Looks up a localized string similar to User Files.
+
+
+
+
+ Looks up a localized string similar to Users Libraries.
+
+
+
+
+ Looks up a localized string similar to Videos.
+
+
+
+
+ Looks up a localized string similar to IsExpandedMode cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to Custom categories cannot be added while recent documents tracking is turned off..
+
+
+
+
+ Looks up a localized string similar to The file type is not registered with this application..
+
+
+
+
+ Looks up a localized string similar to JumpListLink's path is required and cannot be null..
+
+
+
+
+ Looks up a localized string similar to JumpListLink's title is required and cannot be null..
+
+
+
+
+ Looks up a localized string similar to Negative numbers are not allowed for the ordinal position..
+
+
+
+
+ Looks up a localized string similar to Given Known Folder ID is invalid..
+
+
+
+
+ Looks up a localized string similar to Parsing name is invalid..
+
+
+
+
+ Looks up a localized string similar to Creation of window has failed, view inner exception for details..
+
+
+
+
+ Looks up a localized string similar to Window class could not be registered, check inner exception for more details..
+
+
+
+
+ Looks up a localized string similar to Message filter registration failed..
+
+
+
+
+ Looks up a localized string similar to No listener handled of that value is registered..
+
+
+
+
+ Looks up a localized string similar to Cannot create window on the listener thread because there is no existing window on the listener thread..
+
+
+
+
+ Looks up a localized string similar to NavigateToShortcut cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to Parent cannot be null..
+
+
+
+
+ Looks up a localized string similar to The method or operation is not implemented..
+
+
+
+
+ Looks up a localized string similar to OverwritePrompt cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to This CanonicalName is not a valid index..
+
+
+
+
+ Looks up a localized string similar to This PropertyKey is not a valid index..
+
+
+
+
+ Looks up a localized string similar to Argument CanonicalName cannot be null or empty..
+
+
+
+
+ Looks up a localized string similar to Index was outside the bounds of the CommonFileDialogRadioButtonList..
+
+
+
+
+ Looks up a localized string similar to RestoreDirectory cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to Retrieved a null shell item from dialog..
+
+
+
+
+ Looks up a localized string similar to Given property key is invalid..
+
+
+
+
+ Looks up a localized string similar to Shell Exception has occurred, look at inner exception for information..
+
+
+
+
+ Looks up a localized string similar to GetParsingName has failed..
+
+
+
+
+ Looks up a localized string similar to The given CanonicalName is not valid..
+
+
+
+
+ Looks up a localized string similar to DefaultSaveFolder path not found..
+
+
+
+
+ Looks up a localized string similar to LibraryName cannot be empty..
+
+
+
+
+ Looks up a localized string similar to Folder path not found..
+
+
+
+
+ Looks up a localized string similar to Invalid FolderType Guid..
+
+
+
+
+ Looks up a localized string similar to The given known folder is not a valid library..
+
+
+
+
+ Looks up a localized string similar to Can't get the display name..
+
+
+
+
+ Looks up a localized string similar to Destination array too small, or invalid arrayIndex..
+
+
+
+
+ Looks up a localized string similar to Must have at least one shell object in the collection..
+
+
+
+
+ Looks up a localized string similar to Cannot insert items into a read only list..
+
+
+
+
+ Looks up a localized string similar to Cannot remove items from a read only list..
+
+
+
+
+ Looks up a localized string similar to Shell item could not be created..
+
+
+
+
+ Looks up a localized string similar to Shell Object creation requires Windows Vista or higher operating system..
+
+
+
+
+ Looks up a localized string similar to Unable to Create Shell Item..
+
+
+
+
+ Looks up a localized string similar to Registration for change notification has failed..
+
+
+
+
+ Looks up a localized string similar to Unable to change watched events while listening..
+
+
+
+
+ Looks up a localized string similar to The value on this property cannot be set. To set the property value, use the ShellObject that is associated with this property..
+
+
+
+
+ Looks up a localized string similar to No constructor found matching requested argument types..
+
+
+
+
+ Looks up a localized string similar to Unable to set property..
+
+
+
+
+ Looks up a localized string similar to Unable to get writable property store for this property..
+
+
+
+
+ Looks up a localized string similar to A value had to be truncated in a string or rounded if a numeric value. Set AllowTruncatedValue to true to prevent this exception..
+
+
+
+
+ Looks up a localized string similar to This Property is available on Windows 7 only..
+
+
+
+
+ Looks up a localized string similar to This property only accepts a value of type \"{0}\"..
+
+
+
+
+ Looks up a localized string similar to Unable to set list of sort columns..
+
+
+
+
+ Looks up a localized string similar to Unable to set visible columns..
+
+
+
+
+ Looks up a localized string similar to CurrentSize (width or height) cannot be greater than the maximum size: {0}..
+
+
+
+
+ Looks up a localized string similar to The current ShellObject does not have a thumbnail. Try using ShellThumbnailFormatOption.Default to get the icon for this item..
+
+
+
+
+ Looks up a localized string similar to The current ShellObject does not have a valid thumbnail handler or there was a problem in extracting the thumbnail for this specific shell object..
+
+
+
+
+ Looks up a localized string similar to CurrentSize (width or height) cannot be 0..
+
+
+
+
+ Looks up a localized string similar to ShowHiddenItems cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to Show places list cannot be changed while dialog is showing..
+
+
+
+
+ Looks up a localized string similar to The Stock Icon identifier given is invalid ({0})..
+
+
+
+
+ Looks up a localized string similar to Child control's window handle cannot be zero..
+
+
+
+
+ Looks up a localized string similar to Parent window handle cannot be zero..
+
+
+
+
+ Looks up a localized string similar to TabbedThumbnailProxyWindow has not been set..
+
+
+
+
+ Looks up a localized string similar to A valid active Window is needed to update the Taskbar..
+
+
+
+
+ Looks up a localized string similar to The array of buttons must contain at least 1 item..
+
+
+
+
+ Looks up a localized string similar to Tool bar buttons for this window are already added. Please refer to the Remarks section of the AddButtons method for more information on updating the properties or hiding existing buttons..
+
+
+
+
+ Looks up a localized string similar to Value is already set. It cannot be set more than once..
+
+
+
+
+ Looks up a localized string similar to The given control has not been added to the taskbar..
+
+
+
+
+ Looks up a localized string similar to Window handle is invalid..
+
+
+
+
+ Looks up a localized string similar to This preview has already been added..
+
+
+
+
+ Looks up a localized string similar to The given preview has not been added to the taskbar..
+
+
+
+
+ Looks up a localized string similar to Maximum number of buttons allowed is 7..
+
+
+
+
+ Looks up a localized string similar to Null or empty arrays are not allowed..
+
+
+
+
+ Encapsulates the data about a window message
+
+
+
+
+ Received windows message.
+
+
+
+
+ The result of registering with the MessageListenerFilter
+
+
+
+
+ Gets the window handle to which the callback was registered.
+
+
+
+
+ Gets the message for which the callback was registered.
+
+
+
+
+ Base class for the Event Args for change notifications raised by .
+
+
+
+
+ The type of the change that happened to the ShellObject
+
+
+
+
+ True if the event was raised as a result of a system interrupt.
+
+
+
+
+ The data that describes a ShellObject event with a single path parameter
+
+
+
+
+ The path of the shell object
+
+
+
+
+ The data that describes a ShellObject renamed event
+
+
+
+
+ The new path of the shell object
+
+
+
+
+ The data that describes a SystemImageUpdated event.
+
+
+
+
+ Gets the index of the system image that has been updated.
+
+
+
+
+ Listens for changes in/on a ShellObject and raises events when they occur.
+ This class supports all items under the shell namespace including
+ files, folders and virtual folders (libraries, search results and network items), etc.
+
+
+
+
+ Creates the ShellObjectWatcher for the given ShellObject
+
+ The ShellObject to monitor
+ Whether to listen for changes recursively (for when monitoring a container)
+
+
+
+ Start the watcher and begin receiving change notifications.
+
+ If the watcher is running, has no effect.
+ Registration for notifications should be done before this is called.
+
+
+
+
+
+ Stop the watcher and prevent further notifications from being received.
+ If the watcher is not running, this has no effect.
+
+
+
+
+ Processes all change notifications sent by the Windows Shell.
+
+ The windows message representing the notification event
+
+
+
+ Disposes ShellObjectWatcher
+
+
+
+
+
+ Disposes ShellObjectWatcher.
+
+
+
+
+ Finalizer for ShellObjectWatcher
+
+
+
+
+ Gets whether the watcher is currently running.
+
+
+
+
+ Raised when any event occurs.
+
+
+
+
+ Raised when global events occur.
+
+
+
+
+ Raised when disk events occur.
+
+
+
+
+ Raised when an item is renamed.
+
+
+
+
+ Raised when an item is created.
+
+
+
+
+ Raised when an item is deleted.
+
+
+
+
+ Raised when an item is updated.
+
+
+
+
+ Raised when a directory is updated.
+
+
+
+
+ Raised when a directory is renamed.
+
+
+
+
+ Raised when a directory is created.
+
+
+
+
+ Raised when a directory is deleted.
+
+
+
+
+ Raised when media is inserted.
+
+
+
+
+ Raised when media is removed.
+
+
+
+
+ Raised when a drive is added.
+
+
+
+
+ Raised when a drive is removed.
+
+
+
+
+ Raised when a folder is shared on a network.
+
+
+
+
+ Raised when a folder is unshared from the network.
+
+
+
+
+ Raised when a server is disconnected.
+
+
+
+
+ Raised when a system image is changed.
+
+
+
+
+ Raised when free space changes.
+
+
+
+
+ Raised when a file type association changes.
+
+
+
+
+ Describes the event that has occurred.
+ Typically, only one event is specified at a time.
+ If more than one event is specified,
+ the values contained in the dwItem1 and dwItem2 parameters must be the same,
+ respectively, for all specified events.
+ This parameter can be one or more of the following values:
+
+
+
+
+ None
+
+
+
+
+ The name of a nonfolder item has changed.
+ SHCNF_IDLIST or SHCNF_PATH must be specified in uFlags.
+ dwItem1 contains the previous PIDL or name of the item.
+ dwItem2 contains the new PIDL or name of the item.
+
+
+
+
+ A nonfolder item has been created. SHCNF_IDLIST or SHCNF_PATH must be specified in uFlags.
+ dwItem1 contains the item that was created.
+ dwItem2 is not used and should be NULL.
+
+
+
+
+ A nonfolder item has been deleted. SHCNF_IDLIST or SHCNF_PATH must be specified in uFlags.
+ dwItem1 contains the item that was deleted.
+ dwItem2 is not used and should be NULL.
+
+
+
+
+ A folder has been created. SHCNF_IDLIST or SHCNF_PATH must be specified in uFlags.
+ dwItem1 contains the folder that was created.
+ dwItem2 is not used and should be NULL.
+
+
+
+
+ A folder has been removed. SHCNF_IDLIST or SHCNF_PATH must be specified in uFlags.
+ dwItem1 contains the folder that was removed.
+ dwItem2 is not used and should be NULL.
+
+
+
+
+ Storage media has been inserted into a drive. SHCNF_IDLIST or SHCNF_PATH must be specified in uFlags.
+ dwItem1 contains the root of the drive that contains the new media.
+ dwItem2 is not used and should be NULL.
+
+
+
+
+ Storage media has been removed from a drive. SHCNF_IDLIST or SHCNF_PATH must be specified in uFlags.
+ dwItem1 contains the root of the drive from which the media was removed.
+ dwItem2 is not used and should be NULL.
+
+
+
+
+ A drive has been removed. SHCNF_IDLIST or SHCNF_PATH must be specified in uFlags.
+ dwItem1 contains the root of the drive that was removed.
+ dwItem2 is not used and should be NULL.
+
+
+
+
+ A drive has been added. SHCNF_IDLIST or SHCNF_PATH must be specified in uFlags.
+ dwItem1 contains the root of the drive that was added.
+ dwItem2 is not used and should be NULL.
+
+
+
+
+ A folder on the local computer is being shared via the network.
+ SHCNF_IDLIST or SHCNF_PATH must be specified in uFlags.
+ dwItem1 contains the folder that is being shared.
+ dwItem2 is not used and should be NULL.
+
+
+
+
+ A folder on the local computer is no longer being shared via the network.
+ SHCNF_IDLIST or SHCNF_PATH must be specified in uFlags.
+ dwItem1 contains the folder that is no longer being shared.
+ dwItem2 is not used and should be NULL.
+
+
+
+
+ The attributes of an item or folder have changed.
+ SHCNF_IDLIST or SHCNF_PATH must be specified in uFlags.
+ dwItem1 contains the item or folder that has changed.
+ dwItem2 is not used and should be NULL.
+
+
+
+
+ The contents of an existing folder have changed, but the folder still exists and has not been renamed.
+ SHCNF_IDLIST or SHCNF_PATH must be specified in uFlags.
+ dwItem1 contains the folder that has changed.
+ dwItem2 is not used and should be NULL.
+ If a folder has been created, deleted, or renamed, use SHCNE_MKDIR, SHCNE_RMDIR, or SHCNE_RENAMEFOLDER, respectively.
+
+
+
+
+ An existing item (a folder or a nonfolder) has changed, but the item still exists and has not been renamed.
+ SHCNF_IDLIST or SHCNF_PATH must be specified in uFlags.
+ dwItem1 contains the item that has changed.
+ dwItem2 is not used and should be NULL.
+ If a nonfolder item has been created, deleted, or renamed,
+ use SHCNE_CREATE, SHCNE_DELETE, or SHCNE_RENAMEITEM, respectively, instead.
+
+
+
+
+ The computer has disconnected from a server.
+ SHCNF_IDLIST or SHCNF_PATH must be specified in uFlags.
+ dwItem1 contains the server from which the computer was disconnected.
+ dwItem2 is not used and should be NULL.
+
+
+
+
+ An image in the system image list has changed.
+ SHCNF_DWORD must be specified in uFlags.
+ dwItem1 is not used and should be NULL.
+ dwItem2 contains the index in the system image list that has changed.
+ //verify this is not opposite?
+
+
+
+ The name of a folder has changed. SHCNF_IDLIST or SHCNF_PATH must be specified in uFlags.
+ dwItem1 contains the previous PIDL or name of the folder.
+ dwItem2 contains the new PIDL or name of the folder.
+
+
+
+
+ The amount of free space on a drive has changed.
+ SHCNF_IDLIST or SHCNF_PATH must be specified in uFlags.
+ dwItem1 contains the root of the drive on which the free space changed.
+ dwItem2 is not used and should be NULL.
+
+
+
+
+ A file type association has changed.
+ SHCNF_IDLIST must be specified in the uFlags parameter.
+ dwItem1 and dwItem2 are not used and must be NULL.
+
+
+
+
+ Specifies a combination of all of the disk event identifiers.
+
+
+
+
+ Specifies a combination of all of the global event identifiers.
+
+
+
+
+ All events have occurred.
+
+
+
+
+ The specified event occurred as a result of a system interrupt.
+ As this value modifies other event values, it cannot be used alone.
+
+
+
+
+ Represents a standard system icon.
+
+
+
+
+ Creates a new StockIcon instance with the specified identifer, default size
+ and no link overlay or selected states.
+
+ A value that identifies the icon represented by this instance.
+
+
+
+ Creates a new StockIcon instance with the specified identifer and options.
+
+ A value that identifies the icon represented by this instance.
+ A value that indicates the size of the stock icon.
+ A bool value that indicates whether the icon has a link overlay.
+ A bool value that indicates whether the icon is in a selected state.
+
+
+
+ Release the native and managed objects
+
+ Indicates that this is being called from Dispose(), rather than the finalizer.
+
+
+
+ Release the native objects
+
+
+
+
+
+
+
+
+
+ Gets or sets a value indicating whether the icon appears selected.
+
+ A value.
+
+
+
+ Gets or sets a value that cotrols whether to put a link overlay on the icon.
+
+ A value.
+
+
+
+ Gets or sets a value that controls the size of the Stock Icon.
+
+ A value.
+
+
+
+ Gets or sets the Stock Icon identifier associated with this icon.
+
+
+
+
+ Gets the icon image in format.
+
+
+
+
+ Gets the icon image in format.
+
+
+
+
+ Gets the icon image in format.
+
+
+
+
+ Specifies options for the size of the stock icon.
+
+
+
+
+ Retrieve the small version of the icon, as specified by SM_CXSMICON and SM_CYSMICON system metrics.
+
+
+
+
+ Retrieve the large version of the icon, as specified by SM_CXICON and SM_CYICON system metrics.
+
+
+
+
+ Retrieve the shell-sized icons (instead of the size specified by the system metrics).
+
+
+
+
+ Provides values used to specify which standard icon to retrieve.
+
+
+
+
+ Icon for a document (blank page), no associated program.
+
+
+
+
+ Icon for a document with an associated program.
+
+
+
+
+ Icon for a generic application with no custom icon.
+
+
+
+
+ Icon for a closed folder.
+
+
+
+
+ Icon for an open folder.
+
+
+
+
+ Icon for a 5.25" floppy disk drive.
+
+
+
+
+ Icon for a 3.5" floppy disk drive.
+
+
+
+
+ Icon for a removable drive.
+
+
+
+
+ Icon for a fixed (hard disk) drive.
+
+
+
+
+ Icon for a network drive.
+
+
+
+
+ Icon for a disconnected network drive.
+
+
+
+
+ Icon for a CD drive.
+
+
+
+
+ Icon for a RAM disk drive.
+
+
+
+
+ Icon for an entire network.
+
+
+
+
+ Icon for a computer on the network.
+
+
+
+
+ Icon for a printer.
+
+
+
+
+ Icon for My Network places.
+
+
+
+
+ Icon for search (magnifying glass).
+
+
+
+
+ Icon for help.
+
+
+
+
+ Icon for an overlay indicating shared items.
+
+
+
+
+ Icon for an overlay indicating shortcuts to items.
+
+
+
+
+ Icon for an overlay for slow items.
+
+
+
+
+ Icon for a empty recycle bin.
+
+
+
+
+ Icon for a full recycle bin.
+
+
+
+
+ Icon for audio CD media.
+
+
+
+
+ Icon for a security lock.
+
+
+
+
+ Icon for a auto list.
+
+
+
+
+ Icon for a network printer.
+
+
+
+
+ Icon for a server share.
+
+
+
+
+ Icon for a Fax printer.
+
+
+
+
+ Icon for a networked Fax printer.
+
+
+
+
+ Icon for print to file.
+
+
+
+
+ Icon for a stack.
+
+
+
+
+ Icon for a SVCD media.
+
+
+
+
+ Icon for a folder containing other items.
+
+
+
+
+ Icon for an unknown drive.
+
+
+
+
+ Icon for a DVD drive.
+
+
+
+
+ Icon for DVD media.
+
+
+
+
+ Icon for DVD-RAM media.
+
+
+
+
+ Icon for DVD-RW media.
+
+
+
+
+ Icon for DVD-R media.
+
+
+
+
+ Icon for a DVD-ROM media.
+
+
+
+
+ Icon for CD+ (Enhanced CD) media.
+
+
+
+
+ Icon for CD-RW media.
+
+
+
+
+ Icon for a CD-R media.
+
+
+
+
+ Icon burning a CD.
+
+
+
+
+ Icon for blank CD media.
+
+
+
+
+ Icon for CD-ROM media.
+
+
+
+
+ Icon for audio files.
+
+
+
+
+ Icon for image files.
+
+
+
+
+ Icon for video files.
+
+
+
+
+ Icon for mixed Files.
+
+
+
+
+ Icon for a folder back.
+
+
+
+
+ Icon for a folder front.
+
+
+
+
+ Icon for a security shield. Use for UAC prompts only.
+
+
+
+
+ Icon for a warning.
+
+
+
+
+ Icon for an informational message.
+
+
+
+
+ Icon for an error message.
+
+
+
+
+ Icon for a key.
+
+
+
+
+ Icon for software.
+
+
+
+
+ Icon for a rename.
+
+
+
+
+ Icon for delete.
+
+
+
+
+ Icon for audio DVD media.
+
+
+
+
+ Icon for movie DVD media.
+
+
+
+
+ Icon for enhanced CD media.
+
+
+
+
+ Icon for enhanced DVD media.
+
+
+
+
+ Icon for HD-DVD media.
+
+
+
+
+ Icon for BluRay media.
+
+
+
+
+ Icon for VCD media.
+
+
+
+
+ Icon for DVD+R media.
+
+
+
+
+ Icon for DVD+RW media.
+
+
+
+
+ Icon for desktop computer.
+
+
+
+
+ Icon for mobile computer (laptop/notebook).
+
+
+
+
+ Icon for users.
+
+
+
+
+ Icon for smart media.
+
+
+
+
+ Icon for compact flash.
+
+
+
+
+ Icon for a cell phone.
+
+
+
+
+ Icon for a camera.
+
+
+
+
+ Icon for video camera.
+
+
+
+
+ Icon for audio player.
+
+
+
+
+ Icon for connecting to network.
+
+
+
+
+ Icon for the Internet.
+
+
+
+
+ Icon for a ZIP file.
+
+
+
+
+ Icon for settings.
+
+
+
+
+ HDDVD Drive (all types)
+
+
+
+
+ Icon for BluRay Drive (all types)
+
+
+
+
+ Icon for HDDVD-ROM Media
+
+
+
+
+ Icon for HDDVD-R Media
+
+
+
+
+ Icon for HDDVD-RAM Media
+
+
+
+
+ Icon for BluRay ROM Media
+
+
+
+
+ Icon for BluRay R Media
+
+
+
+
+ Icon for BluRay RE Media (Rewriable and RAM)
+
+
+
+
+ Icon for Clustered disk
+
+
+
+
+ Collection of all the standard system stock icons
+
+
+
+
+ Creates a stock icon collection using the default options for
+ size, link overlay and selection state.
+
+
+
+
+ Overloaded constructor that takes in size and Boolean values for
+ link overlay and selected icon state. The settings are applied to
+ all the stock icons in the collection.
+
+ StockIcon size for all the icons in the collection.
+ Link Overlay state for all the icons in the collection.
+ Selection state for all the icons in the collection.
+
+
+
+ Returns the existing stock icon from the internal cache, or creates a new one
+ based on the current settings if it's not in the cache.
+
+ Unique identifier for the requested stock icon
+ Stock Icon based on the identifier given (either from the cache or created new)
+
+
+
+ Gets the default stock icon size in one of the StockIconSize values.
+ This size applies to all the stock icons in the collection.
+
+
+
+
+ Gets the default link overlay state for the icon. This property
+ applies to all the stock icons in the collection.
+
+
+
+
+ Gets the default selected state for the icon. This property
+ applies to all the stock icons in the collection.
+
+
+
+
+ Gets a collection of all the system stock icons
+
+
+
+
+ Icon for a document (blank page), no associated program.
+
+
+
+
+ Icon for a document with an associated program.
+
+
+
+
+ Icon for a generic application with no custom icon.
+
+
+
+
+ Icon for a closed folder.
+
+
+
+
+ Icon for an open folder.
+
+
+
+
+ Icon for a 5.25" floppy disk drive.
+
+
+
+
+ Icon for a 3.5" floppy disk drive.
+
+
+
+
+ Icon for a removable drive.
+
+
+
+
+ Icon for a fixed (hard disk) drive.
+
+
+
+
+ Icon for a network drive.
+
+
+
+
+ Icon for a disconnected network drive.
+
+
+
+
+ Icon for a CD drive.
+
+
+
+
+ Icon for a RAM disk drive.
+
+
+
+
+ Icon for an entire network.
+
+
+
+
+ Icon for a computer on the network.
+
+
+
+
+ Icon for a printer.
+
+
+
+
+ Icon for My Network places.
+
+
+
+
+ Icon for search (magnifying glass).
+
+
+
+
+ Icon for help.
+
+
+
+
+ Icon for an overlay indicating shared items.
+
+
+
+
+ Icon for an overlay indicating shortcuts to items.
+
+
+
+
+ Icon for an overlay for slow items.
+
+
+
+
+ Icon for a empty recycle bin.
+
+
+
+
+ Icon for a full recycle bin.
+
+
+
+
+ Icon for audio CD media.
+
+
+
+
+ Icon for a security lock.
+
+
+
+
+ Icon for a auto list.
+
+
+
+
+ Icon for a network printer.
+
+
+
+
+ Icon for a server share.
+
+
+
+
+ Icon for a Fax printer.
+
+
+
+
+ Icon for a networked Fax printer.
+
+
+
+
+ Icon for print to file.
+
+
+
+
+ Icon for a stack.
+
+
+
+
+ Icon for a SVCD media.
+
+
+
+
+ Icon for a folder containing other items.
+
+
+
+
+ Icon for an unknown drive.
+
+
+
+
+ Icon for a DVD drive.
+
+
+
+
+ Icon for DVD media.
+
+
+
+
+ Icon for DVD-RAM media.
+
+
+
+
+ Icon for DVD-RW media.
+
+
+
+
+ Icon for DVD-R media.
+
+
+
+
+ Icon for a DVD-ROM media.
+
+
+
+
+ Icon for CD+ (Enhanced CD) media.
+
+
+
+
+ Icon for CD-RW media.
+
+
+
+
+ Icon for a CD-R media.
+
+
+
+
+ Icon burning a CD.
+
+
+
+
+ Icon for blank CD media.
+
+
+
+
+ Icon for CD-ROM media.
+
+
+
+
+ Icon for audio files.
+
+
+
+
+ Icon for image files.
+
+
+
+
+ Icon for video files.
+
+
+
+
+ Icon for mixed Files.
+
+
+
+
+ Icon for a folder back.
+
+
+
+
+ Icon for a folder front.
+
+
+
+
+ Icon for a security shield. Use for UAC prompts only.
+
+
+
+
+ Icon for a warning.
+
+
+
+
+ Icon for an informational message.
+
+
+
+
+ Icon for an error message.
+
+
+
+
+ Icon for a key.
+
+
+
+
+ Icon for software.
+
+
+
+
+ Icon for a rename.
+
+
+
+
+ Icon for delete.
+
+
+
+
+ Icon for audio DVD media.
+
+
+
+
+ Icon for movie DVD media.
+
+
+
+
+ Icon for enhanced CD media.
+
+
+
+
+ Icon for enhanced DVD media.
+
+
+
+
+ Icon for HD-DVD media.
+
+
+
+
+ Icon for BluRay media.
+
+
+
+
+ Icon for VCD media.
+
+
+
+
+ Icon for DVD+R media.
+
+
+
+
+ Icon for DVD+RW media.
+
+
+
+
+ Icon for desktop computer.
+
+
+
+
+ Icon for mobile computer (laptop/notebook).
+
+
+
+
+ Icon for users.
+
+
+
+
+ Icon for smart media.
+
+
+
+
+ Icon for compact flash.
+
+
+
+
+ Icon for a cell phone.
+
+
+
+
+ Icon for a camera.
+
+
+
+
+ Icon for video camera.
+
+
+
+
+ Icon for audio player.
+
+
+
+
+ Icon for connecting to network.
+
+
+
+
+ Icon for the Internet.
+
+
+
+
+ Icon for a ZIP file.
+
+
+
+
+ Icon for settings.
+
+
+
+
+ HDDVD Drive (all types)
+
+
+
+
+ Icon for BluRay Drive (all types)
+
+
+
+
+ Icon for HDDVD-ROM Media
+
+
+
+
+ Icon for HDDVD-R Media
+
+
+
+
+ Icon for HDDVD-RAM Media
+
+
+
+
+ Icon for BluRay ROM Media
+
+
+
+
+ Icon for BluRay R Media
+
+
+
+
+ Icon for BluRay RE Media (Rewriable and RAM)
+
+
+
+
+ Icon for Clustered disk
+
+
+
+
+ Represents a collection of custom categories
+
+
+
+
+ Add the specified category to this collection
+
+ Category to add
+
+
+
+ Remove the specified category from this collection
+
+ Category item to remove
+ True if item was removed.
+
+
+
+ Clear all items from the collection
+
+
+
+
+ Determine if this collection contains the specified item
+
+ Category to search for
+ True if category was found
+
+
+
+ Copy this collection to a compatible one-dimensional array,
+ starting at the specified index of the target array
+
+ Array to copy to
+ Index of target array to start copy
+
+
+
+ Returns an enumerator that iterates through this collection.
+
+ Enumerator to iterate through this collection.
+
+
+
+ Returns an enumerator that iterates through this collection.
+
+ Enumerator to iterate through this collection.
+
+
+
+ Event to trigger anytime this collection is modified
+
+
+
+
+ Determines if this collection is read-only
+
+
+
+
+ The number of items in this collection
+
+
+
+
+ Represents a collection of jump list items.
+
+ The type of elements in this collection.
+
+
+
+ Adds the specified item to this collection.
+
+ The item to add.
+
+
+
+ Removes the first instance of the specified item from the collection.
+
+ The item to remove.
+ true if an item was removed, otherwise false if no items were removed.
+
+
+
+ Clears all items from this collection.
+
+
+
+
+ Determines if this collection contains the specified item.
+
+ The search item.
+ true if an item was found, otherwise false.
+
+
+
+ Copies this collection to a compatible one-dimensional array,
+ starting at the specified index of the target array.
+
+ The array name.
+ The index of the starting element.
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+ An enumerator to iterate through this collection.
+
+
+
+ Returns an enumerator that iterates through a collection of a specified type.
+
+ An enumerator to iterate through this collection.
+
+
+
+ Occurs anytime a change is made to the underlying collection.
+
+
+
+
+ Gets or sets a value that determines if this collection is read-only.
+
+
+
+
+ Gets a count of the items currently in this collection.
+
+
+
+
+ Represents a jump list link object.
+
+
+
+
+ Interface for jump list tasks
+
+
+
+
+ Interface for jump list items
+
+
+
+
+ Gets or sets this item's path
+
+
+
+
+ Initializes a new instance of a JumpListLink with the specified path.
+
+ The path to the item. The path is required for the JumpList Link
+ The title for the JumpListLink item. The title is required for the JumpList link.
+
+
+
+ Release the native and managed objects
+
+ Indicates that this is being called from Dispose(), rather than the finalizer.
+
+
+
+ Release the native objects.
+
+
+
+
+ Implement the finalizer.
+
+
+
+
+ Gets or sets the link's title
+
+
+
+
+ Gets or sets the link's path
+
+
+
+
+ Gets or sets the icon reference (location and index) of the link's icon.
+
+
+
+
+ Gets or sets the object's arguments (passed to the command line).
+
+
+
+
+ Gets or sets the object's working directory.
+
+
+
+
+ Gets or sets the show command of the lauched application.
+
+
+
+
+ Gets an IShellLinkW representation of this object
+
+
+
+
+ Represents a separator in the user task list. The JumpListSeparator control
+ can only be used in a user task list.
+
+
+
+
+ Release the native and managed objects
+
+ Indicates that this is being called from Dispose(), rather than the finalizer.
+
+
+
+ Release the native objects.
+
+
+
+
+ Implement the finalizer.
+
+
+
+
+ Gets an IShellLinkW representation of this object
+
+
+
+
+ Event args for when close is selected on a tabbed thumbnail proxy window.
+
+
+
+
+ Event args for various Tabbed Thumbnail related events
+
+
+
+
+ Creates a Event Args for a specific tabbed thumbnail event.
+
+ Window handle for the control/window related to the event
+
+
+
+ Creates a Event Args for a specific tabbed thumbnail event.
+
+ WPF Control (UIElement) related to the event
+
+
+
+ Gets the Window handle for the specific control/window that is related to this event.
+
+ For WPF Controls (UIElement) the WindowHandle will be IntPtr.Zero.
+ Check the WindowsControl property to get the specific control associated with this event.
+
+
+
+ Gets the WPF Control (UIElement) that is related to this event. This property may be null
+ for non-WPF applications.
+
+
+
+
+ Creates a Event Args for a specific tabbed thumbnail event.
+
+ Window handle for the control/window related to the event
+
+
+
+ Creates a Event Args for a specific tabbed thumbnail event.
+
+ WPF Control (UIElement) related to the event
+
+
+
+ If set to true, the proxy window will not be removed from the taskbar.
+
+
+
+
+ Helper class to capture a control or window as System.Drawing.Bitmap
+
+
+
+
+ Captures a screenshot of the specified window at the specified
+ bitmap size. NOTE: This method will not accurately capture controls
+ that are hidden or obstructed (partially or completely) by another control (e.g. hidden tabs,
+ or MDI child windows that are obstructed by other child windows/forms).
+
+ The window handle.
+ The requested bitmap size.
+ A screen capture of the window.
+
+
+
+ Grabs a snapshot of a WPF UIElement and returns the image as Bitmap.
+
+ Represents the element to take the snapshot from.
+ Represents the X DPI value used to capture this snapshot.
+ Represents the Y DPI value used to capture this snapshot.
+ The requested bitmap width.
+ The requested bitmap height.
+ Returns the bitmap (PNG format).
+
+
+
+ Resizes the given bitmap while maintaining the aspect ratio.
+
+ Original/source bitmap
+ Maximum width for the new image
+ Maximum height for the new image
+ If true and requested image is wider than the source, the new image is resized accordingly.
+
+
+
+
+ Represents the main class for adding and removing tabbed thumbnails on the Taskbar
+ for child windows and controls.
+
+
+
+
+ Internal dictionary to keep track of the user's window handle and its
+ corresponding thumbnail preview objects.
+
+
+
+
+ Internal constructor that creates a new dictionary for keeping track of the window handles
+ and their corresponding thumbnail preview objects.
+
+
+
+
+ Adds a new tabbed thumbnail to the taskbar.
+
+ Thumbnail preview for a specific window handle or control. The preview
+ object can be initialized with specific properties for the title, bitmap, and tooltip.
+ If the tabbed thumbnail has already been added
+
+
+
+ Gets the TabbedThumbnail object associated with the given window handle
+
+ Window handle for the control/window
+ TabbedThumbnail associated with the given window handle
+
+
+
+ Gets the TabbedThumbnail object associated with the given control
+
+ Specific control for which the preview object is requested
+ TabbedThumbnail associated with the given control
+
+
+
+ Gets the TabbedThumbnail object associated with the given WPF Window
+
+ WPF Control (UIElement) for which the preview object is requested
+ TabbedThumbnail associated with the given WPF Window
+
+
+
+ Remove the tabbed thumbnail from the taskbar.
+
+ TabbedThumbnail associated with the control/window that
+ is to be removed from the taskbar
+
+
+
+ Remove the tabbed thumbnail from the taskbar.
+
+ TabbedThumbnail associated with the window handle that
+ is to be removed from the taskbar
+
+
+
+ Remove the tabbed thumbnail from the taskbar.
+
+ TabbedThumbnail associated with the control that
+ is to be removed from the taskbar
+
+
+
+ Remove the tabbed thumbnail from the taskbar.
+
+ TabbedThumbnail associated with the WPF Control (UIElement) that
+ is to be removed from the taskbar
+
+
+
+ Sets the given tabbed thumbnail preview object as being active on the taskbar tabbed thumbnails list.
+ Call this method to keep the application and the taskbar in sync as to which window/control
+ is currently active (or selected, in the case of tabbed application).
+
+ TabbedThumbnail for the specific control/indow that is currently active in the application
+ If the control/window is not yet added to the tabbed thumbnails list
+
+
+
+ Sets the given window handle as being active on the taskbar tabbed thumbnails list.
+ Call this method to keep the application and the taskbar in sync as to which window/control
+ is currently active (or selected, in the case of tabbed application).
+
+ Window handle for the control/window that is currently active in the application
+ If the control/window is not yet added to the tabbed thumbnails list
+
+
+
+ Sets the given Control/Form window as being active on the taskbar tabbed thumbnails list.
+ Call this method to keep the application and the taskbar in sync as to which window/control
+ is currently active (or selected, in the case of tabbed application).
+
+ Control/Form that is currently active in the application
+ If the control/window is not yet added to the tabbed thumbnails list
+
+
+
+ Sets the given WPF window as being active on the taskbar tabbed thumbnails list.
+ Call this method to keep the application and the taskbar in sync as to which window/control
+ is currently active (or selected, in the case of tabbed application).
+
+ WPF control that is currently active in the application
+ If the control/window is not yet added to the tabbed thumbnails list
+
+
+
+ Determines whether the given preview has been added to the taskbar's tabbed thumbnail list.
+
+ The preview to locate on the taskbar's tabbed thumbnail list
+ true if the tab is already added on the taskbar; otherwise, false.
+
+
+
+ Determines whether the given window has been added to the taskbar's tabbed thumbnail list.
+
+ The window to locate on the taskbar's tabbed thumbnail list
+ true if the tab is already added on the taskbar; otherwise, false.
+
+
+
+ Determines whether the given control has been added to the taskbar's tabbed thumbnail list.
+
+ The preview to locate on the taskbar's tabbed thumbnail list
+ true if the tab is already added on the taskbar; otherwise, false.
+
+
+
+ Determines whether the given control has been added to the taskbar's tabbed thumbnail list.
+
+ The preview to locate on the taskbar's tabbed thumbnail list
+ true if the tab is already added on the taskbar; otherwise, false.
+
+
+
+ Invalidates all the tabbed thumbnails. This will force the Desktop Window Manager
+ to not use the cached thumbnail or preview or aero peek and request a new one next time.
+
+ This method should not be called frequently.
+ Doing so can lead to poor performance as new bitmaps are created and retrieved.
+
+
+
+ Clear a clip that is already in place and return to the default display of the thumbnail.
+
+ The handle to a window represented in the taskbar. This has to be a top-level window.
+
+
+
+ Selects a portion of a window's client area to display as that window's thumbnail in the taskbar.
+
+ The handle to a window represented in the taskbar. This has to be a top-level window.
+ Rectangle structure that specifies a selection within the window's client area,
+ relative to the upper-left corner of that client area.
+ If this parameter is null, the clipping area will be cleared and the default display of the thumbnail will be used instead.
+
+
+
+ Moves an existing thumbnail to a new position in the application's group.
+
+ Preview for the window whose order is being changed.
+ This value is required, must already be added via AddThumbnailPreview method, and cannot be null.
+ The preview of the tab window whose thumbnail that previewToChange is inserted to the left of.
+ This preview must already be added via AddThumbnailPreview. If this value is null, the previewToChange tab is added to the end of the list.
+
+
+
+
+ Event args for the TabbedThumbnailBitmapRequested event. The event allows applications to
+ provide a bitmap for the tabbed thumbnail's preview and peek. The application should also
+ set the Handled property if a custom bitmap is provided.
+
+
+
+
+ Creates a Event Args for a TabbedThumbnailBitmapRequested event.
+
+ Window handle for the control/window related to the event
+
+
+
+ Creates a Event Args for a TabbedThumbnailBitmapRequested event.
+
+ WPF Control (UIElement) related to the event
+
+
+
+ Gets or sets a value indicating whether the TabbedThumbnailBitmapRequested event was handled.
+ Set this property if the SetImage method is called with a custom bitmap for the thumbnail/peek.
+
+
+
+
+ Represents a tabbed thumbnail on the taskbar for a given window or a control.
+
+
+
+
+ Creates a new TabbedThumbnail with the given window handle of the parent and
+ a child control/window's handle (e.g. TabPage or Panel)
+
+ Window handle of the parent window.
+ This window has to be a top-level window and the handle cannot be null or IntPtr.Zero
+ Window handle of the child control or window for which a tabbed
+ thumbnail needs to be displayed
+
+
+
+ Creates a new TabbedThumbnail with the given window handle of the parent and
+ a child control (e.g. TabPage or Panel)
+
+ Window handle of the parent window.
+ This window has to be a top-level window and the handle cannot be null or IntPtr.Zero
+ Child control for which a tabbed thumbnail needs to be displayed
+ This method can also be called when using a WindowsFormHost control in a WPF application.
+ Call this method with the main WPF Window's handle, and windowsFormHost.Child control.
+
+
+
+ Creates a new TabbedThumbnail with the given window handle of the parent and
+ a WPF child Window. For WindowsFormHost control, use TabbedThumbnail(IntPtr, Control) overload and pass
+ the WindowsFormHost.Child as the second parameter.
+
+ Parent window for the UIElement control.
+ This window has to be a top-level window and the handle cannot be null
+ WPF Control (UIElement) for which a tabbed thumbnail needs to be displayed
+ Offset point used for displaying the peek bitmap. This setting is
+ recomended for hidden WPF controls as it is difficult to calculate their offset.
+
+
+
+ Sets the window icon for this thumbnail preview
+
+ System.Drawing.Icon for the window/control associated with this preview
+
+
+
+ Sets the window icon for this thumbnail preview
+
+ Icon handle (hIcon) for the window/control associated with this preview
+ This method will not release the icon handle. It is the caller's responsibility to release the icon handle.
+
+
+
+ Override the thumbnail and peek bitmap.
+ By providing this bitmap manually, Thumbnail Window manager will provide the
+ Desktop Window Manager (DWM) this bitmap instead of rendering one automatically.
+ Use this property to update the bitmap whenever the control is updated and the user
+ needs to be shown a new thumbnail on the taskbar preview (or aero peek).
+
+ The image to use.
+
+ If the bitmap doesn't have the right dimensions, the DWM may scale it or not
+ render certain areas as appropriate - it is the user's responsibility
+ to render a bitmap with the proper dimensions.
+
+
+
+
+ Override the thumbnail and peek bitmap.
+ By providing this bitmap manually, Thumbnail Window manager will provide the
+ Desktop Window Manager (DWM) this bitmap instead of rendering one automatically.
+ Use this property to update the bitmap whenever the control is updated and the user
+ needs to be shown a new thumbnail on the taskbar preview (or aero peek).
+
+ The image to use.
+
+ If the bitmap doesn't have the right dimensions, the DWM may scale it or not
+ render certain areas as appropriate - it is the user's responsibility
+ to render a bitmap with the proper dimensions.
+
+
+
+
+ Override the thumbnail and peek bitmap.
+ By providing this bitmap manually, Thumbnail Window manager will provide the
+ Desktop Window Manager (DWM) this bitmap instead of rendering one automatically.
+ Use this property to update the bitmap whenever the control is updated and the user
+ needs to be shown a new thumbnail on the taskbar preview (or aero peek).
+
+ A bitmap handle for the image to use.
+ When the TabbedThumbnail is finalized, this class will delete the provided hBitmap.
+
+ If the bitmap doesn't have the right dimensions, the DWM may scale it or not
+ render certain areas as appropriate - it is the user's responsibility
+ to render a bitmap with the proper dimensions.
+
+
+
+
+ Invalidate any existing thumbnail preview. Calling this method
+ will force DWM to request a new bitmap next time user previews the thumbnails
+ or requests Aero peek preview.
+
+
+
+
+ Returns true if the thumbnail was removed from the taskbar; false if it was not.
+
+ Returns true if the thumbnail was removed from the taskbar; false if it was not.
+
+
+
+
+
+
+
+
+ Release the native objects.
+
+
+
+
+ Release the native objects.
+
+
+
+
+
+ Title for the window shown as the taskbar thumbnail.
+
+
+
+
+ Tooltip to be shown for this thumbnail on the taskbar.
+ By default this is full title of the window shown on the taskbar.
+
+
+
+
+ Specifies that only a portion of the window's client area
+ should be used in the window's thumbnail.
+ A value of null will clear the clipping area and use the default thumbnail.
+
+
+
+
+ Specifies whether a standard window frame will be displayed
+ around the bitmap. If the bitmap represents a top-level window,
+ you would probably set this flag to true. If the bitmap
+ represents a child window (or a frameless window), you would
+ probably set this flag to false.
+
+
+
+
+ Gets or sets the offset used for displaying the peek bitmap. This setting is
+ recomended for hidden WPF controls as it is difficult to calculate their offset.
+
+
+
+
+ This event is raised when the Title property changes.
+
+
+
+
+ This event is raised when the Tooltip property changes.
+
+
+
+
+ The event that occurs when a tab is closed on the taskbar thumbnail preview.
+
+
+
+
+ The event that occurs when a tab is maximized via the taskbar thumbnail preview (context menu).
+
+
+
+
+ The event that occurs when a tab is minimized via the taskbar thumbnail preview (context menu).
+
+
+
+
+ The event that occurs when a tab is activated (clicked) on the taskbar thumbnail preview.
+
+
+
+
+ The event that occurs when a thumbnail or peek bitmap is requested by the user.
+
+
+
+
+
+
+
+
+
+ Release the native objects.
+
+
+
+
+ Known category to display
+
+
+
+
+ Don't display either known category. You must have at least one
+ user task or custom category link in order to not see the
+ default 'Recent' known category
+
+
+
+
+ Display the 'Recent' known category
+
+
+
+
+ Display the 'Frequent' known category
+
+
+
+
+ Represents the thumbnail progress bar state.
+
+
+
+
+ No progress is displayed.
+
+
+
+
+ The progress is indeterminate (marquee).
+
+
+
+
+ Normal progress is displayed.
+
+
+
+
+ An error occurred (red).
+
+
+
+
+ The operation is paused (yellow).
+
+
+
+
+ WPARAM value for a THUMBBUTTON being clicked.
+
+
+
+
+ Sets the window's application id by its window handle.
+
+ The window handle.
+ The application id.
+
+
+
+ Thumbnail Alpha Types
+
+
+
+
+ Let the system decide.
+
+
+
+
+ No transparency
+
+
+
+
+ Has transparency
+
+
+
+
+ Defines the properties used by a Shell Property.
+
+
+
+
+ Gets a formatted, Unicode string representation of a property value.
+
+ One or more PropertyDescriptionFormat flags
+ chosen to produce the desired display format.
+ The formatted value as a string.
+
+
+
+ Gets the property key that identifies this property.
+
+
+
+
+ Get the property description object.
+
+
+
+
+ Gets the case-sensitive name of the property as it is known to the system,
+ regardless of its localized name.
+
+
+
+
+ Gets the value for this property using the generic Object type.
+
+
+ To obtain a specific type for this value, use the more strongly-typed
+ Property<T> class.
+ You can only set a value for this type using the Property<T>
+ class.
+
+
+
+
+ Gets the System.Type value for this property.
+
+
+
+
+ Gets the image reference path and icon index associated with a property value.
+ This API is only available in Windows 7.
+
+
+
+
+ Creates a readonly collection of IProperty objects.
+
+
+
+
+ Creates a new Property collection given an IPropertyStore object
+
+ IPropertyStore
+
+
+
+ Creates a new Property collection given an IShellItem2 native interface
+
+ Parent ShellObject
+
+
+
+ Creates a new ShellPropertyCollection object with the specified file or folder path.
+
+ The path to the file or folder.
+
+
+
+ Checks if a property with the given canonical name is available.
+
+ The canonical name of the property.
+ True if available, false otherwise.
+
+
+
+ Checks if a property with the given property key is available.
+
+ The property key.
+ True if available, false otherwise.
+
+
+
+ Release the native and managed objects
+
+ Indicates that this is being called from Dispose(), rather than the finalizer.
+
+
+
+ Release the native objects.
+
+
+
+
+ Implement the finalizer.
+
+
+
+
+ Gets the property associated with the supplied canonical name string.
+ The canonical name property is case-sensitive.
+
+
+ The canonical name.
+ The property associated with the canonical name, if found.
+ Throws IndexOutOfRangeException
+ if no matching property is found.
+
+
+
+ Gets a property associated with the supplied property key.
+
+
+ The property key.
+ The property associated with the property key, if found.
+ Throws IndexOutOfRangeException
+ if no matching property is found.
+
+
+
+ Defines the shell property description information for a property.
+
+
+
+
+ Gets the localized display string that describes the current sort order.
+
+ Indicates the sort order should
+ reference the string "Z on top"; otherwise, the sort order should reference the string "A on top".
+ The sort description for this property.
+ The string retrieved by this method is determined by flags set in the
+ sortDescription attribute of the labelInfo element in the property's .propdesc file.
+
+
+
+ Release the native objects
+
+ Indicates that this is being called from Dispose(), rather than the finalizer.
+
+
+
+ Release the native objects
+
+
+
+
+ Release the native objects
+
+
+
+
+ Gets the case-sensitive name of a property as it is known to the system,
+ regardless of its localized name.
+
+
+
+
+ Gets the property key identifying the underlying property.
+
+
+
+
+ Gets the display name of the property as it is shown in any user interface (UI).
+
+
+
+
+ Gets the text used in edit controls hosted in various dialog boxes.
+
+
+
+
+ Gets the VarEnum OLE type for this property.
+
+
+
+
+ Gets the .NET system type for a value of this property, or
+ null if the value is empty.
+
+
+
+
+ Gets the current data type used to display the property.
+
+
+
+
+ Gets the default user interface (UI) column width for this property.
+
+
+
+
+ Gets a value that describes how the property values are displayed when
+ multiple items are selected in the user interface (UI).
+
+
+
+
+ Gets a list of the possible values for this property.
+
+
+
+
+ Gets the column state flag, which describes how the property
+ should be treated by interfaces or APIs that use this flag.
+
+
+
+
+ Gets the condition type to use when displaying the property in
+ the query builder user interface (UI). This influences the list
+ of predicate conditions (for example, equals, less than, and
+ contains) that are shown for this property.
+
+ For more information, see the conditionType attribute
+ of the typeInfo element in the property's .propdesc file.
+
+
+
+ Gets the default condition operation to use
+ when displaying the property in the query builder user
+ interface (UI). This influences the list of predicate conditions
+ (for example, equals, less than, and contains) that are shown
+ for this property.
+
+ For more information, see the conditionType attribute of the
+ typeInfo element in the property's .propdesc file.
+
+
+
+ Gets the method used when a view is grouped by this property.
+
+ The information retrieved by this method comes from
+ the groupingRange attribute of the typeInfo element in the
+ property's .propdesc file.
+
+
+
+ Gets the current sort description flags for the property,
+ which indicate the particular wordings of sort offerings.
+
+ The settings retrieved by this method are set
+ through the sortDescription attribute of the labelInfo
+ element in the property's .propdesc file.
+
+
+
+ Gets a set of flags that describe the uses and capabilities of the property.
+
+
+
+
+ Gets the current set of flags governing the property's view.
+
+
+
+
+ Gets a value that determines if the native property description is present on the system.
+
+
+
+
+ Get the native property description COM interface
+
+
+
+
+ Indicate flags that modify the property store object retrieved by methods
+ that create a property store, such as IShellItem2::GetPropertyStore or
+ IPropertyStoreFactory::GetPropertyStore.
+
+
+
+
+ Meaning to a calling process: Return a read-only property store that contains all
+ properties. Slow items (offline files) are not opened.
+ Combination with other flags: Can be overridden by other flags.
+
+
+
+
+ Meaning to a calling process: Include only properties directly from the property
+ handler, which opens the file on the disk, network, or device. Meaning to a file
+ folder: Only include properties directly from the handler.
+
+ Meaning to other folders: When delegating to a file folder, pass this flag on
+ to the file folder; do not do any multiplexing (MUX). When not delegating to a
+ file folder, ignore this flag instead of returning a failure code.
+
+ Combination with other flags: Cannot be combined with GPS_TEMPORARY,
+ GPS_FASTPROPERTIESONLY, or GPS_BESTEFFORT.
+
+
+
+
+ Meaning to a calling process: Can write properties to the item.
+ Note: The store may contain fewer properties than a read-only store.
+
+ Meaning to a file folder: ReadWrite.
+
+ Meaning to other folders: ReadWrite. Note: When using default MUX,
+ return a single unmultiplexed store because the default MUX does not support ReadWrite.
+
+ Combination with other flags: Cannot be combined with GPS_TEMPORARY, GPS_FASTPROPERTIESONLY,
+ GPS_BESTEFFORT, or GPS_DELAYCREATION. Implies GPS_HANDLERPROPERTIESONLY.
+
+
+
+
+ Meaning to a calling process: Provides a writable store, with no initial properties,
+ that exists for the lifetime of the Shell item instance; basically, a property bag
+ attached to the item instance.
+
+ Meaning to a file folder: Not applicable. Handled by the Shell item.
+
+ Meaning to other folders: Not applicable. Handled by the Shell item.
+
+ Combination with other flags: Cannot be combined with any other flag. Implies GPS_READWRITE
+
+
+
+
+ Meaning to a calling process: Provides a store that does not involve reading from the
+ disk or network. Note: Some values may be different, or missing, compared to a store
+ without this flag.
+
+ Meaning to a file folder: Include the "innate" and "fallback" stores only. Do not load the handler.
+
+ Meaning to other folders: Include only properties that are available in memory or can
+ be computed very quickly (no properties from disk, network, or peripheral IO devices).
+ This is normally only data sources from the IDLIST. When delegating to other folders, pass this flag on to them.
+
+ Combination with other flags: Cannot be combined with GPS_TEMPORARY, GPS_READWRITE,
+ GPS_HANDLERPROPERTIESONLY, or GPS_DELAYCREATION.
+
+
+
+
+ Meaning to a calling process: Open a slow item (offline file) if necessary.
+ Meaning to a file folder: Retrieve a file from offline storage, if necessary.
+ Note: Without this flag, the handler is not created for offline files.
+
+ Meaning to other folders: Do not return any properties that are very slow.
+
+ Combination with other flags: Cannot be combined with GPS_TEMPORARY or GPS_FASTPROPERTIESONLY.
+
+
+
+
+ Meaning to a calling process: Delay memory-intensive operations, such as file access, until
+ a property is requested that requires such access.
+
+ Meaning to a file folder: Do not create the handler until needed; for example, either
+ GetCount/GetAt or GetValue, where the innate store does not satisfy the request.
+ Note: GetValue might fail due to file access problems.
+
+ Meaning to other folders: If the folder has memory-intensive properties, such as
+ delegating to a file folder or network access, it can optimize performance by
+ supporting IDelayedPropertyStoreFactory and splitting up its properties into a
+ fast and a slow store. It can then use delayed MUX to recombine them.
+
+ Combination with other flags: Cannot be combined with GPS_TEMPORARY or
+ GPS_READWRITE
+
+
+
+
+ Meaning to a calling process: Succeed at getting the store, even if some
+ properties are not returned. Note: Some values may be different, or missing,
+ compared to a store without this flag.
+
+ Meaning to a file folder: Succeed and return a store, even if the handler or
+ innate store has an error during creation. Only fail if substores fail.
+
+ Meaning to other folders: Succeed on getting the store, even if some properties
+ are not returned.
+
+ Combination with other flags: Cannot be combined with GPS_TEMPORARY,
+ GPS_READWRITE, or GPS_HANDLERPROPERTIESONLY.
+
+
+
+
+ Mask for valid GETPROPERTYSTOREFLAGS values.
+
+
+
+
+ The specified items can be copied.
+
+
+
+
+ The specified items can be moved.
+
+
+
+
+ Shortcuts can be created for the specified items. This flag has the same value as DROPEFFECT.
+ The normal use of this flag is to add a Create Shortcut item to the shortcut menu that is displayed
+ during drag-and-drop operations. However, SFGAO_CANLINK also adds a Create Shortcut item to the Microsoft
+ Windows Explorer's File menu and to normal shortcut menus.
+ If this item is selected, your application's IContextMenu::InvokeCommand is invoked with the lpVerb
+ member of the CMINVOKECOMMANDINFO structure set to "link." Your application is responsible for creating the link.
+
+
+
+
+ The specified items can be bound to an IStorage interface through IShellFolder::BindToObject.
+
+
+
+
+ The specified items can be renamed.
+
+
+
+
+ The specified items can be deleted.
+
+
+
+
+ The specified items have property sheets.
+
+
+
+
+ The specified items are drop targets.
+
+
+
+
+ This flag is a mask for the capability flags.
+
+
+
+
+ Windows 7 and later. The specified items are system items.
+
+
+
+
+ The specified items are encrypted.
+
+
+
+
+ Indicates that accessing the object = through IStream or other storage interfaces,
+ is a slow operation.
+ Applications should avoid accessing items flagged with SFGAO_ISSLOW.
+
+
+
+
+ The specified items are ghosted icons.
+
+
+
+
+ The specified items are shortcuts.
+
+
+
+
+ The specified folder objects are shared.
+
+
+
+
+ The specified items are read-only. In the case of folders, this means
+ that new items cannot be created in those folders.
+
+
+
+
+ The item is hidden and should not be displayed unless the
+ Show hidden files and folders option is enabled in Folder Settings.
+
+
+
+
+ This flag is a mask for the display attributes.
+
+
+
+
+ The specified folders contain one or more file system folders.
+
+
+
+
+ The specified items are folders.
+
+
+
+
+ The specified folders or file objects are part of the file system
+ that is, they are files, directories, or root directories).
+
+
+
+
+ The specified folders have subfolders = and are, therefore,
+ expandable in the left pane of Windows Explorer).
+
+
+
+
+ This flag is a mask for the contents attributes.
+
+
+
+
+ When specified as input, SFGAO_VALIDATE instructs the folder to validate that the items
+ pointed to by the contents of apidl exist. If one or more of those items do not exist,
+ IShellFolder::GetAttributesOf returns a failure code.
+ When used with the file system folder, SFGAO_VALIDATE instructs the folder to discard cached
+ properties retrieved by clients of IShellFolder2::GetDetailsEx that may
+ have accumulated for the specified items.
+
+
+
+
+ The specified items are on removable media or are themselves removable devices.
+
+
+
+
+ The specified items are compressed.
+
+
+
+
+ The specified items can be browsed in place.
+
+
+
+
+ The items are nonenumerated items.
+
+
+
+
+ The objects contain new content.
+
+
+
+
+ It is possible to create monikers for the specified file objects or folders.
+
+
+
+
+ Not supported.
+
+
+
+
+ Indicates that the item has a stream associated with it that can be accessed
+ by a call to IShellFolder::BindToObject with IID_IStream in the riid parameter.
+
+
+
+
+ Children of this item are accessible through IStream or IStorage.
+ Those children are flagged with SFGAO_STORAGE or SFGAO_STREAM.
+
+
+
+
+ This flag is a mask for the storage capability attributes.
+
+
+
+
+ Mask used by PKEY_SFGAOFlags to remove certain values that are considered
+ to cause slow calculations or lack context.
+ Equal to SFGAO_VALIDATE | SFGAO_ISSLOW | SFGAO_HASSUBFOLDER.
+
+
+
+
+ Represents a saved search
+
+
+
+
+ Defines a strongly-typed property object.
+ All writable property objects must be of this type
+ to be able to call the value setter.
+
+ The type of this property's value.
+ Because a property value can be empty, only nullable types
+ are allowed.
+
+
+
+ Constructs a new Property object
+
+
+
+
+
+
+
+ Constructs a new Property object
+
+
+
+
+
+
+
+ Returns a formatted, Unicode string representation of a property value.
+
+ One or more of the PropertyDescriptionFormat flags
+ that indicate the desired format.
+ The formatted value as a string, or null if this property
+ cannot be formatted for display.
+ True if the method successfully locates the formatted string; otherwise
+ False.
+
+
+
+ Returns a formatted, Unicode string representation of a property value.
+
+ One or more of the PropertyDescriptionFormat flags
+ that indicate the desired format.
+ The formatted value as a string, or null if this property
+ cannot be formatted for display.
+
+
+
+ Clears the value of the property.
+
+
+
+
+ Gets or sets the strongly-typed value of this property.
+ The value of the property is cleared if the value is set to null.
+
+
+ If the property value cannot be retrieved or updated in the Property System
+ If the type of this property is not supported; e.g. writing a binary object.
+ Thrown if is false, and either
+ a string value was truncated or a numeric value was rounded.
+
+
+
+ Gets the property key identifying this property.
+
+
+
+
+ Get the property description object.
+
+
+
+
+ Gets the case-sensitive name of a property as it is known to the system,
+ regardless of its localized name.
+
+
+
+
+ Gets the value for this property using the generic Object type.
+ To obtain a specific type for this value, use the more type strong
+ Property<T> class.
+ Also, you can only set a value for this type using Property<T>
+
+
+
+
+ Gets the associated runtime type.
+
+
+
+
+ Gets the image reference path and icon index associated with a property value (Windows 7 only).
+
+
+
+
+ Gets or sets a value that determines if a value can be truncated. The default for this property is false.
+
+
+ An will be thrown if
+ this property is not set to true, and a property value was set
+ but later truncated.
+
+
+
+
+
+ Represents a custom category on the taskbar's jump list
+
+
+
+
+ Add JumpList items for this category
+
+ The items to add to the JumpList.
+
+
+
+ Creates a new custom category instance
+
+ Category name
+
+
+
+ Category name
+
+
+
+
+ Event that is triggered when the jump list collection is modified
+
+
+
+
+ Represents an instance of a Taskbar button jump list.
+
+
+
+
+ Create a JumpList for the application's taskbar button.
+
+ A new JumpList that is associated with the app id of the main application window
+ If there are any other child (top-level) windows for this application and they don't have
+ a specific JumpList created for them, they all will share the same JumpList as the main application window.
+ In order to have a individual JumpList for a top-level window, use the overloaded method CreateJumpListForIndividualWindow.
+
+
+
+ Create a JumpList for the application's taskbar button.
+
+ Application Id for the individual window. This must be unique for each top-level window in order to have a individual JumpList.
+ Handle of the window associated with the new JumpList
+ A new JumpList that is associated with the specific window handle
+
+
+
+ Create a JumpList for the application's taskbar button.
+
+ Application Id for the individual window. This must be unique for each top-level window in order to have a individual JumpList.
+ WPF Window associated with the new JumpList
+ A new JumpList that is associated with the specific WPF window
+
+
+
+ Adds a collection of custom categories to the Taskbar jump list.
+
+ The catagories to add to the jump list.
+
+
+
+ Adds user tasks to the Taskbar JumpList. User tasks can only consist of JumpListTask or
+ JumpListSeparator objects.
+
+ The user tasks to add to the JumpList.
+
+
+
+ Removes all user tasks that have been added.
+
+
+
+
+ Creates a new instance of the JumpList class with the specified
+ appId. The JumpList is associated with the main window of the application.
+
+ Application Id to use for this instace.
+
+
+
+ Creates a new instance of the JumpList class with the specified
+ appId. The JumpList is associated with the given WPF Window.
+
+ Application Id to use for this instace.
+ WPF Window that is associated with this JumpList
+
+
+
+ Creates a new instance of the JumpList class with the specified
+ appId. The JumpList is associated with the given window.
+
+ Application Id to use for this instace.
+ Window handle for the window that is associated with this JumpList
+
+
+
+ Reports document usage to the shell.
+
+ The full path of the file to report usage.
+
+
+
+ Commits the pending JumpList changes and refreshes the Taskbar.
+
+ Will throw if the type of the file being added to the JumpList is not registered with the application.
+ Will throw if recent documents tracking is turned off by the user or via group policy.
+ Will throw if updating the JumpList fails for any other reason.
+
+
+
+ Gets the recommended number of items to add to the jump list.
+
+
+ This number doesn’t
+ imply or suggest how many items will appear on the jump list.
+ This number should only be used for reference purposes since
+ the actual number of slots in the jump list can change after the last
+ refresh due to items being pinned or removed and resolution changes.
+ The jump list can increase in size accordingly.
+
+
+
+
+ Gets or sets the type of known categories to display.
+
+
+
+
+ Gets or sets the value for the known category location relative to the
+ custom category collection.
+
+
+
+
+ Gets or sets the application ID to use for this jump list.
+
+
+
+
+ Occurs when items are removed from the Taskbar's jump list since the last
+ refresh.
+
+
+ This event is not triggered
+ immediately when a user removes an item from the jump list but rather
+ when the application refreshes the task bar list directly.
+
+
+
+
+ Retrieves the current list of destinations that have been removed from the existing jump list by the user.
+ The removed destinations may become items on a custom jump list.
+
+ A collection of items (filenames) removed from the existing jump list by the user.
+
+
+
+ Represents a jump list item.
+
+
+
+
+ Creates a jump list item with the specified path.
+
+ The path to the jump list item.
+ The file type should associate the given file
+ with the calling application.
+
+
+
+ Gets or sets the target path for this jump list item.
+
+
+
+
+ Provides internal access to the functions provided by the ITaskbarList4 interface,
+ without being forced to refer to it through another singleton.
+
+
+
+
+ Represents an instance of the Windows taskbar
+
+
+
+
+ Applies an overlay to a taskbar button of the main application window to indicate application status or a notification to the user.
+
+ The overlay icon
+ String that provides an alt text version of the information conveyed by the overlay, for accessibility purposes
+
+
+
+ Applies an overlay to a taskbar button of the given window handle to indicate application status or a notification to the user.
+
+ The handle of the window whose associated taskbar button receives the overlay. This handle must belong to a calling process associated with the button's application and must be a valid HWND or the call is ignored.
+ The overlay icon
+ String that provides an alt text version of the information conveyed by the overlay, for accessibility purposes
+
+
+
+ Applies an overlay to a taskbar button of the given WPF window to indicate application status or a notification to the user.
+
+ The window whose associated taskbar button receives the overlay. This window belong to a calling process associated with the button's application and must be already loaded.
+ The overlay icon
+ String that provides an alt text version of the information conveyed by the overlay, for accessibility purposes
+
+
+
+ Displays or updates a progress bar hosted in a taskbar button of the main application window
+ to show the specific percentage completed of the full operation.
+
+ An application-defined value that indicates the proportion of the operation that has been completed at the time the method is called.
+ An application-defined value that specifies the value currentValue will have when the operation is complete.
+
+
+
+ Displays or updates a progress bar hosted in a taskbar button of the given window handle
+ to show the specific percentage completed of the full operation.
+
+ The handle of the window whose associated taskbar button is being used as a progress indicator.
+ This window belong to a calling process associated with the button's application and must be already loaded.
+ An application-defined value that indicates the proportion of the operation that has been completed at the time the method is called.
+ An application-defined value that specifies the value currentValue will have when the operation is complete.
+
+
+
+ Displays or updates a progress bar hosted in a taskbar button of the given WPF window
+ to show the specific percentage completed of the full operation.
+
+ The window whose associated taskbar button is being used as a progress indicator.
+ This window belong to a calling process associated with the button's application and must be already loaded.
+ An application-defined value that indicates the proportion of the operation that has been completed at the time the method is called.
+ An application-defined value that specifies the value currentValue will have when the operation is complete.
+
+
+
+ Sets the type and state of the progress indicator displayed on a taskbar button of the main application window.
+
+ Progress state of the progress button
+
+
+
+ Sets the type and state of the progress indicator displayed on a taskbar button
+ of the given window handle
+
+ The handle of the window whose associated taskbar button is being used as a progress indicator.
+ This window belong to a calling process associated with the button's application and must be already loaded.
+ Progress state of the progress button
+
+
+
+ Sets the type and state of the progress indicator displayed on a taskbar button
+ of the given WPF window
+
+ The window whose associated taskbar button is being used as a progress indicator.
+ This window belong to a calling process associated with the button's application and must be already loaded.
+ Progress state of the progress button
+
+
+
+ Sets the application user model id for an individual window
+
+ The app id to set
+ Window handle for the window that needs a specific application id
+ AppId specifies a unique Application User Model ID (AppID) for the application or individual
+ top-level window whose taskbar button will hold the custom JumpList built through the methods class.
+ By setting an appId for a specific window, the window will not be grouped with it's parent window/application. Instead it will have it's own taskbar button.
+
+
+
+ Sets the application user model id for a given window
+
+ The app id to set
+ Window that needs a specific application id
+ AppId specifies a unique Application User Model ID (AppID) for the application or individual
+ top-level window whose taskbar button will hold the custom JumpList built through the methods class.
+ By setting an appId for a specific window, the window will not be grouped with it's parent window/application. Instead it will have it's own taskbar button.
+
+
+
+ Sets the current process' explicit application user model id.
+
+ The application id.
+
+
+
+ Gets the current process' explicit application user model id.
+
+ The app id or null if no app id has been defined.
+
+
+
+ Represents an instance of the Windows Taskbar
+
+
+
+
+ Gets the Tabbed Thumbnail manager class for adding/updating
+ tabbed thumbnail previews.
+
+
+
+
+ Gets the Thumbnail toolbar manager class for adding/updating
+ toolbar buttons.
+
+
+
+
+ Gets or sets the application user model id. Use this to explicitly
+ set the application id when generating custom jump lists
+
+
+
+
+ Sets the handle of the window whose taskbar button will be used
+ to display progress.
+
+
+
+
+ Indicates if the user has set the application id for the whole process (all windows)
+
+
+
+
+ Indicates whether this feature is supported on the current platform.
+
+
+
+
+
+
+
+
+
+ Release the native objects.
+
+
+
+
+ Dispatches a window message so that the appropriate events
+ can be invoked. This is used for the Taskbar's thumbnail toolbar feature.
+
+ The window message, typically obtained
+ from a Windows Forms or WPF window procedure.
+ Taskbar window for which we are intercepting the messages
+ Returns true if this method handles the window message
+
+
+
+ Helper function to capture a bitmap for a given window handle or incase of WPF app,
+ an UIElement.
+
+ The proxy window for which a bitmap needs to be created
+ Size for the requested bitmap image
+ Bitmap captured from the window handle or UIElement. Null if the window is hidden or it's size is zero.
+
+
+
+ Represents a taskbar thumbnail button in the thumbnail toolbar.
+
+
+
+
+ Initializes an instance of this class
+
+ The icon to use for this button
+ The tooltip string to use for this button.
+
+
+
+ The window manager should call this method to raise the public click event to all
+ the subscribers.
+
+ Taskbar Window associated with this button
+
+
+
+
+
+
+
+
+ Release the native objects.
+
+
+
+
+ Release the native objects.
+
+
+
+
+
+ The event that occurs when the taskbar thumbnail button
+ is clicked.
+
+
+
+
+ Gets thumbnail button's id.
+
+
+
+
+ Gets or sets the thumbnail button's icon.
+
+
+
+
+ Gets or sets the thumbnail button's tooltip.
+
+
+
+
+ Gets or sets the thumbnail button's visibility. Default is true.
+
+
+
+
+ Gets or sets the thumbnail button's enabled state. If the button is disabled, it is present,
+ but has a visual state that indicates that it will not respond to user action. Default is true.
+
+
+
+
+ Gets or sets the property that describes the behavior when the button is clicked.
+ If set to true, the taskbar button's flyout will close immediately. Default is false.
+
+
+
+
+ Gets or sets the property that describes whether the button is interactive with the user. Default is true.
+
+
+ Non-interactive buttons don't display any hover behavior nor do they raise click events.
+ They are intended to be used as status icons. This is mostly similar to being not Enabled,
+ but the image is not desaturated.
+
+
+
+
+ Native flags enum (used when creating the native button)
+
+
+
+
+ Native representation of the thumbnail button
+
+
+
+
+ Handle to the window to which this button is for (on the taskbar).
+
+
+
+
+ Indicates if this button was added to the taskbar. If it's not yet added,
+ then we can't do any updates on it.
+
+
+
+
+ Event args for TabbedThumbnailButton.Click event
+
+
+
+
+ Creates a Event Args for the TabbedThumbnailButton.Click event
+
+ Window handle for the control/window related to the event
+ Thumbnail toolbar button that was clicked
+
+
+
+ Creates a Event Args for the TabbedThumbnailButton.Click event
+
+ WPF Control (UIElement) related to the event
+ Thumbnail toolbar button that was clicked
+
+
+
+ Gets the Window handle for the specific control/window that is related to this event.
+
+ For WPF Controls (UIElement) the WindowHandle will be IntPtr.Zero.
+ Check the WindowsControl property to get the specific control associated with this event.
+
+
+
+ Gets the WPF Control (UIElement) that is related to this event. This property may be null
+ for non-WPF applications.
+
+
+
+
+ Gets the ThumbnailToolBarButton that was clicked
+
+
+
+
+ Thumbnail toolbar manager class for adding a thumbnail toolbar with a specified set of buttons
+ to the thumbnail image of a window in a taskbar button flyout.
+
+
+
+
+ Adds thumbnail toolbar for the specified window.
+
+ Window handle for which the thumbnail toolbar buttons need to be added
+ Thumbnail buttons for the window's thumbnail toolbar
+ If the number of buttons exceed the maximum allowed capacity (7).
+ If the Window Handle passed in invalid
+ After a toolbar has been added to a thumbnail, buttons can be altered only through various
+ properties on the . While individual buttons cannot be added or removed,
+ they can be shown and hidden through as needed.
+ The toolbar itself cannot be removed without re-creating the window itself.
+
+
+
+
+ Adds thumbnail toolbar for the specified WPF Control.
+
+ WPF Control for which the thumbnail toolbar buttons need to be added
+ Thumbnail buttons for the window's thumbnail toolbar
+ If the number of buttons exceed the maximum allowed capacity (7).
+ If the control passed in null
+ After a toolbar has been added to a thumbnail, buttons can be altered only through various
+ properties on the ThumbnailToolBarButton. While individual buttons cannot be added or removed,
+ they can be shown and hidden through ThumbnailToolBarButton.Visible as needed.
+ The toolbar itself cannot be removed without re-creating the window itself.
+
+
+
+
+
+
+
+
+
+ Release the native objects.
+
+
+
+
+ Event arguments for when the user is notified of items
+ that have been removed from the taskbar destination list
+
+
+
+
+ The collection of removed items based on path.
+
+
+
+
diff --git a/README.md b/README.md
index b7b84ae..97e687a 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,33 @@
-# RCEU_PDFWorkflowManager
+# PDF Workflow Manager
+Tool To assist in making PDF's, partially a wrapper
+
+Coded in Visual Studio 2019
+
+Install required tools, ScanTailor, Ghostscript, pdftk
+
+
+(this is for the current alpha version)
+Work process:
+Start MakeManual
+
+Project dir should contain a folder called origs
+Click Open Project Dir button
+
+If the originals are correct sort order, just click the button Prepare Work Dir.
+If the images has been scanned dualsided on a simplex scanner (1,3,5 -> 6,4,2)
+check the Simplex scanned checkbox before clicking the button Prepare Work Dir.
+(don't close the PDF Workflow Manager program)
+
+Clicking the Open ScanTailor, also copies the work directory path to the clipboard, giving you the oppertunity
+to just paste into the Input field.
+
+When finished using ScanTailor, if needed, do what is needed to the outfiles.
+
+Back to the PDF Workflow Manager program.
+Click the Convert Files button, and fill out the metadata fields.
+The title gets automatically filled out using the title, publisher, language and resolution.
+Pagecount is also automatically filled out after converting the files.
+
+When all is done, click Make PDF.
+Release files will be put in the root of the project folder
-PDF Workflow Manager
\ No newline at end of file