SetupDiCreateDeviceInfo() should report last error
ERROR_DEVINST_ALREADY_EXISTS when an registered instance exists
when creating a device for an empty set.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
The same pointer address may be allocated to multiple different structures.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
msidb allows a full database export with the special "*" database
name. Note: It does not support true wildcards, just this special
indication that you wish to export all the tables in the database.
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
msidb's "-s" flag modifies the database export to use short (DOS)
filenames instead of full table names. This flag is convenient
because it uses the same filenames that the import (-i) option
expects. For example, the InstallExecuteSequence table gets imported
(or exported with this flag) as InstallE.idt where the normal export
option uses InstallExecuteSequence.idt.
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
msidb allows developers to export tables from a database with the "-e"
mode flag followed by a list of tables. For example, this call would
export three tables to the current directory:
msidb -d package.msi -f . -e ActionText Component InstallExecuteSequence
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
msidb allows developers to extract "streams" (cabinet files) from a
database with the "-x" mode flag followed by the filename for the
stream in the database, example:
msidb -d package.msi -x cabinet.cab
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
msidb allows developers to remove "streams" (cabinet files) from a
database with the "-k" mode flag followed by the filename for the
stream in the database, example:
msidb -d package.msi -k cabinet.cab
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
The Binary and Icon tables store their data in a different format from
other tables, one column of the data is stored as a "stream" instead
of a normal text field. With this patch those tables can now be
exported properly by the MSI export functionality.
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
msi_export_record is a lot more complicated than necessary, this patch
splits out the field export part of that functionality as
msi_export_field. This also needs to be separate for exporting binary
stream data (next patch).
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
The _SummaryInformation table stores a lot of important information
about an MSI database. This patch adds the ability to export that
table since, like _ForceCodepage, it is stored in a different format
than the other tables.
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
msidb allows developers to remove "streams" (cabinet files) from a
database with the "-k" mode flag. To support that feature we need
MSIMODIFY_DELETE support in the underlying MSI implementation.
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>