Robert Shearman
9f487ba1de
msi: Optimise WHERE operations.
...
Optimise WHERE operations on matching against strings by adding a new
function find_matching_rows to the views, which eliminates the need to
examine every record when executing a query. Implement this function
in the table using a hash table on the ID stored in the data.
2006-03-20 12:03:04 +01:00
Mike McCormack
e534e7726b
msi: Apply any MSI transforms specified by the TRANSFORMS property.
2006-01-04 14:51:25 +01:00
Mike McCormack
188365e2f0
msi: Implement the Reset control event.
2006-01-03 12:12:09 +01:00
Mike McCormack
3e6f31bf0b
Fix and test MsiGetProperty and MsiSetProperty.
2005-10-31 14:07:37 +00:00
Mike McCormack
1cd26d25fc
Implement transforms. This still includes some debugging code which
...
can be enabled by setting debug_transform to 1 in the relevant
places.
2005-10-27 12:25:04 +00:00
Mike McCormack
f8fef6ea94
Create a stub function to apply a single table transform and call it
...
where we need to apply transforms.
2005-10-26 13:56:33 +00:00
Mike McCormack
6d9c80e8a0
Create an internal handle-free api for reading MSI database summary
...
information.
2005-10-26 10:10:50 +00:00
Mike McCormack
61f24a4ca7
Rename ACTION_DoTopLevelINSTALL to MSI_InstallPackage, remove its
...
duplicate 4th parameter.
Split the code to copy a package into a separate function.
2005-09-30 10:32:41 +00:00
Mike McCormack
8e74308a10
Fix and test MsiViewGetColumnInfo and binary fields.
2005-09-28 11:59:40 +00:00
Mike McCormack
41c788f5a1
Don't create MSI handles unless we have to pass one through the API.
2005-09-28 10:13:18 +00:00
Mike McCormack
d34b1c23a2
Implement MsiSequenceA/W.
2005-09-21 10:55:23 +00:00
Mike McCormack
7d7da60db4
Don't refcount tables.
2005-09-21 10:20:20 +00:00
Mike McCormack
8dc28d5306
Added memory allocation inline functions (part 1).
2005-09-20 11:57:19 +00:00
Mike McCormack
230e71cc18
Fix memory leaks in the table code.
2005-09-17 14:29:38 +00:00
Mike McCormack
6b5f290d75
Make load_string_table return the string table.
2005-09-16 19:01:40 +00:00
Mike McCormack
4db02cdb0b
Use the new msi_reg_set* macros where possible.
2005-09-15 14:58:38 +00:00
Mike McCormack
ade532a163
Remove some unused values in the object header.
2005-09-14 11:15:22 +00:00
Mike McCormack
5f1b258c9c
Convert the list of tables to a standard list.
2005-09-14 10:07:26 +00:00
Alexandre Julliard
903e0b9fc5
Get rid of a couple of non-portable long long constants.
2005-09-13 11:26:36 +00:00
Mike McCormack
0232c5c45f
Convert RunningActions array into a list.
2005-09-08 12:42:07 +00:00
Mike McCormack
c50ef541e8
Keep temporary files in a seperate list.
2005-09-07 11:25:18 +00:00
Mike McCormack
68680e9c0c
Fixes for MsiGetSourcePath parameter handling.
2005-09-06 11:05:35 +00:00
Mike McCormack
1ceb25ba7b
Convert progids to a standard list.
2005-09-06 09:26:18 +00:00
Mike McCormack
4d7b593bd3
- convert verbs into a standard list
...
- remove limitation of 100 verbs
- use pointers to verbs rather than indexes
2005-09-02 14:39:13 +00:00
Mike McCormack
0c49c1c41d
- build a standard Wine list of extensions instead of using an array
...
- use extension pointers instead of array indexes
2005-08-29 09:38:39 +00:00
Mike McCormack
9e558d7449
- build a standard Wine list of mime types instead of using an array
...
- use mime type pointers instead of array indexes
2005-08-26 08:47:31 +00:00
Mike McCormack
a391a98a9d
- build a standard Wine list of classes instead of using an array
...
- use class pointers instead of array indexes
2005-08-25 10:22:32 +00:00
Mike McCormack
e8d1a167df
Implement MsiModifyView (MSIMODIFY_INSERT_TEMPORARY).
2005-08-24 11:10:23 +00:00
Mike McCormack
febad089ce
- build a standard Wine list of appids instead of using an array
...
- use appid pointers instead of array indexes
2005-08-24 09:45:18 +00:00
Mike McCormack
979511fe6d
- build a standard Wine list of folders instead of using an array
...
- use folder pointers instead of array indexes
2005-08-23 18:15:44 +00:00
Mike McCormack
e18f8abee1
- build a standard Wine list of files instead of using an array
...
- use file pointers instead of array indexes
2005-08-23 10:03:17 +00:00
Mike McCormack
1da2858caa
- build a standard Wine list of features instead of using an array
...
- use feature pointers instead of array indexes
2005-08-22 14:09:17 +00:00
Mike McCormack
38d67a4537
- build a standard Wine list of components instead of using an array
...
- use component pointers instead of array indexes
2005-08-22 09:15:23 +00:00
Alexandre Julliard
d37f0abf07
Don't prefix the functions DllCanUnloadNow, DllGetClassObject and
...
Dll(Un)RegisterServer with the dll name so that the compiler can check
the prototypes.
2005-08-08 17:35:28 +00:00
Yuri Kozlov
934c6fa93f
Remove duplicate declaration of MSI_SetPropertyW.
2005-08-08 11:07:10 +00:00
Mike McCormack
16466af791
gcc 4.0 -Wpointer-sign fixes.
2005-07-06 10:33:30 +00:00
Aric Stewart
b7dc53d462
Add source.c to start handling the various MsiSourceList apis used in
...
v3 of MSI, and now internally.
Update files.c to use the MsiSourceList apis to make sure our
SourceList keys in the registry are included and correct.
2005-07-05 21:00:06 +00:00
Aric Stewart
f1b52aef96
Relocate the msi file to prevent cd locking, corrected to properly not
...
try to relocated #nnnn handles as files.
2005-06-28 19:14:30 +00:00
Mike McCormack
7e3918d53e
Make the MSI icon control work.
2005-06-23 16:43:38 +00:00
Aric Stewart
71a55e04a3
Allow control events to return codes to halt the processing of event.
...
Needed for the SetTargetPath Event.
2005-06-17 21:31:06 +00:00
Mike McCormack
f9acfe635a
Fixes for -Wmissing-declarations and -Wwrite-strings warnings.
2005-06-07 20:29:51 +00:00
Aric Stewart
19ba432b2b
Add functions to add the User UpgradeCodes.
2005-06-07 20:02:27 +00:00
Mike McCormack
b402f04851
Use standard lists in the event subscription code.
2005-06-06 15:40:15 +00:00
Mike McCormack
6309892499
Create a helper function to fetch a single record from a query.
2005-06-02 10:29:28 +00:00
Mike McCormack
e8b21c3eed
- avoid unicode.h
...
- add a missing function prototype
2005-06-01 11:02:19 +00:00
Mike McCormack
64de949cdd
More -Wmissing-declarations and -Wwrite-strings warning fixes.
2005-05-31 09:30:28 +00:00
Aric Stewart
9cd707da3f
Introduce really basic scripting of actions. This is primarily to get
...
the order of execution of the action correct since some custom actions
can be scripted and others are run during the script building phase.
2005-05-27 19:24:22 +00:00
Alexandre Julliard
d757bfeeaf
Authors: Aric Stewart <aric@codeweavers.com>, Mike McCormack <mike@codeweavers.com>
...
Implement dialog events and hook up the dialog code.
2005-05-27 09:11:18 +00:00
Aric Stewart
6f43c18fe7
A big rewrite of the whole RegisterClass, RegisterProgId,
...
RegisterExtension and RegisterMIME actions. We now handle verbs
properly, handle dependancies and such properly and keep track of what
we need to register and what we do not properly.
2005-05-26 12:24:28 +00:00
Mike McCormack
0093007b32
Track memory allocations in the SQL parser.
2005-05-23 12:08:17 +00:00
Mike McCormack
7153c8fa65
- remove the unused utf8 field of an expression
...
- make the parse result a single assignment at top level of parsing
- abort parsing on a memory allocation failure
2005-05-23 09:53:43 +00:00
Aric Stewart
b39d8fc2a6
- ExecuteAction runs the whole Execute table and not just from
...
InstallValidate onward. To do this make sure we do not do the
costing initialization work again if it is already done (by checking
the CostingComplete Property).
- A lot of work to refine feature states, setting the state affects
the state of all child features and also respect features that want
to default to something other than LOCAL.
2005-05-13 13:56:39 +00:00
Mike McCormack
07c74d07f3
Make sure that dialogs are only created and destroyed in a single
...
thread.
2005-04-27 10:16:57 +00:00
Aric Stewart
072c5e56a2
Implement Publish Components in order for MsiGetQualifiedComponent
...
apis to work. Also implement MsiGetQualifiedComponent, or at least some
of the functionality as it is supposed to install stuff if it is
absent, which it does not do yet.
2005-04-20 12:50:05 +00:00
Mike McCormack
499a887d0f
Load and display bitmaps in the dialogs.
2005-04-11 12:47:20 +00:00
Mike McCormack
758a69515b
Implement summary information loading and saving.
2005-03-18 14:01:39 +00:00
Mike McCormack
95dea4969a
- Rename dupstrW to strdupW, and remove duplicate definition.
...
- Move definition of string manipulation functions to msipriv.h.
2005-03-16 11:31:35 +00:00
Juan Lang
3d4ce5c2c1
Implement MsiEnumRelatedProducts.
2005-03-10 17:24:05 +00:00
Aric Stewart
b6bc6aa6f8
Add the ExecuteAction handler.
...
Store the keypath, and do refcounting and registration of SharedDLLs.
Fix a bug with handing dword values in the registry.
Fix bugs with writing registry keys where value == NULL.
Make use of msidefs.h.
Lay some groundwork for uninstalls.
2005-02-24 12:47:43 +00:00
Mike McCormack
ef1d367bcc
Fix MsiModifyView and MsiViewGetColumnInfo to use MSIRECORD* not MSIHANDLE.
2005-02-08 13:44:25 +00:00
Mike McCormack
e7488b8f79
- fix the dialog font
...
- allow waiting on a handle while running the message loop
2005-02-08 12:55:47 +00:00
Mike McCormack
fd91013b46
Add more dialog controls, do something when they're clicked on.
2005-02-02 09:55:51 +00:00
Mike McCormack
479213c455
Implement MsiPreviewDialog.
2005-01-28 12:39:57 +00:00
Aric Stewart
6b16f29fc0
Enable the updating of Feature and thus the resulting component
...
states.
Run the end of install actions for suspend and user exit states as
well.
Start putting in place a currently running state for future ui use.
2005-01-27 11:12:56 +00:00
Aric Stewart
475a81a818
Added a few more stub implementations.
2005-01-26 19:41:13 +00:00
Aric Stewart
54c67dd1b1
- action.c is getting too big, so split out all the handling of
...
CustomActions into custom.c. Cleaned up a lot of the handling of
custom actions including scripting actions and processing return
codes.
- Mike McCormack pointed out that MsiFormatRecord is basically the
same as internal function deformat_string. So broke deformat_string
out and updated it to function as MsiFormatRecord and implemented
MsiFormatRecord.
- A number of random fixes to action.c including properly calculating
the length for the LocalPackage name, not forcing a reboot when
really we should just return ERROR_INSTALL_SUSPEND and handling
REG_MULTI_SZ now that we can deformat the properly.
2005-01-25 20:17:09 +00:00
Aric Stewart
a26aa0af4c
Move the guid squishing functions out of msi.c and make a new
...
registry.c file. Also clean up all the various registry keys we need
to open and create to this module and modify the functions for msi.c
to call these functions.
2005-01-25 10:58:36 +00:00
Alexandre Julliard
ee4f4a05c5
Avoid unnecessary run-time initializations.
2005-01-24 12:55:31 +00:00
Mike McCormack
0c23885654
Move OpenQuery into msiquery.c and make it non-static.
2005-01-21 16:19:11 +00:00
Mike McCormack
eb23257b7d
Added stub implementations for MsiPreviewDialog and
...
MsiPreviewBillboard.
2005-01-21 10:17:01 +00:00
Mike McCormack
b3a7f37aaf
Fix refcounting, use Interlocked functions.
2005-01-20 20:34:29 +00:00
Aric Stewart
2cae30b6cf
Quite a few fixes:
...
- Allow for the queing of custom actions to trigger on the
InstallExecute or InstallExecuteAgain actions.
- allow for the queing of custom actions to trigger on
InstallFinalize.
- Properly set the CustomActionData property for said queued actions.
- Implement RegisterProduct.
- Beginning implementation of ForceReboot.
- Don't kill install if an item to be duplicated does not exist.
- Write out SourceList and LastUsedSource for resuming installs.
- Use regsvr32 to register self reg dlls.
2005-01-19 19:07:40 +00:00
Aric Stewart
51cf7d13c0
Free allocated buffers.
2005-01-03 14:29:09 +00:00
Mike McCormack
0f0b6c8c15
Implement thread safety for records.
2004-12-27 19:29:33 +00:00
Mike McCormack
9db0e072b1
Remove a lot of fixed length buffers.
2004-12-22 15:05:07 +00:00
Mike McCormack
181705cbbd
- Don't limit the size of the property that can be retrieved by
...
MsiGetProperty.
- Make MsiGetProperty A/W implementations more consistent.
2004-11-28 14:53:46 +00:00
Alexandre Julliard
25e2a320a7
Don't define BEGIN_INTERFACE in unknwn.h.
2004-08-22 21:38:46 +00:00
Hans Leidekker
4104c622af
Set VersionMsi property.
...
Accept a dot in a number value.
2004-07-19 21:49:15 +00:00
Alexandre Julliard
a7a6f5f31c
Authors: Mike McCormack <mike@codeweavers.com>, Aric Stewart <aric@codeweavers.com>
...
Refcount all objects, and use pointers internally.
2004-07-09 22:25:34 +00:00
Alexandre Julliard
77b12768c9
Authors: Aric Stewart <aric@codeweavers.com>, Mike McCormack <mike@codeweavers.com>
...
Write the encoded GUIDs for product registration in the Installer
registry.
2004-07-09 19:43:29 +00:00
Aric Stewart
7231a439b4
Implement logging.
2004-07-09 19:26:30 +00:00
Mike McCormack
24e9a34494
Fetch binary streams at the table level.
2004-07-06 18:56:12 +00:00
Aric Stewart
b942e18636
Implemented ProcessComponents.
2004-07-06 18:50:02 +00:00
Aric Stewart
ec688fb4e0
Beginnings of costing and organizing into components and features.
2004-07-04 00:35:52 +00:00
Aric Stewart
bdb2955296
Fix MsiGetTargetPath, MsiGetSourcePath and MsiSetTargetPath.
2004-07-04 00:32:48 +00:00
Aric Stewart
2e9b5f7c07
Use the newly implemented UPDATE code to set properties.
2004-07-04 00:31:17 +00:00
Aric Stewart
ed7c4bc84c
Implement SetTargetPath, start the basics for tracking UI level.
2004-07-04 00:26:54 +00:00
Aric Stewart
eb0e0df908
Start implementing MsiOpenPackage.
2004-06-30 19:38:36 +00:00
Mike McCormack
abd259fd12
Fix the UPDATE query.
2004-06-30 18:24:33 +00:00
Mike McCormack
ab519f2a2c
Make the SQL insert query work.
2004-06-30 18:18:27 +00:00
Mike McCormack
6fb0cee5d9
Dump database table names on startup.
2004-06-29 03:57:39 +00:00
Aric Stewart
e95136b7e3
Implement MsiGetTargetPathA/W.
2004-06-29 03:44:01 +00:00
Mike McCormack
0eecfdef67
Allow reading records containing streams.
2004-06-29 03:41:28 +00:00
Aric Stewart
401bd3f772
Start implementing actions.
2004-06-28 20:34:35 +00:00
Mike McCormack
c0523aaa57
Pull the codepage from the string table.
2004-06-26 00:18:36 +00:00
Mike McCormack
9d66d94780
Implement queries by string value.
2004-06-26 00:11:08 +00:00
Raphael Junqueira
9191a9cd95
Implement DllGetClassObject, DllRegisterServer, DllUnregisterServer
...
(as the interfaces aren't documented we only have stubs).
2004-03-30 20:42:06 +00:00
Mike McCormack
943a71e453
Fix handle allocation and the CREATE TABLE query.
2004-03-19 19:14:12 +00:00
Mike McCormack
068b4ec7d4
First go at write support.
2004-03-19 01:16:36 +00:00
Mike McCormack
b040e4bcd2
When loading table data, split it up into rows.
2004-03-18 04:04:08 +00:00
Mike McCormack
f5e1c13070
Move the string table out into a separate file, improve lookups.
2004-03-17 20:49:59 +00:00
Mike McCormack
14ec526004
Extend the parser to deal with the CREATE TABLE query. The query
...
doesn't do anything as yet.
2004-03-16 19:18:22 +00:00
Mike McCormack
f92deed281
Remove references to HEAP_strdupAtoW.
2003-09-27 02:24:31 +00:00
Francois Gouget
ae50013017
Fix the case of product and company names.
2003-09-08 19:38:45 +00:00
Alexandre Julliard
e37c6e18d0
Fixed header dependencies to be fully compatible with the Windows
...
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Mike McCormack
6386edc5d8
Partial implementation of the Microsoft Installer (msi.dll).
2003-08-13 01:27:48 +00:00