Juan Lang
3d4ce5c2c1
Implement MsiEnumRelatedProducts.
2005-03-10 17:24:05 +00:00
Juan Lang
5ebd4e938e
- make sure msihandle2msiinfo is correctly matched with msiobj_release
...
- don't do redundant NULL checks
2005-03-10 11:15:40 +00:00
Ulrich Czekalla
e15e5179c2
Allocate space for terminating null.
2005-03-08 16:44:51 +00:00
Ulrich Czekalla
5f08b9f7b0
Fix a memory leak.
2005-03-08 16:23:36 +00:00
Ulrich Czekalla
64db533173
Add support for radio buttons.
2005-03-04 12:32:08 +00:00
Francois Gouget
fbb3343547
Assorted spelling fixes.
2005-03-02 13:53:50 +00:00
Alexandre Julliard
d0ee9f9309
Avoid spaces before preprocessor directives, that's not portable.
2005-03-02 12:23:20 +00:00
Aric Stewart
8e233e9b9f
Text reformatting patch to clean up all the static strings.
2005-03-01 11:45:19 +00:00
Juan Lang
014ad3ba21
Don't hardcode windows or system directories, correct a typo.
2005-03-01 10:41:52 +00:00
Dmitry Timoshkov
dd1ba8a7d8
Remove a temporary msi database file.
2005-02-26 17:41:36 +00:00
Jon Griffiths
eb5bf7dd38
Documentation spelling fixes.
2005-02-25 14:07:56 +00:00
Aric Stewart
0af2487a51
Implement the action RegisterFonts.
2005-02-25 14:00:09 +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
Aric Stewart
af812605fb
Do some basic work with registry component paths.
2005-02-24 10:05:53 +00:00
Ulrich Czekalla
fa85f0132b
Prevent accessing freed memory in failure case.
2005-02-24 10:05:27 +00:00
Aric Stewart
713dc8f60c
Make sure formats like [\\]] and [\\[] work properly.
2005-02-23 12:44:25 +00:00
José Manuel Ferrer Ortiz
f151e9b174
Added MSI Spanish resources.
2005-02-23 12:41:09 +00:00
Mike McCormack
09b8264f1d
Make sure strings are null terminated.
2005-02-22 19:31:45 +00:00
Aric Stewart
78a04e39db
Update the installed state for components during CostFinalize. Laying
...
groundwork to be able to start processing uninstall logic as well.
2005-02-22 15:47:00 +00:00
Steven Edwards
5f8797f1fd
Correct typo.
2005-02-22 14:53:05 +00:00
Aric Stewart
7e7b8cf4ef
Fixed problems with my code for finding the PackageCode.
2005-02-18 20:00:34 +00:00
Jonathan Ernst
a37a4f6ce6
Add French resources.
2005-02-16 21:10:02 +00:00
Mike McCormack
0b1b703fdd
Move product, feature and component enumeration functions to
...
registry.c.
2005-02-16 17:52:53 +00:00
Mike McCormack
3988d9c53b
Add a border to the edit control, add some more controls.
2005-02-16 16:25:36 +00:00
Mike McCormack
9bef4830a5
Fix up the summary information code a little.
2005-02-16 16:25:09 +00:00
Aric Stewart
2e24400cc9
Stubs for MsiUseFeature.
2005-02-16 16:24:38 +00:00
Mike McCormack
10e5c9e834
Remove const declaration from non-const function.
2005-02-16 16:07:11 +00:00
Mike McCormack
e2df8814ea
Allow MsiViewExecute to be called twice on the same query.
2005-02-16 16:06:05 +00:00
Mike McCormack
64623067c3
Implement MsiDatabaseGetPrimaryKeys.
2005-02-16 16:05:11 +00:00
Mike McCormack
fa5cbb5a0f
MsiGetComponentPath should allow null pointers for pcchBuf and
...
lpPathBuf.
2005-02-16 16:04:36 +00:00
Henning Gerhardt
d0cc21f45f
Add/updated German resources.
2005-02-15 20:46:19 +00:00
Marcelo Duarte
574c0edabb
Update the resources for Portuguese.
2005-02-14 11:12:30 +00:00
Marcus Meissner
30ed10004b
Output some more informations.
...
Mark one global variable static.
2005-02-14 11:07:55 +00:00
Mike McCormack
1afddb3cd3
Implement SQL delete query.
2005-02-14 11:07:13 +00:00
Francois Gouget
4d801b66e6
Assorted spelling fixes.
2005-02-10 19:19:35 +00:00
Mike McCormack
d42081f8c9
Update headers, add MsiGetUserInfoA stub implementation.
2005-02-10 18:57:42 +00:00
Aric Stewart
fccb667f0e
Added stubs for MsiGetShortcutTargetA/W.
2005-02-10 17:10:14 +00:00
Aric Stewart
c7e88e0820
Add the RegisterUser action.
2005-02-10 17:09:44 +00:00
Ulrich Czekalla
3440035341
Handle 0 length buffers in MSI_FormatRecordW.
...
Remove unused buffer in deformat_string.
2005-02-09 22:22:25 +00:00
Aric Stewart
c2abd83079
Do not track the temp files for custom actions based on the name from
...
the table because then we get conflicts and files not tracked or
cleaned up.
2005-02-09 14:05:24 +00:00
Aric Stewart
187da09b2d
Implement RegisterExtensionInfo and RegisterMIMEInfo.
2005-02-09 13:58:20 +00:00
Mike McCormack
f51ad46a7a
Handle a number as a parameter for custom action 19.
2005-02-09 13:57:54 +00:00
Aric Stewart
0f65057aed
Do not limit properties to 256 characters when evaluating them.
2005-02-09 13:26:16 +00:00
Mike McCormack
34d4a02bc5
- add support for Edit boxes in MSI dialogs
...
- run the message loop when waiting for threads or processes
2005-02-09 13:24:31 +00:00
Mike McCormack
17cfa28216
Fix a memory leak in MsiConfigureProductExW.
2005-02-09 13:22:49 +00:00
Aric Stewart
6ed10c8013
Make a temp file for each dll saved for custom actions. This prevents
...
name collisions from causing custom actions to fail.
2005-02-08 14:27:06 +00:00
Aric Stewart
c1e5c4a907
Add logic to be able to resolve the SourceDir based on
...
CurrentPath. Also add logic to get the source locations of a file if
it is not in a cabinet.
2005-02-08 14:26:49 +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
Juan Lang
5f35a32f60
Identifiers evaluate to true if they are non-empty, regardless of
...
value.
2005-02-08 12:13:49 +00:00
Mike McCormack
65fb09183b
Implement and document MsiLoadString.
2005-02-08 12:12:29 +00:00
Mike Hearn
e0803f1ac4
Correctly ensure properties set from resolved directory paths are
...
backslash terminated.
2005-02-08 12:11:54 +00:00
Juan Lang
1d936f45ae
If a full path isn't specified, search across all fixed drives.
2005-02-08 12:08:49 +00:00
Mike McCormack
fe0f128d06
- implement checkboxes in dialogs
...
- use TextStyle enumeration instead of numbers
- fix MSI_IterateRecords to return the correct count
2005-02-03 10:41:59 +00:00
Juan Lang
c33efbeb7d
Simplify AppSearch error checking.
2005-02-03 10:41:41 +00:00
Mike McCormack
fd91013b46
Add more dialog controls, do something when they're clicked on.
2005-02-02 09:55:51 +00:00
Aric Stewart
3b38dc6864
Cleanup processing a bit more.
...
Allow for nested keys to work properly.
2005-02-02 09:30:22 +00:00
Aric Stewart
a905217b3e
Fix a copy and paste error, check for a null value and discard
...
unneeded errors.
2005-02-02 09:30:05 +00:00
Mike McCormack
79a6626b64
MsiEvaluateCondition returns an error when passed NULL as a
...
condition.
2005-02-02 09:29:46 +00:00
Aric Stewart
d6ecf58e2f
Finish up the framework by stubbing out all the remaining Standard
...
actions.
A fix to deformat_string so it only returns a null return if you
provided a null buffer.
2005-02-02 09:29:30 +00:00
Aric Stewart
3f3186091e
Continued work to simplify the ProcessAction call, also split it into
...
a ProcessAction and ProcessUIAction for future dialog box work.
Also fix a bug in deformat_string where i was not freeing the created
record.
2005-02-01 18:46:26 +00:00
Juan Lang
df9d01409b
Partially implement AppSearch action.
2005-02-01 14:22:31 +00:00
Aric Stewart
5eaf9cec86
Added some more suminfo stubs.
2005-02-01 14:21:03 +00:00
Aric Stewart
4590c7ddee
A reworking of format.c to remove the recursion, clean things up and
...
stabilize behavior to match windows.
2005-01-31 20:41:11 +00:00
Aric Stewart
90c57396f4
Eliminate the giant if.. else if block from ACTION_ProcessAction in
...
favor of a table of handlers.
Return code of the install should not depend on the return code of the
final action.
Update component installed states as they are installed so that
conditions based on component states are at least a little more
correct.
Add icon and argument when regestering clsids.
Add a stub for ResolveSource because we do that work just not in
ResolveSource like we should.
When quering a Component state return the correct state.
2005-01-31 16:23:12 +00:00
Aric Stewart
e495e7e34c
Setting a record to an empty string is the same as making it null.
2005-01-31 11:30:59 +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
Mike McCormack
279ef15646
- implement MsiOpenPackageEx, and forward MsiOpenPackage there
...
- make a MSI_CreatePackage function and use it in MSI_OpenPackage
- move MsiOpenPackageA down with the rest of the API functions
2005-01-27 11:12:16 +00:00
Mike McCormack
c04ce10bdd
Test different types of dodgy queries.
2005-01-27 10:43:27 +00:00
Aric Stewart
c169f717ee
Implement custom action type 19, Halt install and display error
...
message.
2005-01-27 10:43:12 +00:00
Aric Stewart
409d3f62cd
MsiGetProperty does not return any error on missing properties.
2005-01-27 10:42:45 +00:00
Francois Gouget
da8b3dd7f2
Assorted spelling fixes.
2005-01-26 21:09:04 +00:00
Mike McCormack
e5f2ed4c66
Fix MsiRecordSetString for NULL strings and update test case.
2005-01-26 20:39:54 +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
Mike McCormack
5af66fef43
Implement, test and document MsiDecomposeDescriptor.
2005-01-25 16:41:33 +00:00
Aric Stewart
68b0749471
Use the new registry functions in registry.c.
...
Do not force a reboot, just return ERROR_INSTALL_SUSPEND and write
some keys to the registry.
2005-01-25 11:05:37 +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
Aric Stewart
0252761c0b
The new Insert fixes now properly require ?,? instead of just ? for
...
the Insert call. This fix modifies the MSI_SetProperty query to be
correct.
2005-01-24 11:25:02 +00:00
Aric Stewart
9999e6ccdf
An implementation of MsiSummaryInfoGetPropertyW based off of
...
MsiSummaryInfoGetPropertyA.
2005-01-24 11:24:35 +00:00
Mike McCormack
609f5514ac
Indentation and style cleanup.
2005-01-24 11:22:00 +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
cce387d1a6
Lock record in MsiViewExecute, move stubs to end.
2005-01-21 10:16:30 +00:00
Mike McCormack
5007de8b05
Fix and test inserting records.
2005-01-20 20:39:15 +00:00
Mike McCormack
b3a7f37aaf
Fix refcounting, use Interlocked functions.
2005-01-20 20:34:29 +00:00
Mike McCormack
48df747150
Fix a bug caused by freeing memory too soon in the table code.
2005-01-20 19:57:22 +00:00
Michael Stefaniuc
b937407ee5
Do not check for non NULL pointer before HeapFree'ing it. It's
...
redundant.
2005-01-20 10:36:35 +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
2c0e46d9df
Do a very basic first implementation of MsiConfigureProductExW for
...
msiexec /@ when run as a reboot.
Also add a number of new stubs for the office xp and 2k3 install and
startup process.
2005-01-19 16:58:03 +00:00
Aric Stewart
6269f00c33
Implementations for SelfRegModules and PublishFeatures.
...
Set default ACTION property for Install.
Deformat more than JUST properties properly. Allows for Files and
Component paths in deformat.
Properly deformat a LaunchCondition failure dialog box.
Resolve and save registry Keypaths.
Write the Features published keys more correctly. Still some
problems.
2005-01-17 13:40:39 +00:00
Aric Stewart
82a6a3b826
First pass implement ion of MsiQueryProductState[A/W] as well as a few
...
fixes for MsiGetComponentPath.
2005-01-17 13:39:57 +00:00
Aric Stewart
0de5671ee9
Actually start on an implemention for MsiGetComponentPathW that should
...
handle all keypaths that are files.
2005-01-14 17:05:53 +00:00
Marcus Meissner
b7f6781590
Initialize rc in create_component_directory().
2005-01-14 16:50:39 +00:00
Aric Stewart
516a9c70ed
First implementation of the WriteIniValues action.
2005-01-14 15:59:26 +00:00
Aric Stewart
dbb5d2a871
Custom actions can have null in their target parameters, handle that
...
without crashing. Also enable deformating of lines greater than 256
characters.
2005-01-14 15:12:27 +00:00
Paul Vriens
6a8268f372
Use Interlocked* functions in AddRef and Release.
2005-01-11 15:46:43 +00:00
Francois Gouget
87b0906789
Assorted spelling fixes.
2005-01-10 13:29:24 +00:00