Commit Graph

588 Commits

Author SHA1 Message Date
Mike McCormack 8a8c561cfa - the combination of all table keys must be unique, not each key
- MsiViewExecute may not be called before MsiModifyView
2005-08-29 10:16:12 +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 e18952a921 Add the allocated mime type to the mime type list. 2005-08-27 10:01:03 +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 8aa1a919bf Make sure to save the result calculated in ACTION_UpdateInstallStates. 2005-08-25 19:19:10 +00:00
Aric Stewart 50a9b78253 The file name used in the ui messages is the target name not the
source name.
2005-08-25 15:20:34 +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 1256a0c323 Don't dereference variables in a trace. 2005-08-25 09:51:03 +00:00
Mike McCormack 876982df8f Fix a small bug introduced when converting appids to a list. 2005-08-25 09:50:19 +00:00
Aric Stewart 43ec0a4d06 Display the correct text string in the action text field for the
dialog boxes. Also the string should be deformatted.
2005-08-25 09:50:08 +00:00
Johan Dahlin b5c02815d0 Implemented MsiSetComponentState*. 2005-08-24 18:13:09 +00:00
Mike McCormack 34247aff40 Test case for MsiModifyView and MsiViewGetError. 2005-08-24 11:10:39 +00:00
Mike McCormack e8d1a167df Implement MsiModifyView (MSIMODIFY_INSERT_TEMPORARY). 2005-08-24 11:10:23 +00:00
Mike McCormack fba5a59c66 Better stub for MsiViewGetError. 2005-08-24 10:57:49 +00:00
Johan Dahlin 0946c42d5a Added a null check for component. 2005-08-24 10:57:27 +00:00
Mike McCormack 10a1394929 Add include guard to header and make functions extern. 2005-08-24 10:57:02 +00:00
Johan Dahlin fe11241cf3 Added stubs for MsiSetComponentStateA and MsiSetComponentStateW. 2005-08-24 10:56:27 +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
Aric Stewart d90615bb28 Make index INT not UINT because it can be -1. 2005-08-23 09:30:39 +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
Mike McCormack 3f2d5d7fbb Store the component information in a standard Wine list. 2005-08-19 10:03:11 +00:00
Aric Stewart 35706b6b4c Fixed a memory overflow and leak identified by Mike McCormack. 2005-08-16 15:57:21 +00:00
Aric Stewart 94d6818c51 Add some body to ResolveSource because it is possible to need it when
an install is begun but the media is not in the drive, such as in
install-on-demand cases.
2005-08-15 20:50:06 +00:00
Francois Gouget 0de0d11357 Change some Dll* functions so they are exported by name like on
Windows.
Update the documentation accordingly.
2005-08-10 13:02:43 +00:00
Vincent Béron 21e3ba8cd1 Correct mismatches between spec files and comments about export
number.
2005-08-10 09:53:47 +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 bcd8fa3c78 Handle loading strings over 64k from the string table. 2005-08-08 11:01:56 +00:00
Steven Edwards cbec713615 Add real stub for MsiConfigureFeatureW. 2005-08-03 10:56:43 +00:00
Aric Stewart 88837b5d8d Bail out if the reg key is empty. This prevents us from writing
garbage to the property table.
2005-07-22 18:27:41 +00:00
Aric Stewart 2849d3a0a1 Use SOURCEDIR instead of PackagePath. Because the PackagePath may be
local, while SOURCEDIR is more proper and will be a full directory.
2005-07-21 10:32:16 +00:00
Alexandre Julliard 7258914ef6 Use the official names for the Unicode string constants. 2005-07-13 12:07:41 +00:00
Aric Stewart 2e963b89e2 Further testing shows that when CustomActionData needs to be blank it
is an empty string not ' '.
2005-07-12 19:18:48 +00:00
Aric Stewart 27867e2502 Use the SourceList functions to get the source path in
ConfigureProductExW.
2005-07-12 17:56:17 +00:00
Aric Stewart 2d8cb29516 When working toward install on demand support we need to reset all the
constant values so that multiple install process do not get confused
by leftover values from the previous install.
2005-07-12 17:56:03 +00:00
Mike McCormack 8f83234a7a Display icons in buttons that have them. 2005-07-12 17:01:10 +00:00
Aric Stewart 9170cc8225 Properly resize the buffer based on ERROR_MORE_DATA.
Also remember to free the allocated buffer.
2005-07-11 20:36:58 +00:00
Aric Stewart c6d24d235a Use the strings defined in msi.h. 2005-07-11 18:01:39 +00:00
Aric Stewart de7a621b06 Correct an error where I was not properly advancing a pointer. 2005-07-11 18:00:36 +00:00
Aric Stewart 639048b99a If MsiGetProperty(A/W) is called with a NULL for the value buffer but
a value in the size for the value buffer, then Msi fills in the size
of the value into the pointer for size.  This is tested and confirmed
with native MSI.
2005-07-11 14:22:13 +00:00
Aric Stewart c6f155a5fd Add the string constants located in msi.h and make use of them in
files.c and source.c.
2005-07-11 13:22:24 +00:00
Aric Stewart c58df6c677 Implement MsiGetLanguage. 2005-07-10 17:39:14 +00:00
Aric Stewart b95beae8f9 InstallShield does a number of actions using DoAction before the
Install starts so the PackageCode needs to be loaded on OpenPackage
instead of the beginning of the install process.
2005-07-08 14:19:00 +00:00
Robert Shearman 199efb74fe In MsiLocateComponent pcchBuf can be NULL so don't try to dereference
it.
2005-07-08 11:29:55 +00:00
Aric Stewart adaef1112e Fill and use the ProductCode part of the MSIPACKAGE structure. 2005-07-07 20:27:06 +00:00
Mike McCormack e41ba5ca80 Use LoadImage to load bitmaps and icons. 2005-07-07 17:20:57 +00:00
Mike McCormack 4f634a3b7a Stop the install when cancelling from a modeless dialog. 2005-07-06 15:44:51 +00:00
Mike McCormack 30ddf73954 Don't crash when cancelling out of a modeless dialog. 2005-07-06 11:11:26 +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
Mike McCormack a195890bb9 Set the initial focus on the control specified by Control_First in the
Dialog table.
2005-07-05 16:18:46 +00:00
Aric Stewart c9802931c1 Keep track of what sequence we are in and register unique
actions. This allows us to make sure actions and custom actions
flagged to run only once, actually run only once.
Also clean up some of the numeric constants in custom.c using the
defined values from msidefs.h.
2005-06-30 20:45:43 +00:00
Mike McCormack 832450920d Move to the next mask edit field when the current one becomes full. 2005-06-30 10:59:40 +00:00
Mike McCormack f7cf32eb4d Make the tab order in msi dialogs right. 2005-06-30 10:20:40 +00:00
Aric Stewart 8de16029f8 Handle installs off multiple volumes and properly pull the prompt
string from the error table.
2005-06-29 19:19:09 +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 6b68532ccf Repaint the area behind the "transparent" text control when it
changes.
2005-06-27 18:46:22 +00:00
Aric Stewart 25f1e75d43 Perform ExecuteAction at UILevel 2. 2005-06-24 12:14:52 +00:00
Aric Stewart b9c6b85779 Redo how we extract files from a cabinet in order to dramatically
improve performance, especially if picking and choosing files out of
the cabinet.
2005-06-24 12:14:35 +00:00
Aric Stewart 9adacf6a72 Rework CreateShortcuts to use MSI_IterateRecords. 2005-06-24 11:58:21 +00:00
Aric Stewart 0713f098ec Properly handle -1 as a registry key root. 2005-06-24 11:51:29 +00:00
Mike McCormack 2250fce60f Implement transparency in the text control. 2005-06-24 11:34:43 +00:00
Aric Stewart 854bfc4b0f Rework SelfRegModules to use MSI_IterateRecords. 2005-06-24 11:33:02 +00:00
Mike McCormack 7e3918d53e Make the MSI icon control work. 2005-06-23 16:43:38 +00:00
Aric Stewart 04598248af Rework component, feature and file loading to use MSI_IterateRecords. 2005-06-23 16:43:24 +00:00
Aric Stewart a9b5052ff9 Rework RegisterFonts to use MSI_IterateRecords. 2005-06-23 11:04:09 +00:00
Aric Stewart aded32f37b Rework WriteIniValues to use MSI_IterateRecords. 2005-06-23 09:46:31 +00:00
Aric Stewart 916ef94945 Rework PublishProduct to use MSI_IterateRecords. 2005-06-22 18:42:19 +00:00
Aric Stewart 234dc4b2d2 Rework RegisterTypeLibraries to use MSI_IterateRecords. 2005-06-22 18:27:34 +00:00
Aric Stewart c79f4e2111 Rework LaunchConditions to use MSI_IterateRecords. 2005-06-22 18:03:08 +00:00
Aric Stewart 443ad4d328 Rework CostFinalize to use MSI_IterateRecords. 2005-06-21 20:50:12 +00:00
Aric Stewart e89f849612 Fix situations where TARGETDIR is set to a non \ terminated
path. Fixes a few installers.
2005-06-21 20:21:30 +00:00
Aric Stewart 92ef78ee04 Rework WriteRegistryValues to use MSI_IterateRecords. 2005-06-21 20:21:18 +00:00
Aric Stewart 2274ff1937 Rework CreateFolders to use MSI_IterateRecords. 2005-06-21 20:03:46 +00:00
Aric Stewart 1e6c09a3f3 Duplicate files should not fail if unable to get Destination
Directory.
2005-06-21 20:03:30 +00:00
Aric Stewart 09b7503f0b Use MSI_IterateRecords for DuplicateFiles. 2005-06-20 15:33:22 +00:00
Aric Stewart 2703d717c6 Use MSI_IterateRecords for processing actions.
Some whitespace cleanup and replace a comment block I did not want to
remove.
2005-06-20 15:33:10 +00:00
Stefan Huehner ac6f562b52 Fix more -Wstrict-prototypes warnings. 2005-06-20 14:18:03 +00:00
Mike McCormack 9251b2c6b5 Make tabs work in msi dialogs. 2005-06-20 14:11:43 +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
Aric Stewart 3257bcd48c A long overdue fix to MSI_SetTargetPath. This should fix an error with
some installers that where unable to change the target path.
2005-06-17 21:25:51 +00:00
Aric Stewart e9db87b956 Flesh out the remaining keys in RegisterProduct. 2005-06-17 21:25:41 +00:00
Aric Stewart c668952023 Break out all the file related actions and helper functions into
files.c
2005-06-17 20:56:55 +00:00
Marcus Meissner 7ac39aa44b Use a simpler expression for the "RichEdit20W" string to workaround
compiler bug.
2005-06-17 20:54:42 +00:00
Marcus Meissner 0d307eb040 Remove cszbs from msi/action.h. 2005-06-17 09:52:13 +00:00
Aric Stewart 4b600b8736 Break out all the top level apis into install.c. 2005-06-16 20:40:34 +00:00
Mike McCormack a677ac554f Added support for the MSI MaskEdit control. 2005-06-16 20:37:53 +00:00
Aric Stewart 816217e99e A simple cleanup to only track the temp file if we need to have it
laying around because the action is going on asynchronously. Otherwise
clean up the temp file as the action finishes.
2005-06-16 20:33:58 +00:00
Aric Stewart fd8c175a3c Add UI messages to FindRelatedProducts.
Reduce unneeded includes.
2005-06-16 16:08:58 +00:00
Aric Stewart db982e2586 Break out all the class registration actions into classes.c. This
includes RegisterClassInfo, RegisterProgIds, RegisterExtensions and
RegisterMIMETypes.
2005-06-16 15:51:44 +00:00
Aric Stewart 118ea90888 Break out all the helper functions into helpers.c. 2005-06-15 19:12:42 +00:00
Aric Stewart 31695b54c9 A "1" is returned not a 1 for AssignmentType. Also as a bit more to
the FIXME message.
2005-06-13 19:04:39 +00:00
Mike McCormack 908308631f Create a stub implementation for MsiViewGetError. 2005-06-10 19:52:13 +00:00
Aric Stewart 09b0abaa1c Extending upon Mike McCormack's cleanup to use MSI_RecordGetString. 2005-06-09 20:30:59 +00:00
Aric Stewart c28bb54f7a Register the Product Version also.
Also help plug some memory leaks pointed out by Mike McCormack.
2005-06-09 15:49:11 +00:00
Aric Stewart d1a7f070d4 Avoid a loop where a parent's parent refers to itself as its parent. 2005-06-09 15:35:48 +00:00
Aric Stewart 00337b9a51 Added module upgrade.c and implemented FindRelatedProducts. 2005-06-09 12:05:27 +00:00
Aric Stewart 6999a04278 Set the Preselected property if appropriate (relevant to
MigrateFeatureStates when implemented).
2005-06-08 19:20:02 +00:00
Aric Stewart 6957e4a0c2 Write out Product Language and Product Icon to the registry. 2005-06-08 19:16:45 +00:00
Aric Stewart 36a01505dc Write out UpgradeCodes to the registry to allow for future upgrades. 2005-06-08 19:07:52 +00:00
Aric Stewart 36bc29769b Add Language to the values we can query with MsiGetProductInfo. 2005-06-08 18:35:43 +00:00
Mike McCormack ad6a6be88d Use MSI_RecordGetString in more actions. 2005-06-08 18:34:04 +00:00
Mike McCormack 20806c730b Use MSI_RecordGetString where possible. 2005-06-07 21:34:05 +00:00
Mike McCormack f5ae644fc2 Use a richedit control for license text. 2005-06-07 20:30:02 +00:00
Mike McCormack f9acfe635a Fixes for -Wmissing-declarations and -Wwrite-strings warnings. 2005-06-07 20:29:51 +00:00
Mike McCormack 454dff6fb4 Fix radio button groups. Don't add the WS_GROUP style to every
window.
2005-06-07 20:04:21 +00:00
Aric Stewart 19ba432b2b Add functions to add the User UpgradeCodes. 2005-06-07 20:02:27 +00:00
Aric Stewart 90bc168c87 Correct a crash if the length buffer is NULL. 2005-06-07 20:02:07 +00:00
Mike McCormack b402f04851 Use standard lists in the event subscription code. 2005-06-06 15:40:15 +00:00
Aric Stewart f9e64e8187 Don't get caught in loops on parent progids. 2005-06-06 15:39:59 +00:00
Alexandre Julliard 4ca26536a9 Authors: Aric Stewart <aric@codeweavers.com>, Mike McCormack <mike@codeweavers.com>
Allow dialog controls to subscribe to installer events.
2005-06-04 09:48:47 +00:00
Aric Stewart cb72f7fb0a Make sure the TRACE statements do not spew garbage by using
debugstr_wn.
2005-06-04 09:36:44 +00:00
Mike McCormack a6c8e4e498 Take the dialog frame into account when calculating the dialog size. 2005-06-04 09:35:37 +00:00
Aric Stewart 873c0726e9 Since multiple progids can refer to 1 class we need to check if that
class is isntalled instead of just relying on having it set the
InstallMe variable.
2005-06-04 09:35:22 +00:00
Aric Stewart 4d1ce166ce Locate where a buffer size is not being set and correctly handle the
buffer size conversion from W to A (with help from Robert Shearman).
2005-06-03 11:24:57 +00:00
Aric Stewart ee72fb2817 Add install_on_demand for Extension servers also. currently defaulting
to TRUE.
Extension need to have 1 verb to mark the given progid to be
installed.
2005-06-03 11:24:04 +00:00
Aric Stewart a96e1cef9f Do not loop if a ProgId's Parent Index it itself.
Add a VersionIndIndex for tracking version independent fields for the
ProgIds properly.
2005-06-02 20:06:11 +00:00
Mike McCormack 07b19112e5 Use MSI_QueryGetRecord in one more place. 2005-06-02 19:40:45 +00:00
Aric Stewart f1104125b1 Print a message for skipped actions in ProcessExecSequence like in the
UISequence.
2005-06-02 19:39:49 +00:00
Aric Stewart 54ba7b9338 Do not change a features state to Advertise if it explicitly disallows
it.
2005-06-02 15:16:31 +00:00
Aric Stewart ca8c4e4105 For typelibs index 1 do not add \\1 to the path. This cleans up
registry diffs with native MSI.
2005-06-02 15:13:57 +00:00
Aric Stewart 44816cebd6 Register the FileType and correct short vs long path problems with
InprocServer32. Also add install_on_demand boolean for future
expansion.
2005-06-02 15:09:57 +00:00
Mike McCormack 0b352c7f7f Use the new helper function MSI_QueryGetRecord. 2005-06-02 10:29:57 +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
Dmitry Timoshkov b67da5b946 Make more of the OLE interface vtables const. 2005-06-01 19:57:42 +00:00
Alexandre Julliard 955e589ed0 Authors: Aric Stewart <aric@codeweavers.com>, Mike McCormack <mike@codeweavers.com>
Fix handling of checkbox properties.
2005-06-01 19:48:48 +00:00
Mike McCormack 9ca5717a2f Clean up headers and make some functions static. 2005-06-01 11:02:48 +00:00
Mike McCormack e8b21c3eed - avoid unicode.h
- add a missing function prototype
2005-06-01 11:02:19 +00:00
Mike McCormack 38de6131f1 Remove some unused code. 2005-05-31 13:20:09 +00:00
Mike McCormack 64de949cdd More -Wmissing-declarations and -Wwrite-strings warning fixes. 2005-05-31 09:30:28 +00:00
Mike McCormack b15c264de4 Improve number parsing and avoid unicode.h. 2005-05-31 09:30:01 +00:00
Mike McCormack b075f03acb Remove more types from the parser. 2005-05-30 11:32:18 +00:00
Mike McCormack cac6387ca3 Add and correct some function declarations. 2005-05-30 11:12:24 +00:00
Francois Gouget 62253b752f Assorted spelling fixes. 2005-05-30 09:56:56 +00:00
Mike McCormack d1a55eb3f8 Get rid of some redundant parser types. 2005-05-29 20:17:16 +00:00
Mike McCormack b58a098a11 -Wmissing-declarations and -Wwrite-strings warning fixes. 2005-05-29 20:08:12 +00:00
Alexandre Julliard f271224f44 Authors: Mike McCormack <mike@codeweavers.com>, Aric Stewart <aric@codeweavers.com>
Add format record tests.
2005-05-27 19:25:42 +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
Aric Stewart aa95731d6f Restrict deformating of nested index keys [[1]].
Introduce the beginning of group deformating {}.
2005-05-27 19:23:29 +00:00
Mike McCormack 018bc9a0cd Test and fix the size of stream fields in a record. 2005-05-27 09:26:13 +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 3594e45ab6 First pass at writing out CurVer keys for ProgIds. Also print a
message for the actions we skip. Lines up with native MSI output logs
for ease of comparison.
2005-05-26 16:08:58 +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
Aric Stewart 825920a090 Implement the [!file] format to produce the short filename. 2005-05-25 17:49:49 +00:00
Mike McCormack 3244265855 Simplify parsing of the FROM keyword. 2005-05-24 09:49:01 +00:00
Aric Stewart bec5549da6 Double terminate SZ_MULTI properly.
ClassInfo and ExtensionInfo are also written for ADVERTISED
components.
2005-05-23 16:24:20 +00:00
Aric Stewart fefad8fcf2 Fix a leaking handle.
Make MsiCollectUserInfo more internally consistent.
Thanks to Mike McCormack.
2005-05-23 16:23:54 +00:00