Commit Graph

78 Commits

Author SHA1 Message Date
Hans Leidekker c4fc91f4bf msi: Use wide character string literals in the remaining files.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-29 20:19:12 +01:00
Alexandre Julliard 7cd3c9f073 msi: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-13 14:34:51 +02:00
Hans Leidekker c494570d89 msi: Fix the remote case for MsiViewModify(MSIMODIFY_UPDATE).
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45972
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-12 17:06:53 +02:00
Zebediah Figura 859f455cb9 msi: Avoid returning an uninitialized variable.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-23 12:02:39 +02:00
Zebediah Figura c79fbc241e msi: Make MsiViewModify() RPC-compatible.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-20 14:06:57 +02:00
Zebediah Figura 39c116fd0c msi: Make MsiViewFetch() RPC-compatible.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-19 12:51:21 +02:00
Zebediah Figura afb5eede24 msi: Make MsiViewExecute() RPC-compatible.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-19 12:51:21 +02:00
Zebediah Figura bbf0f2da82 msi: Make MsiProcessMessage() RPC-compatible.
Instead of passing a remote MSIHANDLE and creating a set of remote_Record*()
methods, we marshal the whole record as a wire struct. We do this for two
reasons: firstly, because chances are whoever is reading the record is going
to want to read the whole thing, so it's much less taxing on IPC to just pass
the whole record once; and secondly, because records can be created on the
client side or returned from the server side, and we don't want to have to
write a lot of extra code to deal with both possibilities.

The wire_record struct is designed so that we can simply pass the relevant
part of an MSIRECORD to the server.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-18 10:12:58 +02:00
Zebediah Figura 9d12120395 msi: Store a record's associated query privately.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-18 10:12:52 +02:00
Zebediah Figura f348c7c04c msi: Rewrite dump_record().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-11 18:25:59 +02:00
Zebediah Figura 1505912ce1 msi: Allow setting NULL in MsiSetInteger().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-10 20:51:09 +02:00
Hans Leidekker 13af267e75 msi: Use proper return types in MSI_RecordSetStreamFromFileW.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-14 22:25:22 +09:00
André Hentschel 3c1ca4e548 msi: Use boolean return value in boolean function. 2014-02-04 11:15:47 +01:00
Dmitry Timoshkov a5b51a766b msi: Check number of bytes returned by ReadFile. 2013-10-30 15:28:56 +01:00
Michael Stefaniuc 62029ff586 msi: Use FIELD_OFFSET for the size of structs with a varlength array. 2012-12-13 18:38:47 +01:00
Hans Leidekker 7d3f903db1 msi: Fix handling of REG_MULTI_SZ values in the WriteRegistryValues action. 2012-11-05 17:44:18 +01:00
Hans Leidekker 32aed60786 msi: Preserve strings with embedded nulls in the record implementation. 2012-10-29 14:41:04 +01:00
Hans Leidekker 8d28cc0ac7 msi: Get rid of MSI_RecordSetStringA. 2012-10-29 14:40:55 +01:00
Hans Leidekker 9aa23c6c77 msi: Store string length in the record structure. 2012-10-29 14:40:46 +01:00
Andrew Talbot 48a6130279 msi: Add a break to a switch statement. 2011-10-06 16:47:30 -05:00
Bernhard Loos abd1174941 msi: Protected primary keys against modification. 2011-08-26 13:34:25 +02:00
Hans Leidekker 9299319b88 msi: Remove some dead assignments (clang). 2011-07-07 14:45:59 +02:00
Hans Leidekker 0c43024af7 msi: Get rid of helpers.c. 2011-05-06 16:39:08 +02:00
Hans Leidekker eaa57c5b7b msi: Compare strings without depending on thread locale. 2010-10-19 13:49:54 +02:00
Hans Leidekker 7e9d50a122 msi: Avoid pointer truncation in MSI_ViewFetch and MSI_ViewModify. 2010-09-13 10:59:18 -05:00
James Hawkins 9ab7d9e21a msi: Close the original record before copying new data into it. 2009-12-11 12:16:26 +01:00
Hib Eris cad837c999 msi: Add support for importing binary OBJECTS. 2009-05-27 12:51:10 +02:00
Hib Eris d9568722aa msi: Support transforms with binary OBJECTS. 2009-05-26 15:18:09 +02:00
Hib Eris f6dd90de5e msi: Add support for binary OBJECTS. 2009-05-26 15:18:02 +02:00
Nicolas Le Cam e00d864a35 msi: Fix buffer length value returned by MSI_RecordGetStringW on null and empty strings. 2009-04-20 17:26:13 +02:00
James Hawkins 9540d762ad msi: Handle reading from a NULL stream. 2009-03-02 12:06:37 +01:00
Andrew Talbot 668197a898 msi: Declare some functions static. 2009-01-12 13:10:53 +01:00
Michael Stefaniuc 6bd893a960 msi: Change MSIHANDLE to ULONG for Win64 compatibility.
Also fix the compiler warnings produced by this change.
2009-01-05 12:34:12 +01:00
Aric Stewart 17ffb562aa msi: Fix some NULL checking in MSI_RecordGetStringA.
Includes a few record tests with a NULL buffer.
2008-12-18 14:19:40 +01:00
James Hawkins f03889ae82 msi: Add initial implementation of MsiDatabaseMerge, with tests. 2008-10-09 12:58:25 +02:00
James Hawkins 4439e0b57d msi: Make local functions static. 2008-03-01 12:18:40 +01:00
James Hawkins 0d56df214b msi: Successfully return an empty string when requesting a record index beyond the record's size. 2008-02-11 20:45:24 +01:00
Francois Gouget 5771700019 msi: Better match the PSDK types, remove some now unused types from win32.api, and update it to fix the winapi_check warnings. 2007-08-09 14:12:44 +02:00
Andrew Talbot a0ae69a8d1 msi: Constify some variables. 2007-06-06 14:07:22 +02:00
James Hawkins 7d3162e6be msi: Abstract MSI_RecordSetStream. 2007-04-23 16:18:13 +02:00
Mike McCormack 8f20756068 msi: Test MsiRecordGetString on an integer record fields with a NULL output buffer. 2006-11-21 12:15:59 +01:00
Mike McCormack f1d4646a49 msi: Win64 printf format warning fixes. 2006-10-05 11:32:32 +02:00
Mike McCormack 71d8f4ebf6 msi: Create a function to copy record fields, use it to order INSERT fields correctly. 2006-09-07 11:00:19 +02:00
Mike McCormack b9d6ec3b87 msi: Fix MsiRecordGetString for a null buffer and non-zero buffer length. 2006-08-28 11:49:14 +02:00
Mike McCormack aff9f4c1ed msi: Fix an off by one error in MsiRecordGetString. 2006-07-26 15:17:42 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Mike McCormack ed580a1d85 msi: Avoid accessing a null pointer. 2006-04-07 11:45:41 +02:00
Mike McCormack 50684c15d5 Create the +msidb debug channel for msi database code. 2005-11-02 14:24:21 +00:00
Mike McCormack 8dc28d5306 Added memory allocation inline functions (part 1). 2005-09-20 11:57:19 +00:00
Mike McCormack 7e3918d53e Make the MSI icon control work. 2005-06-23 16:43:38 +00:00