Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

7192 lines
378 KiB

  1. Darwin Setup Development Notes for Testing Releases
  2. 99-02-10 murate Implemented COM+ Registration support.
  3. -----------------------------
  4. Release 0.10.0210
  5. -----------------------------
  6. 99-02-09 bench bug 8766: fixed problem caused when the logon user
  7. name begins with a '#'. we were failing to write a
  8. value to the InProgress key, causing all installs to
  9. fail.
  10. 99-02-09 cgouge Bug 8384. Memory leak in mergemod.dll. Reference
  11. counts in enumerators were off by 1 due to problem in
  12. clone methods. (SDK issue only).
  13. 99-02-08 cgouge Bug 8804. Extension.Extension, Verb.Extension_,
  14. MIME.Extension_ changed to type "Text" to match
  15. Docs/usage. (no code change)
  16. 99-02-08 cgouge Fixed bug 8802. Using "][" in a formatted field
  17. would cause a crash/freeze during internal field
  18. validation.
  19. 99-02-05 bench bug 8784: fixed error that occured when patching a
  20. per-machine install including transforms.
  21. 99-02-04 cgouge Bug 8771, Validation. ICE09 was incorrectly
  22. requiring that all components installed to the system folders
  23. have keyfiles with system bits set. The only
  24. requirement is that the permanent bit be set (and it is a
  25. warning anyway.) Removed the incorrect check.
  26. 99-02-04 cgouge Bug 8747, Validation. ICE24 would print garbled
  27. error messages due to a bad formatting string.
  28. -----------------------------
  29. Release 0.10.5003
  30. -----------------------------
  31. 99-02-03 johndelo bug 8758, fix UILevel property to match INSTALLUILEVEL_*
  32. values so that conditional logic works properly.
  33. Previously was set to different internal enum values,
  34. and was always set to default when running in service.
  35. UILevel Property help topic has correct values, but note
  36. that this topic is an automation topic, and not an
  37. install engine property. Doc topic will be added on this.
  38. 99-02-03 johndelo German template.msi received and added to localized list.
  39. templates\intl\template.DEU
  40. 99-02-03 eugend Fixed bug # 8748. From now on, the SelectionTree
  41. control will stop displaying features (nodes) in bold.
  42. 99-02-02 malcolmh Fixed bug 8755. Fixed creation of shortcuts on the
  43. desktop when profile folders are redirected.
  44. 99-02-02 chetanp bug 8740 - changed use of TextSize to CharacterCount
  45. when using the Remove string manipulation fn.
  46. 99-02-02 bench bug 8721: we now schedule the ttfcache file for deletion
  47. even if it doesn't exist before shutdown.
  48. -----------------------------
  49. Release 0.10.4930
  50. -----------------------------
  51. 99-01-30 johndelo bug 8703, ObjectSafety interface by default now returns
  52. not safe for scripting. Can be overridden by MSI
  53. policy setting "SafeForScripting" = 1
  54. 99-01-30 johndelo bug 8687, permanent ODBC drivers should never be unregistered
  55. 99-01-30 bench bug 8258: on some installs with the ForceReboot
  56. action, and "error accessing install server" error would
  57. pop up after the reboot. This was caused by an RPC
  58. failure in CoCreateInstance when attempting to connect
  59. to the install server. The fix is to retry the
  60. CoCreateInstance call when an RPC error is encountered.
  61. We will retry once every 100 ms for at most 30
  62. seconds.
  63. 99-01-28 malcolmh Fixed bug 8700: If you attempted to prepend a value
  64. to an environment variable on NT, and the existing
  65. value has an embedded environment variable, then we'd
  66. incorrectly add "#%" in the middle of the environment
  67. variable.
  68. 99-01-28 chetanp backed out bug 7412 changes due to office triage
  69. punt.
  70. 99-01-28 chetanp bug 7412 - add bit to reinstall user data as well
  71. during implicit reinstallation during
  72. MsiProvideComponent, MsiProvideQualifiedComponent and
  73. MsiProvideComponentFromDescriptor
  74. 99-01-28 chetanp bug 8698 - use of uninitialised buffer. Use
  75. CTempBuffer.Resize inplace of SetSize.
  76. 99-01-27 chetanp bug 8553 - we now ensure that a feature had been
  77. explicitly selected to be installed (locally or RFS) and
  78. dont promote an advertised feature to installed just
  79. because all its components are present.
  80. 99-01-27 chetanp Bug 8662, handle -1 roots as registry key paths for
  81. components
  82. 99-01-27 cgouge Bug 8678, validation. ICE14 modified to do a case
  83. insensitive compare when checking to see if a Feature
  84. is its own parent.
  85. 99-01-26 malcolmh Fixed bug 8622. We have two new private properties
  86. relating to our new public property security
  87. mechanism:
  88. RestrictedUserControl - should be set by darwin
  89. whenever we're in the mode of restricting which public
  90. properties get sent to the server side. authors can
  91. use this property to conditionalize certain dialogs
  92. and actions.
  93. EnableUserControl - is the equivalent to the policy
  94. of the same name. is essentially equivalent to a "*"
  95. for SecureCustomProperties - when this property is
  96. set, all public properties will always be passed across
  97. to the server when installing or otherwise
  98. configuring this pkg.
  99. 99-01-26 cgouge Bug 8570, Property table schema changed to allow
  100. unlimited length in the Value column. Changed in schema
  101. and all built databases.
  102. 99-01-26 mattwe 8066: picked up new versions of shfolder.dll from:
  103. Alpha=\\iepub\pubs.ie5\BLD1321.1\ALPHA\flat\retail\en\alpha
  104. x86=\\iepub\pubs.ie5\BLD1321.1\x86\flat\retail\en\winnt
  105. -----------------------------
  106. Release 0.10.4926
  107. -----------------------------
  108. 99-01-25 bench bug 8480: check in version 1.94.319 build of
  109. mspatcha.dll and mspatchc.dll. the fix taken solves a bug
  110. when patching certain files on Win9X.
  111. -----------------------------
  112. Release 0.10.4922
  113. -----------------------------
  114. 99-01-21 malcolmh Fixed bug 8416: Security problem with custom action
  115. DLLs present on system with higher version
  116. We now **as our default** ignore public properties
  117. that aren't in our approved list or in an
  118. author-specified list. The author can extend our approved list
  119. by setting the "SecureCustomProperties" property to a
  120. semi-colon delimited list of properties that are to
  121. be allowed in addition to the properties in our
  122. hard-coded approved list.
  123. We will, however, respect _all_
  124. public properties (our former behavior) if any of
  125. these conditions are true:
  126. 1) The user is on Win9X.
  127. 2) The user is an Admin.
  128. 3) The per-machine "EnableUserControl" policy is set
  129. to 1
  130. 4) The product is not being installed elevated (i.e.
  131. is unmanaged)
  132. Our hard-coded list of properties that we allow is:
  133. FILEADDLOCAL
  134. COMPONENTADDLOCAL
  135. COMPONENTADDSOURCE
  136. COMPONENTADDDEFAULT
  137. ALLUSERS
  138. SCRIPTFILE
  139. EXECUTEMODE
  140. PRODUCTLANGUAGE
  141. TRANSFORMS
  142. REINSTALLMODE
  143. RUNONCEENTRY
  144. CURRENTDIRECTORY
  145. CLIENTUILEVEL
  146. CLIENTPROCESSID
  147. ACTION
  148. CURRENTMEDIAVOLUMELABEL
  149. INSTALLLEVEL
  150. REINSTALL
  151. FEATUREREMOVE
  152. FEATUREADDLOCAL
  153. FEATUREADDSOURCE
  154. FEATUREADDDEFAULT
  155. FEATUREADVERTISE
  156. PATCH
  157. SECONDSEQUENCE
  158. TRANSFORMS
  159. TRANSFORMSATSOURCE
  160. TRANSFORMSSECURE
  161. CURRENTDIRECTORY
  162. MIGRATE
  163. LIMITUI
  164. LOGACTION
  165. UPGRADINGPRODUCTCODE
  166. REBOOT
  167. SEQUENCE
  168. NOCOMPANYNAME
  169. NOUSERNAME
  170. RESUME
  171. PRIMARYFOLDER
  172. SHORTFILENAMES
  173. INSTALLLEVEL
  174. MEDIAPACKAGEPATH
  175. PROMPTROLLBACKCOST
  176. ODBCREINSTALL
  177. 99-01-21 chetanp bug 8476 - directly use HKLM\S\C in place of
  178. :RegOpenUserClassesRoot in case our caller is the local
  179. system but is not impersonated.
  180. 99-01-21 chetanp bug 8470 - I have made all the words in our query
  181. dictionary as uppercase. As per the triage's decision
  182. I have NOT changed the string compare to a case
  183. sensitive compare.
  184. 99-01-21 malcolmh Fixed bug 8134. Fix impersonation during
  185. CreateFileFromData. This allows us to write icon and transform
  186. data during app deployment even when user profiles are
  187. redirected to a network share.
  188. 99-01-21 malcolmh Fixed bug 8483: We now have an HKCU version of our
  189. ResolveIOD key. It's at
  190. HKCU\Software\Microsoft\Windows\CurrentVersion\Installer\ResolveIOD. If an EXE
  191. appears under either the HKCU or the HKLM key then we'll
  192. allow install-on-demand.
  193. 99-01-21 tracyf Fixed bug 8471 - avoid potential internal error when
  194. user cancels.
  195. -----------------------------
  196. Release 0.10.4920
  197. -----------------------------
  198. 99-01-19 johndelo bug 8440 - unbind ODBC driver manager DLLs before
  199. file copy to prevent file in use, which then
  200. caused mismatched ODBC DLL versions during IE install.
  201. 99-01-19 johndelo bug 8435 - corrupted Thai, Vietnamese InstMsi.msi
  202. bug 8399 - bad/missing error 1639 resources in 5 languages
  203. 99-01-19 chetanp bug 8213 - fixed crash due to attempting to call
  204. RemoveFontResource on a font that is being used by the
  205. system.
  206. 99-01-19 chetanp fixed bug 8450 where we were not properly creating
  207. shortcuts for RFS components in multi-user scenarios
  208. 99-01-19 bench bug 8455: fixed an error in the InstallFiles action
  209. when installing from a URL location.
  210. 99-01-19 bench bug 8460: fixed alpha-only bug that caused self-reg
  211. to fail for dlls that linked to other dlls not
  212. located in the %path%.
  213. -----------------------------
  214. Release 0.10.4919.1
  215. -----------------------------
  216. 99-01-19 tracyf Fixed bug 8433 - prior to the fix, an install using
  217. the MoveFile table would fail with a fatal error if
  218. the source file to be moved was in use.
  219. -----------------------------
  220. Release 0.10.4919
  221. -----------------------------
  222. 99-01-18 malcolmh Fixed bug 8413: Error 1310 copying Excel.pip and
  223. Error 1406 writing some nls registry when boot XL after
  224. upgrade to NT5.
  225. This fixes a failure that occurs when Darwin is:
  226. 1) Doing an un-managed install and
  227. 2) Installing over an existing ACL'd file and
  228. 3) The file we're installing has the read-only
  229. attribute set.
  230. -----------------------------
  231. Release 0.10.4915
  232. -----------------------------
  233. 99-01-13 bench bug 8259: since the RunOnce key has a 256-character
  234. limit for the command line, we now store the
  235. after-reboot command line for ForceReboot installs under
  236. HKLM\SW\MS\Windows\CV\Installer\RunOnceEntries. the
  237. RunOnce command line is now just "msiexec /@ XXXXXX"
  238. where XXXXXX is the name of the value in the
  239. RunOnceEntries key with the rest of the command line options.
  240. note that this fix also provides the fix for bug 7777.
  241. the original fix for 7777 was partially removed.
  242. 99-01-13 eugend Addittion to my 98-11-11 entry: PathEdit is another
  243. control that always uses fonts in the user's default
  244. UI character set.
  245. -----------------------------
  246. Release 0.10.4913
  247. -----------------------------
  248. 99-01-12 mattwe 8253: msiexec /regserver wouldn't actually
  249. re-register msi.dll when the inprocserver32
  250. registry entry was correct. This prevented
  251. NT upgrades from working when the other
  252. info from msi.dll was changed.
  253. 99-01-12 eugend Fixed bug # 8244. UsersLanguage style bit can be
  254. set now for ListBox and ComboBox controls as well.
  255. I've updated doc bug # 7631 to track this change.
  256. -----------------------------
  257. Release 0.10.4912
  258. -----------------------------
  259. 99-01-08 cgouge Bug 8327: Validation. ICE30 added support for
  260. directories whose target path is set by either a Darwin or
  261. user-defined property. Previously, it was possible
  262. for a directory set in this way to report a collision
  263. if the source directories were the same. It now maps
  264. these directories to the different target locations.
  265. 99-01-08 bench bug 8365: fixed problem caused when patching an
  266. admin image where the package had TempFolder in the
  267. Directory table. this broke Office admin patching.
  268. -----------------------------
  269. Release 0.10.4908
  270. -----------------------------
  271. 99-01-07 mattwe bug 8331: made a pair of fixes for maintaining ACLs
  272. on files already on your system when replace the
  273. underlying bits. One involved periodically dropping
  274. the ACLs, and the other involved always dropping
  275. large ACLs. This is a fix to problems introduced
  276. in bug 6456.
  277. 99-01-07 bench bug 8329: removed msidbUpgradeOperator enum from
  278. msidefs.h, which was inadvertently left behind when we
  279. removed support for the Upgrade table (on non-NT5
  280. systems).
  281. -----------------------------
  282. Release 0.10.4906
  283. -----------------------------
  284. 99-01-05 cgouge Bug 8276: Validation. ICE15 modified to accept
  285. multiple extensions associated with a single MIME type. As
  286. long as a circular reference exists between a MIME
  287. type and an extension, other MIME types can reference
  288. that same extension and other extensions can
  289. reference that same MIME type.
  290. 99-01-05 mattwe Fixed bugs 8155 and 7193: Due to serious performance
  291. and not-so-serious implementation bugs with
  292. GetNamedSecurityInfo API in NT4-SP4, we have switched
  293. to GetFileSecurity() to read security and ownership
  294. of files.
  295. -----------------------------
  296. Release 0.10.4905
  297. -----------------------------
  298. 99-01-04 malcolmh Fixed bug 7854. We now support a list of process
  299. names that we enable MsiProvideComponentFromDescriptor
  300. for on low shell versions. To enable a process, write
  301. the process name (e.g. explorer.exe), as the "name"
  302. portion of a named value pair under
  303. HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\ResolveIOD. We
  304. use this logic:
  305. // Bug 7854. This code is a hack to work around an
  306. issue with early shell
  307. // release wherein calling IShellLink::Resolve
  308. faults in the shortcut.
  309. // This causes problems with some apps (e.g. Win98
  310. fat16->fat32 converter
  311. // that enumerate the Start Menu, resolving each of
  312. the links). Suddenly
  313. // the user will notice all of their advertised
  314. apps being faulted in. The
  315. // hack is as follows:
  316. //
  317. // 1) Are we in the explorer's process? Allow call
  318. to proceed; otherwise
  319. // 2) Does our shell have the issue fixed? Allow
  320. call to proceed; otherwise
  321. // 3) Is the ResolveIOD policy set? Allow call to
  322. proceed; otherwise
  323. // 4) Are we in a process that really wants
  324. IShellLink::Resolve to really
  325. // resolve? This list is in the registry. If so,
  326. proceed; otherwise
  327. // 5) Return 1603. This should (hopefully) cause
  328. Darwin-unaware apps to
  329. // ignore the link.
  330. 99-01-04 malcolmh Fixed bug 8288: We now create MIF files in our SHIP
  331. build as well as in our DEBUG build.
  332. -----------------------------
  333. Release 0.10.4901
  334. -----------------------------
  335. 98-12-31 cgouge Bug 8274. MsiFiler. Added support for SFN|LFN in the
  336. File table based on the summary information stream
  337. value.
  338. -----------------------------
  339. Release 0.10.4830
  340. -----------------------------
  341. 98-12-29 bench fixed bugs 8147 and 8247, which dealt with allowing
  342. a user to use an unblessed source and package when
  343. the DisableBrowse policy is set.
  344. -----------------------------
  345. Release 0.10.4825
  346. -----------------------------
  347. 98-12-23 bench bug 8185: we now reregister and readvertise a
  348. product during a QFE upgrade, to ensure the updating
  349. product information is registered, like the product
  350. version.
  351. -----------------------------
  352. Release 0.10.4818
  353. -----------------------------
  354. 98-12-17 mattwe Bug 8212: Fixed a memory leak in SetSecureACL
  355. 98-12-17 cgouge Bug 8164. The DisableBrowse and DisablePatch system
  356. policies have been moved to HKLM from HKCU. The keys
  357. are created with a value of 0 at Darwin install and
  358. ACL for System and Admin full, everybody read.
  359. 98-12-17 bench bug 7952: when patching a feature in the
  360. run-from-source state, the feature will now be moved local
  361. instead of advertised.
  362. 98-12-17 cgouge Bug 8167. The _Sequence, _Required, and
  363. _InstallValidate tables are no longer part of the schema, and
  364. thus are no longer part of template.msi, simple,msi,
  365. etc. These tables are only used by ICEs, so they are
  366. shipped as part of the CUB file. They should generally
  367. not be included in any MSI.
  368. MsiVal.exe does use these tables, but it is not a
  369. shipping tool anymore. In order to continue validating
  370. as part of the build process, we create a temporary
  371. MSI in the TEMP directory that is a merge of the
  372. database to be validated and these three tables (from the
  373. CUB file source directory). After validing this temp
  374. file, it is deleted.
  375. 98-12-17 mattwe Added entries to the Environment table for
  376. TestDb code coverage. Also changed the
  377. ProductVersion per John Delo's request to
  378. 6.01.1234
  379. 98-12-17 mattwe Bug 8066: Took shfolder.dll 5.0.1011.2100 for
  380. alpha/x86.
  381. 98-12-17 mattwe Bug 8181: Removed default logging from instmsi.
  382. This interfered with policy logging, and the logs
  383. were always cleaned up at the end of the run.
  384. 98-12-17 mattwe Bug 8171: took new SKY instmsi.msi (inst1051.msi)
  385. 98-12-16 bench bugs 8120, 8160: added a new per-user policy called
  386. DisablePatch. if set, patches may not be applied.
  387. this is needed in secure environments as patches can
  388. change an existing install in unlimited ways. and if
  389. the existing install is managed, the changes made by
  390. the patch are run with elevated privileges. in
  391. addition to the new policy, installs that are disabled by
  392. policy now return ERROR_INSTALL_PACKAGE_REJECTED
  393. instead of ERROR_ACCESS_DENIED.
  394. 98-12-16 cgouge Bug 8180: Validation. ICE27 updated to handle
  395. DisableRollback action.
  396. 98-12-16 cgouge Bug 8166: Validation: ICE03 now reports String
  397. Overflow errors as warnings.
  398. -----------------------------
  399. Release 0.10.4816
  400. -----------------------------
  401. 98-12-15 bench bug 7784: added a UI option to show the basic UI progress
  402. dialog with no modal dialogs (no error messages or
  403. files-in-use dialog). the option to msiexec.exe is
  404. /qb- and the option to MsiSetInternalUI is
  405. INSTALLUILEVEL_PROGRESSONLY.
  406. 98-12-15 cgouge Bug 8118. Validation. New ICE56, checks for a
  407. directory structure with a single root of
  408. TARGETDIR/SourceDir so that Admin installs will correctly copy all
  409. files.
  410. 98-12-15 johndelo Version bumped to 1.0 , in preparation for shipping.
  411. There should be no compatibility problems, as this
  412. is effectively the same as version 0.30.
  413. Databases can be left with their current version
  414. to maintain compatibility with older MSI versions.
  415. If the database version (Summary Property 14, Pages)
  416. is advanced to 100, then older MSI versions will
  417. not be able to open the package.
  418. 98-12-15 mattwe Bug 8142: Fixed several localized instmsi.msi
  419. files that had the incorrect summary info for
  420. their languages.
  421. 98-12-15 cgouge Bugs 8070, 8049. ICE Validation. New ICE55. Checks
  422. the LockPermissions table for bad foreign key
  423. references and null permission values.
  424. -----------------------------
  425. Release 0.10.4815
  426. -----------------------------
  427. 98-12-14 mattwe Added 'ptb' (portugese brazillian) support for instmsi.
  428. We're now at 31 languages.
  429. -----------------------------
  430. Release 0.10.4811.1
  431. -----------------------------
  432. 98-12-11 mattwe bug 8107: the LockPermissions table will now recognize
  433. the System, Everyone, and Administrators group (case
  434. insensitive) without the need for localization.
  435. -----------------------------
  436. Release 0.10.4811
  437. -----------------------------
  438. 98-12-11 bench bug 7953: fixed problem with suspended (or
  439. ForceReboot) installs where setting a feature property like
  440. ADDDEFAULT on the command line turns on more features
  441. than the property itself defines. when this happened,
  442. the features not defined by the property weren't
  443. completely installed when resuming the suspended install
  444. (or after the reboot).
  445. 98-12-10 davidmck Fixed bug 7914 - CleanSweep could get a file between
  446. the time we got the file version size and getting
  447. the actual version block information. We now fail
  448. gracefully.
  449. 98-12-10 bench bug 8059: fixed case where a user may not be
  450. recognized as an admin if they are a member of a large
  451. number of groups. (weren't increasing buffer size if
  452. necessary for GetTokenInformation call)
  453. 98-12-10 malcolmh Fixed bug 7891: Re-advertisement is no longer
  454. allowed unless you're app deployment
  455. 98-12-10 mattwe Bug 7958: Picked up version 5.0.1011.2000 of shfolder.dll
  456. for instmsi/copymsi. There are x86 and alpha versions.
  457. 98-12-09 cgouge Bug 7931. Validation now supports [%id] syntax in
  458. the AnyPath, Path, and Paths column types. It also now
  459. accepts [$component] syntax in those same types, but
  460. only at the beginning of a path. (# and ! are
  461. accepted as well, but the usefulness of these formats is
  462. limited)
  463. -----------------------------
  464. Release 0.10.4809
  465. -----------------------------
  466. 98-12-08 bench bug 7887: when installing files, we now set both the
  467. creation and modified dates to the modified date of
  468. the source file. this is to ensure the two dates are
  469. identical for any files we copy. for unversioned
  470. files, if the dates are different we never overwrite
  471. the file again. previously, the creation and modified
  472. dates where set to the creation and modified dates of
  473. the source file, which may have been different.
  474. 98-12-08 davidmck Fixed bug 7914, a problem with any file that spanned
  475. more than 2 cabinets. We were not correctly handling
  476. the MediaChange message.
  477. 98-12-08 mattwe 7929: there was a problem with environment variables
  478. being set on 9X that shouldn't have.
  479. 98-12-08 mattwe 7815: Added localization for instmsi/copymsi for the
  480. following LangIDs: 1028, 1031, 1035, 1036, 1038,
  481. 1041, 1042, 1049, 1050, 1060, 2052.
  482. The localized databases are checked into src\intl,
  483. and a perl script generates the transforms, and
  484. adds them directly into the internal databases.
  485. DEV NOTE: You must have language support for these
  486. to build copymsi/instmsi successfully, or set the
  487. IGNORELANGID environment variable to ignore
  488. unsupported languages.
  489. -----------------------------
  490. Release 0.10.4808
  491. -----------------------------
  492. 98-12-07 bench bug 7906: MoveFiles action didn't move files with no
  493. attributes set (i.e. with just the NORMAL
  494. attribute).
  495. 98-12-06 cgouge Fixed bug 7896. Internal Validation supports version
  496. strings up to 65535.65535.65535.65535.
  497. 98-12-04 bench Bug 7892: fixed rollback of typelibrary
  498. registration.
  499. 98-12-04 malcolmh Bug 7890: Allow INSTALLSTATE_ADVERTISED to be passed
  500. to MsiSetFeatureState
  501. 98-12-04 malcolmh Fixed bug 7812. We don't cancel any more when the
  502. user says not to.
  503. -----------------------------
  504. Release 0.10.4804
  505. -----------------------------
  506. 98-12-03 bench bug 7777: fixed ForceReboot installs for non-admins.
  507. when the RunOnce key was acl'ed to not allow delete
  508. access to the user, the RunOnce command would
  509. continue to be run at each logon.
  510. -----------------------------
  511. Release 0.10.4803
  512. -----------------------------
  513. 98-12-02 malcolmh Fixed bug 7848. Eliminate warning dialog for failure
  514. to remove a reg value.
  515. 98-12-02 malcolmh Bug 7841. Fixed errors during CopyTempDatabase.
  516. 98-12-02 malcolmh Fixed bug 7693: Shouldn't base installed property
  517. off Uninstall product key. We now use the
  518. "WindowsInstaller" value.
  519. 98-12-02 davidmck Fixed bug 7858 - Problems with DBCS characters in
  520. PathType. We were incorrectly looking at the second
  521. byte and thinking it was a full path when it was a
  522. relative one.
  523. 98-12-01 bench bug 7783: made several fixes to rollback for ODBC
  524. DSN installation.
  525. 98-12-01 malcolmh Fixed bug 7829: Crash in MsiGetProductInfo
  526. -----------------------------
  527. Release 0.10.4801
  528. -----------------------------
  529. 98-11-25 cgouge Bug 7763, validation: ICE35 now additionally checks
  530. for files that are marked compressed but do not have
  531. a CAB specified in the Media table.
  532. 98-11-25 davidmck Fixed bug 7813, checked in new intl resources for
  533. Fin, Rus, Slv, Hun, Hrv, Fra from RobR.
  534. 98-11-25 davidmck Fixed bug 7801, memory leak at the end of Office
  535. install due to leaking a string in SetODBCFolders.
  536. 98-11-25 cgouge Bug 7635. Validation: ICE31 now checks that if UI is
  537. authored, you have a DefaultUIFont property which
  538. refers to a valid row in the TextStyle table.
  539. 98-11-24 malcolmh Fixed bug 7774: Need to protect NT4 policies.
  540. 98-11-24 malcolmh Fixed bug 7803: Rollback does not work when trying
  541. to restore pre-existing environment variables
  542. -----------------------------
  543. Release 0.10.4720
  544. -----------------------------
  545. 98-11-19 cgouge Bug 3577. Validation. Update ICE03 to check for
  546. missing _Validation entries on empty tables as well.
  547. 98-11-19 cgouge Bug 7734, validation. Updated _Validation entries to
  548. allow negative icon index values in Class, ProgId,
  549. and Shortcut tables.
  550. 98-11-19 mattwe Fixed bug 7758: When an environment variable wasn't
  551. found in the autoexec.bat file, we were adding it
  552. even if the authoring said to remove it.
  553. Fixed bug 7759: When an environment variable was
  554. supposed to do nothing during an install or uninstall
  555. we were doing the default behavior instead.
  556. 98-11-19 malcolmh Fixed bug 7760. We have a new event log message for
  557. component detection failures.
  558. 98-11-19 malcolmh Fixed bug 7756: can't see Darwin UI (installs
  559. silently) so that it looks like hang in some situation
  560. 98-11-19 bench bug 7751: custom actions are now allowed to hide the
  561. cancel button by using the INSTALLMESSAGE_COMMONDATA
  562. type in a call to MsiProcessMessage.
  563. 98-11-19 malcolmh Fixed bug 7732: x86 Custom actions of type 1 running
  564. on service side in wx86 emulation fail
  565. 98-11-19 malcolmh Fixed bug 7739: MsiReadRecordStream( ) doesn't set
  566. pchDataBuf to actual number of chars read on output
  567. 98-11-19 malcolmh Fixed bug 7728: Service runs out of memory and hangs
  568. 98-11-18 bench bug 7723: added File and Media tables to
  569. minimum.msi, as these are unfortunately required in 1.0 Darwin.
  570. 98-11-17 bench bug 7687: we will know prompt for reboot in the
  571. following situation: we attempt to uninstall a file and
  572. can neither delete the file or rename the file. this
  573. will occur for in-use files on Win9X, and in-use
  574. files on NT can usually be renamed at least. Note this
  575. is a change in behaviour from previous builds when we
  576. would prompt for reboot only when installing OVER an
  577. in-use file.
  578. -----------------------------
  579. Release 0.10.4717
  580. -----------------------------
  581. 98-11-16 cgouge mergemod.dll is now built as part of every build. It
  582. is only built as part of "all" in unicode builds.
  583. 98-11-16 bench bug 7567: added DisableRollback action. see doc bug
  584. 7706 for more information.
  585. 98-11-16 cgouge Validation: Fixed bug 7675. New ICE52 that checks
  586. for non-public properties in AppSearch table.
  587. 98-11-16 cgouge Validation: Fixed bug 7676, updated sequence
  588. validation to explicitly check SetODBCFolders sequence
  589. restrictions.
  590. 98-11-13 cgouge Bug 7673. Removed MS-Specific EULA from
  591. template.msi. Also cleaned up CCPFail message.
  592. -----------------------------
  593. Release 0.10.4713
  594. -----------------------------
  595. 98-11-12 mattwe Fixed bug 7622 - Commit custom actions don't work
  596. when rollback is disabled. InstMsi/CopyMsi no longer
  597. use them.
  598. 98-11-11 malcolmh Fixed bug 7627. ERROR_MORE_DATA return not correct
  599. from remoted Ansi APIs.
  600. 98-11-11 malcolmh Fixed bug 7629: Set DISABLEROLLBACK property when
  601. rollback is disabled
  602. 98-11-11 eugend fixed bug # 7505. From now on controls will create
  603. fonts using the database's code page when it comes to
  604. choose the font's character set (vs. the system's
  605. code page as returned by GetACP() that was used so far).
  606. This ensures that the information in the database will
  607. be displayed properly (provided there is language support
  608. on the machine).
  609. Exceptions to this are the Edit, DirectoryList and
  610. DirectoryCombo controls that will always use fonts in
  611. the user's default UI character set. Another
  612. exception is the Text control if it has the UsersLanguage
  613. stylebit (value = 0x100000) set - this is useful for
  614. displaying text the user entered in Edit or PathEdit
  615. controls.
  616. I've open the following DOC bugs related to this:
  617. - 7631 on the UsersLanguage stylebit
  618. - 7632 requests not to use "__UL" suffix in identifiers in
  619. TextStyle table's, TextStyle column.
  620. - 7633 requests the presence of DefaultUIProperty in
  621. packages that have UI.
  622. -----------------------------
  623. Release 0.10.4711
  624. -----------------------------
  625. 98-11-10 chetanp bug 7261- On NT5, for a component with a file key
  626. path, we now register an auxiliary HKCR registry key
  627. path from the Registry table, if one exists for that
  628. component. This is to handle scenarios where a product
  629. is (user) installed by one user on a machine and then
  630. another user attempts to install the same product on
  631. the same machine. Components that have a file key
  632. path will not be implicitly reinstalled as they appear
  633. already installed. Adding the auxiliary key path will
  634. have the effect of making the component appear
  635. broken (and rightly so, since it is missing the corr. HKCR
  636. info for that user) and cause darwin to reinstall
  637. the component.
  638. 98-11-10 bench Added a new property, called "ProductState", which
  639. identifies the current state of the product, and can
  640. be used to determine if the product is advertised but
  641. not installed, or installed for a different user.
  642. the value of the property is identical to the
  643. INSTALLSTATE returned by MsiQueryProductState. see bugs 7570
  644. and 7610 for more info.
  645. -----------------------------
  646. Release 0.10.4710
  647. -----------------------------
  648. 98-11-10 johndelo Improved logic for selecting basic UI language/codepage.
  649. Before the package is opened (or it is truly neutral),
  650. when selecting a language to display to the user, we
  651. use the new API GetUserDefaultUILanguage when available
  652. (which is set under NT5 locale panel: Dialogs and Menus).
  653. The property, PackageLanguage, which normally must match
  654. the SummaryInformation language (Template property, 7),
  655. is ultimately used to select the language for dialog
  656. text and buttons loaded from the resources in MSI.DLL,
  657. and could be changed by externally applied transforms.
  658. Fonts are selected based on the codepage of the text data.
  659. Database strings use the codepage of the database strings.
  660. Resource strings use the default codepage for their language.
  661. List/comboboxes use the system codepage on Win9X,
  662. or the codepage of the user language on NT. As always, it
  663. is imperative that the codepage of MSI or MST be set properly.
  664. If all the strings in the database are ASCII text, then the
  665. codepage should be 0, to allow using font better for user data.
  666. 98-11-08 cgouge Fixed Bug 7501. We now set the "TerminalServer"
  667. property if Windows Terminal Server is detected.
  668. Otherwise the property is undefined.
  669. -----------------------------
  670. Release 0.10.4706
  671. -----------------------------
  672. 98-11-05 chetanp bug 7559 - fix ixoComponentRegister operation's
  673. rollback which was broken for components registered run
  674. from source (both file and registry key path
  675. components).
  676. -----------------------------
  677. Release 0.10.4704.1
  678. -----------------------------
  679. 98-11-05 davidmck Fixed bug 7460. For the Wx86 registry keys we were
  680. not handling the AddRef and Release code correctly.
  681. Needed to add the four cases to those functions.
  682. 98-11-04 cgouge Fixed Bug 7491, MsiProcessMessage fields getting
  683. reset during first progress message call. The two cases
  684. where the records were modified now use their own
  685. private records instead of the user record.
  686. 98-11-04 bench bug 7532: fixed bug that prevented using MoveFiles
  687. to rename a file without moving from one directory to
  688. another.
  689. -----------------------------
  690. Release 0.10.4704
  691. -----------------------------
  692. 98-11-03 bench bugs 7195 and 7492: fixed unformatted event log
  693. messages (%temp%\msievent.log on Win9X) written by ship
  694. Darwin.
  695. 98-11-03 mattwe bug 7467: We now acquire the SE_RESTORE_NAME privilege
  696. to set the owner on files. This sometimes ends up
  697. up with replacing a file, and the file is still marked
  698. as being owned by the initial person to install the
  699. file. However, we cannot let someone own a file
  700. that we had to elevate to write to.
  701. 98-11-03 bench bug 7425: we now flush the rollback script with each
  702. rollback opcode to ensure the script contains all
  703. information necessary to completely rollback system
  704. changes. previously, the rollback script would be
  705. missing the last opcodes in case of a machine crash, and
  706. not all changes could be rolled back.
  707. -----------------------------
  708. Release 0.10.4703
  709. -----------------------------
  710. 98-11-02 bench bug 7466: when patching an admin image, we now
  711. update the summary information of the admin package as
  712. well as persisting transforms to the database. the
  713. summary information properties that are updates are the
  714. PackageCode, Comments and Subject. the values used to
  715. update these properties are read from the
  716. PATCHNEWPACKAGECODE, PATCHNEWSUMMARYSUBJECT and
  717. PATCHNEWSUMMARYCOMMENTS properties, which are added by the
  718. patch-only ('#') transforms of the patch package.
  719. 98-11-02 cgouge Bug 7462. Logging enabled in verbose mode for Wx86
  720. emulation mode on Alpha.
  721. 98-11-02 bench Bug 7458: cancelling install during binary patching
  722. would leave behind temp files and could also lead to
  723. an AV. fixed by allowing patching thread to finish
  724. before attempting cleanup or releasing memory used by
  725. thread when the user cancels midway through a patch.
  726. 98-11-02 malcolmh Fixed bug 7489. Increased the ship timeout to 30
  727. minutes.
  728. 98-11-02 malcolmh Fixed bug 7424: Dariwn should better handle corrupt
  729. packages.
  730. 98-10-30 davidmck Fixed Bug 7488, we were enumerating drives twice in
  731. some cases because we needed an ELSE in
  732. EnumDriveTypes.
  733. 98-10-30 tracyf Bug 7431: when prompting the user for a CD, we now
  734. wait up to 10 seconds before complaining that we can't
  735. find the disk, to give the CD a chance to spin up.
  736. -----------------------------
  737. Release 0.10.4630
  738. -----------------------------
  739. 98-10-29 cgouge Bug 7013, Validation. New ICE50, checks Icon.Name to
  740. ensure that advertised shortcuts using the icon will
  741. have correct context menus and will display the
  742. icon.
  743. 98-10-29 bench Bug 7419: fixed timeouts during patch application
  744. 98-10-29 mattwe Bug #7380: shfolder.dll is now installed on all
  745. platforms, not just 9X. Added alpha version to
  746. %darwin%/tools/bin/alpha
  747. 98-10-29 mattwe Bug #7387: removing registry values for the name "*"
  748. now properly work when there is a value. (Does not
  749. delete the whole key unless the value is *blank*)
  750. 98-10-28 cgouge Bug 7447 - Validation, ICE 51. Checks fonts for
  751. titles. TTC/TTF fonts should not have them, everything
  752. else should.
  753. -----------------------------
  754. Release 0.10.4628.1
  755. -----------------------------
  756. 98-10-28 bench bug 7453: when determining source type we would
  757. sometimes use the name of the cached msi when looking for
  758. the sourc msi. bug introduced in 4628 and fixed in
  759. 4628.1.
  760. -----------------------------
  761. Release 0.10.4628
  762. -----------------------------
  763. 98-10-28 chetanp bug 7317 - As a result of fixing darwin bug 7317 the
  764. Extension.ShellNew and Extension.ShellNewValue
  765. columns have been removed. We now no longer write these
  766. keys from the Extension table. Instead, it is expected
  767. that the author author this information in the
  768. Registry table. These changes have warranted a schema
  769. change and we are now at schema 30. However we are still
  770. compatible with the older databases (>= 26) and the
  771. behaviour is unchanged for the older databases (i.e. we
  772. use the Extension.ShellNew and
  773. Extension.ShellNewValue columns at advertisement).
  774. 98-10-27 chetanp bug 7372 - added support to generate the FontTitle
  775. for a TTC file, if not provided in the Font.FontTitle
  776. column.
  777. 98-10-27 chetanp bug 7383 - we now set the %windir%\ttfcache file for
  778. deletion pending reboot, in case we install a ttc
  779. font file to a win9x machine.
  780. 98-10-27 chetanp bug 7388 - we now have a new
  781. MsiProvideQualifiedComponentEx API that takes an extra szProduct arg. When
  782. this arg. is specified we search for a qualified
  783. component published by that product , else we fail (NOTE:
  784. we do not fall back to using another Darwin
  785. Descriptor). If szProduct is null we work the same as
  786. MsiProvideQualifiedComponent.
  787. 98-10-27 johndelo ----Transform viewer implemented internally in Msi.dll----
  788. To invoke transform view mode, open the reference database normally,
  789. then use the flag MSITRANSFORM_ERROR_VIEWTRANSFORM in MsiDatabaseApplyTransform.
  790. This flag then stops the transform from being applied to the database,
  791. and instead dumps the contents into a read-only temporary table, _TransformView.
  792. This table can then be accessed with normal SQL queries, and is never persisted.
  793. Table is held in memory by a lock count, that can be released with a SQL command
  794. "ALTER TABLE _TransformView FREE".
  795. The table is not cleared when new transforms are applied resulting in successive
  796. application of the transforms. Release the table to view transforms separately.
  797. ---SCHEMA FOR _TransformView TABLE---
  798. Table CHAR, PK name of altered table
  799. Column CHAR, PK name of column, or: INSERT, DELETE, CREATE, or DROP
  800. Row CHAR, PK row: primary key values, tab separated, NULL if schema change
  801. Data CHAR data (name of stream if stream data), or column definition
  802. Current CHAR current value from reference database, or column number
  803. Therefore the various transform operations are indicated as below:
  804. ---DML ops---
  805. Modify data: {table} {column} {row} {data} {current value}
  806. Insert row: {table} "INSERT" {row} NULL NULL
  807. Delete row: {table} "DELETE" {row} NULL NULL
  808. ---DDL ops---
  809. Add column: {table} {column} NULL {defn} {column number}
  810. Add table: {table} "CREATE" NULL NULL NULL
  811. Drop table: {table} "DROP" NULL NULL NULL
  812. To form the row ID, the primary key values are concatenated, tab separated.
  813. Null primary key values are represented by a single space character.
  814. Scripts have been checked in to call the APIs and view the result table,
  815. and are available as well in \\dartools\distrib\Viewers.
  816. WshTranV.vbs - VBScript for Windows Scripting Host - CScript.EXE
  817. TranView.vbs - VBScript to be run with RunScrpt.EXE (Darwin NT-only tool)
  818. The latter script also has a Diff function for comparing databases.
  819. Use ? or Help on the command line for the command syntax.
  820. 98-10-27 johndelo Bug 7399. We now attempt to find a SansSerif font when the package is
  821. not in the system codepage, avoiding the ugly Serif fonts that were seen.
  822. 98-10-27 cgouge Bug 7081. Validation. New ICE48, checks for
  823. "hardcoded" directories, that is, directories that are also
  824. keys in the Property table. Provides a warning for
  825. each case.
  826. 98-10-27 cgouge Bug 7401. Validation. ICE49 checks for default reg
  827. entries (no name) that are not REG_SZ. (for Win95).
  828. 98-10-27 cgouge Bug 7430. Validation support for new Admin image
  829. flag in SummaryInfo stream. ICE39 now gives a warning if
  830. this bit is set.
  831. 98-10-27 bench bug 7015: fixed post-admin installs from packages
  832. with files marked "compressed" in the File.Attributes
  833. column. admin images are fully uncompressed, even for
  834. files marked compressed. this is to allow patches
  835. to update any files in an admin image. as a result,
  836. we now ignore the compressed bit when installing from
  837. an admin image. to designate a package as being in
  838. an admin image, a new bit was added to the "source
  839. type" summary info property. the possible values are
  840. now 0-5, where 4 is admin with LFN and 5 is admin with
  841. SFN.
  842. 98-10-27 davidmck Fixed bug 7418, needed to handle the ifiAccessDenied
  843. return from GetAllFileVersionInfo.
  844. 98-10-27 malcolmh Fixed bug 7410: reinstallmode /V doesn't work when
  845. the package code changes
  846. 98-10-27 malcolmh Fixed bug 7398: "TransformsSecure" policy set causes
  847. MsiAdvertiseScript to register garbage transform
  848. list.
  849. -----------------------------
  850. Release 0.10.4627
  851. -----------------------------
  852. 98-10-27 cgouge Bug 6555. Validation, new ICE 46. Checks
  853. definition/usage of properties for differences in case, flagging
  854. potential mistakes with a warning.
  855. 98-10-26 malcolmh Fixed bug 7122. changing package codes for the same
  856. product are now rejected unless you specify /fv
  857. 98-10-26 mattwe Bug 7354: Re-arranged supported platform list
  858. in instmsi/copymsi to work-around alpha only bug
  859. #7422
  860. 98-10-26 mattwe Bug 7404: Instmsi/CopyMsi now put explicit
  861. accellerators on install/uninstall/apply verbs.
  862. With the explicit '&' the first letter works,
  863. but it isn't underlined in the UI.
  864. 98-10-26 bench bug 7338: added a new bit to the File.Attributes
  865. field that designates a file as coming from a patch
  866. package. the new bit is necessary to mark files that are
  867. always compressed. formerly these files were marked
  868. with the "compressed" bit, but this bit will be
  869. ignored when installing from an admin image.
  870. 98-10-26 mattwe Fixed bug 7335 (reactivated for the system agent)
  871. We can now tell the difference between when the
  872. system agent is stopped, versus when it is paused.
  873. 98-10-26 malcolmh Fixed bug 3794. DISABLEMEDIA is now set only when
  874. the summary source bit is set to compressed.
  875. 98-10-23 tracyf Per bug 7216, components can be flagged with the new
  876. "Transitive" attribute bit (value: 64). If this bit
  877. is set, then at reinstall time, if the component was
  878. previously disabled but is now enabled, it will be
  879. installed. If it was previously enabled, but is now
  880. disabled, it will be removed. The primary motivation
  881. for this bit is to allow applications to be upgraded
  882. when the OS is upgraded, by simply running a
  883. reinstall of the product. Note that, for "transitive"
  884. components that are being removed on reinstall, the
  885. Permanent bit is ignored. Even if the component has other
  886. products as clients it will still be removed (with the
  887. implicit understanding that the author has
  888. conditioned another OS-specific component to be installed in
  889. its place on upgrade).
  890. 98-10-23 mattwe Fixed bug 7365: InstMsi/CopyMsi no longer write
  891. the Install To Network verbs.
  892. -----------------------------
  893. Release 0.10.4623
  894. -----------------------------
  895. 98-10-22 davidmck Fixed bug 7258 by increasing our default timeout in
  896. Ship to 5 minutes.
  897. 98-10-22 mattwe Bug 7335: The screen saver and system agent now save their
  898. initial states at the beginning of the execute mode, turn off
  899. for the duration of the install, and then restore at the end
  900. of execute mode. Exception: If the screen saver or the system
  901. agent were off at the beginning of the install, and then
  902. are turned on by the user during the install, we won't turn
  903. them back off.
  904. 98-10-22 bench Bug 7376: when rolling back and restoring a file when the new
  905. file was in use, we would replace the new file, but leave a
  906. reboot operation to delete the file. for Office 2000, this
  907. occurs when system files are replaced and an error occurs after
  908. the mid-install reboot. rollback occurs and upon the next reboot
  909. the system files are missing.
  910. the fix was to avoid doing a Remove then Replace when copying
  911. a backup file over a new file during rollback. we now just
  912. do the replace.
  913. 98-10-22 mattwe Bug 6121: copymsi/instmsi, during an administrator
  914. user's installation, now waits for the service
  915. in the temp directory to stop before exiting.
  916. This allows IExpress to fully clean up.
  917. -----------------------------
  918. Release 0.10.4621
  919. -----------------------------
  920. 98-10-20 malcolmh Fixed bug 7309: TransformSecure fails when passed as
  921. property; 2 asserts Access Violation and locks the
  922. MsiServer
  923. 98-10-20 bench bug 7209: fix a problem causing file to not be
  924. updated when patching an admin image.
  925. 98-10-20 mattwe Bug 7088: backed out initial fix for 7088, and
  926. implemented by adding new script type:
  927. istAdminInstall. Same behavior as previous fix.
  928. 98-10-20 bench bug 7362: removed all unnecessary "uncompressed"
  929. bits from File tables of released packages.
  930. 98-10-20 bench bug 7310: admin packages were not being restored by
  931. rollback after a failed admin patch. they are now.
  932. 98-10-19 johndelo Bug 7277: Transform streams not marked as system.
  933. Database table stream are flagged as system to keep their
  934. namespace distinct from user streams such as cabinets and
  935. binary streams. Transform table streams have been changed
  936. to match the names of the corresponding database table streams.
  937. Temporary compatibility is present to recognize streams
  938. generated with older builds of MSI. However, transforms
  939. generated with this build will not be useable on older builds,
  940. unless either the databases had uncompressed stream names,
  941. or the _MSI_TEST environment variable has the "z" option set.
  942. 98-10-19 cgouge Bug 6444, part 2. New ICE39, checks Summary
  943. Information Stream for various 'bad things', such as bad
  944. GUID, bad Template format, etc. This ICE is *NOT*
  945. available through the web page, because ICEMAN does not
  946. support Summary Info validation (coming in the future.)
  947. You must have the new Evalcom (see below) for this ICE
  948. to work via MsiVal2, etc. It will fail gracefully if
  949. you do not.
  950. 98-10-19 mattwe Fixed bug 7088: Added a field to ixoHeader to indicate
  951. the mode in which it was generated. (see msiauto.hlp)
  952. We no longer register folders that are created during
  953. an admin install. When we do register folders, a
  954. failure will now be logged and ignored.
  955. 98-10-19 cgouge Bug 6444, part 1. In order to support SummaryInfo
  956. validation, the validation startup routines in the
  957. EvalCom COM server have been changed. This COM server is
  958. used by MsiVal2 to do validaiton. The new system
  959. takes advantage of the changes to MsiDatabaseMerge (Bug
  960. 7124) to generate better error messages in certain
  961. failure cases. The new system creates the MSI engine
  962. from the CUB file instead of from the merged database.
  963. This change means that CUB files must now have an
  964. empty property table in them to avoid asserts in the
  965. DEBUG versions of Darwin. If you are using an older CUB
  966. file with DEBUG Darwin, you will get asserts in
  967. engine.cpp. Evalcom is also OS-independent now, the same
  968. bits will work on ANSI and UNICODE.
  969. 98-10-16 cgouge Bug 7139. Validation: Updated internal validation
  970. for Component.KeyPath entries that are keys into the
  971. ODBCDataSource table.
  972. 98-10-16 cgouge Fixed bugs 7137, 7140, 7141. Updated _Vaidation
  973. entries for TextStyle.StyleBits, Shortcut.ShowCmd,
  974. ServiceInstall.StartType.
  975. 98-10-16 mattwe Fixed bug #7282: On rollback, registry keys will
  976. be explicitly created by the RegCreateKey operation
  977. unless they had an AddValue operation. This allows
  978. the security settings to be reapplied.
  979. -----------------------------
  980. Release 0.10.4616
  981. -----------------------------
  982. 98-10-15 cgouge Validation: Bugs 6724 and 7129, part deux. ICE33
  983. updated to no longer throw warnings when the registry
  984. table is used to generate registry entries for
  985. Insertable, NotInsertable.
  986. 98-10-15 tracyf Fixed bug 7010 - on Win9x, if the CRC check fails
  987. (for files in the File table that have the HasChecksum
  988. bit set), we now ignore this check if the file is in
  989. use. This is because a Win9x bug prevents the
  990. checksum from being calculated properly if the file is
  991. loaded in memory.
  992. 98-10-15 malcolmh Fixed bug 7269: Files-in-use dialog sometimes
  993. missing description.
  994. 98-10-15 malcolmh Fixed bug 7271. Source registration now works when
  995. DISABLEMEDIA is set.
  996. 98-10-15 malcolmh Fixed bug 7279. Fixed Session.FeatureInfo automation
  997. and typelib entry.
  998. -----------------------------
  999. Release 0.10.4614
  1000. -----------------------------
  1001. 98-10-13 chetanp bugs 6724 and 7129 - removed the Class.RemoteName,
  1002. Class.Insertable and ProgId.Insertable columns. The
  1003. Class.RemoteName column was never used. The
  1004. Class.Insertable and ProgId.Insertable columns were used to
  1005. advertise the OLE Insertable keys. We now no longer write
  1006. these keys from these advertise tables. Instead, it
  1007. is expected that the author authors this information
  1008. from the Registry table. This has warranted a schema
  1009. change and we are now at schema 29. However we are
  1010. still compatible with the older databases (upto and
  1011. including 26) and the behaviour is unchanged for the
  1012. older databases (ie we use the Insertable columns at
  1013. advt.).
  1014. 98-10-13 chetanp bug 7263 - ensure product code is all upper case at
  1015. the beginning of the installation.
  1016. 98-10-13 mattwe Fixed bug 7174: We now disable the screen saver during
  1017. the execute section, the re-enable it. (Performance.)
  1018. 98-10-13 mattwe Fixed bug 7427: When restoring registry keys during
  1019. rollback with non-default security, we first create the
  1020. key with no security, then elevate and apply the security.
  1021. 98-10-12 mattwe Fixed bug 7227. Releasing global data so service
  1022. 98-10-13 malcolmh Fixed bug 7232. Fix custom action IDL to correctly
  1023. identify "out" string parameter sizes.
  1024. 98-10-13 chetanp bug 7207 - feature's transition between the
  1025. advertise and the absent states should not affect the
  1026. component's state.
  1027. can be stopped. (introduced by bug 6922)
  1028. 98-10-12 malcolmh Fixed bug 7235. We now correctly restore folder
  1029. security descriptors on rollback.
  1030. -----------------------------
  1031. Release 0.10.4609
  1032. -----------------------------
  1033. 98-10-08 bench bug 7193: fixed logging when triggered by the policy
  1034. value. previously we would keep overwriting a
  1035. single log in each install invoked by a process, so that
  1036. only the last install from the process was logged. we
  1037. now generate a new log for each install. in the
  1038. course of fixing this bug, new information was added to
  1039. the beginning of each verbose log: the date and time,
  1040. the type of Darwin build (ship/debug, ansi/unicode),
  1041. the Darwin build #, and the calling process.
  1042. 98-10-08 chetanp bug 6961 - we now skip the conversion of the file
  1043. path to a short file path for InProcServers from the
  1044. Class table (so in effect only LocalServers are forced
  1045. to Short Paths).
  1046. 98-10-08 chetanp bug 7201 - fix registration of features containing
  1047. components w/o component ids.
  1048. 98-10-08 chetanp fixed bug 7020. We now allow > 200 components per
  1049. feature.
  1050. 98-10-08 cgouge Bug 7124. MisDatabaseMerge now returns
  1051. ERROR_DATATYPE_MISMATCH when one or more tables in the database
  1052. have schema conflicts. It now does the schema checks
  1053. before merging any of the tables, so you won't get half
  1054. a merge anymore.
  1055. 98-10-08 mattwe Bugs 6981, 7118: During rollback we now elevate and set
  1056. SeRestorePrivilege for writing security descriptors.
  1057. 98-10-09 johndelo Bug 7186: Failure to open streams on Win98J with user
  1058. language set to English. Problem is that JPN maps DBCS
  1059. characters into the private use area of Unicode that we
  1060. were using for stream names. That alone is not so bad,
  1061. but when the user Language is set to English, then the
  1062. stream name processing gets messed up as the DBCS chars
  1063. are individually uppercased, causing failures. Simple fix
  1064. was to use a Unicode block unprocessed by any codepage.
  1065. However, databases produced with builds 4522 and later will
  1066. not be readable with this build. Either export the tables with
  1067. the old MSI version and reimport them with the current build,
  1068. or use the tool 4524Fix.exe, checked into Darwin project, and
  1069. also available on \\JDELO3\public\tools. MsiInfo.exe and
  1070. DBView.exe have been updated for the new stream name offset.
  1071. Build 4524 has been rebuilt with this fix -> now 4524.6
  1072. Transforms are affected as well, and the tool will update them.
  1073. -----------------------------
  1074. Release 0.10.4607
  1075. -----------------------------
  1076. 98-10-06 cgouge Bug 6931: Validation aspect of Truetype fonts always
  1077. being reinstalled. Rows in the file table are now
  1078. allowed to have a null language value iff a row in the
  1079. font table references the file.
  1080. 98-10-06 mattwe Bug 7001: GetRelativeSourcePath now accepts / or \
  1081. at the end of a path... Adds support for URLs.
  1082. 98-10-06 cgouge Bug 7110: Internal field validation. Cabinet data
  1083. type now accepts only SFN instead of short|long syntax.
  1084. 98-10-06 mattwe Bug 6661: Checked in new versions of wextract.exe,
  1085. iexpress.exe, and makecab.exe to fix DBCS bugs in
  1086. their extraction for instmsi/copymsi.
  1087. 98-10-05 cgouge Bug 7126: Validation: ICE20 no longer checks for the
  1088. DiskCost dialog.
  1089. 98-10-05 cgouge Bug 7117: Validation: ICE19 changed so that
  1090. non-advertised shortcuts are exempt from the
  1091. Component-Id/KeyPath checks.
  1092. 98-10-05 cgouge Bug 7098. Validation: ICE45 checks unused bits in a
  1093. bunch of tables' bitfields to make sure they are 0.
  1094. (Related to Bug 7078) TestDb was updated to pass this
  1095. new ICE, since we had a few random bits set in the
  1096. BBControl table.
  1097. 98-10-02 malcolmh Fixed bug 6943: We now use the cached database
  1098. during database copy, *except* for nested installs which
  1099. continue to copy the source database.
  1100. 98-10-02 malcolmh fixed bug 6922. we now register ODBC data source
  1101. component key paths correctly.
  1102. 98-10-02 bench bug 7096: we now disable the Cancel button during
  1103. cleanup of rollback files.
  1104. 98-10-02 cgouge Bug 6606. MsiInfo now reports an error if you have
  1105. chars > 0x7F in your database but don't have a
  1106. codepage set, and will also report an error if you have any
  1107. DBCS strings that are corrupted because you forced
  1108. the codepage after the data was already in the
  1109. database.
  1110. 98-10-01 bench bug 7015: a change to admin installs when certain
  1111. files in the File table are marked with the
  1112. "compressed" attribute bit. any cabinets containing files files
  1113. are copied to the admin install, so that post-admin
  1114. installs will correctly find the compressed files
  1115. (since they are marked compressed, they are assumed to
  1116. be compressed regardless of the global "source type").
  1117. also, embedded cabinets containing these types of
  1118. files are not dropped from the package when it is
  1119. copied to the admin image.
  1120. 98-10-01 malcolmh Fixed bug 7089: Darwin occasionally generates script
  1121. with bad packagename value
  1122. 98-10-01 cgouge Bug 6888. Field validation for filenames updated to
  1123. treat '*' charaters as 0 or more chars instead of 2
  1124. or more.
  1125. 98-10-01 bench bug 6960: when rebooting on Win9X, we would leave
  1126. behind the .msi file in the %temp% folder. this was
  1127. caused by attempting to delete the temp msi after
  1128. calling ExitWindowsEx. on Win9X, there is not enough time
  1129. to do this before the system shuts down. the fix
  1130. was to reboot after deleting the temp msi.
  1131. 98-10-01 cgouge Fixed Bug 7041. msidb fixed to work with the new
  1132. stream and storage APIs. It now correctly handles both
  1133. compressed and uncompressed stream names. The new
  1134. system allows streams and storages to have the same
  1135. names (because the stream name is actually compressed),
  1136. so the -k and -x actions had to be split. -k and -x
  1137. work with streams, wheras -j and -w remove and extract
  1138. storages.
  1139. 98-10-01 malcolmh Fixed bug 7059: Custom action server needs to
  1140. initialize the allocator
  1141. -----------------------------
  1142. Release 0.10.4530
  1143. -----------------------------
  1144. 98-09-28 cgouge Bug 7040. ICE44. Checks that ConttrolEvents
  1145. involving dialogs (NewDialog, SpawnDialog, SpawnWaitDialog),
  1146. have arguments that are valid foreign keys into the
  1147. Dialog table.
  1148. 98-09-28 cgouge Bug 6846, validation. ICE43 checks that
  1149. non-advertisable shortcuts are in components that use HKCU reg
  1150. entries as keypaths. This prevents the case where
  1151. multiple users on a machine run the install and only the
  1152. first user gets the shortcuts.
  1153. 98-09-28 chetanp undid bug 4265 fix. We now (again) suport database
  1154. versions 26 upwards.
  1155. 98-09-28 malcolmh Fixed bug 7051: MsiGetActiveDatabase returns wrong
  1156. error.
  1157. 98-09-28 malcolmh Fixed bug 7037. We now set the Privileged property
  1158. correctly on Win9X and when the user is an Admin.
  1159. 98-09-28 malcolmh Fixed bug 6943. We now used the cached database
  1160. during RegisterProduct.
  1161. 98-09-28 malcolmh Fixed bug 6553. We now elevate self-reg correctly
  1162. when the AlwaysInstallElevated policy is set.
  1163. 98-09-25 cgouge Bug 7022, Validation. Removed restriction that
  1164. InstallFiles must come before RemoveShortcuts.
  1165. 98-09-25 malcolmh Fixed bug 6962. We wouldn't reboot non-managed apps
  1166. when the UI level was Basic or None. We now do.
  1167. 98-09-25 bench Bug 6987: the ARPNOMODIFY property, when set, will
  1168. cause the UninstallString written to the Uninstall key
  1169. (and used by downlevel ARPs) to contain the command
  1170. line to uninstall, rather than configure. This can
  1171. be used by packages without UI to uninstall through
  1172. the Add/Remove Control Panel. Previously, the
  1173. Uninstall string was always to configure, which was useless
  1174. for packages without UI.
  1175. NOTE: this new behaviour is only applicable on NT4 and Win9X,
  1176. as the NT5 ARP doesn't use the Uninstall string.
  1177. NOTE2: as always, the ARPNOREMOVE property causes no
  1178. UninstallString to be written at all, and the package will
  1179. not show up in the ARP.
  1180. 98-09-24 cgouge Bug 6010. Validation. ICE29 modified to accept new
  1181. 62 character stream name limitation from 6539.
  1182. 98-09-24 chetanp bug 7014 - decoupled darwin cnfg. information
  1183. registry location from the HKEY passed in to
  1184. MsiAdvertiseScript. We now always autonomously decide on where the
  1185. darwin cnfg. info should go. Also we now classify the
  1186. PublishComponent stuff as SCRIPTFLAGS_CNFGINFO
  1187. rather than SCRIPTFLAGS_APPINFO.
  1188. 98-09-24 mattwe Fixed bug 7009: installing files with lock permissions
  1189. works again.
  1190. -----------------------------
  1191. Release 0.10.4522
  1192. -----------------------------
  1193. 98-09-22 johndelo Localized resources updated in MSI.DLL from \\RobR\msires
  1194. New languages: French, Dutch, Finnish, and Hungarian.
  1195. Updated all others: DEU,ARA,CHS,CHT,JPN,KOR,THA,GRK.
  1196. 98-09-22 johndelo Bug 6539 - Broken OLE32.DLL supplied with IE 4.01 SP1, Win98
  1197. The bad DLL version is now detected at load time, and a
  1198. workaround is enabled that corrects the faulty code.
  1199. Compressed stream naming is now re-enabled, and the
  1200. _MSI_TEST 'Z' now disables the name compression (temporarily).
  1201. For a short period of time, the uncompressed/unqualified
  1202. stream names can be forced with open flags. For complete
  1203. details, see the notes below from 98-08-18.
  1204. NOTE: You cannot directly add streams to an MSI file.
  1205. You must use the _Streams pseudo-table and the APIs.
  1206. 98-09-21 chetanp fixed bug 6804 - we now remember the flags passed in
  1207. to MsiAdvertiseScript so that we know if shortcuts
  1208. and OLE and Qualified Components info had been created
  1209. for the app. If not create we create the same during
  1210. the first run of the app.
  1211. 98-09-21 chetanp fixed bug 6435 - in order to ensure that darwin
  1212. cnfg. data for user assigned apps is secure, we have
  1213. shifted the location of the info from HKCU\S\C\Installer
  1214. to
  1215. HKLM\S\M\W\CurrentVersion\Installer\Managed\<SID>\Installer. Also we replicate all info for assigned
  1216. apps in the non-assigned location as well
  1217. (HKCU\S\Microsoft\Installer), in order to support roaming (albeit
  1218. the app working as unassigned).
  1219. 98-09-18 mattwe Fixed bug 6340 related to IE3. WININET functions are
  1220. in the DLL shipped in IE3, but return call not
  1221. implemented. I've done scaled down versions of these,
  1222. that are called only when not available in WININET.
  1223. 98-09-18 mattwe Fixed bug 6935: Internet downloads were unable to
  1224. be brought up in maintenance mode to a source list bug.
  1225. 98-09-17 malcolmh Fixed bug 6918: Handle network error during database
  1226. copy.
  1227. 98-09-17 malcolmh Fixed bugs:
  1228. 6402 SECURITY: Non-managed app can run elevated
  1229. during class activation. We now maintain ACL's on
  1230. destination files during Filecopy (unless LockPermissions
  1231. specifies an ACL for the file).
  1232. 6813: Maintenance mode after domain change keeps
  1233. looking for source even after you cancel.
  1234. 98-09-17 bench Bug 6910: we now write UpgradeCode information
  1235. during advertisement as well as installation. Two new
  1236. opcodes were added to accomplish this:
  1237. ixoUpgradeCodePublish and ixoUpgradeCodeUnpublish.
  1238. 98-09-16 malcolmh Fixed bug 6847: MsiEnumComponentQualifiers misses
  1239. per-user data
  1240. 98-09-16 malcolmh Fixed bug 6895: Text in basic UI changes to bold. We
  1241. now set the message context language to the
  1242. package's base language very early in the install.
  1243. 98-09-16 bench Bug 6624: fixed a crash when changing a key name in
  1244. a record containing a stream. When changing the key
  1245. value to a large string, the stream name computed may
  1246. become larger than 32 characters, which is not
  1247. supported by OLE. we were not handling this error
  1248. gracefully.
  1249. 98-09-16 mattwe Fixed bug 6907: cleared a dirty record that
  1250. was being re-used by RegAddvalue.
  1251. 98-09-16 mattwe Fixed bug 6872: You can now stop the service
  1252. after an uninstall.
  1253. DEVELOPER NOTE: If you allocate a global
  1254. object that holds on to a services object,
  1255. it must be released by the time the last
  1256. FreeServices() call is made for that install.
  1257. -----------------------------
  1258. Release 0.10.4516
  1259. -----------------------------
  1260. 98-09-15 cgouge Fixed Bug 6613. Validation. Fixed ICE38 to handle
  1261. non-root flagged root profile directories. Also fixed
  1262. AppDataFolder check. No longer goes into an infinite
  1263. loop due to the new ICE33.
  1264. 98-09-15 cgouge Bug 6152. Validation: New ICE33. Checks the registry
  1265. table and finds registry entries that collide with
  1266. (or should be generated through) the Class, Extension,
  1267. ProgID, MIME, etc. tables. The information on what
  1268. is a "bad" registry entry is encoded in the
  1269. _BadRegData table which is provided with the CUB file.
  1270. 98-09-15 bench Bug 6852: we now catch duplicate window titles in
  1271. the basic UI FilesInUse dialog. the main purpose of
  1272. this is to prevent the same process from being listed
  1273. multiple times.
  1274. 98-09-15 tracyf Bug 6834: the SelectionTree menu choices have been
  1275. re-ordered slightly, separators have been added, and the
  1276. drop-down menu itself is now drawn with a nice gray
  1277. background.
  1278. 98-09-14 bench Bug 6841: improved Files-In-Use logging, and fixed
  1279. bug that prevented FIU logging on NT (when the server
  1280. was registered)
  1281. 98-09-14 malcolmh Fixed bug 6884: Darwin fails with C0000005
  1282. ACCESS_VIOLATION when passed long bogus MST path
  1283. 98-09-14 cgouge Validation: Bug 6729. Added ICE42 which checks the
  1284. Class table for EXE files listed as InProc components.
  1285. Also checks non-LocalServer classes for
  1286. DefInProcHandler and Argument values.
  1287. 98-09-14 malcolmh Fixed bugs:
  1288. 6813 Maintenance mode after domain change keeps
  1289. looking for source even after you cancel
  1290. 6854 "Error 2610. Launch condition failed:
  1291. [ProductNameNonQualified] setup needs to replace some Windows
  1292. system components" when starting drag and drop install
  1293. with non-admin user privilege
  1294. 98-09-14 bench Bug 6855: fixed assert when installing over existing
  1295. ODBC info when rollback not enabled.
  1296. 98-09-14 mattwe Fixed bug 6845: Service errors (start/stop/delete/
  1297. install) are now non-fatal during rollback.
  1298. The default response for no-UI is now to ignore them.
  1299. -----------------------------
  1300. Release 0.10.4511.1
  1301. -----------------------------
  1302. 98-09-11 malcolmh Fixed bugs:
  1303. Fixed DLL custom actions so that they aren't always
  1304. async:
  1305. 6106 Default CD key invalid on NT5 O9 install
  1306. 6865 Error 2707: Target Paths Not Created for opcd0
  1307. in Directory Table
  1308. 6873 validation: can't specify
  1309. specific ICE's to run on command line for msival2
  1310. Allowed column 32 to be created if it's temporary:
  1311. 6866 Transforms: Creating the 32nd MarkingColumns for Transforms
  1312. and merges of 31col tables triggers assert
  1313. Temporarily hacked around an instance-count problem. Real fix
  1314. will be done at some point:
  1315. 6872 Msiexec /unreg failed after install/remove testdb.
  1316. Added descriptsions for IMsiCustomAction and IMsiRemoteAPI
  1317. 6860 AF in module.h running regmsi
  1318. -----------------------------
  1319. Release 0.10.4511
  1320. -----------------------------
  1321. 98-09-10 mattwe Progress on bug 6363: We've added code for instmsi/
  1322. copymsi to use the appropriate transform for
  1323. languages. All that's needed is to add the transforms
  1324. as they come from the localizers.
  1325. 98-09-10 cgouge Fixed bug 3729, Validation: added to ICE40 check for
  1326. RemoveIniFile.Value null when action is 4 (Remove
  1327. Tag)
  1328. 98-09-10 malcolmh Fixed bug 6833: Elevated state bit not persisted for
  1329. use on uninstall/maintenance mode
  1330. 98-09-10 cgouge Validation: Bug 6590, New ICE41. Validates that
  1331. Class and Extension table reference components that are
  1332. associated with the referenced Features.
  1333. 98-09-10 malcolmh Fixed bug 6362: darwin hangs during execution with
  1334. logging enabled
  1335. 98-09-10 malcolmh Fixed bug 6791: Assertion failed in
  1336. database.cpp:Line 3761 when running Tranform tests.. *We now restrict
  1337. tables to 31 columns*
  1338. 98-09-10 chetanp bug 6801 - fix MsiViewModify with Refresh failure on
  1339. stream objects
  1340. 98-09-10 mattwe Fixed bugs 6678, 6716: We've trashed the custom
  1341. action in instmsi/copymsi that registered verbs.
  1342. We're going to have to use transforms for the rest
  1343. of the strings, so we might as well transform
  1344. these as well. The bugs deal with the format
  1345. and content of the verbs, which are now standardized.
  1346. 98-09-10 malcolmh Fixed bug 6495: AD: Potential security hole in
  1347. Darwin's custom action handling. We now run DLL custom
  1348. actions for non-managed apps in a separate process.
  1349. 98-09-10 bench Bug 6340: fixed URL download installs on platforms
  1350. where cached files have different names than the
  1351. original files from the http: or ftp: server. We were not
  1352. using the new name in the cache which caused "source
  1353. file not found" errors.
  1354. 98-09-10 malcolmh Fixed bug 6674: Transform: GenerateTransform asserts
  1355. on db with 32-Column tables. We error if you have >
  1356. 31 columns in your table.
  1357. 98-09-09 bench bug 6628: the typelib in msi.dll now references the
  1358. new html help file msi.chm instead of the old
  1359. msi.hlp.
  1360. 98-09-09 davidmck Changed ODBC errors from debug to ship. Removing a
  1361. driver is now ignorable and can be retried.
  1362. 98-09-09 mattwe Fixed bug 5469: Actually, I'm just the last
  1363. one in the chain. Ship errors should now
  1364. be finalized.
  1365. 98-09-09 mattwe Fixed bug 5243: EditFlags for NT5 should be
  1366. binary, instead of DWORD for instmsi/copymsi
  1367. 98-09-09 mattwe Fixed bug 5402: Instmsi/Copymsi will not install
  1368. on NT versions less than 4.0
  1369. 98-09-09 mattwe Fixed bug 6630: Services feature will no longer
  1370. be available in TestDb without being a Privileged
  1371. install. (You must be either an admin, or have
  1372. all apps elevated, or have testdb assigned)
  1373. -----------------------------
  1374. Release 0.10.4509
  1375. -----------------------------
  1376. 98-09-08 cgouge Fixed bug 6765, added internal validation for the
  1377. [!filekey] sequence.
  1378. 98-09-08 mattwe Bug 6722: two problems fixed. AppId table for
  1379. RunAsInteractiveUser and ActivateAtStorage should
  1380. work as described.
  1381. 98-09-08 bench Bug 6786: when a user runs an install while another
  1382. install (run by a different user) is suspended, the
  1383. logged on user recieves a warning and is allowed to
  1384. continue, but the suspended install is not rolled back.
  1385. Previously, we would attempt to rollback the
  1386. suspended install, but this could lead to rolling back
  1387. items in the current users profile erroneously. A better
  1388. fix for this problem will be attempted in version
  1389. 1.1.
  1390. 98-09-08 bench Bug 6090: when a user runs an install with the
  1391. ForceReboot action and reboots, the following occurs when
  1392. a second user logs in after the reboot. If the
  1393. original install was per-machine, the second user is
  1394. allowed to continue the install. If the install was
  1395. per-user, the user is issued a warning and the install is
  1396. terminated (but the information about the suspended
  1397. install remains in the registry).
  1398. 98-09-08 cgouge Validation: Bugs 6648, 6705. New ICE 40, performs
  1399. miscellaneous little checks that don't really belong
  1400. anywhere else. Right now this is just looking for a
  1401. missing error table and setting the REINSTALLMODE
  1402. property. Both are just warnings.
  1403. 98-09-04 cgouge Bug 6790, Validation: ICE27 updated to handle new
  1404. AllocateRegistrySpace action.
  1405. 98-09-04 davidmck Fixed bug 6799. Another issue with script
  1406. optimizations. ODBC actions zeroed out the opcode.
  1407. 98-09-03 davidmck Fixed bug 6682. We still had some issues with
  1408. multiple threads adding strings to the string pool of the
  1409. database. This should clear them all up.
  1410. 98-09-03 chetanp bug 5429 - added support for [!filekey] syntax
  1411. (Short File Path) for IniFile.Value column as well.
  1412. 98-09-03 chetanp bug 6692 - honour
  1413. SCRIPTFLAGS_VALIDATE_TRANSFORMS_LIST in MsiAdvertiseScript for unadvt. as well.
  1414. 98-09-03 chetanp bug 6567 - remove AppId info advt.
  1415. 98-09-03 bench Fixed bug 6694: crash when attempting to install
  1416. from ftp: server.
  1417. 98-09-03 tracyf In response to bug 4755, the 'f' logmode flag has
  1418. been removed. Logging of file-in-use information is
  1419. now included as part of the 'i' flag.
  1420. -----------------------------
  1421. Release 0.10.4503
  1422. -----------------------------
  1423. 98-09-03 johndelo bug 5567, and other language/resource basic UI bugs
  1424. We now use the database language and codepage to
  1425. obtain and display resource strings. Because we do
  1426. not set the language soon enough, if the language of
  1427. the user does not match the system, there is currently
  1428. a delay until the correct language appears (postponed bug).
  1429. All non-handler dialogs and message boxes use common
  1430. code that is language and charset aware, but there are
  1431. some cosmetic issues that will be cleaned up shortly.
  1432. All dialogs now use the common caption, which is initialized
  1433. with "Windows installer", but gets changed later.
  1434. The caption resource strings are gone, Yes and No added.
  1435. 98-09-03 chetanp bug 6043 - added AVAILABLEFREEREG property to allow
  1436. author to specify the free registry space in KB
  1437. required by the app. This property is acted upon by the
  1438. new AllocateRegistrySpace action.
  1439. 98-09-03 chetanp bug 6463 - added new DISABLEADVTSHORTCUTS property
  1440. to disable the advertisng/ creation of Darwin
  1441. shortcuts even on machines that support darwinised shortcuts.
  1442. Regular shortcuts are created inplace.
  1443. 98-09-02 chetanp bug 6671 - moved WM_FONTCHANGE message posting to
  1444. execute to be once per install.
  1445. 98-09-02 chetanp fixed bug 5429 - added support to write short file
  1446. names for long file name paths via the Registry.Value
  1447. column. The syntax for this is [!FileKey]. This
  1448. evaluates to corr. Short File Names only when used in the
  1449. Registry.Value column. When used in other places this
  1450. syntax is treated the same as the regular
  1451. [#FileKey].
  1452. 98-09-02 cgouge Validation: Bug 6613, New ICE 38. ICE38 Checks
  1453. components that will be installed to the user profile and
  1454. verifies that they use a registry key under HKCU as
  1455. the KeyPath. It verifies that the key exists, is under
  1456. HKCU, and belongs to the referring component.
  1457. 98-09-02 bench Fixed bug 6336: Applying a patch when the
  1458. RemoveOldProducts action occurred before the main actions for
  1459. the new product, a "source not found" error occurred.
  1460. The fix was to save the old source list before
  1461. uninstalling the old product so the source list could be
  1462. used for the new product.
  1463. 98-09-02 bench Fixed bug 6493: when a DLL custom action failed, we
  1464. erroneously put up an error message stating an exe
  1465. custom action failed. We now only display this error
  1466. only for EXE custom actions.
  1467. 98-09-02 bench Fixed bug 6507: when opening an existing suminfo
  1468. stream (either through automation or the
  1469. MsiGetSummaryInformation api) for write (passing property count > 0)
  1470. and calling persist before writing any properties,
  1471. the existing properties are deleted. The fix was to
  1472. write out the existing properties when persisting even
  1473. if no properties were added or deleted.
  1474. 98-09-02 mattwe Fixed bug 6722 - AppId.ActivateAtStorage and
  1475. AppId.RunAsInteractiveUser were busted such that you
  1476. couldn't successfully create a false value.
  1477. Now, nulling the column or using 0 as the value
  1478. evaluate as false. Any other value is considered
  1479. true.
  1480. 98-09-02 mattwe Fixed bug 6725 - x86 instmsi/copymsi will not install
  1481. on ALPHA machines, even when x86 is emulated.
  1482. You can still copy the bits by hand, if you *really*
  1483. want to, and run /regserver.
  1484. 98-09-02 davidmck Fixed bug 6605 - Script performance work. We
  1485. compress Unicode strings to SBCS strings when possible in
  1486. the script. We also compare a record being written to
  1487. the script with the previous record being written and
  1488. any parameters that are identical are flagged and not
  1489. actually written to the script.
  1490. This means that all scripts created with this version
  1491. of Darwin are incompatible with previous versions.
  1492. Previous scripts are still compatible with this
  1493. version of darwin.
  1494. 98-09-01 bench Bug 6446: when installing over in-use files, we now
  1495. attempt to rename the file (which works on NT) and
  1496. install the new file in the correct spot, rather than
  1497. installing the new file to a temp spot and scheduling
  1498. a rename. This gives files a better chance to be in
  1499. the correct spot immediately, even if the existing
  1500. files are in use. The in-use files that are moved out of
  1501. the way have names starting with "TBD" (to-be-deleted).
  1502. NOTE: this normally happens automatically when rollback
  1503. is enabled. This fix made for this bug ensures consistent
  1504. behaviour when rollback is not enabled.
  1505. 98-09-01 mattwe Bug 6678: Removed the "Open" verb from Msi.Patch and
  1506. Msi.Package.
  1507. 98-09-01 mattwe Bug 6594: Platform launch conditions for UNICODE/ANSI
  1508. on Win9X and NT are now all handled by msiinst.exe
  1509. 98-09-01 bench Bug 5132: Darwin now allows non-admin users to replace
  1510. or delete files on reboot (on NT). MoveFileEx requires
  1511. admin rights to call, since the reg key being written
  1512. to is by default read-only for non-admins. To allow
  1513. non-admin users to perform this action, Darwin uses
  1514. its elevated privileges when calling MoveFileEx, but
  1515. first verifies the user actually has permission to do the
  1516. rename/delete.
  1517. NOTE: prior to this fix, we were always elevating before
  1518. calling MoveFileEx without making the proper access checks.
  1519. 98-09-01 bench Bug 6181: when attempting to remove an acl'ed file, we now
  1520. display an error with the appropriate buttons. if we
  1521. failed to remove a file because it was in-use, we don't
  1522. display an error but rather schedule the file for delete
  1523. after reboot.
  1524. 98-09-01 bench Bug 6596: if the user ignores the failure to overwrite a
  1525. file because the file is acl'ed, we used to copy a temp
  1526. file anyway and schedule a rename operation. a fix was
  1527. made to no longer do this.
  1528. 98-09-01 mattwe Bug 6645: InstMsi/CopyMsi now correctly determine
  1529. the existence of a previous MSI install for non-admin
  1530. upgrades of Darwin. This will allow you to upgrade
  1531. *from* non-standard install locations (build tree,
  1532. et cetera.) We still only install *to* the
  1533. SystemFolder.
  1534. -----------------------------
  1535. Release 0.10.4431
  1536. -----------------------------
  1537. 98-08-28 cgouge Bug 6670: Validation, Registry and RemoveRegistry
  1538. Root columns now allow HKEY_CURRENT_USER (value -1)
  1539. 98-08-28 mattwe Fixed bug 6552: On Win9x, we will create an autoexec
  1540. file if one doesn't already exist.
  1541. 98-08-28 cgouge Fixed Bug 6646, all samples changed to use correct
  1542. SourceDir property.
  1543. 98-08-28 chetanp fixed bugs - 6672, 6673 - incorrect fonts sql
  1544. queries.
  1545. 98-08-27 davidmck Fixed bug 6562. We now stop any custom action thread
  1546. from closing a handle that it did not open. In
  1547. addition, any non-custom action thread can close any
  1548. handle it wishes.
  1549. There is still a hole where a custom actoin can start
  1550. another thread and close any handle it likes. If
  1551. custom actions want to be evil, there are lots of things
  1552. they can do besides this.
  1553. Note that we've changed this to be an error return of
  1554. ERROR_INVALID_THREAD_ID for custom actions, so
  1555. before they would just assert, now the handle will not be
  1556. closed.
  1557. 98-08-27 chetanp bug 6573 - we now install shfolder.dll with darwin
  1558. on Win9x and assume it is always present. Hence we
  1559. install to the AppData folder all the cached information
  1560. (icons and transforms) and fail if we cannot do so.
  1561. Previously we had code to fall back to using the
  1562. <windows>\Installer folder.
  1563. 98-08-27 chetanp bug 5514 - added support to munge through DD
  1564. shortcuts on Win98/Win9s + IE4 to prevent removal of
  1565. upgraded shortcuts (support already existed for WinNT5)
  1566. 98-08-27 cgouge Fixed 6656, Validation, perf issue with ICE30.
  1567. 98-08-27 mattwe Fixed bugs:
  1568. 6573: added shfolder.dll to instmsi/copymsi for ANSI
  1569. x86 Win9X.
  1570. 6497: Manually updated instmsi/copymsi file languages
  1571. for several support files from independent to 1033.
  1572. 98-08-26 chetanp bug 6598 - fixed assert in ComposeDescriptor
  1573. 98-08-26 malcolmh Fixed bugs:
  1574. 5903 Without installing Office9, choosing
  1575. "Uninstall" from Install.msi context menu results in
  1576. installing IE5
  1577. We now prevent /x from working if you haven't at
  1578. least advertised the product.
  1579. 6603 MsiInfo doesn't detect corruption in the
  1580. attached db, altho there is an invalid refcount.
  1581. 6567 Need to stop advertising the contents of the
  1582. AppID table altogether
  1583. 6601 Privileged Property is not being set by the
  1584. AlwaysInstallElevated policy.
  1585. 6620 Transforms: There are difference between the dbs
  1586. after applying the transform
  1587. Fixed a problem with transforms that had > 64K strings.
  1588. 98-08-26 bench Fixed bug 6617: added a new property,
  1589. DISABLEROLLBACK, which will disable rollback for the current
  1590. installation. this behaves identically to the
  1591. DisableRollback policy value.
  1592. 98-08-26 mattwe Added shfolder.dll to darwin\tools\bin\x86, for
  1593. installation with instmsi/copymsi on Win9x platforms.
  1594. 98-08-26 tracyf Fixed bug 6580 - for files with the ValidCheckSum
  1595. bit set in the File table, we now repair the existing
  1596. file if either the stored and calculated checksums
  1597. don't match (as before), OR if the file has no
  1598. detectable checksum (i.e. the file might be so corrupted we
  1599. can't read the file header).
  1600. 98-08-25 cgouge Validation: New ICE30. (Bug 6014) Ice30 checks that
  1601. two different components don't install the same
  1602. filename into the same directory. It will check both LFN
  1603. and SFN cases, and will also catch equivalent
  1604. directories under keys in the Directory table. Generates an
  1605. error if any files collide, unless both components
  1606. are conditionalized, in which case it generates a
  1607. warning.
  1608. 98-08-25 cgouge Validation: ICE35 update (checking compressed
  1609. components for RFS), only generates one error per component
  1610. per media table entry. This avoids an overwhelming
  1611. number of error messages.
  1612. 98-08-25 mattwe Due to non-admin user installs being rather picky about
  1613. security permissions, I've generalized the LockPermissions
  1614. data in TestDb to primarily values that allow the current
  1615. user to access them.
  1616. -----------------------------
  1617. Release 0.10.4424
  1618. -----------------------------
  1619. 98-08-21 cgouge Validation: Bug 6474, New ICE 36 checks that all
  1620. icons are used in the Class, ProgID, or Shortcut table.
  1621. Warns if any extraneous icons are found.
  1622. 98-08-21 cgouge Validation: Bug 6358, new ICE 35, checks that
  1623. components containing compressed files cannot be set to
  1624. RFS.
  1625. 98-08-21 chetanp fix 5681 - On Win9x - If Profiles are on and start
  1626. menu is per-user - darwin goop to HKCU, transforms and
  1627. icons to AppData. If Profiles are on and startmenu
  1628. is shared - darwin goop to HKLM, transforms and icons
  1629. to Windows folder. Profiles are not on (start menu is
  1630. shared) - darwin goop to HKCU, transforms and icons
  1631. to AppData.
  1632. 98-08-21 chetanp bug 6043 - we now attempt to use shfolder.dll to
  1633. create the App Data (and all other shell) folders, if
  1634. absent.
  1635. 98-08-21 malcolmh Fixed (again) bug 6353: Rolling back an install can
  1636. remove ACLs from a file
  1637. 98-08-21 malcolmh Fixed bug 5979: Darwin should fail
  1638. msiadvertisescript calls when transforms conflict.
  1639. We now have a script new flag:
  1640. SCRIPTFLAGS_VALIDATE_TRANSFORMS_LIST. If this flag is specified, and
  1641. we're not removing, then we require that the transform
  1642. list in the script's ixoProductInfo field match exactly
  1643. the transform list registered for the product. If
  1644. the product isn't registered then the script may
  1645. contain any transform list. We'll return
  1646. ERROR_INSTALL_TRANSFORM_FAILURE if the flag is on and the lists don't
  1647. match.
  1648. 98-08-20 davidmck Fixed Bugs 6512 and 6478. I changed how we handle
  1649. connecting to the service. Previously we would assert
  1650. if the proxy msi.dll that was registered did not match
  1651. the msi.dll we had loaded.
  1652. Now we refuse to connect to the service. Also, on NT,
  1653. if we need to access the installer key, we check
  1654. when trying to create the config manager and fail if we
  1655. need the key and cannot access it.
  1656. This will prevent us from hitting an error later on
  1657. when previously we would create a local config
  1658. manager, but it would be unable to run an install.
  1659. 98-08-20 davidmck Added MsiGetFileVersion API (Bug 6234) for tools to
  1660. get darwin's idea of a file's version and language
  1661. information.
  1662. 98-08-20 malcolmh Fixed bug 6553: Elevated selfreg doesn't work for
  1663. run from net components
  1664. 98-08-20 mattwe Fixed bug #4768: The error message was completely
  1665. accurate. We couldn't create a security descriptor
  1666. for a user we couldn't find. I've changed TestDB's
  1667. authoring such that its LockPermissions should work
  1668. in any domain.
  1669. 98-08-20 chetanp bug 4893 - We now write optimized darwin descriptors
  1670. in the event we have a product with only one feature
  1671. or if we have a feature with only one component.
  1672. 98-08-20 bench Fixed bug 6557. When patching a network image, we
  1673. now set TARGETDIR to the network image path to ensure
  1674. the existing admin image will be patched rather than
  1675. requiring the user to supply the appropriate
  1676. TARGETDIR path or re-enter the path in the admin dialog.
  1677. 98-08-20 malcolmh Fixed bugs:
  1678. 6372 Need to add recursive select options to the
  1679. selection control
  1680. 6374 Need to change the selection manager combo boxes
  1681. to buttons
  1682. 6376 Need to add an icon state to the selman that
  1683. indicates subfeatures are of mixed state
  1684. There are 3 new UIText table entries:
  1685. MenuAllCD Entire feature will be installed to run
  1686. from CD
  1687. MenuAllLocal Entire feature will be installed on
  1688. local hard drive
  1689. MenuAllNetwork Entire feature will be installed to
  1690. run from network
  1691. The selection tree now supports "Make me and my
  1692. children local" and "Make me and my children source".
  1693. The selection tree now greys the feature state icon
  1694. unless all children of the feature are in the shown
  1695. state.
  1696. 98-08-20 chetanp bug 6549 - changed component installation behaviour
  1697. - We used to prevent an older component (lesser
  1698. keyfile) from overwriting an already DARWIN installed
  1699. newer component (implying, if the file exists without
  1700. having being installed by darwin - we go ahead and
  1701. install the component irrespective of the version - since
  1702. we did not trust the previous install to be complete/
  1703. exact). Now we dont care how the newer file got
  1704. there, we prevent the install, irrespective of whther we
  1705. (Darwin) installed or not.
  1706. 98-08-20 chetanp fixed bug 6454 - We now allow for setting a property
  1707. to a registry/ Ini value as is via the RegLocator/
  1708. IniLocator table w/o the interpretation as a file or
  1709. folder and without verification that it exists. We
  1710. allow for this by using the value 2 in the
  1711. RegLocator.Type/ IniLocator.Type column. Of course, if someone
  1712. uses this to set a Directory property, and it is
  1713. invalid, we would fail.
  1714. 98-08-20 malcolmh Fixed bug 6477: Still writing AppId key when
  1715. advertising on downlevel system
  1716. 98-08-20 malcolmh Fixed bug 6504: Uninstall Patch and Security: /x
  1717. uninstalls appears to elevate where /i Remove=All
  1718. doesn't
  1719. This was caused by our incorrectly determining
  1720. whether the product is "managed". In the ARP case we know
  1721. that the product is not managed because we're handed
  1722. the product code up front. In the "/x" case we don't
  1723. know the product code up front so we think the app
  1724. is in first-run. Because the user is an admin and it's
  1725. first-run, we elevate. I've pushed back our "Is this
  1726. app managed" check into Engine::Iniitialize to solve
  1727. this problem. I added a new iei return from
  1728. Engine::Initiialize called ieiPackageRejected. This maps to
  1729. ERROR_ACCESS_DENIED, the same value that we used to
  1730. return when a package was rejected for security
  1731. reasons.
  1732. -----------------------------
  1733. Release 0.10.4420
  1734. -----------------------------
  1735. 98-08-19 johndelo Bug 6539 - Broken OLE32.DLL supplied with IE 4.01 SP1
  1736. Win 9X only, causes failure with compressed stream names.
  1737. New OLE32.DLL available, currently in \\jdelo3\public.
  1738. To avoid problems on Win9X, the compressed stream naming
  1739. has been disabled, by can be reenabled for testing by
  1740. setting the environment variable _MSI_TEST to a string
  1741. including the letter Z. The use of the APIs to manage
  1742. streams and storages in a database is still operational.
  1743. -----------------------------
  1744. Release 0.10.4419
  1745. -----------------------------
  1746. 98-08-18 johndelo Bug 4130, 6462 - Changes to stream names in MSI files.
  1747. Changes to MSI persistent stream handling: There have
  1748. been a number of problems with stream name limitations
  1749. in the current implementation of OLE docfiles:
  1750. 1. Stream names are limited to 31 characters. This is
  1751. unacceptable for stream names that must be uniquely
  1752. qualified with a GUID.
  1753. 2. Stream names are case-insensitive on open. This
  1754. could cause unexpected problems in merging, as the
  1755. generated stream names internally in MSI are
  1756. case-sensitive.
  1757. 3. Certain stream name lengths cause erroneous behavior
  1758. and crashes inside OLE32.DLL.
  1759. 4. Storage names, private streams managed solely by the
  1760. database, and user-streams such as custom actions,
  1761. icons, bitmaps, and cabinets all share the same
  1762. namespace, with the potential for disastrous
  1763. consequences.
  1764. In addition, there has been no way for tools to add
  1765. streams and substorages to the database being
  1766. processed, as there is no access to the storage. They
  1767. have been forced to save and close the database, and
  1768. then use direct OLE calls. This requires in some cases
  1769. knowledge of specific information, such as storage
  1770. CLSIDs. Forcing such direct access makes it impossible
  1771. to upgrade our persistent file format in the future, a
  1772. very serious constraint.
  1773. ---Solution---
  1774. 1. Stream names are compressed internally, and can use
  1775. up 62 characters if the characters all belong to the
  1776. identifier set (letters, digits, period, underscore),
  1777. which it true for the stream names generated from
  1778. tables having stream columns. Non-identifier characters
  1779. are acceptable, but will not participate in the 2 to 1
  1780. compression. Stream names beginning with the control
  1781. character '\005', such as "\005SummaryInformation" are
  1782. never compressed, as they must be publicly accessible
  1783. from property browsers.
  1784. 2. Stream names are case-sensitive on open, due to the
  1785. compression scheme.
  1786. 3. External stream data, private database streams, and
  1787. storages have separate namespaces.
  1788. 4. To support external addition of streams and
  1789. substorages, two new pseudo-tables have been created:
  1790. _Streams and _Storages. These are not persistent
  1791. tables, but are simply temporary tables created on
  1792. demand and filled using our stream and storage
  1793. enumerators when one of those tables is loaded. They
  1794. each have two columns, Name which is the string name of
  1795. the stream or substorage, and Data which is a stream
  1796. holding the data. Standard queries can thus list the
  1797. non-private streams and substorages, and new streams
  1798. and substorages can be added from files using the
  1799. existing API MsiRecordSetStream. Streams and
  1800. substorages can be deleted by setting the stream data
  1801. to NULL. Stream data can be extracted with the API
  1802. MsiRecordReadStream. Substorage data cannot be
  1803. extracted with this API currently, but since the names
  1804. are not compressed, OLE APIs can open the substorages.
  1805. 5. Updated views of _Streams and _Storages tables will
  1806. be written when the view is closed or on
  1807. MsiDatabaseCommit. If the data could not be written
  1808. when the view is closed, it will be retried on Commit
  1809. (same as with other database tables), and an error will
  1810. be generated at that time if unsuccessful.
  1811. 6. Databases generated with old stream names will be
  1812. processed as before, and will thus have the limitation
  1813. mentioned above. They are distinguished by a different
  1814. storage CLSID.
  1815. 7. There will be a compatibility mode for some period
  1816. of time, which will use the old stream names and the
  1817. old storage CLSID, to allow the generation of databases
  1818. that can be used by older versions of MSI. This mode
  1819. is forced by adding the bit flag 16 to the open mode
  1820. for database or storages. Internally that is defined as
  1821. idoRawStreamNames or ismRawStreamNames.
  1822. 8. Transforms, a variant of the database format, have
  1823. the same stream limitations, and will also use the
  1824. compressed stream naming if the input database uses
  1825. compressed streams.
  1826. Some options have been added to MsiOpenDatabase, but
  1827. are not currently in msiquery.h
  1828. MSIDBOPEN_RAWSTREAMNAMES = 16 // old-format names
  1829. MSIDBOPEN_PATCHFILE = 32 // patch file as DB
  1830. The latter allows patch files to be generated using
  1831. the MSI API functions, without having to know the
  1832. internal storage details.
  1833. MsiDb.EXE temporarily has an option, -o, to create an
  1834. old-format database, rather then -c for a new-format
  1835. database.
  1836. Old-format databases, transforms, and patch files can
  1837. be read by the new MSI. However, this backward
  1838. compatibility will be removed before ship.
  1839. A sample VBScript which generates and views files with
  1840. streams and substorages is at
  1841. DARWIN\src\tools\script\patchtst.vbs
  1842. Yet to do:
  1843. MsiTran.EXE needs to be updated to view transform
  1844. file internal data. Documentation for newsystem tables,
  1845. _Streams and _Storages, and revised documentation for
  1846. patch file generation, using the MSI APIs.
  1847. 98-08-18 johndelo Bug 5036 - move component mapping to machine registry.
  1848. Each feature for a product registers the list of
  1849. component IDs along with the name of the parent feature.
  1850. In the past this information has be in the user
  1851. registry, and the size taken can be considerable for a
  1852. product with many features and components. For the
  1853. following reasons, this feature-component mapping has
  1854. been moved to the machine registry along with the
  1855. component registration:
  1856. 1. Much space taken in user profile with component IDs,
  1857. even for applications that have never been installed.
  1858. 2. Advertise scripts bloated with needless component IDs.
  1859. 3. Logon time adversely affected by excessive
  1860. registration.
  1861. 4. Performance improvement by avoiding opening of user
  1862. registry keys during activation of installed features.
  1863. 5. Need to bring all the component logic together in
  1864. preparation for eventual move of registration out
  1865. of HKLM, for improved performance and resource usage.
  1866. Products that are advertised should present no problem,
  1867. as we temporarily handle the old registration (this will
  1868. eventually be pulled for increased performance). And old
  1869. packages and old advertise scripts will still work fine.
  1870. But products that are already installed and use MSI to
  1871. find or fault in components will need to be reinstalled.
  1872. Alternatively, a tool, MsiMig.exe, is in our release that
  1873. will migrate the feature-component mapping for all
  1874. installed products. It would be nice if the new MSI
  1875. would handle both old and new registrations, but this
  1876. proved to be much to complicated to implement and test.
  1877. In order to allow newly generated advertised scripts
  1878. to work with older versions of MSI, the stripping of
  1879. the feature-component mapping from the script files is
  1880. temporarily disabled to give time for users to upgrade
  1881. (the stripping can be forced by setting the environment
  1882. variable: _MSI_TEST=J
  1883. 98-08-18 malcolmh Fixed bug 6536: Uninstall fails to delete a file
  1884. that the user can delete with explorer
  1885. 98-08-18 tracyf Fixed up the BasicUI dialog to better match Windows
  1886. guidelines (bug 6498)
  1887. 98-08-18 mattwe Fixed bug 6475 - Objects whose security is set
  1888. via the LockPermissions table now pass their
  1889. security onto their children via inheritance.
  1890. 98-08-18 chetanp fixed bug 5642 - We now have file versioning logic
  1891. for TTC fonts. As per attached thread, we take the
  1892. first font in the TTC file, and use its version to stand
  1893. for the version of the TTC collection in general and
  1894. for TTC vs TTC file comparisions.
  1895. 98-08-18 tracyf Fixed bug 6033. The fix reduces Darwin's stack
  1896. requirements considerably (previously, the large buffer
  1897. Darwin uses for copying files was being reserved on
  1898. the stack, potentially causing problems for host
  1899. applications with a small stack size - it is now
  1900. allocated on the heap).
  1901. 98-08-17 malcolmh Fixed bug 6491: MsiEnumProducts failed to skip the
  1902. bad ProductCode.
  1903. 98-08-17 chetanp fixed bug 4265 - removed support for database
  1904. versions < 28
  1905. 98-08-17 mattwe Fixed bug 6255 - changed instmsi/copymsi to detect
  1906. Win98 as Version9X < 410, instead of < 411.
  1907. Some machines have 411, some have 410.
  1908. 98-08-17 mattwe Fixed bug 6513 - UpdateEnvironmentStrings on Win9x
  1909. wasn't getting passed the location to the autoexec
  1910. correctly.
  1911. 98-08-17 davidmck Fixed bug 4196 - Perf improvements for faulting in
  1912. components. See the bug for details on all that
  1913. changed in order to regression test appropriately.
  1914. 98-08-14 t-caroln Fixed bug 5679, VALIDATION. ICE28. Validates for
  1915. actions that can't be separated by ForceReboot using
  1916. the _SetExclusion and _PlaceHolder tables in the
  1917. darice.cub file. These tables are in
  1918. %DARWIN%\src\tools\iceman\ices. This ICE can be made to handle any other
  1919. actions similar to ForceReboot that can't break up a
  1920. set by modifying those tables.
  1921. 98-08-14 t-caroln Fixed bug 6485, CMsiDatabase::ImportTable not
  1922. catching all errors, Changed to handle a failure during
  1923. SaveToStorage of the table or the _SummaryInformation
  1924. stream. Returns a debug error only (as this failure
  1925. shouldn't occur during ship).
  1926. 98-08-14 t-caroln Fixed bug 5423, VALIDATION. This concerns ICE26
  1927. which validates required/prohibited actions in the
  1928. Sequence tables. Validation is based off of the _Action
  1929. table located in %DARWIN%\src\tools\iceman\ices and I
  1930. have included an XL spreadsheet in the same directory
  1931. with a table of the values that I used. I based it
  1932. off of template.msi and testdb.msi and both pass this
  1933. ICE. However, if changes are needed, only change
  1934. the _Action table by turning off/on the specific bit.
  1935. AdminUISequence is 0x00000001, AdminExecuteSequence
  1936. is 0x00000002, AdvtUISequence = 0x00000004,
  1937. AdvtExecuteSequence = 0x00000008, InstallUISequence =
  1938. 0x00000010, InstallExecuteSequence = 0x00000020
  1939. 98-08-14 davidmck Perf change to CMsiFileStream : We now buffer this
  1940. similarly to the buffering of the CMsiStream object.
  1941. This gives us a large improvement on writing and
  1942. reading the script file.
  1943. 98-08-13 chetanp fixed bug 4347. RMCCPSearch is a noop if the
  1944. CCPSearch table is missing or empty.
  1945. 98-08-13 mattwe #6430: removed the progid table from instmsi.
  1946. All of this is handled via custom actions.
  1947. #6125, #6433: Ben's fantastic work has enabled
  1948. us to remove the move/rename hacks from instmsi.
  1949. The instmsi/copymsi database now pass validation
  1950. again.
  1951. 98-08-13 cgouge Validation: New ICE34. Validates that radiobutton
  1952. groups all have defaults so that blind users can use
  1953. them effectively. Handles both direct and indirect
  1954. contrrols. TestDB FAILED this ICE, so I added 3
  1955. properties to the property table to set the defaults in
  1956. several groups.
  1957. 98-08-13 malcolmh Fixed bugs:
  1958. 6353: Rolling back an install can remove ACLs from
  1959. a file
  1960. 6176: AD: Darwin does not always reset Busy flag on
  1961. failure
  1962. 6323: AD: Call to CoInitializeSecurity in Darwin
  1963. service too loose and can be a potential hole
  1964. 6456: Patching: Security ACLs altered on patched
  1965. file.
  1966. 6457: Patching: Insufficient Privileges to remove
  1967. cached .msp on Uninstall
  1968. 6340: Providing a URL in Network Resource Dialog
  1969. fails to find source files.
  1970. 6442: Need to add the TTCSupport property for those
  1971. systems that support TTC's
  1972. 6445: Patching: Applying bad patch to an advertised
  1973. app riggers assert in msiutil.cpp
  1974. 6447: Patching\Transforms: Memory leak after
  1975. transform fails during patch
  1976. 6422: Get internal error 2260 when expecting network
  1977. error
  1978. 98-08-13 bench Fixed bug 6428: template.msi contained two
  1979. ValidateProductID control events, which caused an error when
  1980. attempting to use this package without adding the
  1981. PIDKEY and ProductID properties. Since these properties
  1982. are optional, the control events were removed to
  1983. prevent this error. The control events were in turn
  1984. added to testdb.msi to keep it working.
  1985. 98-08-13 t-caroln Fixed bug 6432, authoring error in msival2. Avoid
  1986. problems now by using the merge database process in
  1987. the makefile. Now merge in template.msi.
  1988. -----------------------------
  1989. Release 0.10.00.4413
  1990. -----------------------------
  1991. 98-08-12 andrewh bug 6460 - return code from instmsi/copymsi was
  1992. always failure.
  1993. 98-08-12 andrewh bug 6455 - InstMsi requires a reboot on NT4/sp3, the
  1994. file table entry for ImageHlp.dll was incorrect,
  1995. causing us to try to install it when an equal version
  1996. exists.
  1997. bug 6459 - Instmsi.exe /q reboots without asking,
  1998. the REBOOT=Reallysupress property is set on the
  1999. command line for quiet instmsi's.
  2000. -----------------------------
  2001. Release 0.10.00.4412
  2002. -----------------------------
  2003. 98-08-11 chetanp fixed 4347. We skip the AppSearch, CCPSearch and
  2004. the RMCCPSearch actions in InstallExecuteSequence
  2005. table if we have run the InstallUIsequence table.
  2006. Also we have put the restriction that AppSearch
  2007. should use public properties only (to allow us to
  2008. skip AppSearch if we have run it on the UI side).
  2009. Also we fatal error out of RMCCPSearch, if
  2010. previously CCPSearch had not succeeded and
  2011. RMCCPSearch does not succeed. Hence we no longer need
  2012. the CCPFail UI dialog.
  2013. 98-08-12 mattwe Bug #6421: file versioning for instmsi was busted
  2014. for the main Windows installer files. Fixed with
  2015. pointing msifiler to the build dir.
  2016. 98-08-12 t-caroln Fixed bug 6010, VALIDATION. ICE29, which validates
  2017. stream names (ensures that if truncation must occur
  2018. to fit within OLE Storage's 31 char limit that the
  2019. stream names will still be unique).
  2020. 98-08-11 chetanp fixed 6034. if we need to increase the registry
  2021. quota for an install we now persist the increase across
  2022. reboots (before it was effective only for that session
  2023. - ie until reboot, hece we ran into problems after a
  2024. reboot, since the registry quota was now already
  2025. overflown).
  2026. 98-08-10 mattwe Bug #6416: we were using a string column as an integer,
  2027. and finally got caught without a string by that id
  2028. to back it up. The DirNonConfigurable in the directory
  2029. table is now short, instead of string.
  2030. 98-08-10 chetanp fixed bugs 6379, 6402 - incorrect assumption that
  2031. product is (admin) assigned when called by the local
  2032. system (example during InsertObject of a feature of a
  2033. non assigned product).
  2034. 98-08-10 t-caroln Fixed bug 6178, Strings not displaying correctly on
  2035. Win9X JPN. We now on Win9X call CreateFont to obtain
  2036. a Font Handle and then sending WM_SETFONT messages
  2037. to the controls on the dialog.
  2038. 98-08-10 mattwe Bug #6409: Added msi.dll, msihnd.dll, and msiexec.exe
  2039. to the BindImage table for instmsi/copymsi
  2040. 98-08-10 bench Fixed bugs 5234 and 6396. The "vital" bit in the
  2041. File.Attributes column and the "non-vital" bit in the
  2042. Patch.Attributes column are honored by patch
  2043. application. When the patch "non-vital" bit is set all errors
  2044. for that patch are ignored. Otherwise, the file
  2045. "vital" bit turns off the "Ignore" button on errors
  2046. patching that file.
  2047. 98-08-10 mattwe Bug #4811: We weren't retrying missing uncompressed
  2048. files from a URL server. Involves a change to CopyFile.
  2049. 98-08-10 t-caroln Fixed bug 6065. Testdb.msi not pass validation.
  2050. Testdb had failed ICE18 validation.
  2051. 98-08-10 t-caroln Fixed bug 6401, defined ErrorDialog property in
  2052. Property table for template.msi
  2053. 98-08-10 t-caroln Fixed bug 6400 dealing with a schema problem in
  2054. template.msi. Also fixed all schema differences reported
  2055. by the skemadif tool for all of the databases.
  2056. 98-08-08 t-caroln Added a -f option to msival2 so that you can
  2057. suppress info messages. msival2 {database} -Z -f will only
  2058. display errors and warnings.
  2059. 98-08-08 t-caroln Fixed bug 6220 -- VALIDATION. Now ICE27. ICE27
  2060. makes the cube file have all of the functionality of
  2061. msival.exe. ICE27 validates the organization and the
  2062. order of the Sequence tables. Because it handles the
  2063. organization, I removed that code from msival.exe.
  2064. MsiVal.exe still does data validation and sequence
  2065. order validation. The _InstallValidate table is now no
  2066. longer needed. Your database does not have to have
  2067. the _Sequence table for ICE27 to work (as it is
  2068. included in the cube file). A new table was added, the
  2069. _Action table. If you add a new standard action, you
  2070. need to update this table with the correct information.
  2071. The table is located in
  2072. %DARWIN%\src\tools\iceman\ices.
  2073. 98-08-06 malcolmh Fixed bug 6002: Unexpected error 2335 when running
  2074. nested install
  2075. 98-08-06 malcolmh Fixed bug 6299: 'Product Code not registered' is too
  2076. geeky
  2077. 98-08-06 chetanp fixed bug 5629: For the Published Component API
  2078. functions, we now enumerate through all the locations
  2079. (hkcu\s\c\i, hkcu\s\m\i, hklm\s\c\i) in the order of
  2080. precedence for qualifiers for the same component (id).
  2081. We take care to skip repetitions during enumeration.
  2082. 98-08-06 mattwe Bug 6110: Fixed DatabaseCopy operation for URLs
  2083. to copy from the currently running database instead
  2084. of downloading from the internet again.
  2085. This also involved an optimization during opening
  2086. the database to run from the copy in the internet
  2087. cache in the user's profile, rather than copying
  2088. from there to the temp file, and then running there.
  2089. 98-08-05 malcolmh Fixed bugs 6334, 6335, 6357: Issues with UNICODE
  2090. APIs on Win9X
  2091. 98-08-05 malcolmh Fixed bug 6332: invoking maintenance mode from
  2092. package results in caching of new package
  2093. 98-08-05 bench Fixed bug 5952: if a suspended install exists that
  2094. was running a different top-level action than the
  2095. current install, we resumed the in-progress install with
  2096. no warning to the user. The user is now asked to
  2097. rollback the suspended install before continuing.
  2098. 98-08-05 malcolmh Fixed bug 6361: Selecting alternate path from
  2099. SourceList dialog uses prior source in list.
  2100. 98-08-05 malcolmh Fixed bug 6180: Install should failed when logon
  2101. user has not privilege to replace a file.
  2102. 98-08-05 malcolmh Fixed bug 6356: Non-admin w/ DisableRollback
  2103. set can't uninstall
  2104. 98-08-05 tracyf Fixed bug 6271 - All apps with a file in use are now
  2105. listed in the FilesInUseDialog, not just the first.
  2106. 98-08-05 mattwe Bug #6255: We no longer install ImageHlp.Dll on
  2107. Win98 machines.
  2108. Bug #6039: We now hide the extraction animation
  2109. from IExpress for copymsi/instmsi. This results
  2110. in a several second delay in the regular mode,
  2111. but a completely quiet run for Office.
  2112. 98-08-05 tracyf Fixed bug 6194, such that features marked with the
  2113. DisallowAbsent attribute will be guaranteed to be
  2114. installed if that feature's parent is installed (see the
  2115. bug report for specific instances where this was not
  2116. always the case).
  2117. 98-08-04 malcolmh Fixed bug 6331: MsiGetUserInfo string length
  2118. arguments not consistent
  2119. 98-08-04 mattwe Bug #6256: We were registering the non-verb shell info
  2120. from the temp directory for copymsi/instmsi. It's now
  2121. a custom action on the target bits at the end of the
  2122. install
  2123. Bug #6262: Cleared up the 9X registration story for
  2124. copymsi/instmsi.
  2125. We now DllRegisterServer on msi.dll on 9X. /regserver
  2126. is wrong, as well as not registering anything at all.
  2127. Bug #6260: We now install msierror.msg on all
  2128. platforms.
  2129. Design note: this is *always* installed, so you may
  2130. end up with a newer version with older Darwin. These
  2131. should be backwards compatible, however.
  2132. 98-08-04 bench Fixed bug 5987: applying two patches to an install
  2133. left the install broken and unusable.
  2134. 98-08-04 malcolmh Fixed bug 6301: PATCHING: Patch sourcelist doesn't
  2135. contain the PackageName
  2136. 98-08-04 malcolmh Fixed bug 6303: PATCHING: Resliency doesn't work.
  2137. Cached patches are not restored from source
  2138. 98-08-04 malcolmh Fixed bug 6304: PATCHING: The source that a patch is
  2139. invoked from is not added to the patch's sourcelist
  2140. 98-08-04 bench Fixed bug 6305: added another potential value for
  2141. the REBOOT property: REALLYSUPPRESS. (only the first
  2142. character is checked so REBOOT=R works as well). When
  2143. this value is used, even reboots triggered by the
  2144. ForceReboot action are suppressed. These reboots are
  2145. not suppressed by REBOOT=S(UPPRESS).
  2146. 98-08-03 malcolmh Fixed bug 4975: Upgrade: SourceList PackageName
  2147. unchanged after reinstall of upgrade msi over patch
  2148. 98-08-03 malcolmh Fixed bug 6316: PATCHING: When a product "takes
  2149. over" for a patch+product the new package code is not
  2150. registered
  2151. 98-08-03 t-caroln Fixed bug 6254. Engine Condition Parser now handles
  2152. the possibility of DBCS characters in the string
  2153. literal correctly. Also fixed the related area in the
  2154. Validation condition parser. The CharPrevCch function
  2155. in istring.cpp now respects the DBCS simulation.
  2156. 98-08-03 t-caroln Fixed bug 5773. ICE17. An update to ICE17 to
  2157. validate Picture buttons correctly. The update validates
  2158. the Bitmap and Icon controls as referencing entries
  2159. in the Binary table (unless the Image Handle attribute
  2160. is set). It also validates that any PushButton,
  2161. CheckBox, or RadioButtonGroup with the bitmap or icon
  2162. attribute set (not both) correctly references the
  2163. Binary table, unless the Image Handle attribute is set.
  2164. For RadioButtonGroups, it validates each RadioButton
  2165. belonging to the property specified by the
  2166. RadioButtonGroup.
  2167. -----------------------------
  2168. Release 0.10.00.4403
  2169. -----------------------------
  2170. 98-07-31 cgouge VALIDATION: Bug 6016, New ICE#31. Added ICE31 to
  2171. examine text controls for TextStyle tags and validate
  2172. those tags against the Text Style Table. Gives warnings
  2173. if the text style is missing. Also gives a warning
  2174. if the text style is bogus for some reason (more than
  2175. one, not at beginning of text, etc). Added file
  2176. \src\tools\iceman\ICEs\msiice5.cpp
  2177. 98-07-31 t-caroln Fixed bug 3311 - ICE32. Validates that the keys and
  2178. foreign keys as listed in the _Validation table are
  2179. the same size and type.
  2180. 98-07-31 andrewh 5397 - Fixed the Network Resource (aka Insert your
  2181. CD-ROM) dialog to parent correctly
  2182. 98-07-31 malcolmh Fixed bug 6250: when transform resiliency is
  2183. activated we apply transforms too many times
  2184. 98-07-31 chetanp bug 5267 - we now allow the Font.Title column to be
  2185. null for .TTF files. If the Title is not provided, we
  2186. get it out ourselves from the font file. This
  2187. eliminates authoring error for this column.
  2188. NOTE: The Font.Title column specs have changed from
  2189. NotNullable to Nullable.
  2190. 98-07-31 malcolmh Fixed bug 6050: Too hard to machine-assign by
  2191. default.
  2192. We now support ALLUSERS=2 which causes us to do a
  2193. machine install if possible, otherwise do a user
  2194. install.
  2195. 98-07-31 malcolmh Fixed bug 6190: Fix impersonation from service
  2196. context in path object.
  2197. 98-07-30 bench Fixed bug 6261: a few files were left behind after
  2198. rollback of a patch application.
  2199. 98-07-30 mattwe #6218: changed verb registration in copymsi/instmsi
  2200. for admin installs to /A from /N. Was working off an
  2201. old doc.
  2202. 98-07-30 Tracyf Fixed bugs 6233 and 6275 (errors when browsing to a
  2203. volume in which the user has no write permissions at
  2204. the root of the volume, but can write to subfolders).
  2205. 98-07-30 Tracyf Fixed bugs 5706, 6269, 6273 (all involving Selection
  2206. Tree problems in maintenance mode).
  2207. 98-07-30 bench Fixed bug 5659: verbose logging is enabled. Verbose
  2208. logging is triggered by the 'v' log mode, and
  2209. contains much more useful information than the normal log.
  2210. Note that verbose logging doesn't log ALL debugmsgs
  2211. (stuff written to debug output).
  2212. 98-07-30 t-caroln Fixed bug 6239 --> ICharNext in UNICODE now behaves
  2213. the same as WIN::CharNext. Also added INextChar
  2214. which does not do the check on the pointer. When using
  2215. INextChar you need to check to make sure you don't run
  2216. off of the array.
  2217. 98-07-30 t-caroln Fixed bug 6247, Auto::ComponentPath returns EMPTY on
  2218. error from MsiGetComponentPath.
  2219. 98-07-30 bench Fixed bug 5943: each patch package (msp file) can
  2220. now contain a list of old patches that are removed when
  2221. the new patch is applied. This list is stored in
  2222. the summary info stream of the msp file in the
  2223. REVNUMBER property. This properties format is now the patch
  2224. code followed by the list of old patches. No
  2225. delimiters seperate the different patch guids.
  2226. 98-07-30 mattwe Note that the new CopyMsi (as of 4320) no longer installs
  2227. the help files. This is by design, and is also suggested
  2228. by the doc team.
  2229. -----------------------------
  2230. Release 0.10.00.4329
  2231. -----------------------------
  2232. 98-07-29 t-caroln Fixed bug 5661, extending Version category
  2233. validation to do better checks of the Language column (must
  2234. not be a Binary or Long Integer column). If String,
  2235. the Category in the validation table must be Language.
  2236. 98-07-29 bench Added new incremental versioning scheme to build
  2237. process. Rebuilds will now bump the last version field
  2238. of all built files, and the drop folders will include
  2239. the incremental version. For example, a rebuild of
  2240. 4329 will be versioned 0.28.4329.1 and will be
  2241. dropped to a 4329.1 folder.
  2242. 98-07-29 cgouge Updated M3COM to handle module exclusion tables
  2243. appropriately. This required a change to the M3DOCK tool.
  2244. -----------------------------
  2245. Release 0.10.00.4329
  2246. -----------------------------
  2247. 98-07-28 t-caroln Fixed bug 6230, Validation. Validate_New now works
  2248. for foreign key validations of self-joins for a
  2249. record to be inserted (failed previously with a new record
  2250. specifying a root directory with the
  2251. Directory.Directory=Directory.Directory_Parent case).
  2252. 98-07-28 bench Fixed bug 6075: assert and error when applying a
  2253. patch to an admin install.
  2254. 98-07-28 t-caroln Fixed bug 6231. Msival2 no longer crashes if you
  2255. forget to specify the parameter following an option
  2256. (like -i or -l)
  2257. 98-07-27 chetanp bug 6200: fixed performance issue with multiple
  2258. files in use detection inefficiency
  2259. 98-07-27 t-caroln Overhauled the msidlgs.exe tool and re-wrote it. It
  2260. now calls all W versions of API on WINNT and all A
  2261. versions on Win9X. Added the /L option to print out
  2262. all languages in the dll (msidlgs {msi.dll} /L). Now
  2263. uses it's own LoadStringEx function. On Win9x the
  2264. system must already be in the proper codepage.
  2265. 98-07-27 malcolmh Fixed bug 6002: Unexpected error 2335 when running
  2266. nested install
  2267. 98-07-27 malcolmh Fixed bug 6190: We are not set fImpersonate
  2268. correctly in CreateFileStream when call MsiAdvertiseScript
  2269. from service using an UNC pathed script file.
  2270. 98-07-27 malcolmh Fixed bug 6184: InProgress mutex is being created
  2271. without a security descriptor.
  2272. 98-07-27 malcolmh Fixed bug 5977: Feature caching prevents repair of
  2273. parent features.
  2274. 98-07-27 malcolmh Fixed bug 6198: MsiGetUserInfoW on Win9X doesn't
  2275. handle DBCS correctly
  2276. 98-07-27 malcolmh Fixed bug 6217: Specifying TRANSFORMS=foo.mst on the
  2277. command-line causes crash
  2278. 98-07-27 malcolmh Fixed bug 6044: Won't update components if the
  2279. keyfile is of equal version or if certain reinstallmodes
  2280. are set
  2281. 98-07-27 chetanp bug 5514: fix shortcut removal issue during
  2282. upgrades. We now delete DD shortcuts only if they point to
  2283. our product.
  2284. 98-07-24 malcolmh Fixed bug 6175: AD: Darwin uses different location
  2285. for package even if asked to use a specific package
  2286. 98-07-24 malcolmh Fixed bug 5205: Logging: note in event log causes
  2287. of ERROR_BAD_CONFIGURATION
  2288. 98-07-24 malcolmh Fixed bug 6001: AF: srcmgmt.cpp when removing LAN
  2289. connection to source files
  2290. 98-07-24 mattwe Bug #5568: Removed verb registration from
  2291. msiexec /regserver. You now must run instmsi/
  2292. copymsi at least once get the verb registration.
  2293. Bug #6118: We no longer use the verb/extension
  2294. tables for the localized verbs in instmsi/copymsi
  2295. Bug #1765: We've seperated the verbs for msiexec
  2296. out into a res file, and are sending it to localizers.
  2297. 98-07-23 davidmck Fixed Bug 5964,. We were doing background costing
  2298. with an error message up. Probably not a good idea.
  2299. 98-07-23 t-caroln Fixed bug 6099: Validation. Validation can now
  2300. handle DBCS characters correctly. Also inlined the
  2301. ICharNext and exposed it in istring.h. Updated all calls
  2302. to use ICharNext which has special meaning in Debug
  2303. (DBCS simulation). Ship calls WIN::CharNext directly
  2304. and UNICODE directly performs a ++pch. Use ICharNext
  2305. from now on.
  2306. 98-07-23 t-caroln Fixed bug 6197 -- Validation of Sequence actions in
  2307. Msival.exe. While msival would still work, if an
  2308. action had more than one error related to it, it would
  2309. only print it out one time. Thus, the user would fix
  2310. it, run msival again, and it fail again (for the 2nd
  2311. error that it didn't print out). Now all errors are
  2312. printed out in one swoop.
  2313. 98-07-23 chetanp bug 6170 - The RemoveRegistryValues action should
  2314. precede the UnregisterMIMEInfo and the
  2315. UnregisterProgIdInfo actions to ensure that the ProgId and MIME
  2316. information is removed upon uninstall in the case special
  2317. subkeys/ values are added to the <.Extension> or
  2318. <CLSID\GUID> keys in the registry via the Registry table.
  2319. 98-07-23 chetanp bug 6179 - We now remove the extension only if the
  2320. corr. progid has no more shell commands left. This
  2321. allows for multiple applications to share extensions.
  2322. 98-07-23 chetanp bug 6191 - check MsiAdvertiseScript dwFlags for
  2323. validity. We now make sure that the bits passed in are
  2324. from the enum tagSCRIPTFLAGS.
  2325. 98-07-23 cgouge Added ICE25, bug 6018. Validates merge module
  2326. dependencies and exclusions. ICE25 shares most of its code
  2327. with M3COM, so src\tools\common is now on the
  2328. dependency list for msiice.dll.
  2329. 98-07-23 davidmck Perf improvements to version checking. We now get
  2330. both the file version and language information at the
  2331. same time.
  2332. 98-07-23 t-caroln Fixed bug 6189 -- Validation. Formatted and
  2333. KeyFormatted are transparent to Darwin, so made it so. Now
  2334. Template, Formatted, and KeyFormatted all work as
  2335. KeyFormatted (except Template has the additional [1] in
  2336. integer property specification). KeyFormatted has
  2337. not been removed though to maintain backwards
  2338. compatibility. Formatted originally was a subset of
  2339. KeyFormatted and now equates to KeyFormatted. All instances of
  2340. KeyFormatted in _Validation table have been changed
  2341. to use Formatted.
  2342. 98-07-23 t-caroln Fixed bug 5799, crash w/ runscrpt.exe with the
  2343. following : runscrpt.exe showmsi.vbs
  2344. ListScript(testtran.aas) where testtran.aas is an invalid filename. Now
  2345. the CScriptView and CScriptDatabase classes handle the
  2346. error properly.
  2347. 98-07-23 tracyf Fixed bug 5382. We were having problems when
  2348. browsing from a volume that supports long filenames, to one
  2349. that supports only short names.
  2350. 98-07-23 tracyf Fixed bug 5393. We now do better error checking
  2351. when attempting to write records to the execution and
  2352. rollback scripts.
  2353. 98-07-22 andrewh 6187 - Shortcuts were removed when changing from
  2354. install local to advertised on NT5 (or IE4.01sp1 desktop
  2355. update).
  2356. 98-07-22 t-caroln Fixed bug 6183: MsiVal not work correctly for
  2357. sequence validation. A query would always fail so I fixed
  2358. it to validate correctly. This pretty much turned
  2359. off the action must come before dependent action
  2360. validation. Also fixed up some of the entries in the
  2361. _Sequence table.
  2362. 98-07-22 t-caroln Fixed bug 6021 --> Standard Dialog validation.
  2363. ICE20. Due to a fix to 5220, the ICE had to be updated
  2364. to handle ErrorIcon control correctly. It was also
  2365. made to look for the required names of the Error
  2366. buttons on the ErrorDialog.
  2367. 98-07-22 malcolmh Fixed bug 5781: AD: Darwin returns 1610
  2368. (Configuration error) when it fails to establish connection to
  2369. the source
  2370. 98-07-22 malcolmh Fixed bug 6123: 4127c: some dialogs still not
  2371. localized.
  2372. 98-07-22 malcolmh Fixed bug 3799: Make sure all environment variables
  2373. are expanded in the context of the user
  2374. 98-07-22 davidmck Fixed bug 6029 - We were hogging CPU cycles by
  2375. calling GetTickCount repeatedly if the selection manager
  2376. wasn't initialized. Now we kill the timer for
  2377. background costing for the window we are in if the selection
  2378. manager is not ready.
  2379. 98-07-22 mattwe Bug #6146: We didn't have ALLUSERS set for
  2380. instmsi/copymsi, and the Registry stuff went to the
  2381. wrong place.
  2382. 98-07-21 chetanp bug 6062 - we no longer advertise Type Libraries in
  2383. Darwin. The RegisterTypeLibraries action has been
  2384. removed from the AdvtExecuteSequence table. Darwin will
  2385. now ignore this action if encountered in the
  2386. AdvtExecuteSequence table (for older databases).
  2387. 98-07-21 chetanp bug 6109 - we now support SFN|LFN syntax in the
  2388. IniLocator table.
  2389. 98-07-21 t-caroln Fixed bug 6137. Added
  2390. msiTransformValidationUpgradeCode enum value to type library.
  2391. -----------------------------
  2392. Release 0.10.00.4320
  2393. -----------------------------
  2394. 98-07-20 mattwe Bug #6126: removed /regserver calls from msiinst
  2395. on Win9X
  2396. 98-07-20 mattwe Bug #4505: BackupFile without removing original
  2397. file now copies the backup file over the original
  2398. during rollback. This allows you to modify the
  2399. original, and have it restored during rollback.
  2400. This is currently only used by UpdateEnvironment
  2401. on Win9X.
  2402. 98-07-18 johndelo Bug 6131: New release directory: ToolsW
  2403. to hold Unicode builds of the tools on both platforms.
  2404. TestDb contains ANSI customactions on x86, Unicode on Alpha
  2405. 98-07-17 malcolmh Fixed bug 6112: Assert in Execute.cpp during Patch
  2406. (or Uninstall) when using Rollbacktest=1
  2407. 98-07-17 malcolmh Fixed bug 6119: MsiGetFeatureInfo(hProduct,
  2408. APIProduct.FeatureID(), &iAttribute, 0, 0, 0, 0) should
  2409. return 0. It returns:87
  2410. 98-07-16 mattwe Bug #6115 - for some reason an impersonated reboot
  2411. was failing to get a process token. We had a call
  2412. to EnableReboot, and it works now.
  2413. Bug #5828, #5878 - Added a timeout on the
  2414. WaitForService in case something goes really wacky.
  2415. 98-07-16 chetanp bug 6084 - removed UpdateResource functionality
  2416. 98-07-16 chetanp bug 6082 - refined the symantics for the reinstall
  2417. flags. see bug for more info.
  2418. 98-07-16 t-caroln Fixed bug 6012 -- ICE24. Validates the ProductCode,
  2419. ProductLanguage, and ProductVersion properties in
  2420. the Property table.
  2421. 98-07-16 mattwe Bug #5900: Stubbed security descriptor retrieval to
  2422. immediately return on Win 9X.
  2423. Bug #5635: Changed UpdateEnvironment on Win9X to
  2424. retrieve boot volume location from the registry.
  2425. -----------------------------
  2426. Release 0.10.00.4316
  2427. -----------------------------
  2428. 98-07-15 mattwe Added new instmsi/copymsi. This is still a self
  2429. extracting EXE, but has a radically different dance
  2430. in the middle.
  2431. NT requires either an admin user, *or* a pre-existing
  2432. Darwin install on the system.
  2433. Bug #4725: New registry key added for Hydra.
  2434. Bug #4891: Now uses /qb+ to let Darwin determine
  2435. success/failure of installation.
  2436. Bug #5243: Added EditFlags to avoid packages being
  2437. listed in the recent documents.
  2438. Bug #5279: Registers an AppPath on Win95/98 to allow
  2439. running msiexec from the command line without a
  2440. path setting.
  2441. Bug #5402: LaunchConditions prevent install on NT 3.51
  2442. Bug #5906: LaunchConditions prevent install on NT 5.0
  2443. Note: You can set the FORCE_MSI_UPGRADE_NT5
  2444. environment variable to any value to override this
  2445. in InstMsi.
  2446. CopyMsi overrides automatically.
  2447. MsiFiler has been added to the makefile, to get in
  2448. file versions and sizes dynamically.
  2449. %darwin%/data/msimsi has been added to the project with
  2450. the generic instmsi/copymsi database.
  2451. TESTING: copymsi and instmsi should look externally
  2452. the same.
  2453. 98-07-14 t-caroln Fixed bug 6064 in evalcom. Left out a check for
  2454. ERROR_SUCCESS. Now msival2 {database} {evaludation
  2455. file} -i ICEX:ICEY:ICEZ works correctly.
  2456. 98-07-14 t-caroln Validation. Fixed bugs 6071 and 6072. Validation
  2457. was allowing || pipes (note, the error was in the
  2458. validation parser used to pass the SFN or LFN to the
  2459. global filename validator). Now it errors with more than
  2460. one pipe. Also fixed the path validation. Due to
  2461. the consolidation of code, it would report AnyPath's
  2462. as invalid if they contained a property.
  2463. 98-07-14 tracyf Fixed bug 5482: we now display the "Files in use"
  2464. dialog, if appropriate, in BasicUI mode.
  2465. 98-07-14 t-caroln Added a new tool --> MsiDlgs.exe. This is only
  2466. built if you specify the msidlgs target. It is not built
  2467. with all in the makefile. The msidlgs.exe tool
  2468. displays the various dialog and message box resources in
  2469. msi.dll. It can be used for viewing various
  2470. localized versions of the dialogs (based off of the localized
  2471. strings). Syntax for the tool is msidlgs.exe
  2472. {msi.dll} {langId}. For example, for US English, run
  2473. msidlgs.exe %DARWIN%\build\debug\msi.dll 1033. For
  2474. German, try msidlgs %DARWIN%\build\debug\msi.dll 1031
  2475. 98-07-14 malcolmh Fixed bug 6052: AF:fcache.cpp line342, running
  2476. command line repair: msiexec /frocums
  2477. {6E8DD198-AB04-11d1-B5B8-006097C998E7}
  2478. 98-07-14 malcolmh Fixed bug 6051: We should define at least on more
  2479. enum for tagINSTALLTYPE.
  2480. 98-07-14 malcolmh Fixed bug 6025: Rollback: On Win95 if Uninstall
  2481. fails, files flagged for delete after reboot are still in
  2482. WinInit.Ini
  2483. 98-07-14 malcolmh Fixed bug 6025: Rollback: On Win95 if Uninstall
  2484. fails, files flagged for delete after reboot are still in
  2485. WinInit.Ini
  2486. 98-07-13 malcolmh Fixed bug 5468: UILevel not persisted across a force
  2487. reboot action
  2488. 98-07-13 malcolmh Fixed bug 6045: User with user permissions can't
  2489. uninstall due to Permissions on Feature Usage keys
  2490. 98-07-13 malcolmh Fixed bug 5998: NT4 ZAK: assert in engine during
  2491. removal of testdb on client workstation
  2492. 98-07-13 malcolmh Fixed bug 5948: Patching: Installing new version
  2493. doesn't remove patch
  2494. 98-07-13 malcolmh Fixed bug 5994: LastUsedSource is not updated when
  2495. maintenance mode is invoked from a new source
  2496. 98-07-13 malcolmh Fixed bug 6041: MsiApplyPatch(szPatchPackage, 0,
  2497. INSTALLTYPE_NETWORK_IMAGE, 0) crashes.
  2498. 98-07-13 malcolmh Fixed bug 3586: Application Error on Alpha, when
  2499. MsiGetProductProperty is called.
  2500. 98-07-13 malcolmh Fixed bug 6004: Assertion failed in iconfig.cpp:Line
  2501. 554 when install after machine advertise.
  2502. 98-07-11 mattwe Bug #4858: The service now shuts itself down
  2503. during logout/log off to enable profile roaming.
  2504. 98-07-11 t-robmen Fixed bug 5590: Changed the column width for any
  2505. Primary Key Column that can be affected by Merge Modules
  2506. to 72.
  2507. 98-07-10 eugend In response to bug # 5220, I've changed the look of
  2508. the ErrorDialog in
  2509. Template & Testdb.msi. I've replaced the Picture
  2510. control (of Bitmap type),
  2511. with ErrorIcon of Icon type. If this particular
  2512. control is present on the ErrorDialog
  2513. (it HAS to have the ErrorIcon name and to be of Icon
  2514. type), the handler got
  2515. the new functionality to display the following
  2516. - IDI_ERROR (formerly IDI_HAND) in response to
  2517. messages of imtFatalExit
  2518. type sent to the handler.
  2519. - IDI_WARNING (formerly IDI_EXCLAMATION) in response
  2520. to imtError and
  2521. imtWarning message types.
  2522. - IDI_INFORMATION (formerly IDI_ASTERISK) in response
  2523. to
  2524. imtOutOfDiskSpace and imtUser message types.
  2525. In order to further enhance the message box look,
  2526. when we display the icons,
  2527. we play as well the proper sonds.
  2528. Please note, that if the ErrorIcon control of Icon
  2529. type is not present, no icon
  2530. will get displayed.
  2531. 98-07-10 t-caroln Fixed bug 6021, standard dialog validator. (For
  2532. FilesInUse, DiskCost, Error (as specified by the
  2533. ErrorDialog property), Cancel as well as coverage of the
  2534. FatalError, UserExit, Exit sequence numbers).
  2535. 98-07-10 malcolmh Fixed bug 5698: We now report to the event log
  2536. component detection failure (via ProvideComponent).
  2537. 98-07-10 malcolmh Fixed bug 6024: Machine assigned app with 2 or more
  2538. transforms fails on uninstall.
  2539. 98-07-10 malcolmh Fixed bug 5864: We now have an event log on Win9X.
  2540. It's %TEMP%\msievent.log. If we would've written to
  2541. the real event log on NT then we write to this file on
  2542. Win9X. If we fail to write to it then we delete it
  2543. and try again.
  2544. 98-07-10 cgouge VALIDATION: New ICE #23 - Bug 6017. ICE 23 validates
  2545. that the tab order for control in a dialog is a
  2546. single closed loop. Also verifies that the loop is
  2547. encompasses every control that has a Control_Next entry.
  2548. 98-07-10 mattwe Added the ability to set an alternative source directory
  2549. for msifiler. This allows you to get file sizes/versions
  2550. from a swamp type directory, instead of having a
  2551. distribution image. (For instmsi/copymsi primarily.)
  2552. 98-07-10 tracyf In response to bug 3495, A new property is now written to
  2553. the Admin property stream: IsAdminPackage. This property
  2554. will be available and set to a value of "1" when running
  2555. from a package that was created by an Admin installation.
  2556. 98-07-10 malcolmh Fixed bug 5993: Cannot invoke a patch from a path
  2557. that has a space in it.
  2558. 98-07-10 malcolmh Fixed bug 5232: consolidated in-progress properties
  2559. so we don't repeat feature selections
  2560. 98-07-10 malcolmh Fixed bug 5171: reboot during (after) managed app
  2561. install with full UI not using elevated privs.
  2562. Reboot is again a method of the server to allow
  2563. managed apps to reboot even when the user is not allowed
  2564. to.
  2565. 98-07-09 johndelo Made provision for localized string resources.
  2566. Directory for localized .res files: DARWIN\SRC\INTL
  2567. German translation of all strings, but not final strings.
  2568. French and Arabic only partially translated for test.
  2569. Still need to deal with right-to-left switching.
  2570. 98-07-09 t-caroln Fixed bug 6005 -- Validation. Version string
  2571. validation failed on 99.99.9999.9999. Now works (last 9999
  2572. was failing).
  2573. 98-07-09 davidmck Fixed bug 5407 - avoiding powerdown when doing an
  2574. install. We have a hidden window to handle powerdown
  2575. queries. This may cause some windowing oddities, so be
  2576. on the lookout for such issues.
  2577. 98-07-09 davidmck Fixed bug 5966, binary data now shows up as
  2578. "BinaryData" in a formatted record.
  2579. -----------------------------
  2580. Release 0.10.00.4309
  2581. -----------------------------
  2582. 98-07-09 t-caroln Fixed bug 4107 -- setting and getting of a FILETIME
  2583. property from the summary information stream. Now
  2584. when setting, properly converts from Variant to System
  2585. to Local to File. When retrieving, converts from
  2586. File to Local to System to Variant. Now both API
  2587. output, msiinfo output, and export of _SummaryInformation
  2588. "table" match.
  2589. 98-07-08 malcolmh Fixed transform bugs:
  2590. 5170: Need to pin "secure" transforms on NT5
  2591. 5886: If the transforms list is preceded by @ and
  2592. multiple transforms are used then only the first is
  2593. found at the source during first-run
  2594. 5887: First-run doesn't respect TRANSFORMSATSOURCE
  2595. property
  2596. 5888: Specifying storage transform +
  2597. TRANSFORMSATSOURCE property causes storage transform to
  2598. be ignored during maintenance mode
  2599. 5901: First-run doesn't respect TRANSFORMSATSOURCE
  2600. policy
  2601. We now have a new kind of transform: the secure
  2602. transform. It's indicated by the "|" at the front of the
  2603. transform list. There's also a policy value
  2604. "TransformsSecure" and a property "TRANSFORMSSECURE" that can
  2605. be used to trigger secure transforms. We will pin
  2606. any transform marked as secure so that it stays in the
  2607. client-side cache.
  2608. 98-07-08 malcolmh Fixed bug 5381: Darwin: launching more than 3 or 4
  2609. setups causes darwin to not respond.
  2610. 98-07-08 malcolmh Fixed 5982: StartImpersonating w/o StopImpersonating
  2611. CMsiVolume::SetUNCServer
  2612. 98-07-08 davidmck Changes MsiEnumClients internal code. This shouldn't
  2613. affect how it works on the outside, but might, so
  2614. the API should be tested. This change was made so that
  2615. for calls internally, we'll keep the key opened and
  2616. saves a bit of time.
  2617. 98-07-08 malcolmh Fixed bug IMsiServer::SetLastUsedSource fails when
  2618. called while an install is in progress for a different
  2619. user.
  2620. 98-07-07 malcolmh Fixed bug 5959. crash in msi.dll running deferred CA
  2621. during removal
  2622. 98-07-07 malcolmh Fixed bug 5946: MsiProvideComponent crashes after
  2623. avertise.
  2624. 98-07-07 malcolmh Fixed (again) bug 3988. Local caching path should
  2625. include product code or something unique per product.
  2626. We now correctly append the product code to the
  2627. cached path on Win9X and for machine installs.
  2628. 98-07-07 chetanp bug 5957 - we now allow reg types other than REG_SZ
  2629. to be written as default values. This was previously
  2630. explicitly disallowed since it fails on Win95. So
  2631. now this will work on WinNT and Win98 but fail on Win95
  2632. (as the Win API call will fail).
  2633. 98-07-07 t-caroln Fixed bug 3589. For temporary databases (databases
  2634. w/out input storage), we mark any created columns as
  2635. temporary by default. Formerly we were allowing
  2636. persistent columns in temporary databases.
  2637. 98-07-07 andrewh 5955 - Assert before bringing up Insert your CD
  2638. dialog. Assert fixed, it was using GetSize on a
  2639. tempbuffer for string length instead of a strlen call.
  2640. 98-07-07 bench Fixed bug 3632 (again): when an error occurs and
  2641. logging is not already enabled, a dynamic log is
  2642. created. The latest fix is to turn on logging for just
  2643. errors and warnings, instead of all log modes.
  2644. 98-07-07 bench Fixed bug 5959: self-reg errors are now ship errors,
  2645. and will have the <A><R><I> button options in ship
  2646. Darwin.
  2647. -----------------------------
  2648. Release 0.10.00.4307
  2649. -----------------------------
  2650. 98-07-07 tracyf For bug 2721, We now honor the "NoDrives" policy, under the key
  2651. "HKCU\Software\Microsoft\windows\CurrentVersion\Policies\Explorer".
  2652. The number stored under the "NoDrives" value is treate as a 26-bit
  2653. array, one bit for each drive (i.e. bit 0 = drive A, bit 1 = drive B,
  2654. etc). For any bit that's set, we now hide that drive from the user
  2655. in the Browse dialog, and prevent that drive from being selected
  2656. as the root volume for TARGETDIR. The one exception is that if
  2657. ALL local fixed drives are disabled, TARGETDIR will still default
  2658. to the drive containing the Windows directory (regardless of
  2659. whether that drive is disabled), and thus that drive will also
  2660. appear in the Browse dialog.
  2661. -----------------------------
  2662. Release 0.10.00.4306
  2663. -----------------------------
  2664. 98-07-04 malcolmh The RedirectComponent table is obsolete, and has
  2665. been for a number of months.
  2666. 98-07-03 t-caroln Fixed bug -- 5087 dealing with the cancel button
  2667. during an MsiSpy install. On the action dialog,
  2668. clicking cancel did not cause the install to cancel. The
  2669. reason was not internal Darwin code, but a mis-authored
  2670. package. The ControlEvent for this cancel button
  2671. was missing!! And courtesy of Malcolhm's suggestion,
  2672. ICE17 caught this error as well. Fixed by adding the
  2673. ControlEvent for the Cancel button on the
  2674. ActionDialog.
  2675. 98-07-02 t-caroln VALIDATION -- new ICEs #21, 22. ICE21 validates
  2676. that all components are mapped to a feature (in
  2677. FeatureComponents table). ICE22 validates that the Feature_
  2678. and Component_ referenced in the PublishComponent
  2679. table is an actual mapping listed in the
  2680. FeatureComponents table.
  2681. 98-07-02 chetanp fixed bug 5458 - We now prevent an older component
  2682. (lesser keyfile) from overwriting an already DARWIN
  2683. installed newer component (implying, if the file exists
  2684. without having being installed by darwin - we go
  2685. ahead and install the component irrespective of the
  2686. version - since we cannot trust the previous install to
  2687. be complete/ exact).
  2688. 98-07-02 t-caroln Fixed bugs 4335 and 5913. Re-wrote
  2689. CMsiView::Modify. Delete and Update can now be called after Insert
  2690. and InsertTemporary. Seek now only requires primary
  2691. key columns to be filled in. Formerly required all
  2692. non-null fields to be filled in with dummy values + the
  2693. primary key fields.
  2694. -----------------------------
  2695. Release 0.10.00.4302
  2696. -----------------------------
  2697. 98-07-02 malcolmh Fixed bug 3794: AdminInstallFinalize needs to set
  2698. the DISABLEMEDIA property during admin install if
  2699. installing from compressed source
  2700. 98-07-02 malcolmh Fixed bug 5786: USERNAME="" and COMPANYNAME="" do
  2701. not suppress User Name and Organization field contents
  2702. in Setup.
  2703. We now have two new properties, NOUSERNAME and
  2704. NOCOMPANYNAME. These will suppress our population of the
  2705. USERNAME and COMPANYNAME fields.
  2706. -----------------------------
  2707. Release 0.10.00.4302
  2708. -----------------------------
  2709. 98-07-02 malcolmh Fixed bug 5929: '*' log mode should not include 'v'
  2710. 98-07-02 davidmck Fixed bug 5804: Using service again after a fatal
  2711. error on the service side. We were not zeroing all the
  2712. freed pointers, which caused problems the next time
  2713. around.
  2714. 98-07-02 davidmck Fixed bug 4943, DBCS command lines would not work
  2715. previously.
  2716. -----------------------------
  2717. Release 0.10.00.4302
  2718. -----------------------------
  2719. 98-07-02 chetanp bug 5924 - fixed "progids and viprogids not being
  2720. written" problem.
  2721. -----------------------------
  2722. Release 0.10.00.4302
  2723. -----------------------------
  2724. 98-07-01 bench Contrary to previous relnotes entries, verbose
  2725. logging is not yet enabled at this time. Verbose debug
  2726. output is though.
  2727. 98-07-01 chetanp bug 5687 - remove component thrashing behaviour from
  2728. darwin
  2729. 98-07-01 tracyf For bugs 5690 and 5861, verbose logging of all final
  2730. feature/component states, and of all file version
  2731. checks (in order to determine whether to overwrite
  2732. existing files) has been added.
  2733. 98-06-29 johndelo Completed update of MSI type library, per David Boctor.
  2734. ProgId is WindowsInstaller.Installer - note change!
  2735. For debug-only access, WindowsInstaller.Debug
  2736. Old definitions will remain as well until 7/7/98 to
  2737. give time for update of test and documention.
  2738. Advise to uninstall or unregister old MSI version.
  2739. Interface GUIDS for OLE automation have changed.
  2740. Strong typing of objects and method completion
  2741. now work with MSIin VB and VBA. For object model,
  2742. use object browser, oleview.exe, or AutoApi.cpp.
  2743. Nearly all public API functions are now exposed.
  2744. Help string have been removed too save space, as
  2745. is conventional, but are left in for DEBUG build.
  2746. Same story with context IDs on enumeration value.
  2747. 98-06-29 malcolmh Fixed bugs 5847, 5856, 5857, 5811. Fixed a bunch of
  2748. API call that didn't allow a null buffer to be
  2749. specified in conjuction with a non-null buffer count
  2750. parameter. Ex: MsiDoThis(szProduct, 0, &pcchBuf). This call
  2751. would typically be followed by a call like
  2752. MsiDoThis(szProduct, szBuffer, &pcchBuf)
  2753. 98-06-29 malcolmh Fixed bug 4983: Suggestion: Could MsiZap add a
  2754. command line argument to take a product code. We can now
  2755. remove a single product's information with the 'T'
  2756. option.
  2757. 98-06-29 malcolmh Fixed bug 5721: Logging: Need to add function calls
  2758. and parameters to debugmon output
  2759. 98-06-29 malcolmh Fixed bug 5797, 5582. The feature cache is now
  2760. per-process.
  2761. 98-06-29 chetanp bug 5858 - fixed darwin to NOT ignore assigned
  2762. transforms at first run
  2763. 98-06-29 bench Bugs 5860 and 5862: several changes to improve
  2764. logging and diagnostic output:
  2765. 1) a registry value can be used to turn on logging. the value is:
  2766. HKLM\Software\Policies\Microsoft\Windows\Installer
  2767. Name: Logging Value: REG_SZ, log mode ("ifpmcuewar")
  2768. 2) new log mode: 'v' for "verbose". Currently this log mode
  2769. triggers all debug output to be written to the log, in
  2770. both ship and debug Darwin. More information will be written
  2771. in the future when this mode is set.
  2772. 3) a registry value can be used to switch on different levels
  2773. of debug output in ship or debug Darwin. the value is:
  2774. HKLM\Software\Policies\Microsoft\Windows\Installer
  2775. Name: Debug Value: REG_DWORD
  2776. value & 0x1: debug output is turned on
  2777. (default is off for ship, on for debug)
  2778. value & 0x2: "verbose" debug output is turned on
  2779. 98-06-29 t-caroln Validation. ICE18 -- fixed bug 5684. Required to
  2780. be updated from < 32 char to < 64 char due to Bench's
  2781. fix of bug 5678.
  2782. 98-06-29 malcolmh Fixed bug 5866: Cached transforms are not deleted
  2783. upon uninstall.
  2784. 98-06-29 malcolmh Fixed bug 5665: Maintenance mode fails when a
  2785. product has run from source transforms
  2786. 98-06-28 malcolmh Fixed bug 3998: Local caching path should include
  2787. product code or something unique per product. We now
  2788. place transforms and icons in per-product directories
  2789. named with the product code of the product.
  2790. 98-06-28 malcolmh Fixed bug 5247: Crash in version.dll when calling
  2791. GetFileVersionInfo for currupt dll on NT4 - need
  2792. workaround
  2793. 98-06-27 malcolmh Fixed bug 5703: Should invalidate RFS features when
  2794. the server is down, regardless of Client Side
  2795. 98-06-27 malcolmh Bug 5658: We now have a policy value for logging.
  2796. Set the Logging value to any combination of our log
  2797. characters and we'll generate a log using these modes.
  2798. Command-line log flag or MsiEnableLog both override
  2799. this policy.
  2800. 98-06-27 malcolmh Fixed bug 4042: Calling MsiGetComponentPath on a
  2801. registry keypath no longers returns a 50+ offset for RFS
  2802. keys.
  2803. 98-06-26 chetanp fixed bug 5699 - we now place the cached icons/
  2804. transforms under the APPDATA folder on Win9x as well, if
  2805. present. This fixes roaming scenarios where the
  2806. APPDATA folder is defined. If the folder is not present,
  2807. we do what we always did - place it under the Windows
  2808. folder.
  2809. 98-06-26 tracyf The following new properties have been defined:
  2810. PRIMARYFOLDER:
  2811. A global property that allows the author to designate
  2812. a "primary" folder for the installation. The value
  2813. given to this property must be the key name of a
  2814. directory record found in the Directory table. The
  2815. installer will use the resolved path of this folder to
  2816. determine the volume used when setting values for the
  2817. PrimaryVolumePath, PrimaryVolumeSpaceAvailable,
  2818. PrimaryVolumeSpaceRequired, and PrimaryVolumeSpaceRemaining
  2819. properties.
  2820. PrimaryVolumePath:
  2821. The Installer sets the value of this property to the
  2822. path of the volume designated by the PRIMARYFOLDER
  2823. property. For example, if the folder referenced by
  2824. PRIMARYFOLDER resolves to "D:\ProgramFiles",
  2825. PrimaryVolumePath will be set to "D:"
  2826. PrimaryVolumeSpaceAvailable:
  2827. The Installer sets the value of this property to a
  2828. string representing the total number of bytes
  2829. available, in units of 512, on the volume referenced by the
  2830. PrimaryVolumePath property. For example, if
  2831. PrimaryVolumePath is set to "D:", and volume D: has
  2832. 446,134,272 bytes free, PrimaryVolumeSpaceAvailable will be set
  2833. to 871356. Note: if this value is to be displayed
  2834. within a static Text control, the new FormatSize style bit
  2835. (see below) can be used on the control to automatically format
  2836. and label this number in units of KB, MB, or GB as appropriate.
  2837. This goes for the other properties below as well.
  2838. PrimaryVolumeSpaceRequired:
  2839. The Installer sets the value of this property to a
  2840. string representing the total number of bytes required
  2841. by all currently selected features on the volume
  2842. referenced by the PrimaryVolumePath property. As with
  2843. the PrimaryVolumeSpaceAvailable property, this number
  2844. is expressed in units of 512 bytes.
  2845. PrimaryVolumeSpaceRemaining:
  2846. The Installer sets the value of this property to a
  2847. string representing the total number of bytes that
  2848. would be remaining on the volume referenced by the
  2849. PrimaryVolumePath property, if all the currently selected
  2850. features were to be installed. As with the
  2851. PrimaryVolumeSpaceAvailable property, this number is expressed
  2852. in units of 512 bytes.
  2853. The following new Control style bit has been defined:
  2854. FormatSize Control Style Bit:
  2855. Decimal: 524288
  2856. Hex: 0x00080000
  2857. If this bit is set for a static text control, the
  2858. control will automatically attempt to format the
  2859. displayed text as a number representing a count of bytes.
  2860. For proper formatting, the control's text must be set
  2861. to a string representing a number expressed in units
  2862. of 512 bytes. The displayed value will then be
  2863. formatted in terms of kilobytes (KB), megabytes (MB), or
  2864. gigabytes (GB), and displayed with the appropriate
  2865. string representing the units
  2866. Here's an example of the formatting resulting from
  2867. use of the FormatSize style bit:
  2868. Assume the text of a static Text control is defined
  2869. in the Control table to be
  2870. [PrimaryVolumeSpaceRequired]. At runtime, the installer will resolve this
  2871. property to the total number of bytes required for the
  2872. install, in units of 512. If the total bytes required
  2873. resolved to, say, 18,336,768, the value for the
  2874. PrimaryVolumeSpaceRequired property would be set to
  2875. "35814" (18336768 / 512), and the number would be displayed
  2876. in the control as "17MB".
  2877. 98-06-25 malcolmh Fixed bug 5180: Crash running Unicode Darwin with
  2878. Advertised Msispy install.
  2879. 98-06-25 malcolmh Fixed bug 4441: MsiGetProductInfo should accept DD
  2880. where a ProductCode is required.
  2881. 98-06-25 malcolmh Fixed bug 5619: Performance:MsiUseFeature should be
  2882. able to avoid feature validation. We now have a new
  2883. api: MsiUseFeatureEx that can take
  2884. INSTALLMODE_NODETECTION which disables keyfile detection.
  2885. 98-06-25 malcolmh DEV: Added ability to unload a late-bound DLL.
  2886. Syntax: DLL::Unbind(). Ex: OLE32::Unbind().
  2887. 98-06-25 chetanp fixed bug 5844 - fixed incorrect reg keypath
  2888. registration for registry records with special tokens (+, -,
  2889. *)
  2890. 98-06-25 johndelo Updated automation type library per David Boctor specs.
  2891. Old definitions will remain as well until 7/7/98 to
  2892. give time for update of test and documention.
  2893. ProgIds and descriptions have been changed:
  2894. WindowsInstaller.Application & WindowsInstaller.Debug
  2895. Typelib name and version have changed:
  2896. WindowsInstaller = Microsoft Windows Installer 1.0 Object Library
  2897. Internal automation version also changed to 1.0
  2898. Enumerations now all begin with "msi".
  2899. Following current convention, help strings have been
  2900. removed to save space in the dll. Help IDs still present.
  2901. For current values, use typelib in Msi.DLL or
  2902. consult the end of the source file: AutoApi.cpp.
  2903. 98-06-25 t-caroln Fixed bug 5841, Validation. In order to ensure all
  2904. GUIDs work correctly (particularly after
  2905. compression), they need to all be UpperCase. The GUID category
  2906. validator now validates that the GUIDs are indeed all
  2907. upper case. The msispy and msival2 msi's had to be
  2908. updated in order to validate correctly.
  2909. 98-06-25 bench Fixed bug 5820. The LIMITUI property caused
  2910. properties set on the command line to not be processed.
  2911. 98-06-24 malcolmh Fixed bug 5814: Cancel button flashes in basic UI.
  2912. 98-06-24 malcolmh Fixed bug 5776: Network resource dialog has an
  2913. accelerator key that fails to work.
  2914. 98-06-24 malcolmh Fixed bug 5716: Should notify the shell whenever
  2915. application state changes.
  2916. 98-06-24 malcolmh Fixed bug 3799: Make sure all environment variables
  2917. are expanded in the context of the user.
  2918. 98-06-24 chetanp bug 4299, 4330 fixed. - we now have the additional
  2919. restriction that the RegisterProgIdInfo,
  2920. RegisterMIMEInfo are after the RegisterClassInfo and the
  2921. RegisterExtensionInfo actions and the UnregisterProgIdInfo,
  2922. UnregisterMIMEInfo are after the UnregisterClassInfo
  2923. and the UnregisterExtensionInfo actions. This is in
  2924. accordance with the current recommended sequence.
  2925. -----------------------------
  2926. Release 0.10.00.4224
  2927. -----------------------------
  2928. 98-06-24 bench Patches created by a build prior to 4224 will not
  2929. work with 4224 and beyond. All patches must be
  2930. recreated. This incompatibility is caused by a change in
  2931. the file format for patch files.
  2932. 98-06-23 t-caroln Fixed bug 5812 -- Tools now use _stprintf (compiles
  2933. to sprintf and wsprintf depending on UNICODE).
  2934. wsprintf only works up to 1024 bytes, which could fail to
  2935. copy everything for some tools. Tools affected were:
  2936. msialter, msidb, msidiff, msifiler, msiinfo,
  2937. msimerg, msitran, msival, and msival2.
  2938. 98-06-23 t-caroln Fixed bug 5647 -- As per chetan's fix for 4512,
  2939. AnyPath can be LFN (SPN|LPN). Validation now handles
  2940. this case.
  2941. 98-06-23 t-caroln Fixed bug 4010 -- msitran -v option not work when
  2942. transforming an emptydb to a fulldb. This actually
  2943. wasn't a "real" error, but if the user used the fulldb
  2944. as the db in the msitran -v argument list, then we
  2945. wouldn't handle it correctly (# primary keys and columns
  2946. would double). Now, it is handled correctly.
  2947. However, the emptydb should have been used as the base.
  2948. 98-06-19 t-caroln New ICE's -- 17 (bug 5773), 18(sort of bug 3317), 19
  2949. (bug 3317)
  2950. Updated ICE02 to include the ODBCDataSource table
  2951. check
  2952. ICE17 -- validates ControlType dependencies in the
  2953. Control table for the Bitmap, Icon, ListBox,
  2954. ListView, ComboBox, RadioButtonGroup, and PushButton control
  2955. types.
  2956. ICE18 -- validates KeyPath column of Component table
  2957. if KeyPath is NULL (Directory refernce).
  2958. ICE19 -- validates advertising.
  2959. Class,TypeLib,Extension,PublishComponent,Shortcut tables must reference
  2960. Components with a ComponentId. All but the shortcut
  2961. table must reference components with File KeyPaths.
  2962. The Shortcut can also reference a Directory KeyPath.
  2963. 98-06-19 mattwe 5635: Improved location of autoexec.bat for UpdateEnvironment
  2964. on Win95. You can use WIN95_ENVIRONMENT_TEST to override
  2965. our detection. We look first to the windows volume, then
  2966. search all fixed disks for config.sys, and lastly fall back
  2967. to the windows volume. There's more that can be done, but
  2968. for very little return.
  2969. 5769: Fixed a caching problem with the path object.
  2970. If you call GetFilePath with a file, change some other part of
  2971. the path, and then call with the same file, you will get
  2972. spurious results. This affects nearly every path method.
  2973. 98-06-19 davidmck Made a number of performance improvements. The
  2974. trickiest is that we try to estimate the cost of the
  2975. script and only compute the exact cost if we really need
  2976. to.
  2977. The definition of "really need to" is when the
  2978. install without the script will fit, but the install with
  2979. the maximum script for the database does not. Testing
  2980. in cases where we are near the edge would be
  2981. interesting.
  2982. Our "exact" script cost is also an estimate, but a
  2983. more precise estimate than our guess, so you can
  2984. probably still get some border cases where we don't install
  2985. and you might have just enough space, but likely you
  2986. couldn't use the product then.
  2987. 98-06-18 bench Bug 5752: We now return
  2988. ERROR_INSTALL_PACKAGE_VERSION from MsiAdvertiseScript and
  2989. MsiProcessAdvertiseScript when the script passed in has an unsupported
  2990. script version.
  2991. 98-06-18 malcolmh Fixed bug 5748: AF in istring.cpp line 1123
  2992. 98-06-18 mattwe 5729: You can now put environment variables on the
  2993. command line again, with %VAR=Foo. A previous
  2994. bug was to assure that all properties started with
  2995. an alphanumeric character, and busted this.
  2996. 98-06-18 malcolmh Fixed bugs 5742. We now assert if you don't declare
  2997. your DLL custom action __stdcall.
  2998. 98-06-18 mattwe 5629 Fixed a debug only crash with long command lines.
  2999. We now resize the buffer on the fly for the offending
  3000. debug string. However, it will still truncate at 1024
  3001. character and give slightly wacky output.
  3002. Increased the maximum length for a property value to
  3003. 1024 characters, and cleaned up the code to ease
  3004. increasing it further if needed.
  3005. 98-06-18 andrewh 5750, Couldn't uninstall office9, Assert "Cursor not
  3006. reset", new error checking caught a case of a cursor
  3007. being used before the previous user reset it
  3008. 5735: CustomAction cannot reference File table on uninstall,
  3009. this fix affects FormatText so it can now reference files in
  3010. components whose states are either not changing or are
  3011. scheduled for removal. The author should condition
  3012. CustomActions, author components appropirately to not
  3013. use a file after it has been deleted.
  3014. 5746,5747 - Don't list msiexec in the FilesInUse
  3015. list, list the correct file that is in use in the log.
  3016. 98-06-18 mattwe Bug 4278: MoveFile no now longer fails if the full
  3017. file attributes cannot succesfully be copied. This
  3018. typical case is that the file has security such that
  3019. we can't access them.
  3020. 98-06-18 bench Bug 5678: as values in the RunOnce key must have
  3021. names < 32 characters, we no longer use the product name
  3022. in this field. Rather, the product code is
  3023. compressed and truncated to provide an almost-unique name
  3024. that is < 32 characters.
  3025. 98-06-18 bench Bug 5644: add the ability to detect products in a
  3026. range of versions using the Upgrade table and the
  3027. FindRelatedProducts action. Previously, you could only
  3028. use the Upgrade table to detect a product whose version
  3029. is greater than or less than a single version. Now,
  3030. you may supply a range of version of the syntax
  3031. "X.X.X.X:X.X.X.X" where the ':' seperates the two. The
  3032. Operator column value is interpreted differently when
  3033. this syntax is found. Now, adding a 2 to the value
  3034. means the lower version is inclusive, and adding a 4
  3035. means the upper version is inclusive. The two
  3036. versions are exclusive by default.
  3037. -----------------------------
  3038. Release 0.10.00.4218
  3039. -----------------------------
  3040. 98-06-17 t-caroln Added MsiDefs.h to the Headers target. This copies
  3041. the file from the %DARWIN%\src\inc to the %COMMON%
  3042. folder in the build directory so that the tools can use
  3043. them. (%DARWIN%\src\inc is not an Include path for
  3044. the tools).
  3045. 98-06-17 t-caroln Fixed bugs 5727, 5728 -- Validation. Validation was
  3046. returning the wrong error code (NotInSet) for
  3047. OverFlow and UnderFlow errors. Changed to return the
  3048. correct error codes.
  3049. -----------------------------
  3050. Release 0.10.00.4217
  3051. -----------------------------
  3052. 98-06-17 malcolmh Fixed bug 5656: Custom Action hang darwin when
  3053. trying to send messages to update progress
  3054. 98-06-16 bench Fixed bug 5715: assert when patching run-from-source
  3055. install.
  3056. 98-06-16 bench Changed the versions for all Darwin files, moving
  3057. the build number from the fourth field to the third.
  3058. This will allow future "letter" builds like 4127a to
  3059. be given a new version, like 0.28.4127.1.
  3060. 98-06-16 tracyf Per bug 5685, the ReserveLocal and ReserveSource
  3061. columns of the ReserveCost table are now non-nullable.
  3062. Since the original schema was wrong (and outrageous
  3063. disk space calculations are the resullt if these
  3064. columns are left Null), a schema version change is not
  3065. called for.
  3066. 98-06-16 tracyf In response to bug 5643, the disk cost values
  3067. displayed in the UI for features have been changed. The
  3068. values displayed now represent the total cost
  3069. attributable to the feature *after the install is complete*,
  3070. i.e. without taking rollback into account. For
  3071. example, in previous versions of Darwin, if a feature is
  3072. installed on first-run, and then the install is
  3073. launched into maintenance mode, the disk cost for that
  3074. feature would always show up as 0 if rollback is enabled,
  3075. regardless of whether the feature is selected for
  3076. removal or not. Now, the displayed disk cost will
  3077. reflect the disk space that will be freed up after the
  3078. removal is complete and the rollback files are removed.
  3079. 98-06-15 bench Fixed bug 5705: the end dialog displayed when /q+ is
  3080. used contained the string "1: 32" using ship Darwin.
  3081. It now displays the error strings 32 or 33 from the
  3082. Error table correctly.
  3083. 98-06-15 t-caroln Bug 4938 -- Validation. Updated the fix. The code
  3084. for CustomSource was commented out after this bug due
  3085. to its incorrect validation of nested install CAs.
  3086. I've uncommented the code and changed it to work
  3087. correctly for other CAs. The validation of the nested
  3088. install CAs is left to the custom validator (one of the
  3089. ice's).
  3090. 98-06-12 t-caroln Fixed bug 4791 dealing with filename validation.
  3091. The filename validation code has been consolidated into
  3092. one function. Both Services and the internal
  3093. Validation code use it (thus preventing duplicate copies of
  3094. the same source code).
  3095. 98-06-12 tracyf Fixed bug 5413. For child features in the
  3096. advertised state, when the parent changes from the Local state
  3097. to the Source (run from network) state, the child
  3098. feature(s) now also go the Source state. If the parent
  3099. is changed back to Local, the children will go back
  3100. to advertised.
  3101. 98-06-12 tracyf Fixed bug 4787 - the FileName column of the
  3102. RemoveFile table has been fixed to properly accept
  3103. shortName|longName syntax.
  3104. 98-06-11 t-caroln Bugs 5661, 5684. Validation.
  3105. 5661 -- Version string validator works with
  3106. MergeModule tables and will work in any table provided you
  3107. have a Language column called "Language". This
  3108. maintains Darwin's versioned file scenario where all
  3109. versioned files must have a langauge.
  3110. 5684 - ProductName can only be 31 characters max.
  3111. Custom validator. ICE16
  3112. 98-06-11 t-caroln Fixed bugs 4813, 5670, 5671 -- custom validators.
  3113. One if for circular references between MIME and
  3114. Extension tables, one if for Dialogs listed in the
  3115. *ExecuteSequence tables, and one if for root feature parents
  3116. with the ifrsFavorParent bit set.
  3117. 98-06-11 t-caroln Fixed Bug 5521, added a new URL validation type..
  3118. 98-06-11 malcolmh Fixed bug 2858: Transforms: Adding an existing table
  3119. to DB fails even when flagged to treat as warning
  3120. (ignore)
  3121. 98-06-11 malcolmh Fixed bugs:
  3122. 5569: "Preparing to install" string should be moved
  3123. into the new localizable resource
  3124. 5570: Need to update the error strings in the msi.dll
  3125. resource for clarity
  3126. 5572: Basic UI - strings need to be removed from the
  3127. dialogs and placed in the localized resource
  3128. 5180: Crash running Unicode Darwin with Advertised
  3129. Msispy install.
  3130. 5611 Should remove backward compatability with <1800
  3131. NT
  3132. -----------------------------
  3133. Release 0.10.00.4211
  3134. -----------------------------
  3135. 98-06-11 mattwe /o property support is now completely removed.
  3136. 98-06-10 t-caroln Bug 5657 -- fixed validation of SFN and LFN
  3137. (disallowing some char when we should allow and allowing
  3138. others when we should disallow)
  3139. 98-06-10 chetanp Due to the nonexistence of common shell folders we
  3140. now ignore the ALLUSERS property for Win9x platforms
  3141. -----------------------------
  3142. Release 0.10.00.4210
  3143. -----------------------------
  3144. 98-06-10 tracyf Bug 4775: support for a new attribute bit has been
  3145. added to the Attributes column of the Feature table.
  3146. The description of the bit to be incorporated into
  3147. the help file is: "The 6th bit is the
  3148. ifrsNoUnsupportedAdvertise bit. If this bit is set for a particular
  3149. feature, advertising will be disabled for that feature
  3150. if the operationg system shell the product is being
  3151. installed on does not support Darwin descriptors".
  3152. 98-06-09 bench Fixed bug 5616: upgrades or patches in which the
  3153. InstallExecuteSequence contained the InstallExecute,
  3154. RemoveOldProducts and InstallFinalize actions, in that
  3155. order, caused an assert and crash. This has been
  3156. fixed.
  3157. 98-06-09 davidmck I changed how InstMsi copies the files to use
  3158. CopyFile rather than LZCopy. LZCopy was randomly failing on
  3159. some machines (Bug 5622) and we don't need it so
  3160. CopyFile seems better.
  3161. 98-06-09 tracyf Fixed bug 4287. We now automatically retry network
  3162. failures once during file copying, before putting up
  3163. the retry dialog (during quiet installs, we retry
  3164. once before failing and rolling back). If the network
  3165. failure occurred while reading or writing an open
  3166. file, we also now close the file and re-open before
  3167. retrying.
  3168. 98-06-09 bench Fixed bug 5598: "Unexpected Error 2203 running
  3169. merged nested install". This bug exposed the fact that
  3170. when caching the msi in %windows%\installer, we were
  3171. copying the temp copy of the msi from %temp% and not
  3172. from the source. The fix for this bug was to copy the
  3173. msi from the source instead.
  3174. 98-06-08 malcolmh Fixed bug 2147: Incorporate Shell Support
  3175. independant of OLE support.
  3176. We have 2 new properties:
  3177. OLEAdvtSupport
  3178. ShellAdvtSupport
  3179. 98-06-08 t-caroln Added a new target to the makefile -- msival2. This
  3180. builds msival2.msi, evalcom.dll, msival2.exe, and
  3181. darice.cub. I have also added msival2.msi to be
  3182. released in the Samples folder. It contains
  3183. conditionalized components. The evalcom.dll ANSI version is
  3184. installed on the Win9X systems and the UNICODE version is
  3185. installed on the Winnt systems.
  3186. 98-06-08 bench Fixed bug 5604: the packages simple.msi,
  3187. minimum.msi, schema.msi and template.msi where all made
  3188. platform-independent by changing the suminfo property 7 from
  3189. "Intel;1033" to ";1033".
  3190. 98-06-08 andrewh 5612 - Fix ship Network Resource dialog, the line to
  3191. read the path from the editbox was debug-only,
  3192. causing us to display garbled characters in an Invalid
  3193. Path messagebox... (bug 5521 fixed by this as well)
  3194. 98-06-08 bench Fixed bug 5597: some errors (those generated
  3195. directly from the actions) where not using the error strings
  3196. from the Error table. They now do.
  3197. 98-06-08 bench Fixed bug 5615: we now do not bind files (with
  3198. BindImage) that we do not install. Most likely files we
  3199. don't install because they have equal or newer
  3200. versions have already been bound, so this is a slight
  3201. performance gain.
  3202. 98-06-05 t-caroln Validation bugs -- 5107, 5613. Fixed. 5107 dealt
  3203. with removing obsolete test for '@' in Cabinet
  3204. category. 5613 was adding iveBadFormatted as a case for the
  3205. MapError function in the API.
  3206. 98-06-05 chetanp bug 5588 - change to skip type library registration
  3207. when going from advertised to advertised after
  3208. reboot.
  3209. 98-06-05 bench Fixed bug 5617; we were calling lstrlen on a null
  3210. pointer in MsiConfigureProduct which sometimes AV'ed.
  3211. We don't do this anymore.
  3212. 98-06-04 bench Fixed bug 2406: embedded cabinets where being
  3213. stripped from admin packages, since the admin source is
  3214. always uncompressed. Now, the size of the package is
  3215. also reduced to reflect the missing streams. This code
  3216. change effects database caching as well, as to two
  3217. features now share the code that strips cabinets.
  3218. 98-06-04 chetanp bug 5579 - changed CMsiEngine::SetFeature's logic
  3219. for setting the fNeverTrackParent variable.
  3220. 98-06-04 tracyf Bug 5116: For MsiGetFeatureCost, the
  3221. MSICOSTTREE_PRODUCT constant is unsupported, and has been removed
  3222. from msiquery.h and the help file.
  3223. 98-06-04 tracyf Fixed bug 5253 - we can now extract zero byte files
  3224. from cabinets embedded in an MSI stream.
  3225. 98-06-04 tracyf Fixed bug 4374 (slimmed down the basic UI dialog).
  3226. 98-06-03 malcolmh Fixed bug 5574: Creating a shortcut on a network
  3227. drive causes Assert.
  3228. The assert was incorrect.
  3229. 98-06-03 malcolmh Bug 5342: AD: Self registering DLL-s cannot be
  3230. configured to run with elevated priledges.
  3231. We now self-reg elevated for managed app, and
  3232. impersonated otherwise.
  3233. 98-06-03 malcolmh Fixed bug 5505. MsiProvideComponentFromDescriptor no
  3234. longer uses the feature cache. This doesn't affect
  3235. any of the other MsiProvide* functions.
  3236. 98-06-03 t-caroln Added -Z option to msival2.exe. When using this
  3237. option, you can ignore specifying the evaluation file as
  3238. the -Z means to use the latest darice.cub file which
  3239. is available off the Iceman website. Syntax is then
  3240. msival2.exe {database} -Z. Note, msival2.exe will
  3241. soon be released once evalcom.dll is ANSI enabled.
  3242. 98-06-03 t-caroln Fixed bug 4035 which Validates Type 35 and 51
  3243. CustomAction usage. This is available as Ice12. Currently
  3244. the only site to access it is at the Iceman website.
  3245. -----------------------------
  3246. Release 0.10.00.4203
  3247. -----------------------------
  3248. 98-06-02 malcolmh Fixed bug 2477: Need to clean up verbs in the
  3249. explorer. The verbs now display correctly.
  3250. 98-06-02 mattwe We now assert with a message when we have a /O
  3251. (old property format) in the command line.
  3252. It still continues to work if you ignore the assert,
  3253. but the tests and CAs *should* be up to date by now.
  3254. 98-06-02 chetanp changed font version handling - we now allow font
  3255. version strings to be of a more generic form -
  3256. [text]<number>[<dot> OR colon>]<number>[<semicolon> OR <comma> OR <space> OR <tab>][text]
  3257. 98-06-02 tracyf The Installer now displays a progress bar during the
  3258. final costing/script compilation phase. Previously,
  3259. an empty progress bar would sit on the screen for up
  3260. to 2-3 minutes (or longer) before the actual script
  3261. execution begins. Now, the progress bar will run to
  3262. completion, indicating the end of the preliminary
  3263. phase, and then will start again for script execution.
  3264. In avoid misleading the user, a new ScriptInProgress
  3265. ControlEvent has been added, which allows a special
  3266. explanatory string to be displayed during the first
  3267. progress bar. The same text control in the
  3268. EventMapping table that subscribes to the TimeRemaining
  3269. ControlEvent should also subscribe to the ScriptInProgress
  3270. ControlEvent, with "ScriptInProgress" as the name of
  3271. both the Event and the Attribute. In addition, the
  3272. string to be displayed should be added to the UIText
  3273. table, also with the name "ScriptInProgress". For
  3274. instance, in the template MSI, this string was added with
  3275. the text "Gathering required information...".
  3276. If executing with Basic UI, the "ScriptInProgress" string
  3277. is pulled from the error table (new error string 21), and
  3278. is automatically displayed at the appropriate time. For
  3279. existing databases, this new error string should be added
  3280. (simply no string will be displayed if it is not found).
  3281. 98-06-02 tracyf Fixed a number of bugs related to the "time
  3282. remaining" indicator on the progress dialog. First, while
  3283. more than 60 seconds are estimated to remain for the
  3284. install, the "time remaining" now updates every 15
  3285. seconds, and displays only "xx minutes". Once the time
  3286. remaining drops below 60 seconds, the display updates
  3287. every second, and displays only "xx seconds". Note that
  3288. for this to display properly during full UI, the TimeRemaining
  3289. string in the UIText table needs to modified in existing
  3290. databases, to this form: "Time remaining: {[1] minutes }{[2] seconds}"
  3291. (this modification has been made in the standard template MSI).
  3292. Also, other problems, such as negative time values, and time
  3293. estimates becoming skewed when alerts are displayed, have been
  3294. fixed.
  3295. 98-06-01 malcolmh Fixed bug 5536: MsiGetComponentPath doesn't handle
  3296. the case when lpPathBuf==0 and pcchPathBuf != 0
  3297. 98-06-01 t-caroln Fixed bug 5553. This bug was caused by the fix for
  3298. bug 5534. Now we use a class to ensure that the View
  3299. and Stream are released in the correct order (View
  3300. must be last). Also this encapsulates all of the
  3301. releasing that has to be done. All of this occured in
  3302. the FindAndRunAction code and was related to custom
  3303. actions.
  3304. 98-05-29 malcolmh Fixed bugs:
  3305. 3927 Multiple but incompatible flags are valid for
  3306. Version checking on transforms
  3307. 3945 need a new transform validation constant:
  3308. itvUpgrade
  3309. 98-05-29 bench Fixed bug 5310: added a new bit for the
  3310. Upgrade.Operator column: DetectOnly. Adding this value (32) to
  3311. your operator column value will cause the detection in
  3312. FindRelatedProducts to kick in, but will disable any
  3313. action taken by the PreventInstall or
  3314. RemoveExistingProducts actions.
  3315. 98-05-28 malcolmh Fixed bug 5094: Assert when system environment
  3316. variable is blank.
  3317. We now zap any blank environment variable entries.
  3318. 98-05-28 eugend Two bug fixes in the handler changed the UI's
  3319. functionality:
  3320. - bug # 5399: disabled Text controls were displaying
  3321. their text as normal text.
  3322. I've changed this as to display the text grayed-out.
  3323. - bug # 4783: the Text control wasn't able to display
  3324. '&', but was displaying then
  3325. next character underscored. I've added the NoPrefix
  3326. Text control style
  3327. (hex value = 0x20000, decimal = 131072). If present,
  3328. the text control displays
  3329. the '&' character "as is".
  3330. 98-05-28 malcolmh Fixed bug 3926: MsiTran needs arguments for setting
  3331. flags for validation of language, product and
  3332. platform
  3333. 98-05-28 malcolmh Fixed bugs:
  3334. 3983: Asserts when disconnected from network
  3335. 4538: Back command makes Darwin exit without alarm
  3336. messages when network connection is broken
  3337. We now always temporarily cache the MSI, whereas we
  3338. used to cache only when installing from removable
  3339. media.
  3340. 98-05-28 bench Fixed bug 5515: a new property was added:
  3341. ReplacedInUseFiles. This property is set in the InstallExecute
  3342. and InstallFinalize actions whenever we install over
  3343. an existing file that is in-use.
  3344. 98-05-28 tracyf Added a new argument to the record fields for the
  3345. MsiProcessMessage API, which now allows additional ticks to
  3346. be added to the install progress bar (by
  3347. CustomActions, for instance). The new argument will be
  3348. documented in the help file soon, but until then, here are
  3349. field definitions when eMessageType is specified as
  3350. INSTALLMESSAGE_Progress:
  3351. Field 1: Subclass - this field determines the type,
  3352. or subclass, of progress message being sent. The
  3353. content of the remaining fields is dependent on the
  3354. subclass type, as shown below. The allowable values in
  3355. field 1 are:
  3356. [0] - MasterReset - resets the progress bar, sets
  3357. the total number of expected progress ticks
  3358. [1] - ActionInfo - provides information related to
  3359. progress messages to be sent by the current action
  3360. [2] - ProgressReport - increments the progress bar
  3361. [3] - ProgressAddition - allows an action (such as a
  3362. CustomAction) to add ticks to the overall expected
  3363. progress total.
  3364. Field 2: (Dependent on subclass type, as follows):
  3365. [if MasterReset] - the total number of expected
  3366. progress ticks for the whole progress bar
  3367. [if ActionInfo] - the "PerTick" value: the number of
  3368. ticks per ActionData message for the current action,
  3369. if no explicit ProgressReport
  3370. are being sent (see field 3 below). This field is
  3371. ignored otherwise.
  3372. [if ProgressReport] - the number of ticks by which
  3373. the progress bar is incremented
  3374. [if ProgressAddition] - the number of ticks to add to
  3375. the overall expected progress total
  3376. Field 3: (Dependent on subclass type, as follows):
  3377. [if MasterReset] - the direction to fill the progress
  3378. bar, one of two values:
  3379. [0] - forward (left to right)
  3380. [1] - backward (right to left)
  3381. [if ActionInfo] - the progress "type": one of two
  3382. values:
  3383. [0] The current action will send explicit
  3384. ProgressReport messages
  3385. [1] Increment the progress bar by the "PerTick"
  3386. value (see Field 2) each time an ActionData message
  3387. is sent
  3388. [if ProgressReport] - Unused
  3389. [if ProgressAddition] -Unused
  3390. 98-05-27 bench Fixed bug 5305: several upgrade actions have been
  3391. renamed to more closely resemble what they really do.
  3392. Note that the old action names will continue to be
  3393. supported indefinitely, but only the new names will be
  3394. documented. Specifically, the old and new action
  3395. names are:
  3396. BlockInstall --> PreventInstall
  3397. MigrateFeatureSettings --> MigrateFeatureStates
  3398. RemoveOldProducts --> RemoveExistingProducts
  3399. 98-05-27 bench Fixed bug 5448: MsiCreateTransformSummaryInfo will not fail
  3400. if the ProductVersion property value is greater than 13
  3401. characters. We technically support any length product version,
  3402. as long as the first 3 fields contain 8 or fewer digits.
  3403. 98-05-27 malcolmh Fixed bug 4985: We now support the log mode character
  3404. '*' which represents all log modes.
  3405. ex: msiexec /I foo.msi /L* log.txt
  3406. 98-05-27 malcolmh Fixed bug 4517: SOURCEDIR should be a private
  3407. property
  3408. 98-05-27 malcolmh Fixed bugs:
  3409. 4441: MsiGetProductInfo should accept DD where a
  3410. ProductCode is required.
  3411. 4442: MsiConfigureProduct should accept DD.
  3412. 4443: MsiQueryProductState should accept DD.
  3413. 98-05-27 malcolmh Fixed bug 3090: DARWIN, MsiAdvertiseProduct returns
  3414. error 12 if language id of package does not match the
  3415. system.
  3416. Behavior is now:
  3417. - If i pass a specific language:
  3418. - if the pkg supports that language, use it
  3419. - if the pkg does not support that language, fail.
  3420. - If i pass null for the language argument:
  3421. - use the default language for that pkg
  3422. -----------------------------
  3423. Release 0.10.00.4127
  3424. -----------------------------
  3425. 98-05-27 tracyf For bug 5395, added code to estimate the disk cost of the
  3426. install and rollback scripts (which can get large for an
  3427. install such as Office), to help prevent problems when
  3428. installing or uninstalling with very little disk space
  3429. available.
  3430. -----------------------------
  3431. Release 0.10.00.4127
  3432. -----------------------------
  3433. 98-05-26 johndelo Component.ComponentId has now been restored to nullable,
  3434. in order to support removal of old versions, obsolete
  3435. files and reg entries, and temp files such as help indexes.
  3436. Components with no ID will not be registered and thus
  3437. cannot be used for advertising or when uninstall is needed.
  3438. 98-05-26 mattwe We now invalidate the feature cache between
  3439. log-offs.
  3440. 98-05-26 mattwe Synchronous custom actions now use the old
  3441. message pump to work around an OB1 bug.
  3442. (repro steps in #5519). We still need to
  3443. look at all this and get it right.
  3444. 98-05-26 mattwe SCHEMA CHANGES:
  3445. IniFile.Directory_ has now been changed to
  3446. IniFile.DirProperty. Bugs #5250, #5354
  3447. Component.ComponentId is now nullable, per JohnDelo.
  3448. Validation fixes are in.
  3449. Class.AppId is now Class.AppId_. This is a foreign
  3450. key to the AppId table.
  3451. AppId table has been added, per Rob's specs.
  3452. Bug #5480.
  3453. This is being included in the unreleased 0.28 schema
  3454. changes. Full backwards compatibility to 0.27
  3455. 98-05-26 bench Fixed bug 4451. We now support displaying an "End
  3456. Dialog" on success or failure in basic UI mode or
  3457. quiet mode. To enable this dialog, add + to the /q
  3458. option on the msiexec command line, or include a flag in
  3459. the INSTALLUI_LEVEL passed to MsiSetInternalUI. Note
  3460. that this dialog is not displayed when a reboot is
  3461. required. In quiet mode, we reboot automatically, in
  3462. basic UI mode, the "you need to reboot" dialog
  3463. replaces the end dialog.
  3464. 98-05-22 t-caroln Fixed bugs 3077, 5005, and 5477 for validation.
  3465. 98-05-21 chetanp bug 4792 - We now doubly refcount the key file of
  3466. components, if the key file exists w/o being refcounted
  3467. AND the icsSharedDllRefCount flag is set for the
  3468. component.
  3469. -----------------------------
  3470. Release 0.10.00.4121
  3471. -----------------------------
  3472. 98-05-20 bench Fixed bug 5378: We are now more strict about
  3473. multiple threads using the per-process global messaging
  3474. object at the same time. If more than one call is made
  3475. to initialize the message object, the second will fail
  3476. with ERROR_INSTALL_ALREADY_RUNNING. For example,
  3477. attempting to run two installs or an install and an
  3478. advertisment in the same process will not be allowed,
  3479. with the second install/advertisement failing.
  3480. 98-05-20 malcolmh Fixed bug 4998: We now cache feature detection
  3481. information
  3482. 98-05-20 malcolmh Fixed bug 5487: Darwin now works on NT5 builds <
  3483. 1800.
  3484. 98-05-20 bench Fixed bug 5476. ForceReboot now uses the product
  3485. code on the command line instead of the path to the
  3486. source msi if possible. This will happen in the
  3487. ForceReboot action is after RegisterProduct and
  3488. PublishProduct. As a result, we will not require the source to
  3489. be present to access the msi if the product is
  3490. registered before the reboot.
  3491. 98-05-20 andrewh fixed 5491: ProvideComponent repair copies too much
  3492. when installstate_broken: its call to
  3493. MsiReinstallFeature would reinstall equal files, changed the
  3494. offending bit from REINSTALLMODE_FILEEQUALVERSION to
  3495. REINSTALLMODE_FILEOLDERVERSION
  3496. 98-05-20 andrewh 5359: Raised the shell version required for Darwin
  3497. shortcut/descriptors to be the IE4.01SP1/Win98 shell
  3498. (4.72.3110).
  3499. 98-05-20 davidmck When we open a docfile, we now see if it's open
  3500. across the network and if so, tell services not to let
  3501. the system powerdown.
  3502. Services keeps a count of the number of times it's
  3503. been called and will clear the thread state when the
  3504. counter gets back to its initial state again.
  3505. We also tell services not to power down when we're
  3506. actually running an insta..
  3507. 98-05-19 t-caroln fixed bug 3331 -- added ice12. Validates the
  3508. circular references between components and files and
  3509. components and registry keys. Go to http://robmen2 and
  3510. click on ICEMAN to test it out.
  3511. 98-05-19 malcolmh Fixed bug 5293. We have changed the cached MSI location
  3512. and the location where we store tranforms in the user
  3513. profile. We now use %WINDOWS%\Installer for per-machine
  3514. data and {UserAppData}\Microsoft\Installer for per-user
  3515. data.
  3516. As a consequence of this change, we have a slight
  3517. modification to our transform registration scheme. This
  3518. change has no implications for users of Darwin. If the
  3519. transform that we're registering is in a shell folder
  3520. then we'll replace the shell folder path with
  3521. "*ShellFolderId*", where the '*'s are literal. This is
  3522. to support roaming. For example, you might see a transform
  3523. registered as *26*Microsoft\Installer\1_2.mst. 26 is
  3524. the CSIDL for the user's Application Data folder.
  3525. We also now mark both of these folders as hidden,
  3526. and we mark transforms and icon files read-only.
  3527. MsiZap has been updated and will zap these new locations
  3528. in addition to the old ones.
  3529. 98-05-19 t-caroln fixed bugs 5455, 5456. Required updates of
  3530. _Validation table to match help file.
  3531. 98-05-19 chetanp to fix bug 5227 - needed to change the Progid table
  3532. schema. bumped up the database schema version to .28.
  3533. However we still support the older database
  3534. versions. Also the script file version remains unchanged.
  3535. 98-05-18 bench Fixed bug 5191. We now reboot automatically when
  3536. necessary in a quiet mode install. In addition, the
  3537. "Do you want to reboot now" message was changed from
  3538. WARNING to USER. This means this question will no
  3539. longer begin with "Warning 1702".
  3540. 98-05-18 bench Bug 5367: "All internal errors should only have OK
  3541. button". Before putting up an error message, we now
  3542. detect if and when we don't have a template string to
  3543. go with the error. If we do not, we restrict the
  3544. buttons displayed to just <OK>.
  3545. 98-05-18 t-caroln fixed bug 3897 -- trivial. Also updated testcab's
  3546. validation table to match schema's except for the
  3547. following columns where they differ: Feature.Directory_,
  3548. Component.KeyPath, and File.File due to the old
  3549. naming conventions of the cabinets.
  3550. 98-05-18 eugend In the fix to bug # 3028, I've modified
  3551. CMsiVolumeCostList, as to enable
  3552. authors to set the column widths. The column width
  3553. information can be
  3554. entered into the control's Text column, right after
  3555. the font specifications
  3556. (if any). This information can be entered as a
  3557. succession of positive
  3558. integers enclosed between curly braces. A maximum
  3559. number of 5 width
  3560. specificators will be taken into consideration.
  3561. Empty curly braces or {0}
  3562. will cause the respective columns to be hidden.
  3563. Reading the column width
  3564. specifiers will stop under the following
  3565. circumstances:
  3566. - a negative integer or a string that cannot be
  3567. converted into a positive
  3568. integer has been encountered.
  3569. - 5 width specifiers have been read.
  3570. - there are no more width specifiers.
  3571. If less than 5 valid, non-null width specifiers are
  3572. present, the remaining
  3573. columns will be hidden.
  3574. I've also modified the default column widths as to
  3575. better fit the columns
  3576. into the given rectangle.
  3577. I've modified the VolumeCostList control in
  3578. TEMPLATE.MSI &
  3579. TESTDB.MSI's DiskCost dialog as to have width
  3580. specificators in its
  3581. Text field.
  3582. 98-05-18 t-caroln fixed bug 5430 -- Error exporting binary data from a
  3583. table whose primary key is of type integer. Fixed
  3584. by adding a new method to IMsiCursor called GetMoniker
  3585. which handles computing the stream name. This
  3586. method is open for testing in the msiauto api. In
  3587. automation it is a read-only property of CAutoCursor called
  3588. Moniker. See msiauto.hlp and bug for details on use.
  3589. 98-05-18 malcolmh Fixed bug 5082: Storage CopyTo error when installing
  3590. package with authoring error for file sizes. We now
  3591. give an OODS error and allow retry.
  3592. 98-05-18 malcolmh Fixed bug 5450: MsiAdvertiseScript should return
  3593. error if we're doing a user assignment without
  3594. impersonation
  3595. 98-05-15 t-caroln Fixed bug 5362 -- when applying transform from
  3596. command line return ERROR_FILE_NOT_FOUND if transform file
  3597. not found and the Transform application error
  3598. otherwise
  3599. 98-05-15 bench Fixed bug 3632: "Darwin should log all failures to
  3600. file even if logging was not turned on". If an error
  3601. or warning occurs and logging is not turned on, we
  3602. will create a log on the fly to contain the error
  3603. message, and continue logging for the remainder of the
  3604. install. The dynamic log is created in the temp
  3605. directory and is called MSI*.LOG, where * is a set of random
  3606. alpha-numeric characters.
  3607. 98-05-15 mattwe Fixed Bug 4499: The UpperCase type in _Validation now
  3608. works in tandem with any foreign key validation.
  3609. The Feature.Directory_ column now must be both a foreign
  3610. key to the Directory table, *and* UPPERCASE. (a public
  3611. property.)
  3612. 98-05-15 malcolmh Fixed bug 5341: The "preparing to install" dialog
  3613. comes up with the network resource dialog even when
  3614. we're not installing
  3615. 98-05-14 mattwe Fixed Bug 5353: Validation now does no checking on foreign
  3616. keys for the IniFile.Directory_ or RemoveIniFile.Directory_
  3617. This is to allow AppSearch to fill in properties as needed.
  3618. Fixed Bug 4824: GetSelfRelativeSD automation fixes.
  3619. 98-05-14 malcolmh Fixed bug 3794: AdminInstallFinalize needs to set the
  3620. DISABLEMEDIA property during admin install if installing from
  3621. compressed source
  3622. 98-05-14 malcolmh Fixed bug 3774: AdminInstallFinalize needs to set
  3623. the MEDIAPACKAGEPATH property during admin install
  3624. 98-05-14 bench An added restriction has been made for the placement
  3625. of the RemoveOldProducts action. This action may be placed
  3626. in one of the following locations:
  3627. 1) before InstallInitialize
  3628. 2) after InstallFinalize
  3629. 3) between InstallExecute and InstallFinalize, where no other
  3630. installation actions are in the same range.
  3631. 98-05-14 t-caroln Fixed bug 4461. Change was minor where changed the
  3632. WriteLog calls to Message(imtInfo...) in the
  3633. ValidateTransform code.
  3634. 98-05-14 bench Fixed bugs 5083 and 5084, both of which dealt with
  3635. backup files being left around in low disk space
  3636. conditions. The fix for these bugs was more general: the
  3637. CMsiFileCopy object will delete any files it has
  3638. partially installed after an error or cancellation
  3639. occurs. This is true for both compressed and uncompressed
  3640. file copy.
  3641. 98-05-14 malcolmh Fixed bug 5416: AV in PublishSourceList when
  3642. DISABLEMEDIA=1
  3643. 98-05-13 chetanp fixed bug 5318 - now we do not error if attempting
  3644. to remove from a non existent inifile/ folder.
  3645. 98-05-13 malcolmh Fixed bug 4929: SourceList creating duplicate
  3646. entries
  3647. 98-05-13 malcolmh Fixed network resource dialog bugs:
  3648. 4801: Source dialog requires full path to MSI;
  3649. doesn't allow just path to folder
  3650. 4932: Network Resource dialog doesn't accept a
  3651. directory path without a trailing backslash
  3652. 4928: Inaccurate error message when sourcelist fails
  3653. to find source MSI
  3654. 98-05-13 mattwe We now cached the local system SID. It looks like
  3655. the code intended to do this (sets a flag, saves the
  3656. value in a static,) but the code never actually
  3657. took advantage of either.
  3658. 98-05-13 mattwe Bug 5374: Removed unused property "Registraton" (sic)
  3659. from simple, testdb, and msispy.
  3660. Fixed several other un-relnote-worthy bugs. See raid.
  3661. 98-05-13 bench Fixed bug 4036: "Installation fails when TEMP
  3662. environment variable not found" Our logic for locating the
  3663. TEMP directory is hopefully final. We now do the
  3664. following: If %TMP% is defined, we use that directory.
  3665. Otherwise, if %TEMP% is defined, we use it.
  3666. Otherwise, on 9X we use %windows%\temp and on NT we use
  3667. %systemdrive%\temp. In all cases, if the directory does
  3668. not exist, we create it. Note that from the
  3669. service, we always use %windows%\msi as the temp directory.
  3670. -----------------------------
  3671. Release 0.10.00.4113
  3672. -----------------------------
  3673. 98-05-13 chetanp Fixed bug 5398:We now support a new flag INSTALLMODE_NODETECT
  3674. for the dwInstallMode argument in the MsiProvideQualifiedComponent
  3675. and MsiProvideComponent APIs. This flag skips the component key
  3676. path detection logic. Hence setting this flag will cause darwin to
  3677. return success and the key path in scenarios where the component
  3678. was installed but the key path was (externally) deleted.
  3679. 98-05-12 mattwe Bug #5222: "SYSTEM" account is localized to another
  3680. name on foreign systems. We've changed the security
  3681. internals to recognize this special account, and
  3682. look them up in a localization independent fashion.
  3683. this will prevent the need for localizing the
  3684. LockPermissions table.
  3685. Bug #5283: Command line properties must now start
  3686. with an alpha numeric character. This prevents
  3687. the command line "Prop1=Value2" from being
  3688. misinterpreted as a value name of "Prop1.
  3689. People have commonly messed this up by simply removing
  3690. the obsolete /o command line switch, without fixing
  3691. the quotes.
  3692. 98-05-11 malcolmh Fixed bug 5361: Transforms: Unable to cache
  3693. transform if the full path is not passed on the command line
  3694. 98-05-11 malcolmh Fixed bug 4249: Handler error running an .msi in UI
  3695. mode when no UI tables are included.
  3696. 98-05-08 mattwe Bug 4811: We now retry to download cabinets from
  3697. the internet. Normally, if we can't find a file
  3698. from source media, it's considered an authoring
  3699. error/debug failure. However, the internet is a
  3700. little more flakey, and there's a chance the file
  3701. will re-appear.
  3702. 98-05-08 mattwe Feature.Attributes now validates the exact set of
  3703. allowable values.
  3704. 98-05-07 mattwe Bug 2802: Set validation of integers never worked.
  3705. We do now. Also, changed several Validators that
  3706. were contiguous sets (0;1;2;3) to ranges. Updated
  3707. ServiceControl.Event and Feature.Attributes to new
  3708. sets based on the newly detected failures.
  3709. 98-05-07 malcolmh Fixed bugs 4735, 2301: Feature usage metrics are now
  3710. functional. We ACL the parent of the usage key so
  3711. that Everyone can write to it.
  3712. 98-05-07 malcolmh Fixed bug 4042: After configure TestDB to source,
  3713. MsiGetComponentPath returns garbage for the component
  3714. with regkey as KeyPath. We now handle registration of
  3715. run-from-source registry keypaths correctly.
  3716. 98-05-07 malcolmh Fixed bug 4117: Source dialog persists despite
  3717. hitting Cancel
  3718. 98-05-07 malcolmh Partially fixed bug 3983: Asserts when disconnected
  3719. from network. We no longer assert, and we allow a
  3720. retry, but we still get a storage.copyTo error at the
  3721. end of the install.
  3722. 98-05-07 tracyf Added the ability for the Installer to detect, if an
  3723. out-of-disk-space condition is encountered, whether
  3724. there would be enough disk space to complete the
  3725. install if rollback were to be disabled. If so, the
  3726. author now has the option to prompt the user whether to
  3727. continue without rollback. Alternatively, the author
  3728. can specify that the Installer should silently
  3729. disable rollback and continue, or fail with the normal
  3730. out-of-disk-space error. Implementation of this
  3731. functionality involves two new properties (OutOfNoRbDiskSpace
  3732. and PROMPTROLLBACKCOST), and a new control event
  3733. (EnableRollback). TestDB has been updated to use these
  3734. new elements (see the ControlEvent table), and new
  3735. content describing them will be added to the help file.
  3736. 98-05-06 malcolmh Fixed bug 5256: Need to make
  3737. MsiGetComponentFromDescriptor append args. For
  3738. MsiProvideComponentFromDescriptor we now quote the path and append the args. The
  3739. argsOffset is now always set to 0.
  3740. 98-05-06 malcolmh Fixed bug 5295: We need to change from using
  3741. HKCU\{sid}. We now use RegOpenUserClassesRoot. This should
  3742. have no noticable external effect.
  3743. 98-05-06 malcolmh Fixed bug 5332: Need to use new SHGet API that takes
  3744. a user token
  3745. 98-05-06 andrewh 5193: UninstallString (s) no longer have the full
  3746. path attached to msiexec.exe: office installs from
  3747. network had their uninstall strings pointing to msiexec
  3748. on the network [when darwin was ran from source to
  3749. start the install] causing uninstalls to fail unless the
  3750. network installpoint was available
  3751. 98-05-06 bench Fixed bug 4702: "Assert in engine.cpp when service
  3752. is not registered. Bad errors." If you run an
  3753. install as a service, then with the service not registered,
  3754. you will now recieve a nicer error message and no
  3755. asserts.
  3756. -----------------------------
  3757. Release 0.10.00.4106
  3758. -----------------------------
  3759. 98-05-05 johndelo Bugs 5040,5028 Custom action ignore return flag (+64)
  3760. now also ignores execution errors or failure to load,
  3761. but does not ignore authoring errors or crashes. When
  3762. this flag is set, any errors are written to the log,
  3763. but the execution continues as if no error occurred.
  3764. 98-05-05 johndelo Bug 4706: MsiSetExternUI now remembers the old message
  3765. filter and context when returning the previous handler.
  3766. When the old handler is passed back with 0 for the filter,
  3767. the cached values are restored. Old handlers may not be
  3768. called directly via the pointer, but may be restored by
  3769. passing it back to either the "A" or the "W" interface.
  3770. 98-05-05 bench Fixed bug 5319. The Validation type for the
  3771. Shortcut.Name column (specified in the _Validation table)
  3772. was Text. This was changed to Filename. As a result,
  3773. if you currently have any shortcut names that are not
  3774. valid Filename's (aren't SFN|LFN for example) your
  3775. package will fail to validate.
  3776. 98-05-05 mattwe MsiInfo: will now give an error message for invalid
  3777. integers, rather than setting a value of 0. (code review.)
  3778. 98-05-05 mattwe Bug 5172: Services -- when a service fails to respond to a
  3779. control event, we will automatically retry for 30 seconds.
  3780. This will prevent most spurious errors from misbehaving
  3781. services.
  3782. Bug 4940: Services rollback -- When rolling back a service
  3783. that has a user name, a failure to re-install will not result
  3784. in a user error. We cannot recover the password for the
  3785. service, so the rest of the rollback should continue.
  3786. 98-05-04 bench Fixed bug 3851 in which transform validation of
  3787. product versions was broken. This should work just fine
  3788. now.
  3789. 98-05-04 malcolmh Fixed bug 5284: Application Error when
  3790. MsiAdvertiseScript(0, 0, 0, 0) is called.
  3791. 98-05-04 malcolmh Fixed bugs:
  3792. 5067: DOC:ixoSourceList opcodes parameters need to
  3793. be updated in msiauto.hlp.
  3794. 5075: DOC: ixoProduct opcodes have parameters that
  3795. need to be added to msiauto.hlp.
  3796. 4761: MsiProvideComponent(szProductCode, szFeature,
  3797. unknownComponentID, 0, 0, 0) returns
  3798. ERROR_INSTALL_FAILURE(1603) but actually installed
  3799. szFeature.
  3800. MsiProvideComponent and related functions now return
  3801. ERROR_UNKNOWN_COMPONENT if the specified component
  3802. is not in the specified feature.
  3803. 4127: No way to trigger a launch condition based on
  3804. the install type (ADMIN, ADVERTISE, vs INSTALL). The
  3805. ACTION property is now set to the default action.
  3806. 98-05-04 bench Fixed bug 5254: Added the ProductID property (with a
  3807. value of "none") to the template.msi property table.
  3808. Since the username and company are not registered
  3809. by the RegisterUser action if the ProductID property
  3810. is not set, the workaround to register these values
  3811. for packages without ProductID's is to set this
  3812. property to "none."
  3813. 98-05-01 bench Fixed bug 3483: Files fail the scopes validation
  3814. error because they have the wrong file version format.
  3815. Validation now excepts file versions of the format
  3816. XXXX.XXXX.XXXX.XXXX where X is a digit.
  3817. 98-05-01 bench Fixed bug 2160: BindImage, UpdateResource, etc.. may
  3818. not update installed file when old file is in use.
  3819. If an existing file is in use and we install the new file
  3820. to a temporary location, we will bind and update resources
  3821. in the temporary file.
  3822. 98-05-01 eugend I've added the Arial10 font into TextStyle table and
  3823. the new DefaultUIFont
  3824. property - set to Arial10 - into Property table.
  3825. I've also changed the functionality
  3826. in CMsiControl::ProcessText to use the font specified
  3827. by the DefaultUIFont
  3828. property, if present and no other font has been
  3829. specified for a control.
  3830. If the DefaultUIProperty is not defined, the fonts
  3831. will be selected as they used to be.
  3832. 98-05-01 bench Fixed bug 5128: RemoveIniFile.Directory_ field
  3833. should allow a property to be used.
  3834. The RemoveIniFile.Directory_ value need not be a
  3835. foreign key to the Directory table anymore. This is
  3836. similar to the RemoveFile.DirProperty column. The
  3837. column name may be changed in a future schema version
  3838. update. The _Validation table was also changed to
  3839. reflect this (no longer a foreign key column).
  3840. -----------------------------
  3841. Release 0.10.00.4030
  3842. -----------------------------
  3843. 98-04-30 bench Fixed bug 4635: Fixed. We now honor the official
  3844. DisableRollback policy, and ignore the old "Disable"
  3845. value under HKLM\SW\MSFT\Windows\CV\Installer\Rollback.
  3846. 98-04-29 tracyf Support for the old "Directory_Configurable" column
  3847. name in the Feature table has been removed. The
  3848. newer "Directory_" column name is now mandatory.
  3849. -----------------------------
  3850. Release 0.10.00.4028
  3851. -----------------------------
  3852. 98-04-28 malcolmh Fixed bug 5241: Apps don't show in ARP. The bug was
  3853. in the UNICODE version of MsiEnumProducts.
  3854. -----------------------------
  3855. Release 0.10.00.4028
  3856. -----------------------------
  3857. 98-04-27 malcolmh Fixed bug 4760: MsiProvideQualifiedComponent should
  3858. return ERROR_INDEX_ABSENT on unknown qualifier.
  3859. 98-04-27 malcolmh Fixed bug 4045: MsiProvideComponentFromDescriptor
  3860. returns 1610 with valid DD, it should return
  3861. ERROR_UNKNOWN_PRODUCT(1605)
  3862. 98-04-27 malcolmh Fixed bug 3476: MsiQueryProductState returns
  3863. INSTALLSTATE_ABSENT after MsiAdvertiseProduct.
  3864. We now return 4 possible states:
  3865. -INSTALLSTATE_UNKNOWN: the product is not advertised
  3866. or installed
  3867. -INSTALLSTATE_ADVERTISED: the product is advertised
  3868. but not installed
  3869. -INSTALLSTATE_DEFAULT: the product is installed for
  3870. the current user
  3871. -INSTALLSTATE_ABSENT: the product is installed for a
  3872. different user
  3873. 98-04-24 bench Fixed bug 5173: MsiCollectUserInfo was completely
  3874. broken with various asserts and even an AV on NT. The
  3875. code behind this API was essentially re-written to
  3876. register the user information in a more direct way. It
  3877. should be much less error-prone now.
  3878. -----------------------------
  3879. Release 0.10.00.4024
  3880. -----------------------------
  3881. 98-04-22 bench Fixed bug 4977/5202: MsiEnumProducts will return
  3882. ERROR_BAD_CONFIGURATION if a key name under
  3883. HKCR\Installer\Products is the wrong size. In particular, this
  3884. will catch product squids left over from older Darwin
  3885. installs.
  3886. 98-04-22 mattwe 4806: specifying /l on the command now will
  3887. error if you don't specify a log file name.
  3888. Reviewed major chunks of services and environment
  3889. string handling in execute.cpp
  3890. 98-04-22 bench Fixed bug 5184: MsiZap was not clearing the key
  3891. HKCU\Software\Classes\Installer, which exists on NT 5.
  3892. -----------------------------
  3893. Release 0.10.00.4021
  3894. -----------------------------
  3895. 98-04-20 bench Fixed bug 4922: Upgrade fails to remove old product
  3896. information. This fix may have affected nested
  3897. installs, especially source list and client registration.
  3898. 98-04-20 malcolmh Fixed bug 5032: machine assignment fails to install
  3899. 98-04-20 malcolmh Fixed bug 4262: Cannot advertise an alpha package on
  3900. a x86 machine. MsiOpenPackage disables platform
  3901. validation. MsiAdvertiseProduct disables platform
  3902. validation when generating an advertise script.
  3903. 98-04-20 mattwe 3944: Changed validation for Verb.Verb from Identifier
  3904. to Text. This matches the help file.
  3905. 98-04-20 chetanp bugs 5145, 3568 - changed MsiEnumComponentQualifier
  3906. API to return exact Qualifier and AppData buffer
  3907. sizes in case or ERROR_MORE_DATA. NOTE: This function has
  3908. changed extensively.
  3909. 98-04-17 bench Fixed bug 4519: Setup to create shortcuts in the
  3910. common group, not personal group. The fix was to include
  3911. all public properties that have been added or changed
  3912. from their persistent values to the Properties value in
  3913. the InProgress key. This ensures that all the options set
  3914. by the user during the first half of an install are used
  3915. after a reboot during the second half of the install.
  3916. -----------------------------
  3917. Release 0.10.00.4017
  3918. -----------------------------
  3919. 98-04-17 chetanp fixed smoke test blockers - bugs 3597, 3640, 3697
  3920. -----------------------------
  3921. Release 0.10.00.4016
  3922. -----------------------------
  3923. 98-04-15 mattwe 4776: Validation no longer complains repeatedly when a
  3924. column lacks a validation rule. It complains about
  3925. each column once per database, rather than once per row.
  3926. 98-04-15 andrewh 5009 - Shortcuts to a path with multibyte characters
  3927. created wrong (TextSize->CharacterCount fix)
  3928. 98-04-13 malcolmh Bug 4236: MsiServer methods no longer necessary/security
  3929. risk possibility
  3930. Automation changes:
  3931. - Server/Conman.ValidatePackage has been removed
  3932. - GetInProgressInstallInfo has been removed (it's now
  3933. an engine method that's not exposed through
  3934. automation)
  3935. - RunScript has moved from Server to Conman
  3936. 98-04-13 malcolmh Bug 4237: IMsiServer interface method Reboot poses a
  3937. security risk
  3938. Reboot has been removed from the MsiServer
  3939. interface. It's now done in the Engine. If we're
  3940. running a managed app then we'll Reboot with
  3941. elevated permissions otherwise we'll reboot with
  3942. user permissions.
  3943. 98-04-13 malcolmh Bug 4168: Transform: When launch from current dir,
  3944. transform causes assert without full path
  3945. We now prepend the current directory to transforms
  3946. that are specified via relative paths. This is
  3947. accomplished by passing a private CURRENTDIRECTORY property
  3948. from the client to the server.
  3949. 98-04-13 malcolmh Bug 2275: mmode fails if cached db isn't found
  3950. We now go to the source to get a new cached
  3951. database if the cached one is missing.
  3952. -----------------------------
  3953. Release 0.10.00.4009
  3954. -----------------------------
  3955. 98-04-09 johndelo Bug 5007: obsolete defines in msiquery.h, MSIMESSAGE_*
  3956. have been removed. Use INSTALLMESSAGE_* defines instead.
  3957. 98-04-09 bench Bug 5012: we now use the full UNC path of msiexec in
  3958. the RunOnce key written by the ForceReboot action.
  3959. This was effecting the Office install where they run
  3960. Darwin from a network share and only install Darwin
  3961. after the reboot. If the connection was not restored
  3962. after reboot, the installation could not continue.
  3963. 98-04-09 bench Bug 3676: we now continue logging after a reboot
  3964. caused by the ForceReboot action.
  3965. 98-04-08 malcolmh Fixed bugs:
  3966. 5011: We should use HKCU instead of HKU\SID
  3967. 5006: ODBC failure when called from MSI service
  3968. Custom actions can now use HKCU directly instead
  3969. of using HKU\SID.
  3970. 98-04-08 tracyf Fixed bug 4966. Fixing this required that the
  3971. Condition be processed BEFORE the installed states of
  3972. features and components are determined (see the bug
  3973. resolution for details). Thus, expressions in the
  3974. Condition table can no longer include references to the
  3975. installed states of features or components (even before
  3976. this fix, references to installed states won't work in
  3977. some instances anyway, for reasons related to the
  3978. bug). The docs will be updated to call out this
  3979. restriction.
  3980. -----------------------------
  3981. Release 0.10.00.4008
  3982. -----------------------------
  3983. 98-04-07 bench Bug 4979. To help alleviate some of our timeout
  3984. problems but also allow us to track down these issues
  3985. easily, the following changes have been made:
  3986. 1) the default timeout has increased from 20 to 60 seconds
  3987. 2) a new policy value has been introduced to set the timeout value.
  3988. this value is "Timeout" (DWORD) under
  3989. HKLM\Software\Policies\Microsoft\Windows\Installer
  3990. and is the number of seconds that the "worker" thread can go
  3991. without pinging the UI before the "Installer not responding"
  3992. dialog is displayed.
  3993. -----------------------------
  3994. Release 0.10.00.4007
  3995. -----------------------------
  3996. 98-04-07 bench Bug 4961: add Admin install capability to MsiSpy.
  3997. To facilitate this, all files (for both platforms) are
  3998. now copied to each image on \\united\darwin and
  3999. \\united\darrel.
  4000. 98-04-06 mattwe Fixed part of 4944. Removed /o references from
  4001. command line help. TESTING! This is your second
  4002. relnotes note to remove /o from your tests.
  4003. The next build released will have debug asserts
  4004. enforcing this, and the next will have all support
  4005. for /o removed.
  4006. 98-04-06 malcolmh Bumped script version due to bug 4962 changes.
  4007. 98-04-06 malcolmh Fixed bug:
  4008. 4962: Need to update ARP properties and values
  4009. Changed name:
  4010. PWNOMODIFY -> ARPNOMODIFY
  4011. PWNOREMOVE -> ARPNOREMOVE
  4012. SupportURL -> ARPHELPLINK
  4013. SupportPhone -> ARPHELPTELEPHONE
  4014. Added:
  4015. ARPAUTHORIZEDCDFPREFIX
  4016. ARPCOMMENTS
  4017. ARPCONTACT
  4018. ARPINSTALLLOCATION
  4019. ARPNOREPAIR
  4020. ARPREADME
  4021. ARPSIZE
  4022. ARPSYSTEMCOMPONENT
  4023. ARPURLINFOABOUT
  4024. ARPURLUPDATEINFO
  4025. The code now matches the registry spec.
  4026. 98-04-06 mattwe Added IMPFAOW to latebind.h You can now use the IMPFAIL
  4027. semantic for AORW imports. Also modified WININET and
  4028. URLMON to be completely optional. (This wasn't quite
  4029. working before.)
  4030. -----------------------------
  4031. Release 0.10.00.4006
  4032. -----------------------------
  4033. 98-04-06 bench added a third public header: msidefs.h. This
  4034. purpose of this file is to provide common data definitions
  4035. to custom actions and authoring environments (users
  4036. of msiquery.h). Currently this file contains the
  4037. definitions for all exposed properties and the various
  4038. values each integer column may contain. This file has
  4039. been dropped to the COMMON folder along with msi.h
  4040. and msiquery.h.
  4041. 98-04-06 mattwe 4951. We now no longer attempt to set security on
  4042. backup file directories on REMOTE volumes. This
  4043. never worked, so the fix simply prevents the install
  4044. from failing.
  4045. -----------------------------
  4046. Release 0.10.00.4003
  4047. -----------------------------
  4048. 98-04-03 tracyf For bug 2985, Darwin error codes and messages have
  4049. been totally revamped. Most messages that were
  4050. previously ship messages (i.e. appear in the Error table
  4051. and thus require localization) have been changed to
  4052. debug-only. Only those messages that present
  4053. understandable information to the average user have
  4054. remained as ship messages. In doing this, we've reduced
  4055. the number of messages in the Error table from 356 to 68.
  4056. 98-04-03 mattwe 2823: New and improved command line parsing.
  4057. TESTING/DOCUMENTATION: all references to the /o
  4058. command line option should go away. The new method
  4059. is to specify PROPERTY=VALUE at any point in the
  4060. command line. To include spaces, use:
  4061. PROPERTY="VALUE VALUE". For including a quote
  4062. within a quoted string, use two quotes:
  4063. PROPERTY="QUOTE "" QUOTE". In a non-quoted string,
  4064. do not double quote. PROPERTY=QUOTE"QUOTE.
  4065. The /o flag has been left in place for the time
  4066. being to allow for backwards compatibility,
  4067. but will slowly go away. See here or SETUPSUP
  4068. for more details.
  4069. 98-04-03 malcolmh Removed unused Regkey.RemoveSubKey method.
  4070. 98-04-02 malcolmh Partial fix for bug:
  4071. 2985: WORK ITEM: Fix error codes
  4072. The error codes in database.h, iconfig.h, regkey.h,
  4073. and services.h have changed.
  4074. 98-04-02 malcolmh We now set the Timestamp field in the script header.
  4075. The time stamp is an integer value whose high-order
  4076. word is the DOS date, and low-order word is the DO
  4077. time.
  4078. 98-04-02 malcolmh Fixed bug:
  4079. 2126: Work item: Remove ProgMan support
  4080. This includes some opcodes, some services methods,
  4081. and some actions.
  4082. 98-04-02 chetanp we now always shared dll refcount all files that go
  4083. to the system folder and doubly refcount any files
  4084. that exist in the system folder w/o a shared dll
  4085. refcount.
  4086. 98-04-01 johndelo Changed GUID compression for registry data - Bug 4343
  4087. GUIDS now are stripped of punctuation and the bytes
  4088. are reordered low-to-high order for best performance.
  4089. GUIDS packed into MSI descriptors have not changed.
  4090. PackGUID and UnPackGUID functions in RunScript.exe
  4091. (as well as internal functions) now accept an enum
  4092. to designate the compression to use:
  4093. ipgFull = 0 - no compression, simply copies GUID
  4094. ipgPacked = 1 - reordered hex digits only, len=32
  4095. ipgCompressed = 2 - re-encoded text, len=20
  4096. Packed is used for reg data, Compressed for descriptors.
  4097. All MSI apps should be uninstalled before using this
  4098. build, to avoid leaving obsolete info in registry.
  4099. ShowMsi.vbs and RunScrpt.exe have been updated.
  4100. 98-04-01 malcolmh Fixed bug:
  4101. 4011: Msiexec /a should be remapped to mean "admin"
  4102. *** CHANGE TO MSIEXEC COMMAND-LINE FLAGS ***
  4103. - Admin installs (formerly /N) now use /A
  4104. - Advertising (formerly /A) now uses /J
  4105. 98-04-01 malcolmh Fixed bugs: (NT5 app deployment)
  4106. 4906: Forced uninstall of apps fails
  4107. 4894: App Publishment installs into wrong user profile
  4108. 98-04-01 bench The LanguageId property has been replaced by the
  4109. UserLanguageID and SystemLanguageID properties.
  4110. 98-04-01 bench Replaced the VersionEngine and VersionServices
  4111. properties with a single VersionMsi property.
  4112. 98-04-01 mattwe bug 4701, 4897 - Internet optimization of file://
  4113. protocol. Instead of caching the database now,
  4114. we use the standard practice of stripping the file://
  4115. part, and using the resultant path. WININET does
  4116. this in one of its APIs.
  4117. Also, we now handle the variety of forward/backslashes
  4118. that you should be familiar with in the shell.
  4119. 98-04-01 chetanp bug 4830 - we now support "short uninstall". We now
  4120. have 2 separate flags for MsiAdvertiseScript -
  4121. SCRIPTFLAGS_REGDATA_APPINFO for application registry data
  4122. (OLE goop) and SCRIPTFLAGS_REGDATA_CNFGINFO for darwin
  4123. cnfg. data. The SCRIPTFLAGS enums have changed.
  4124. However we will be binary and source level compatible
  4125. with the older values for some time.
  4126. 98-04-01 chetanp bug 4473 - we now place the SYSTEM ACL on the
  4127. published product key if we are called inproc
  4128. (MsiAdvertiseProduct) by the LocalSystem (by a service) or if we
  4129. are running as a service and we are called to
  4130. advertise a product by an admin.
  4131. -----------------------------
  4132. Release 0.10.00.4001
  4133. -----------------------------
  4134. 98-03-31 tracyf In response to bug 4881, the REINSTALLMODE_REPAIR
  4135. bit (an argument to the MsiReinstallProduct and
  4136. MsiReinstallFeature API's) is now obsolete and is ignored.
  4137. The same goes for the 'r' option used on the command
  4138. line, and in the REINSTALLMODE property. The
  4139. reinstall options are now determined solely by the other
  4140. reinstall bits.
  4141. 98-03-31 mattwe Bug #4898: Fixed FormatText for embedded nulls.
  4142. In a string to be formatted "foo[~]" the string
  4143. length should be 4, not 3, and includes two nulls
  4144. at the end. This should be the rebuild of 3931.
  4145. -----------------------------
  4146. Release 0.10.00.3931
  4147. -----------------------------
  4148. 98-03-30 johndelo Updated GUIDS in TestDb, to vary the low order word.
  4149. Uninstall TestDb before using this build, unless you
  4150. want to test the component thrashing mechanism.
  4151. 98-03-30 johndelo Support for actions run at successful execution termination
  4152. (commit). Custom action flag icaCommit added to permit
  4153. a custom action to execute on success, similar to rollback.
  4154. 98-03-30 malcolmh Fixed bug:
  4155. 4488: Nested Install in Testdb doesn't work on
  4156. NT4.0.
  4157. I didn't fix the original cause of this bug, but I
  4158. fixed the most recent cause which was an
  4159. impersonation problem. I changed our impersonation count to be
  4160. per-thread instead of per-process.
  4161. 98-03-30 mattwe 4245: Validation skipping sequence tables.
  4162. We now validate all 6 sequencing tables, and have added
  4163. two new command line flags for the second option.
  4164. -seq validates only the sequence table
  4165. -seqall validates only the sequence tables, but does
  4166. not end after an error. The final result is not
  4167. reliable. However, you get to see all the errors in
  4168. one run.
  4169. I've also added _InstallValidate records for several
  4170. new actions added since sequencing was turned off,
  4171. and slightly tweaked the _Sequence table for
  4172. optional bits on RegisterMIME and RegisterExtensionInfo
  4173. 98-03-30 bench Fixed bugs:
  4174. 4212: No indicator Rollback is running.
  4175. 4313: While resume installing is in progress,please let
  4176. the user know.
  4177. 4469: Second install runs in no UI mode after rolling back
  4178. another product install.
  4179. All bugs dealt with the UI that is used during rollback and
  4180. rollback cleanup. Prior to this change, all progress for
  4181. rollback or cleanup was done using the basic UI. With recent
  4182. changes to our execution model (seperate UI thread, generating
  4183. script on server side) this stopped working. The problem was
  4184. that a UI interface was being created within the service for use
  4185. by the rollback processing, but the interface must be created on
  4186. the client side to operate correctly.
  4187. The fix is to use whatever UI the client side is currently using.
  4188. This wasn't done before because if the full UI was being used, it
  4189. may have had a cancel button or may not have had a progress bar.
  4190. These problems have been overcome by disabling the cancel button
  4191. on the full UI (we know which control is the cancel control because
  4192. the author specifies this) and we just assume that the dialog will
  4193. have a progress bar on it. Thus, if you are using full UI and
  4194. either need to rollback a suspended install or need to rollback the
  4195. current install, the full UI will be used to display the rollback
  4196. progress. This is a change from previous behaviour.
  4197. 98-03-30 tracyf Added the internal-only MsiRegisterSysHandle,
  4198. MsiCloseSysHandle, and MsiCloseAllSysHandles functions.
  4199. These routines allow Darwin to clean up open system
  4200. handles (file handles, mutex handles, etc) in case of a
  4201. fatal error (out of memory, etc). Any handles that
  4202. are currently closed using WIN::CloseHandle should use
  4203. these routines instead.
  4204. 98-03-27 malcolmh Fixed bug:
  4205. 4294: LastUsedSource entries don't match spec
  4206. The LastUsed* values are now combined into one
  4207. value.
  4208. 98-03-27 malcolmh Fixed bugs:
  4209. 3799: Make sure all environment variables are
  4210. expanded in the context of the user
  4211. 3987: Transform: Uninstall cannot apply transform
  4212. from local cache
  4213. 4873: Assert in latebind.h when running on Windows 95
  4214. in CoSetProxyBlanket
  4215. -----------------------------
  4216. Release 0.10.00.3927
  4217. -----------------------------
  4218. 98-03-26 chetanp bug 4826 - added the Extension.MIME_ column for the
  4219. Content Type associated with the Extension. This
  4220. allow us to have multiple Extensions point to the same
  4221. Content Type (previously this was not possible due to
  4222. the fact that we were gathering this association from
  4223. the MIME table)
  4224. 98-03-26 chetanp bumped up script version to 16 due to changes in
  4225. the Extension registration opcodes
  4226. 98-03-26 chetanp the Extension registration opcodes now take the associated
  4227. ContenType
  4228. 98-03-26 mattwe !! DATABASE VERSION 0.27 !! Backwards compatible with 0.26
  4229. 98-03-26 chetanp bug 4847 - disable timeouts for type library
  4230. registrations/ unregistrations
  4231. 98-03-26 chetanp moved the SetODBCFolders action to after
  4232. CostFinalize since it uses the Component.Action column (created
  4233. only in CostInitialize) and the SetTargetPath
  4234. function of the directory manager
  4235. 98-03-26 mattwe Added Class.RemoteName column. This is used for remote DCOM
  4236. servers. Validation suggestion: This is only valid for classes
  4237. whose context is RemoteServer32
  4238. 98-03-26 mattwe Bug 4511: Added conditionalization for components for Class,
  4239. CreateFolder, Extension, PublishComponent, Typelib, Shortcut.
  4240. This affects schema and testdb. t-robmen is changing Spy.
  4241. 98-03-26 mattwe Changed localiztion bits to NO-LOCALIZATION for Class.Argument
  4242. and Shortcut.Argument
  4243. 98-03-26 davidmck Added code to services object to
  4244. SetErrorMode(SEM_FAILCRITICALERROS) and debug code to check in places
  4245. where we used to set it that it is correctly set.
  4246. We clear it before starting Services and before
  4247. starting a process to self-reg.
  4248. 98-03-25 bench Fixed bugs:
  4249. 3389: file properties are inconsistent and/or need to be updated
  4250. properties now consistent among shipping files and include
  4251. new name "Windows installer"
  4252. 4384: In Basic UI window caption, Installer needs to have an
  4253. uppercase first character
  4254. Basic UI caption changed to just "Windows" and default text
  4255. in basic UI changed to "Please wait while Windows configures
  4256. [ProductName]."
  4257. 98-03-25 malcolmh Fixed bugs:
  4258. 4636: (NT5) Assignment not working for apps that has
  4259. shortcuts in a submenu under Programs
  4260. 4474: (NT5) Assert in execute.cpp uninstalling
  4261. published/assigned app
  4262. 4551: (NT5) Forced uninstall at winlogon when non admin
  4263. fails
  4264. 4436: Sourcelist - Cannot install on demand from
  4265. browsed source (floppy)
  4266. 4513: Feature Request: Need to implement
  4267. MsiQueryFeatureStateFromDescriptor
  4268. -----------------------------
  4269. Release 0.10.00.3924
  4270. -----------------------------
  4271. 98-03-23 malcolmh Added 'N' option to msizap to allow Uninstall key to
  4272. be processed independent of other keys.
  4273. 98-03-23 malcolmh Fixed bugs:
  4274. 4832: Blank media label is allowed even when
  4275. multiple media tables entries are present
  4276. 4763: Assert in Coreactn.cpp file installing Testcab
  4277. from floppy disks.
  4278. 98-03-23 andrewh bug 4793: "Darwin 3727 does not evaluate the IE40
  4279. NT50 condition in
  4280. the InstallSequence table correctly", added an
  4281. internal action
  4282. "ResolveSource" to ensure SOURCEDIR is set which was
  4283. the
  4284. real problem, not the condition evalution
  4285. -----------------------------
  4286. Release 0.10.00.3920
  4287. -----------------------------
  4288. 98-03-20 chetanp bug 4690: We now do not publish a Darwin Descriptor
  4289. if the corr. component is disabled (at advt time).
  4290. 98-03-20 bench Bug 4789: InstMsi and CopyMsi no longer register
  4291. Darwin as an OLE server on Win9X. This is accomplished
  4292. by calling msiexec -d (which just registers the shell
  4293. verbs) instead of msiexec -regserver on that
  4294. plaform. Having Darwin act as an OLE server on Win9X is
  4295. unecessary and only degrades performance.
  4296. 98-03-19 chetanp fixed bug 3606. We now use short file names for all
  4297. ole class server registration and always enquote our
  4298. extension servers
  4299. 98-03-19 johndelo In quiet UI mode, the default response for the timeout
  4300. dialog ("Installer is not responding"), will be "Retry"
  4301. for the first 10 timeouts, after which it will be "Cancel".
  4302. Timeout has been disabled around the database copy op,
  4303. which was known to occasionally timeout.
  4304. 98-03-19 johndelo Custom action type 34 has been changed (CustomAc.doc).
  4305. Target column for this EXE mode ONLY must contain the
  4306. complete path to the EXE along with the command arguments.
  4307. Properties may be embedded in the string, but it the
  4308. author's responsibility to quote the EXE path if needed.
  4309. Errors are not produced if the EXE cannot be created,
  4310. of if it returns non-zero and the return is not disabled.
  4311. 98-03-19 tracyf Fixed bug 4491. To fix this one, I needed to add a new
  4312. "SpawnWaitDialog" control event. This event pops up the
  4313. dialog specified in the "Argument" column of the ControlEvent
  4314. table if the specified Condition is FALSE, and keeps the
  4315. dialog up for as long as the condition remains FALSE.
  4316. As soon as the condition evaluates to TRUE, the dialog
  4317. is automatically removed. For bug 4491, this is used
  4318. to pop up a "Please wait..." dialog if the user clicks
  4319. the "Install Now" button (or the "Next" or "Disk Cost"
  4320. buttons on the Selection dialog) before background
  4321. costing is complete.
  4322. Along with the new ControlEvent, a new property has also
  4323. been defined: "CostingComplete". Thus, the conditional
  4324. statement for the SpawnWaitDialog would be "CostingComplete
  4325. = 1".
  4326. The dialog specified for SpawnWaitDialog should have
  4327. only one active Control on it - a "Cancel" button. You'll
  4328. need to add an "ExitDialog" control event tied to this button,
  4329. with an argument of "Exit". This will allow your "Wait"
  4330. dialog to be cancelled without triggering any other event
  4331. tied to the button that spawned your "Wait" dialog.
  4332. See the Dialog, Control, and ControlEvent
  4333. tables of the latest TestDB.msi for an example.
  4334. 98-03-19 bench Added the UserSID property, which is the string
  4335. representation of the user's security id. Only set on
  4336. NT. This property is useful for custom actions that
  4337. need to access registry keys under HKEY_CURRENT_USER.
  4338. When a custom action is executed in the installation
  4339. service, it may not access HKEY_CURRENT_USER
  4340. directly. Instead, it must open a key beneath HKEY_USERS.
  4341. The value of this property is the name of the key
  4342. under HKEY_USERS which may be used in place of
  4343. HKEY_CURRENT_USER.
  4344. 98-03-19 tracyf Fixed bug 4491 - The DestName column of the MoveFile
  4345. table now supports short|long filename syntax.
  4346. 98-03-19 chetanp bug 4745: Registry.Value column is now L0 inplace of
  4347. L255
  4348. -----------------------------
  4349. Release 0.10.00.3917
  4350. -----------------------------
  4351. 98-03-16 johndelo Fixed bugs 4169,4569, many transform-related bugs.
  4352. Transforms now can be applied multiply to databases
  4353. opened read-only or read-write, with tables unloaded,
  4354. loaded, saved, or previous transformed. The format of
  4355. transforms files HAS BEEN CHANGED in order to fix the
  4356. many bugs, and now represents data in the same format
  4357. as the databae files (with considerable space saving).
  4358. Also the CLSID of the storage is now validated when
  4359. applying transforms and the previous format is rejected.
  4360. MsiTran.exe view transform mode temporarily supports
  4361. both the old and the new transform file format.
  4362. An extensive transform test checked in: TestTran.vbs
  4363. The API automation function GenerateTransform now
  4364. works in the database compare mode (no transform file),
  4365. returns a boolean indicating whether differences found.
  4366. 98-03-16 malcolmh Fixed bug 4039: Darwin shows an unexpected
  4367. termination dialog when user error is on the screen.
  4368. 1) Removed imtActionDone message.
  4369. 2) Added log mode character 'f' to represent 'files
  4370. in use'. Log mode 'd' is now obsolete
  4371. 3) Added imtResolveSource message
  4372. 4) We now put up the source resolution dialog on the
  4373. client side, via the imtResolveSource message
  4374. 5) We will now pass messages on to the Basic UI if
  4375. the handler returns imsNone
  4376. 6) Changed imtCommonData's value
  4377. 98-03-16 bench Renamed Version95 property to Version9X. We will
  4378. continue to set the Version95 property, but the
  4379. Version9X will be the only documented property.
  4380. -----------------------------
  4381. Release 0.10.00.3913
  4382. -----------------------------
  4383. 98-03-12 chetanp fixed bug 4554 - nullable shellnew value now
  4384. supported
  4385. 98-03-12 chetanp ffixed bugs 4597, 4662 - MsiAdvertiseScript with
  4386. fRemoveItems set to true now no longer creates a
  4387. separate "reverse" script. We now execute the same script
  4388. with a new special "reverse advt" flag. Affects the
  4389. MsiAdvertiseScript function and the advertise
  4390. operations.
  4391. 98-03-12 davidmck Removed the SetCDInfo action from the code since it
  4392. didn't work and wasn't used.
  4393. 98-03-12 tracyf Added several optimizations to costing: during
  4394. reinstall, costing is no longer performed for any activity
  4395. not involved in the reinstall (i.e. no file costing
  4396. is done when only re-registration is being
  4397. performed). We also now cost only those components actively
  4398. being modified (this is especially significant when
  4399. installing or reinstalling a small number of
  4400. features/components)
  4401. 98-03-12 mattwe Bugs 4694, 4695: We now handle bogus slashes in
  4402. URLs by calling InternetCanonicalizeUrl.
  4403. IE handles URLs of the form http:\\ or http://,
  4404. and while backslashes are technically illegal,
  4405. they handle them. For Darwin, I could reject them,
  4406. but recognizing them is harder than calling an API
  4407. to fix them.
  4408. -----------------------------
  4409. Release 0.10.00.3910
  4410. -----------------------------
  4411. 98-03-09 chetanp bug 4113, 4390 : we now skip the source resolution in
  4412. the component installed states determination and
  4413. component management logic. Made changes to the
  4414. GetComponentPAth fn in msinst.cpp and the class and
  4415. extension processing code (which was also previously
  4416. forcing source resolution during uninstall).
  4417. 98-03-09 chetanp completed mreged nested installs support -
  4418. we impose the following restrictions on merged
  4419. nested installs -
  4420. 1. a component can occur atmost once in the same
  4421. install (no sharing of components between products in a
  4422. single install).
  4423. 2. no component in an install can be such that it
  4424. requires to thrash any other component in the same
  4425. install.
  4426. 3. a product can occur at most once in the same
  4427. install. (no P1 has P2 and P3, and P2 has P3 as well,
  4428. kindof scenarios).
  4429. 4. a product can install selective features of a
  4430. nested product. However during uninstall it has to invoke
  4431. the nested product with "REMOVE=ALL". This is needed
  4432. because we do not keep the clients of a product on a
  4433. per feature basis, but instead on the entire product
  4434. and the product needs to go away when the last
  4435. client wishes to do so (no feature of a child product can
  4436. be removed if there are more than one clients of the
  4437. product).
  4438. 5. a child install will not appear in the add/remove
  4439. control panel list of products unless it has also
  4440. been installedstand-alone.
  4441. 98-03-09 chetanp bumped up the script version to 15 due to addition of new
  4442. opcodes (see below) and change in ixoProductRegister/
  4443. ixoProductUnregister and ixoProductPublish/ ixoProductUnpublish.
  4444. 98-03-09 chetanp added ixoProductPublishClient/ ixoProductUnpublishClient
  4445. opcodes to manage the clients for a product.
  4446. 98-03-09 chetanp added ixoProductCPDisplayInfoRegister/
  4447. ixoProductCPDisplayInfoUnregister opcodes that control whether a
  4448. product appears in the add/remove control panel. These
  4449. opcodes are used only if the product is being
  4450. installed w/o a parent.
  4451. 98-03-09 eugend I've fixed bugs # 3262, 2925, 2190 & 2939.
  4452. 98-03-09 mattwe 4546: According to Malcolm, RemoveFile.FileName really should
  4453. be nullable. We changed this from nullable, to non-nullable during
  4454. a recent Scopes prompted schema clean-up...
  4455. 4318: Modified InstallExecute sequencing for InstallServices
  4456. to be NT only. (Added Condition VersionNT)
  4457. 4386: ServiceControl.Arguments validated as KeyFormatted. Already
  4458. coded that way. Still open, assigned to Doc.
  4459. 4326: Removed a redundant InternetGoOnline in msiutil, and changed
  4460. the function to recognize URLs for cabinets in execute.
  4461. 98-03-06 mattwe Bug 4470: In our rollback generation for services, we read the
  4462. value of service dependencies incorrectly, and corrupted the data.
  4463. On writing the rollback, the service couldn't be restarted, and
  4464. rollback would abort. The value should be value<null>value<null><null>
  4465. (double null terminated.)
  4466. -----------------------------
  4467. Release 0.10.00.3906
  4468. -----------------------------
  4469. 98-03-05 bench Fixed bug 4332, which required significant changes to our
  4470. PID handling:
  4471. 1) the PIDTemplate property is no longer unset after PID validation
  4472. 2) the PRODUCTID property has been renamed to PIDKEY. This property
  4473. is no longer set to the full PID after validation
  4474. 3) a new property, ProductID, is set to the full PID after validation.
  4475. If this property is not set, PID validation has not occurred.
  4476. 4) PID validation is no longer performed implicitely in the CostInitialize
  4477. and RegisterUser actions. Rather it is performed in a new action -
  4478. ValidateProductID. This action should be sequenced both before the
  4479. UI wizard in InstallUISequence and before RegisterUser in
  4480. InstallExecuteSequence.
  4481. 98-03-05 malcolmh Fixed bugs:
  4482. 4207: Need to define which error msg's should
  4483. quietly be returned to the API caller
  4484. 2493: Error opening installation log file in TEMP
  4485. directory, when TEMP directory is missing
  4486. 4456: Handling multiple Help / Detect and Repair
  4487. 98-03-05 bench Fixed bug 3379, allowing Validation to succeed even
  4488. if the _Validation tables references tables that
  4489. don't exist in the package. This will allow a package
  4490. with only a few tables to use the _Validation table as
  4491. is from schema.msi. As a result of this fix,
  4492. simple.msi and minimum.msi now use the _Validation table
  4493. from schema.msi.
  4494. 98-03-05 eugend IMsiHandler::Terminate(bool fFatalExit) implemented
  4495. - it destroys all dialogs and
  4496. all bitmaps, icons, fonts and imagelists created in
  4497. the handler should a fatal error
  4498. occur. I've also modified the way
  4499. IMsiHandler::Terminate() is called in
  4500. MsiUIMessageContext::Terminate() (in
  4501. ENGINE\ACTION.CPP file).
  4502. 98-03-04 davidmck Moved the flags for debug memory actions from the
  4503. DEBUGMEM environment variable to the _MSI_TEST
  4504. environment variable.
  4505. Currently implemented flags are:
  4506. A - check memory on alloc
  4507. F - check memory on free
  4508. I - no memory preflight init
  4509. K - keep memory allocations
  4510. M - log memory allocations
  4511. 98-03-04 malcolmh Fixed bug 4477: Msi with extended use of conditional
  4512. components crashes Darwin.
  4513. 98-03-04 malcolmh Added 'U' option to msizap. This allows removal of
  4514. only the %USERPROFILE%\MSI folder.
  4515. 98-03-04 malcolmh Fixed bug 4462: Win95 API automation functions fail
  4516. if services not initialized. DEV: Changed g_fWindows,
  4517. g_fWin95 to g_fWin9X
  4518. 98-03-03 bench This restriction has been in place for a while (ever
  4519. since script generation was performed on server
  4520. side) but I don't think it has been explicitely stated.
  4521. All Directory marked as "configurable" in the Feature
  4522. table must have names in ALL CAPS. This is required
  4523. so that if these folders are changed through the UI
  4524. on the client side, the new values may be passed
  4525. across to the server side as public properties. I have
  4526. fixed TestDb to conform to this restriction.
  4527. -----------------------------
  4528. Release 0.10.00.3903
  4529. -----------------------------
  4530. 98-03-02 mattwe Bugs:
  4531. 3776 Inconsistent nullable flags was causing build
  4532. failures in Office now that Scopes is checking.
  4533. There was another dupe on this topic.
  4534. 4339 Service being started multiple times.
  4535. After a bunch o' checking, it turns out that really
  4536. all that was happening is that we had the message
  4537. issuing from inside a wait loop. That's cleaned up
  4538. and now you'll only get one message per start.
  4539. 4430 Vital Services flag.
  4540. I chose 0x8000 0000 as a flag in the ServiceInstall
  4541. table to mark a service as vital. This overlaps
  4542. with the Bad Integer value, so that's been changed
  4543. to 0x8000 instead. I've checked with the only
  4544. client, and cleared it past them not to bump the
  4545. DB version.
  4546. 4432 Exposed automation for GetSelfRelativeSD for testing.
  4547. 98-03-02 malcolmh Fixed bugs 3547 (Remove 'run script' option /~ from
  4548. msiexec) and 4434 (CoInitialize before doing
  4549. selfreg/unreg).
  4550. -----------------------------
  4551. Release 0.10.00.3827
  4552. -----------------------------
  4553. 98-02-26 chetanp The REsource table schema has changed. The key is
  4554. now made up of the File_, ResType and ResId columns
  4555. 98-02-26 eugend Fixed Rich Edit related bugs # 4086 & 2854,
  4556. international lang. bugs # 3892,
  4557. 2945, 3447, 4400 and bug # 4303 - I've modified
  4558. CONTROLS.CPP in order
  4559. to fix the last 5 ones.
  4560. 98-02-25 bench Added new syntax for Directory.DefaultDir column:
  4561. [targetname]:[sourcename]
  4562. If the value contains a ':', the string before the ':' is
  4563. used during target path directory resolution and the string
  4564. after the ':' is used during source path resolution (or target
  4565. path resolution during admin installs).
  4566. This is useful for specifying different source and target folder
  4567. names. Also, in addition with the '.' syntax, this can be used
  4568. to add levels to either the source or target paths for a single
  4569. directory. For example:
  4570. TARGETDIR [blank] SOURCEDIR
  4571. MyAppDir TARGETDIR MyApp
  4572. Bin MyAppDir Bin
  4573. Binx86Dir BinDir .:x86
  4574. BinAlphaDir BinDir .:Alpha
  4575. will give you target paths of
  4576. MyAppDir: [TARGETDIR]MyApp\
  4577. Bin: [TARGETDIR]MyApp\Bin\
  4578. Binx86Dir: [TARGETDIR]MyApp\Bin\
  4579. BinAlphaDir: [TARGETDIR]MyApp\Bin\
  4580. and source paths of
  4581. MyAppDir: [SOURCEDIR]MyApp\
  4582. Bin: [SOURCEDIR]MyApp\Bin\
  4583. Binx86Dir: [SOURCEDIR]MyApp\Bin\x86\
  4584. BinAlphaDir: [SOURCEDIR]MyApp\Bin\Alpha\
  4585. 98-02-25 bench The NOUI property has changed to LIMITUI, since the property just
  4586. limits the UI to basic and doesn't really turn off the UI. NOUI
  4587. will still be supported for some time.
  4588. 98-02-25 davidmck Added src\install\darreg.txt. This contains all the
  4589. data needed to register darwin files at install time
  4590. without running msiexec /REGSERVER.
  4591. 98-02-24 malcolmh Fixed bugs 4323, 4334. Msizap now ignores the
  4592. SERVICE_DOES_NOT_EXIST error and delete folders and files
  4593. regardless of their attributes.
  4594. 98-02-24 malcolmh Fixed bug 4340. Added WINAPI to INSTALLUI_HANDLER
  4595. prototype.
  4596. 98-02-24 malcolmh Fixed Bug 4373. ERROR_INSTALL_TRANFORM FAILURE is
  4597. now ERROR_INSTALL_TRANSFORM_FAILURE.
  4598. -----------------------------
  4599. Release 0.10.00.3818
  4600. -----------------------------
  4601. 98-02-18 malcolmh Added the PWNOMODIFY and PWNOREMOVE properties.
  4602. These properties prevent us from writing certain values
  4603. under the Uninstall key, to disable ARP and
  4604. ProgramsWizard functionality. See the properties spec
  4605. (http://officeweb/specs/TCO/DarwinProperties.html) for full
  4606. details.
  4607. 98-02-17 malcolmh If you do msiexec /x without explicitly setting a UI
  4608. level you'll now get a prompt to confirm that you
  4609. really want to uninstall.
  4610. As /x is what the context menu uses, you'll see
  4611. this prompt when you right-click on a Darwin package and
  4612. choose Uninstall.
  4613. This does NOT affect any of the following:
  4614. - Calls through any Darwin API
  4615. - MSI.DLL
  4616. - Msiexec /x when you specify /q, /qn, /qb, /qr, or /qf
  4617. 98-02-17 chetanp The MIME.Extension_ column is now non-nullable.
  4618. removed the CreateProgmanItems and RemoveProgmanItems
  4619. actions from template installexecutesequence table
  4620. added SelfUnregModules action to template
  4621. installexecutesequence table
  4622. -----------------------------
  4623. Release 0.10.00.3817
  4624. -----------------------------
  4625. 98-02-17 chetanp schema changes -
  4626. 1. The ProgMan table has been removed
  4627. 2. Following column sizes/ attributes are
  4628. Class.Argument S255 L255 (localizable)
  4629. DrLocator.Parent s32 S32 (nullable)
  4630. DrLocator.Path s255 S255 (nullable)
  4631. IniLocator.FileName s96 s255 (size change)
  4632. RegLocator.Key s80 s255 (size change)
  4633. RegLocator.Name S50 S255 (size change)
  4634. RemoveIniLocator.FileName s96 l255 (localizable +
  4635. size change)
  4636. RemoveIniLocator.Section s96 l96 (localizable)
  4637. RemoveIniLocator.Key s128 l128 (localizable)
  4638. RemoveIniLocator.Value S255 L255 (localizable)
  4639. Shortcut.Arguments S255 L255 (localizable)
  4640. Verb.Command S255 L255 (localizable)
  4641. Verb.Argument S255 L255 (localizable)
  4642. 3. a @ in the DrLocator.Path column no longer
  4643. evaluates to <null>.
  4644. 98-02-16 tracyf Cleaned up the basic UI: it's now got an icon,
  4645. better looking font, and a simplified "Please wait..."
  4646. message instead of action specific names and data (we
  4647. still log all ActionData).
  4648. -----------------------------
  4649. Release 0.10.00.3813
  4650. -----------------------------
  4651. 98-02-12 bench Fixed the custom action flags to work correctly with
  4652. our new sequencing model. Our new flags are the following:
  4653. (the bit names may change, the values will remain the same)
  4654. (note: the first to flags only make sense for CAs duplicated
  4655. in both sequence tables)
  4656. icaFirstSequence (256) : CA run in first sequence we execute
  4657. CA in UI sequence: run whenever UI sequence is run
  4658. CA in Execute sequence: run only if UI sequence wasn't run
  4659. (as in basic or no UI)
  4660. icaOncePerProcess (512) : CA run once per engine process
  4661. (there are potentially two engine processes on NT,
  4662. one for the client running the UI sequence and one
  4663. for the server running the Execute sequence. On 95,
  4664. there is only one process running both sequences)
  4665. CA in UI sequence: run whenever UI sequence is run
  4666. CA in Execute sequence: run if in server, or in client
  4667. if basic or no UI.
  4668. icaClientOnly (768) : CA is run in client only if
  4669. connected to a server.
  4670. CA in UI sequence: run only when in the client or connected
  4671. to the server (basically only run on NT with full/reduced
  4672. UI)
  4673. CA in Execute sequence: never run
  4674. NOTE: I am unclear to the benefit of this type of CA, but
  4675. this was supported before so it is still supported.
  4676. icaInScript (1024) : same as before, only run in execution
  4677. script. As such, this only makes sense for CAs in the
  4678. ExecuteSequence table.
  4679. icaRollback (256) : same as before, only used if icaInScript is set
  4680. icaNoImpersonate (2048) : do not impersonate the user. Should work
  4681. with all custom action types, not just icaInScript CAs as before
  4682. 98-02-11 eugend I've replaced the CMsiMaskedEdit control with the
  4683. one provided by a-jhark
  4684. (this control is used only for PID number).
  4685. I've fixed bug # 3679 - the cursor doesn't move on
  4686. its own within edit
  4687. controls now.
  4688. 98-02-11 davidmck Replaced the ClearVolumeCache function in services
  4689. with ClearAllCaches so the volume and record caches
  4690. are cleared.
  4691. 98-02-11 t-robmen Added (-x) flag to MsiDB.exe. This flag will allow
  4692. you to extract a file/table out of a specfied
  4693. database.
  4694. ex: msidb.exe -dtestdb.msi -xBinary
  4695. (extracts the Binary table from the testdb.msi into a
  4696. file named Binary in you current drive)
  4697. NOTE: This flag will NOT extract storages (aka: nested msi's)
  4698. 98-02-11 bench Added MSPATCHC.dll to the TOOLS folder on
  4699. \\united\darwin. This is required by msipat.dll.
  4700. -----------------------------
  4701. Release 0.10.00.3811
  4702. -----------------------------
  4703. 98-02-11 bench Patch table: added Attributes column - a bit field
  4704. for various patch attributes. Also moved the
  4705. Patch.Sequence column to the set of primary keys to allow
  4706. multiple patches for the same file. These schema
  4707. changes are merged in with the previous changes for version
  4708. 26.
  4709. 98-02-11 bench MSPATCH: changed the dropped dll from mspatch.dll to
  4710. mspatcha.dll. The new dll contains only the patch
  4711. application apis, whereas the old dll also contained
  4712. the patch creation apis. The new dll is of course
  4713. smaller. The new dll replaces the old in the COMMON
  4714. drop folder and in the files installed by instmsi.exe
  4715. and copymsi.exe.
  4716. 98-02-11 bench Added new API: MsiCreateTransformSummaryInfo, which
  4717. creates and populates the summary information stream
  4718. of an existing transform file. This api correctly
  4719. fills in the properties with the base and reference
  4720. ProductCode and ProductVersion properties, which has
  4721. been broken for a while. Also, the
  4722. MsiDatabaseGenerateTransform api and MsiDatabase.GenerateTransform
  4723. methods no longer create the suminfo for a transform.
  4724. Updated MsiTran.exe to use the new api.
  4725. -----------------------------
  4726. Release 0.10.00.3810
  4727. -----------------------------
  4728. 98-02-10 malcolmh URL source lists are now implemented.
  4729. 98-02-10 malcolmh The minimum and maximum database versions have been
  4730. bumped. This means that your package must conform
  4731. to version 26.
  4732. 98-02-10 malcolmh The new dual-sequence table model is in place. We
  4733. now have a UI sequence and an Execute sequence for each
  4734. of the top-level actions (Install, Admin,
  4735. Advertise). Changes to your package are required. See
  4736. my mail for details.
  4737. 98-02-09 t-robmen Added (-k) flag to MsiDB.exe. This flag will allow
  4738. you to kill (remove) a file/table/storage inside a
  4739. specfied database.
  4740. ex: msidb.exe -dtestdb.msi -kBinary (removes
  4741. the Binary table from
  4742. the testdb.msi)
  4743. 98-02-09 bench Implemented change to "transaction model." Transactions are
  4744. defined as the changes that may be committed and not rolled
  4745. back should an error occur. The new model is thus:
  4746. InstallValidate - check disk space/files in use
  4747. NestedInstall - outside parent transaction - failure
  4748. of parent won't roll back
  4749. InstallInitialize - mark start of transaction, lock server
  4750. NestedInstall - merged with parent's transaction
  4751. InstallFinalize - run script and unlock server
  4752. NestedInstall - outside parent transaction - failure
  4753. won't rollback parent install
  4754. Note that InstallInitialize is a new action. ExecuteFinalize is
  4755. renamed to InstallFinalize.
  4756. 98-02-09 bench Fixed several problems with concurrent installs. We now detect
  4757. when an in-progress install is still running and don't ask the
  4758. user to rollback the install. If a running in-progress install
  4759. is found and there is UI, a retry/cancel dialog is displayed.
  4760. If no UI, ERROR_INSTALL_ALREADY_RUNNING is returned.
  4761. 98-02-09 bench The question of whether to rollback a cancelled or failed
  4762. install is now handled in an error message, whereas before
  4763. it was authored into the final exit dialog. To keep this
  4764. behaviour optional, the ALLOWSUSPEND property must be set
  4765. for this question to be asked. If this property is not set,
  4766. rollback is always performed after a cancel or failed install.
  4767. 98-02-09 davidmck Improved handler speed by adding AttributeEx
  4768. function which takes an enum rather than the string when we
  4769. know what we want.
  4770. Made the ProcessText function virtual so the rich
  4771. edit control could overload it. Improves the speed of
  4772. the rich edit control since we did all the work and
  4773. then threw it away before.
  4774. 98-02-08 johndelo Removed Localize column from _Validation table. The
  4775. localizable attribute appears in the schema definitions.
  4776. 98-02-08 johndelo ODBC: Removed Feature column from all table and
  4777. script opcodes. Advertised via PublishComponent table.
  4778. Attribute values are now nullable.
  4779. 98-02-08 johndelo Updated headers to reflect change of message type
  4780. imtDiagnostic to imtFilesInUse (see relnotes 1/31).
  4781. Msi.h now uses INSTALLMESSAGE_FILESINUSE, and log
  4782. modes supplied via MsiExec and automation use the
  4783. letter 'f' for files in use messages.
  4784. 98-02-08 bench Fixed the rollback of nested installs (that are
  4785. merged in the parent's execution script). In the
  4786. process, the ixoProductRestore operation was removed.
  4787. ixoProductInfo with no arguments has taken its place.
  4788. Bumped the script version to 13 as a result.
  4789. 98-02-08 malcolmh Added args to msizap to make it less dangerous.
  4790. 98-02-08 bench Added Upgrade table and Upgrade actions to
  4791. schema.msi and template.msi. Since the Upgrade table is not
  4792. populated, the actions currently do nothing.
  4793. 98-02-08 bench Added MIGRATE property and MigrateFeatureSettings
  4794. action. The property is a ';'-delimited list of
  4795. product codes from which to migrate feature settings. This
  4796. property is set in the FindRelatedProducts action
  4797. and when applying a patch. The action sets the feature
  4798. states for the current install to the states of the
  4799. features in the existing products. It is assumed
  4800. that the features of the existing products have the same
  4801. names as the features of the installed product.
  4802. 98-02-08 malcolmh The non-DBCS versions of MsiString.Compare and
  4803. MsiString.Extract now support embedded nulls. Embedded
  4804. nulls are treated like any other character.
  4805. 98-02-08 malcolmh Fix for bug 3214 -- spit out ixoChangeMedia before
  4806. ixoDatabaseCache.
  4807. 98-02-08 malcolmh Fixed bug 3983 -- assert when disconnecting network
  4808. card.
  4809. 98-01-26 malcolmh Darwin now creates a mutex named "__MsiPromptForCD"
  4810. when promping the user for a disk during source
  4811. resolution. This is what we already do when prompting
  4812. the user to change disks during an install.
  4813. 98-02-08 malcolmh For single disk installs the volume label in the
  4814. media table no longer has to match the actual volume
  4815. label of the media.
  4816. 98-02-08 malcolmh Source management for redist packs (and nested
  4817. installs in general) is done. The nested install will use
  4818. its parents to find an available source, and will
  4819. also use its own sourcelist if it has been installed as
  4820. a top-level install. Added SourceProduct arg to
  4821. IxoSourceListRegisterLastUsed. Added ChildPackagePath,
  4822. ChildDiskId, and Parent to IxoProductPublish &
  4823. IxoProductUnpublish. Bumped script version.
  4824. 98-02-08 malcolmh Consolidated exception handling. All exception
  4825. handling is now done in our unhandled exception handler
  4826. which is installed by the global message context
  4827. object. It is at this point that we generate the exception
  4828. message. In DEBUG builds we log the exception info
  4829. message to the debug log and display the message. In
  4830. both builds we'll write the message to the log if
  4831. logging is enabled, and we'll write the message to the
  4832. event log. The amount of exception information that we
  4833. gather is less in the ship build than in the debug
  4834. build. Also, we currently have a problem displaying the
  4835. correct symbol names for exceptions that occur in the
  4836. service.
  4837. 98-02-08 mattwe ODBC: Added rollback for translators, drivers, driver
  4838. manager and data sources.
  4839. CMsiRegKey::ValueExists(), fixed a case that could result
  4840. in either a memory leak or a over-released error record.
  4841. 98-02-07 chetanp schema change - SelfReg table no longer has
  4842. RegisterFn and UnregisterFn columns. We now only support the
  4843. default (DllRegisterServer and DllUnregisterServer)
  4844. 98-02-07 chetanp selfreg action is now run as a separate process. we
  4845. use the capabilities of msiexec to selfreg. we call
  4846. msiexec as a customaction in execute
  4847. -----------------------------
  4848. Release 0.10.00.3807
  4849. -----------------------------
  4850. 98-02-07 mattwe DATABASE VERSION 0.25. Minimum unchanged.
  4851. Internet download: Now does cabinets on a "as-needed"
  4852. basis. Basically, if you never need a file from the
  4853. cabinet, the cabinet won't get downloaded. You can now
  4854. put *any* source under a URL, and install as if from
  4855. any other source. (i.e. you can copy testdb into a web
  4856. site.)
  4857. Services: Added "vital" flag to ServiceInstall.ErrorControl.
  4858. Add 0x8000 0000 to the value, and the if the service
  4859. fails to install, you won't be provided with an ignore.
  4860. Note that the "old" mechanism is used if the vital isn't
  4861. set. (So you may not see an ignore even if vital isn't set.)
  4862. The flag won't be read (even if set,) on 0.24 and older
  4863. databases. We'll strip it and do the expected thing.
  4864. InitRegKey: fixed memory leaks for keys that couldn't
  4865. be opened due to access denied. It's now more stringent
  4866. about failing the install.
  4867. LockPermissions table: changed LockPermissions.Permissions
  4868. from a text field to a binary. <= 0.24 database will still
  4869. be read as a string. 0.25 and later are expected to be
  4870. binary.
  4871. TestDb: modified LockPermissions table to include
  4872. full control for administrators for all settings. Devs
  4873. now should have no problem doing full installs, as long
  4874. as you're an administrator. (So please unghost it.)
  4875. -----------------------------
  4876. Release 0.10.00.3806
  4877. -----------------------------
  4878. 98-02-06 t-robmen MsiDb.exe NEW features. You can now:
  4879. o (-a) Add files (usually cabinets) directly into a
  4880. darwin database
  4881. o (-r) Add storages (usually nested darwin databases)
  4882. directy into a darwin database
  4883. o Do merges, do transforms, and the above two
  4884. options simply by specifiy a target database with (-d) AND
  4885. a source database with one of the following flags:
  4886. (-m), (-t), (-a), (-r)
  4887. NOTE: The target database MUST exist before using the last NEW feature.
  4888. Use (-c) if the database does NOT exist yet.
  4889. The (-?) option reflects the additions.
  4890. 98-02-06 t-robmen Added FileSize and FileVersion to Installer OLE
  4891. Automation.
  4892. -----------------------------
  4893. Release 0.10.00.3805
  4894. -----------------------------
  4895. 98-02-05 johndelo IMsiDatabase::GetTableState has been exposed, and will
  4896. soon replace FindTable, which can no longer be supported.
  4897. For internal automation, there is a TableState property.
  4898. FindTable will supported for this release only, to allow
  4899. tests to be converted to use (Get)TableState, which allows
  4900. a particular attibute of the table to be queried. See
  4901. MsiAuto.hlp, or itsEnum in database.h.
  4902. 98-02-05 malcolmh Created MSIZAP.EXE. This is a more robust replacement
  4903. for clearreg. ** TESTING: this should be dropped instead
  4904. of clearreg. Clearreg doesn't work any more. MsiZap
  4905. does a more thorough job of cleaning your system. BE SURE
  4906. to do a msizap /? to see what it does before you run
  4907. it. Currently it's an all-or-nothing zap. If there's a need
  4908. to be more granular let me know.
  4909. 98-02-05 malcolmh Our policies are now located in their final resting spot, in:
  4910. (HKCU/HKLM)\Software\Policies\Microsoft\Windows\Installer
  4911. 98-02-05 malcolmh Implemented some new and changed policies:
  4912. - We now respect the policy values AlwaysInstallElevated,
  4913. DisableMsi, and DisableBrowse. For details on these see the
  4914. Policies, SourceList, and Security specs. In short:
  4915. - If both the user and machine AlwaysInstallElevated policies
  4916. are set then, unless we're disabled, we'll install all apps
  4917. elevated.
  4918. - DisableMsi can be set such that we won't install unmanaged
  4919. packages, or so that we'll refuse to install any package.
  4920. - DisableBrowse replaces EnableBrowse, so that we default
  4921. to allowing browsing from the source dialog.
  4922. 98-02-05 malcolmh Implemented the Security spec:
  4923. - We create a key named "Secure" under our
  4924. HKLM\Sw\Ms\Win\CV\Installer key so that we won't ever
  4925. think the key is empty and therefore won't ever delete it.
  4926. - We now ACL (secure) our registry keys and files. For a
  4927. full description see the security design doc on http://jdelo3.
  4928. In short, we put an ACL on %WINDIR%\MSI, X:\config.msi,
  4929. %USERPROFILE%\Msi, our "publish" reg keys, and our local machine
  4930. reg keys.
  4931. - We ACL OLE goop for assigned apps.
  4932. - Our ACL gives SYSTEM full control and everyone else Read
  4933. access. To delete our ACL'd keys & files you must be an admin
  4934. and you must first take ownership of the key or file and
  4935. then give yourself delete access. Or you can use MsiZap.
  4936. - We now use the %WINDIR%\Msi directory as our TEMP dir
  4937. for any secure temp files.
  4938. - We should now be storing any temp file created while we're in
  4939. the server should in a secure location. If you have an NTFS drive
  4940. and are able to delete or change any of our temp files (rollback
  4941. scripts, install scripts, temp patching files, custom action DLLs
  4942. & EXEs, temp cached database) then something's broken.
  4943. - We now support an "Impersonated" mode. In this mode we'll
  4944. impersonate during the entire install, except when we
  4945. need to access our keys and files. For these we temporarily
  4946. revert to SYSTEM privileges. This necessitated identifying
  4947. all possible locations where we were accessing secure files
  4948. and adding the Elevate call. If I've missed any places you'll
  4949. see errors like "could not write reg key blah" or "access
  4950. denied writing file blah". We will operate in this mode unless
  4951. policy directs us to do otherwise.
  4952. - Here's the logic we use to determine whether we Elevate,
  4953. Impersonate, or Frustrate. Elevate mode is what we always
  4954. used to do when the service was registered; you pretty much
  4955. have free reign on the system. Impersonate mode is described
  4956. above. And if we must reject the installation then we're sure
  4957. to Frustrate the user...
  4958. IF DisableMsi policy == 2 THEN
  4959. Frustrate
  4960. ELSE IF the app is assigned THEN
  4961. Elevate
  4962. ELSE
  4963. IF DisableMsi policy == 1 THEN
  4964. Frustrate
  4965. ELSE IF (user & machine elevate policies == 1) THEN
  4966. Elevate
  4967. ELSE
  4968. Impersonate
  4969. FI
  4970. FI
  4971. - We now determine whether an app is Assigned or not by looking
  4972. at the ACL on the published product key and seeing whether
  4973. SYSTEM is the owner. If so, then the app is assigned. This implies
  4974. that we only ACL the published product key if the app is
  4975. Assigned.
  4976. - DEV: GetTempPath is now hard to call, as we really should be using
  4977. a secure location for most of our temp files. If you see a !!!
  4978. compiler errorthat you don't understand, it's probably this.
  4979. - Our service now ACLs some keys and files when it starts:
  4980. * HKLM\Software\Microsoft\Windows\CurrentVersion\Installer
  4981. * HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\Secure
  4982. * %WINDIR%\Msi
  4983. - We only apply ACLs when we can. You won't get any ACLs on Win95 and
  4984. you won't see any ACLs on files or folders on your FAT drive.
  4985. - Added optional AdminAssigned arg to ixoProductInfo opcode. This
  4986. arg is simply a placeholder, and can be set to any value. The
  4987. ixoProductInfo operation will fill in the correct value.
  4988. 98-02-04 chetanp enhanced component sharing and thrashing support to
  4989. accomodate nested merged installs. added global
  4990. component table to communicate the component client state
  4991. transitions. we now recalculate the component
  4992. installed and action states in ProcessComponents action.
  4993. 98-02-04 tracyf Enhanced costing to support the removal of old files
  4994. via the RemoveFile table when the same file(s) will
  4995. also be installed via the File table. Without this
  4996. support, the RemoveFile costing was subtracting the
  4997. cost of removing the file, while the InstallFile
  4998. costing was also subtracting the cost of the existing file
  4999. (not knowing it was going to be removed by another
  5000. action). Now, InstallFiles costing knows if another
  5001. action is removing a file it is going to install, and
  5002. if so, reacts as if the existing file is not there
  5003. (i.e. no version checking, and it ignores the size of
  5004. the existing file).
  5005. 98-02-03 bench Upgrades/Patching: Fixed several problems, mostly to
  5006. allow patches or upgrades that change the product
  5007. code. Also added the ability for an upgrade to remove
  5008. any obsolete patches.
  5009. 98-02-02 davidmck Enhanched MSIEXEC /REGSERVER to see if msi.dll was
  5010. registered to handle the proxy code and if not, call
  5011. DllRegisterServer() in msi.dll.
  5012. 98-02-02 t-robmen When an open database handle is passed to the
  5013. OpenPackage, Dawin now correctly sets the running path.
  5014. Also, UIPreview of a database is now internally
  5015. specified by iuiNextEnum in engine.cpp and msiquery.cpp
  5016. 98-02-02 t-robmen Added FileSize and FileVersion info to runscrpt.cpp
  5017. 98-02-02 eugend Fixed bugs # 1525, 2736 - CMsiText control formats
  5018. strings that contain a path or a registry key before
  5019. displaying
  5020. them. Fixed bug # 3244 - If there are no items in
  5021. CSelectionTree control, it empties text in other
  5022. controls and
  5023. disables buttons. I've added SelectionNoItems
  5024. control event and three new events into EventMapping.idt
  5025. table.
  5026. 98-02-02 mattwe Note: I am NOT adding this to TestDB until it has
  5027. passed a round or two of testing. It mucks with
  5028. system settings which can pretty well hose you.
  5029. New optional table: Environment
  5030. Documentation forthcoming. Basically, you describe
  5031. names and values for environment variables.
  5032. New optional actions: RemoveEnvironmentStrings,
  5033. WriteEnvironmentStrings. Basically just the uninstall
  5034. and install placeholders.
  5035. New opcode: ixoUpdateEnvironmentStrings
  5036. Same opcode for 95 and NT. The AutoExecPath is only
  5037. used on 95, however. It should point at the location
  5038. where the AutoExec lives. The WIN95_ENVIRONMENT_TEST
  5039. property can be set to override this value to protect
  5040. your system.
  5041. On NT, this opcode modifies the registry directly.
  5042. On 95, it rewrites the autoexec.bat file.
  5043. 98-02-02 mattwe DB Version 0.24. Backwardly compatible with 0.23.
  5044. See services below for schema change.
  5045. Services: Added ServiceInstall.Arguments column. It's
  5046. completely optional until such time as we move the mininum
  5047. database version to 24. This column allows you to provide
  5048. startup arguments to a service. They're passed in to the
  5049. WinMain at every start, as opposed to per-start arguments in
  5050. the ServiceControl table. (Per-start means each requestor
  5051. can pass different arguments.) Bug/feature request #3919
  5052. 98-01-31 tracyf When InstallValidate detects an out-of-disk-space
  5053. condition, it now sends a message of the
  5054. imtOutOfDiskSpace type to the Message facility (instead of a
  5055. generic imtError message). The record accompanying the
  5056. message contains a string holding the path to the
  5057. out-of-space disk in field [2], the required space in field
  5058. [3], and the available space on that volume in field [4].
  5059. This allows an external Handler to intercept and process the
  5060. message as it sees fit.
  5061. 98-01-31 tracyf Added the imtFilesInUse message type (the unused imtDiagnostic
  5062. type has been replaced). Now, instead of calling
  5063. DoAction("FilesInUse") from InstallValidate, the imtFilesInUse
  5064. message is sent through the MsiEngine::Message facility
  5065. instead. The record sent with the Message(imtFilesInUse, riRec)
  5066. call describes all modules currently in use whose associated
  5067. file needs to be replaced. The record contains two strings
  5068. for each module - the first containing the module name, and the
  5069. second containing the title of the module's main window. The
  5070. MsiHandler has been modified to accept this message and display
  5071. the same "FilesInUse" dialog it did before. Any external
  5072. Handler can process the message as it sees fit. This change
  5073. was necessary because the previous mechanism of adding rows
  5074. to the Listbox table from within InstallValidate breaks when
  5075. running nested installs, since the current engine and the
  5076. Handler may be reading/writing separate databases.
  5077. 98-01-31 tracyf NT Event logging has been improved. On either
  5078. successful completion of an install, or termination due
  5079. to a fatal error, a single event is now written to the
  5080. Event log. The event text consists of the name of the
  5081. product, and either an "install operation successful"
  5082. message, or the full text of the error message resulting
  5083. from the fatal error. Note: for the Event Log text to be
  5084. formatted properly, msi.dll must be registered in the
  5085. Registry as a source of Event Log messages, under the
  5086. System\\CurrentControlSet\\Services\\EventLog\\Application\\MsiInstaller"
  5087. key. This registration is performed automatically when
  5088. DllRegisterServer is called on msi.dll.
  5089. -----------------------------
  5090. Release 0.10.00.3730
  5091. -----------------------------
  5092. 98-01-30 johndelo MsiEnableLog now interprets a NULL log file path as
  5093. disable logging, in which case the logmode is
  5094. ignored. If a path is supplied, then the logmode must not be
  5095. zero. There were 5 nearly duplicate bugs related to
  5096. this.
  5097. 98-01-30 johndelo To enable registraton of internal COM interfaces for
  5098. automation, the environment variable _MSI_TEST must
  5099. be set to a string containing the letter 'R'. By
  5100. default only the public API automation interface and the
  5101. custom marshalling code is registered. Temporarily
  5102. regmsi.exe sets this environment variable until tests
  5103. are fixed up. Using regsvr32 or direct call to DLL
  5104. will required the environment variable to be set for
  5105. internal automation registration. Other test options are
  5106. forthcoming.
  5107. 98-01-28 mattwe Services: added disable/enable timeout wrappers.
  5108. For the most part, the service control manager (SCM)
  5109. has its own timeouts that will kick back to us.
  5110. 98-01-28 mattwe Services: Fixed dependent services bugs. Two things
  5111. were hoked, one due to the complexity of the test case,
  5112. and another from misread documentation.
  5113. Reminder: The ServiceInstall.Dependencies column is a
  5114. list of service *names*, like the ones in ServiceInstall.Name
  5115. or ServiceControl.Name. Each name should be separated by
  5116. [~] (null), and the list should end with [~][~] double null.
  5117. 98-01-28 davidmck Changed the interface between client and server from
  5118. using IDispatch to using IDL files and doing the RPC
  5119. calls directly.
  5120. This is a performance improvement.
  5121. 98-01-28 mattwe Script: new opcode ixoStreamAdd. Bumped script version to 11.
  5122. This allows a stream to be added to a file. The last parameter
  5123. is an IMsiStream object, with the data. This does not rollback,
  5124. similarly to ixoStreamsRemove, as it is only used by the
  5125. admin database copy.
  5126. Property: Added AdminProperties (IPROPNAME_ADMIN_PROPERTIES)
  5127. This contains a ';' delimited list of properties that should
  5128. be saved for post-admin installs. This can include lower
  5129. or upper case (external) properties.
  5130. Network installs: during a network install, the properties
  5131. listed in AdminProperties are saved to a separate UNICODE
  5132. stream called AdminProperties in the destination storage.
  5133. Post admin install: property resolution now has an
  5134. intermediate step where properties from the admin install
  5135. override values in the database. These values, in turn,
  5136. are still overriden by the command line.
  5137. -----------------------------
  5138. Release 0.10.00.3727
  5139. -----------------------------
  5140. 98-01-26 johndelo Timeout logic in the UI thread changed to provide
  5141. frequent (currently 50 msec) ticks which are
  5142. sent to the UI handlers to pump their messages,
  5143. eliminating some lockups and display failures.
  5144. After a given number of ticks (currently 20 seconds)
  5145. the timeout error is displayed allowing the user
  5146. to retry or cancel (except if in the debugger).
  5147. This timeout is disabled when running customs actions,
  5148. as they can't be assured of sending progress messages.
  5149. 98-01-26 johndelo MsiCloseAllHandles is fixed to close only handles
  5150. allocated by the calling thread (not those used by
  5151. the engine, automation, or other custom actions).
  5152. MsiCloseHandle must be called in the thread where
  5153. the handle was obtained. An assert is now given
  5154. where this fails, but will be changed to an error.
  5155. 98-01-26 bench We no longer register package codes under a
  5156. "Packages" key. Package codes are now only stored under the
  5157. appropriate product key. This change was made to
  5158. avoid the complications of merging the Packages key on
  5159. NT5.
  5160. 98-01-26 bench Added new reinstallmode: REINSTALLMODE_PACKAGE, or
  5161. 'v'. This mode ensures the source package is used and
  5162. cached, even if a cached package exists. This will
  5163. be used to reinstall from network images that have
  5164. been updated with patches that don't change the product
  5165. code.
  5166. 98-01-26 t-robmen Modified MsiSpy to use MsiGetComponentPath instead
  5167. of MsiGetComponentLocation.
  5168. Removed references to INSTALLSTATE_DEFAULT as a
  5169. returned value.
  5170. OLE Automation:
  5171. o Added productCode to GetFileInfo and Query Component State
  5172. o Use GetComponentPath instead of GetComponentLocation
  5173. (in the near future GetComponentLocation will be removed)
  5174. 98-01-26 mattwe TestDb: modified the TestDB service to uninstall
  5175. as expected, as well as not to be deleted during an
  5176. install if it already exists. (It used to delete it,
  5177. and then install it fresh. Now it just re-configures
  5178. what is already there.)
  5179. 98-01-26 mattwe Rollback: Registry keys and files/folders will now
  5180. preserve security settings during a remove/rollback.
  5181. 98-01-26 mattwe Services: you can now "re-configure" pre-existing
  5182. services on a machine, which includes re-installation.
  5183. Additional: Bug #4016, #3645
  5184. 98-01-26 tracyf Darwin now creates a mutex named "__MsiPromptForCD"
  5185. when promping the user to change disks (the mutex is
  5186. closed after the user inserts a new disk, clicks OK
  5187. and Darwin has verified the disk label of the new
  5188. disk, or the user cancels). This allows CD autorun
  5189. applications to determine whether or not to run (or
  5190. disable UI).
  5191. 98-01-26 tracyf New SelectionManager change/feature: If the user
  5192. applies a patch to an install, such that any feature
  5193. currently installed RunFromSource now references one
  5194. or more files that need to be patched, that feature will
  5195. be forced out of the RunFromSource state. This is
  5196. done by defaulting the action state of the feature to
  5197. Advertised, and disallowing RunFromSource as a
  5198. possible install state.
  5199. 98-01-26 tracyf The DiskPrompt message displayed when Darwin needs
  5200. the user to insert a new disk has changed. It is now
  5201. built by treating the imsgPromptForDisk error string,
  5202. combined with the DiskPrompt property, as a
  5203. template, and using the DiskPrompt column of the Media table
  5204. as an argument for the template. A topic is being
  5205. added to the documentation to explain how this works
  5206. (see bug 4031).
  5207. 98-01-26 johndelo Custom actions will now handle the various execution models.
  5208. Actions before InstallValidate will be sequenced twice if
  5209. full UI is used and the service is registered. Mode bits have
  5210. been defined to determine whether the action runs on the
  5211. client or server or both. This required changing the bit
  5212. values for deferred exection and rollback (need to add 768
  5213. if the type value was > 256). CustomAc.doc has been updated
  5214. (on \\JDELO3\MsiDoc and \\XLWEB2\DarwinDoc). TestDB updated.
  5215. 98-01-26 johndelo Release notes for 1997 have been archived in RELNOT97.txt
  5216. -----------------------------
  5217. Release 0.10.00.3722
  5218. -----------------------------
  5219. 98-01-21 johndelo INSTALLMESSAGE_OUTOFMEMORY replaced by INSTALLMESSAGE_FATALEXIT
  5220. encompassing out of memory, not responding, and premature termination.
  5221. New messages are defined in the Error table for each of these:
  5222. imsgTimeRemaining 16 "Time remaining: {[1] min }[2] sec"
  5223. imsgOutOfMemory 17 "Out of memory. Shutdown other applications before retrying"
  5224. imsgTimedOut 18 "Installer is no longer responding"
  5225. imsgException 19 "Installer terminated prematurely"
  5226. These messages are cached by the UI handler in case fatal exit
  5227. 98-01-21 johndelo New message types may be requested by the external message handler:
  5228. INSTALLMESSAGE_INITIALIZE = 0x0C000000L, // sent prior to UI initialization, no string data
  5229. INSTALLMESSAGE_TERMINATE = 0x0D000000L, // sent after UI termination, no string data
  5230. INSTALLMESSAGE_SHOWDIALOG = 0x0E000000L, // sent prior to display of authored dialog or wizard
  5231. The SHOWDIALOG message passes the name of the action. If this message is handled
  5232. (i.e. doesn't return 0) then the UI dialog or wizard will not be called.
  5233. 98-01-21 johndelo The UI handling of all types and logging is now handled outside
  5234. the engine in its own thread, which is the caller's thread when
  5235. using the install APIs, but which is a child thread when using
  5236. MsiOpenProduct and MsiOpenPackage and the session API functions.
  5237. The UI thread is shared by all engines/installs for the session.
  5238. The UI will time out if the engine thread fails to respond, in
  5239. which case a dialog will be displayed (if not debugging). Out of
  5240. memory will result in a dialog which allows a retry as well.
  5241. Premature termination (i.e. crash) is not handled silently in
  5242. this build. All three failures will result in an error return to
  5243. the caller, but the resource cleanup is not implemented in this build.
  5244. 98-01-21 malcolmh DEV: g_fIsService has been changed to
  5245. g_scServerContext. This will be set to scService if we're running
  5246. as a OLE service, scServer if we're running as an OLE
  5247. server, and scClient in other cases.
  5248. 98-01-21 bench Moved the location of the UpgradeCode information in
  5249. the registry. We no longer register the UpgradeCode
  5250. under the advertised product key. I have added an
  5251. UpgradeCodes key under the Installer key in HKLM.
  5252. Each upgrade code has a key under that, and has a value
  5253. for each product with that upgrade code. Removed the
  5254. UpgradeCode arg from ixoProductPublish/Unpublish and
  5255. added it to ixoProductRegister/Unregister. Bumped
  5256. script version to 10 as a result.
  5257. 98-01-20 t-robmen Modified msispy.cpp and msispyu.cpp to clean up
  5258. major MSIHANDLE leaks (now use PMSIHANDLEs and no longer
  5259. use static MSIHANDLEs in Enum functions)
  5260. Also removed MsiCloseAllHandles() from ~CMsispy which
  5261. was crashing any OLE Automation attempted. MsiSpy
  5262. OLE Automation should work without crashing now.
  5263. 98-01-20 mattwe CMsiRegKey: Removed the security descriptors from
  5264. CMsiRegKey.Create() Now, place the security descriptor
  5265. in the CreateChild() call. This allows the registry
  5266. key to get set either from the explicit Create, or
  5267. the implicit AddValue. If specified, this will allow
  5268. overwriting the security of an existing key.
  5269. Note: The CreateChild() without a security descriptor
  5270. will *not* inherit the parent's descriptor.
  5271. -----------------------------
  5272. Release 0.10.00.3720
  5273. -----------------------------
  5274. 98-01-18 bench Added 3 new properties which can be queried with
  5275. MsiGetProductInfo: INSTALLPROPERTY_PACKAGECODE,
  5276. INSTALLPROPERTY_UPGRADECODE and INSTALLPROPERTY_VERSION. All
  5277. are advertised properties.
  5278. 98-01-18 malcolmh We now display progress when copying our database to
  5279. the TEMP directory during first-run. We show
  5280. progress both when copying from a floppy and when doing an
  5281. internet download.
  5282. 98-01-18 malcolmh If you send a "Master Reset" event to the basic UI's
  5283. progress bar, we reset the progress bar UI.
  5284. Previously the UI was reset only upon receipt of a subsequent
  5285. progress report.
  5286. 98-01-17 malcolmh Moved appending of ".msi" or ".msp" from the API to
  5287. msiexec.exe. You have to pass the real file name to
  5288. the API now, but you can leave off the ".msi" or
  5289. ".msp" when using msiexec.
  5290. 98-01-17 malcolmh Changed our DebugString function to prepend "MSI: " to
  5291. debug messages if we're running on the client side,
  5292. and "MSI (s): " if we're running in the server.
  5293. 98-01-17 malcolmh We now generate install scripts in the server. Our new
  5294. model allows for three possible configurations:
  5295. 1) The entire install is run in the client space; we
  5296. never connect to the server.
  5297. We do this when the server is not registered. We'll
  5298. probably eventually always do this on Win95.
  5299. 2) The entire intall is run on the server.
  5300. We do this when the UI level is Basic or None. In
  5301. this case the only thing running on the client side
  5302. is the Basic UI.
  5303. 3) We run part of the install on the client and part on
  5304. the server.
  5305. We do this when we can connect to the server and the
  5306. UI level is reduced or full. In this case when a
  5307. sequence is run we process all actions through
  5308. InstallValidate on the client side. We then shift
  5309. to the server and run all actions from the beginning
  5310. of the sequence through ExecuteFinalize. We then
  5311. shift back to the client and run all actions after
  5312. ExecuteFinalize.
  5313. When we're running in this configuration certain
  5314. actions behave differently, and we skip all UI
  5315. actions. What we do differently when we're on the
  5316. server side:
  5317. - We don't cost.
  5318. - We don't do appsearch (NYI)
  5319. - We do a quicker CCP check (NYI)
  5320. - We don't reboot; the reboot status is
  5321. propagated back to the client side, which
  5322. will trigger the reboot.
  5323. As usual, I print out debug strings indicating when
  5324. we switch to the server and when we switch back in case
  5325. you're curious.
  5326. 98-01-17 malcolmh Added reboot handling for child installs. The child
  5327. propagates its reboot status to the parent. The
  5328. parent will treat a child's reboot status just as it does
  5329. it's own. If a child returns saying it wants to
  5330. reboot now then the parent will reboot now, otherwise the
  5331. parent will wait until it's done and then reboot.
  5332. TESTING: I mucked with the code for reboot handling
  5333. and suspended installs. Regressions is advised.
  5334. 98-01-17 malcolmh Automation changes: Added MsiConman.DoInstall.
  5335. Changed return value for MsiEngine.Terminate to an
  5336. iesEnum. See help file for details.
  5337. 98-01-16 bench Added support for the UpgradeCode property. The
  5338. UpgradeCode is a guid that represents a set of products.
  5339. This property isn't used anywhere yet but if it is
  5340. defined in the Property table it is registered in the
  5341. product's advertised information. Added the
  5342. UpgradeCode to ixoProductPublish and ixoProductUnpublish and
  5343. bumped the script version to 9 as a result.
  5344. 98-01-16 tracyf To prevent bug 3885 from locking up the install
  5345. process, the palette switching code in the Handler has
  5346. been temporarily disabled. As soon as the palette bug
  5347. is resolved, this code will be turned back on. Until
  5348. the true bug is fixed, the side effect will be that
  5349. bitmaps rendered in Darwin dialogs may be drawn with
  5350. improper colors, if any other application changes the
  5351. standard system palette.
  5352. 98-01-16 tracyf Implemented detection of components containing files
  5353. that are either patchable or compressed in the source
  5354. image. Any component containing files fitting these
  5355. categories are now prevented from being installed
  5356. RunFromSource (i.e. the SelectionManager's GetFeatureValidStates
  5357. routine will never return icaBitSource for these components).
  5358. 98-01-16 mattwe Fixed admin installs to NOT install services or
  5359. place security descriptors.
  5360. 98-01-16 mattwe Updated ServiceControl.Events to support Uninstall
  5361. only actions. Now, to install/uninstall a service,
  5362. you use the ServiceInstall table, and add an entry
  5363. to the ServiceControl table to delete it during
  5364. uninstall. This gives you full control over
  5365. services outside your install as well.
  5366. 98-01-16 tracyf In an effort to give *Sequence table merging a
  5367. fighting chance, all built-in Darwin actions have been
  5368. given "recommended" sequence values, as demonstrated
  5369. in the new versions of template.msi and testdb.msi
  5370. (see the InstallSequence, AdvtSequence, and
  5371. AdminSequence tables). The convention to be documented
  5372. for authors is that Darwin reserves all numbers that are
  5373. multiples of 10 for built-in actions (the standard actions
  5374. have been renumbered using increments of 100, and any new
  5375. build-in actions in the future will be inserted in the
  5376. appropriate place using values such as 140, 850, etc).
  5377. Authors should use these values for all standard actions,
  5378. and numbers ending in non-zero digits for custom actions
  5379. (again, see testdb.msi for examples of custom action
  5380. sequencing). If these conventions are followed for all
  5381. products intending to merge databases, all sequence tables
  5382. should merge together without problems.
  5383. -----------------------------
  5384. Release 0.10.00.3716
  5385. -----------------------------
  5386. 98-01-15 bench Added the ixoDatabasePatch script operation for use in admin
  5387. install patching. The script version was bumped to 8 to
  5388. accomodate this addition.
  5389. 98-01-15 bench Added support for patching admin installs. To patch an admin
  5390. install you may either
  5391. 1) call msiexec.exe /p [patch package path] /n [admin database path]
  5392. 2) call MsiApplyPatch(szPatch,szAdminDb,eNetworkImage,szCmdLine)
  5393. 98-01-15 bench Added two arguments to MsiApplyPatch: szProduct and eInstallType.
  5394. These two arguments describe the product to be patched.
  5395. eInstallType defines the type of install
  5396. (network, local, advertised) and szProduct defines
  5397. the product code/descriptor/package path for the product.
  5398. Currently only the patching of network installs is supported.
  5399. 98-01-15 bench Changed the package code (was product code) summary
  5400. information values for each released database
  5401. (testdb, schema, simple, msispy, etc..) to remove the
  5402. product version. This data is curently ignored by Darwin.
  5403. 98-01-14 chetanp In order to allow the author to make permanent
  5404. components that do not have a file as their key path, the
  5405. "permanent" bit has been shifted to the
  5406. Component.Attributes column (the icaPermanent bit). We no longer
  5407. honour the iffPermanent bit from the File.Attributes
  5408. column for component permanency from the database
  5409. versions 23 onwards (we still honour the bit if you are
  5410. running an older database with the latest darwin).
  5411. 98-01-14 chetanp The RunFromSource columns in Feature and Component
  5412. tables are now renamed to Attributes. This required
  5413. the database version to be bumped to 23. However we
  5414. still run with the old databases.
  5415. 98-01-14 chetanp Changed SharedDll refcounting scheme for locally
  5416. installed component with key files.
  5417. Previously we used to refcount the key file of every
  5418. locally installed component (which has a file as the
  5419. key path) with the Shared Dll registry to ensure
  5420. sharing with non-darwin installations. This leads to
  5421. bloating of the registry since most of the components are
  5422. actually private to the product.
  5423. Now -
  5424. 1. Whenever darwin installs a component locally, we
  5425. check to see if the key file of the component is
  5426. refcounted in the Shared Dll registry. If, yes we
  5427. increment the refcount to include ourselves (, otherwise we
  5428. do not refcount the component). We also make note of
  5429. whether we have refcounted the component (using a
  5430. special token within the key path registered in the
  5431. Darwin configuration information).
  5432. 2. Whenever the product wishes to uninstall a local
  5433. component, we check if we have registered the
  5434. component in the Shared Dll registry. If yes, we decrement
  5435. the Shared Dll registry refcount for the key file. If
  5436. the refcount for the key file is greater then zero,
  5437. then we do not uninstall the component.
  5438. 3. The above strategy breaks in the scenario where a
  5439. component is installed by Darwin, then by a
  5440. non-darwin installation and then the non-darwin installation
  5441. uninstalls. This will uninstall the component, since
  5442. there is no refcount for the Darwin install. This will
  5443. break the Darwin installed product (unless it is
  5444. using JIT and Darwin where we would simply reinstall the
  5445. component). To overcome this problem Darwin
  5446. provides the author with the "icaSharedDllRefCount" bit in
  5447. the Component.Attributes (RunFromSource) column. If
  5448. the author sets this bit for a component Darwin will
  5449. always refcount the component with the Shared Dll
  5450. registry irrespective of any existing recount.
  5451. 98-01-14 malcolmh The FileName column of the RemoveFile table is now
  5452. nullable.
  5453. 98-01-14 malcolmh Changed args to Conman.Registerfolder and
  5454. conman.IsFolderRemovable. See help/typelib for details.
  5455. 98-01-14 malcolmh IxoFolderCreate and IxoFolderRemove no longer take a
  5456. component code. Instead they take a bool indicating
  5457. whether the folder is foreign (i.e. explicitly
  5458. authored to be created/removed). Bumped the script version.
  5459. 98-01-14 t-robmen Created different _Summary.idt files for each type
  5460. of msispy.mis build possible [ship,debug,alpha] that
  5461. correctly reflect build type
  5462. -----------------------------
  5463. Release 0.10.00.3714
  5464. -----------------------------
  5465. 98-01-14 t-robmen Discovered that some files were named incorrectly or
  5466. missing from %DARWIN%\src\tools\spy\idt
  5467. Removed: ActionText.idt, Directoy.idt, Extension.idt,
  5468. TestStyle.idt, Error.idt
  5469. Added: _Summary.idt, ActionTe.idt, AdvtSequ.idt,
  5470. ControlC.idt, ControlE.idt, Director.idt, EventMap.idt,
  5471. Extensio.idt, InstallS.idt, PublishC.idt,
  5472. RadioBut.idt, TextStyl.idt
  5473. 98-01-13 malcolmh Fixed view object to support IS NULL and IS NOT NULL
  5474. on object fields.
  5475. 98-01-13 malcolmh The RemoveFiles action now support removing
  5476. author-specific folders. These folders are specified in the
  5477. RemoveFiles table, just like files are, but with a
  5478. NULL FileName. The author-specific folders are removed
  5479. after the removal of author-specific files, and after
  5480. removal of the files installed by InstallFiles. A
  5481. folder is only removed if it is empty. The RemoveFiles
  5482. actions triggers the folder removal by generating an
  5483. ixoFolderRemove opcode.
  5484. 98-01-13 malcolmh I think the full UI should work now. I've removed
  5485. GetComponentPath from the IMsiServer interface. It's
  5486. now a global function. I've re-enabled running the UI
  5487. in a separate thread. TESTING: GetComponentPath is no
  5488. longer a method of MsiServer or MsiConfigurationManager.
  5489. -----------------------------
  5490. Release 0.10.00.3713
  5491. -----------------------------
  5492. 98-01-13 johndelo Separate UI thread logic is disabled in this build only,
  5493. to allow fullUI with the service. However, problems will
  5494. exist with nested installs and custom actions. This has
  5495. been fixed and all will be operational in the next build.
  5496. 98-01-12 johndelo Full UI does not work with the service registered for
  5497. this build, due to RPC problems. The UI runs in a single
  5498. thread which allows UI from nested installs and custom
  5499. actions but currently gives problems when the handler
  5500. calls to the engine which then does RPC to the service.
  5501. 98-01-12 mattwe Internet download: Modified volume and path
  5502. objects with minimal URL support. These are meant to be
  5503. sources, not destinations, so most APIs will return
  5504. errors with a URL volume. Automation forthcoming for
  5505. new methods. Modem support and progress/cancel coming.
  5506. You can now specify a URL on the command line for a
  5507. package to install.
  5508. Example: msiexec /i
  5509. http://phoenix.csc.calpoly.edu/~mwetmore/testdb/testdb.msi
  5510. (Try it, it works! Currently only the "typical" install
  5511. source is actually up on that server.)
  5512. Should see no net change to functionality to non URL paths.
  5513. TESTING: watch those path/volume tests/benchmarks, please.
  5514. 98-01-12 malcolmh Fixed bug 3814. Transforms are again being cached in
  5515. the user profile.
  5516. 98-01-12 malcolmh Fixed bugs 3847, 3861, 3863, 3864, 3865. These were
  5517. all regressions caused by recent code changes, mostly
  5518. related to SQUIDs.
  5519. 98-01-12 malcolmh Fixed bug 3829. The Engine.Initialize automation function
  5520. now defaults to iuiBasic if you don't specify a UI level
  5521. 98-01-12 t-robmen Modified %DARWIN%\src\makefile to build
  5522. %DARWIN\data\msispy.msi - x86 ship
  5523. %DARWIN\data\msispyd.msi - x86 debug
  5524. %DARWIN\data\msispya.msi - alpha ship
  5525. 98-01-12 tracyf Changed the name of the Directory_Configurable
  5526. column in the Feature table to "Directory_" (the old name
  5527. will still work for a while).
  5528. 98-01-12 bench Updated MsiTran.Exe to accept validation bits used
  5529. to validate transforms before applying them. See
  5530. command line help for more info.
  5531. 98-01-12 t-robmen Added %DARWIN%\src\tools\spy\idt directory and
  5532. subdirectories.
  5533. The included files are used to create the
  5534. installation database for MsiSpy (msispy.msi)
  5535. during the build process
  5536. 98-01-12 bench Added support for a "package code" or rather allowing
  5537. a different guid in the summary info of a package than
  5538. the product code. The guid in the package is now the
  5539. "package code" and may not necessarily equal the product
  5540. code. Also, the product version is no longer appended to the
  5541. guid in the summary info. We now register the "package code"
  5542. under HKCR\Installer\Packages and for each product
  5543. register the code of the package the product was
  5544. installed from.
  5545. 98-01-12 bench fixed bugs 3850-3852. We now properly handle validating
  5546. transforms that change the product code and product version.
  5547. -----------------------------
  5548. Release 0.10.00.3709
  5549. -----------------------------
  5550. 98-01-08 johndelo Logging can be specified only via MsiEnableLog.
  5551. (MsiExec /L simply uses this API). The properties
  5552. LOGFILE and LOGMODE are no longer supported.
  5553. Logging is per-process, independent of the
  5554. particular package or engine instance. Provided
  5555. logging is enabled, the property LOGACTION allows a
  5556. particular set of actions to be logged for a product.
  5557. 98-01-08 chetanp fixed Darwin bug (3803) that registers run-from
  5558. source file in the Shared Dll registry.
  5559. 98-01-08 chetanp changed ixfFeaturePublish/ ixfFeatureUnpublish
  5560. opcode to have a separate Absent flag.
  5561. 98-01-08 chetanp implemented GUID squishing. We now store all
  5562. (internal) Darwin GUIDs - Product Ids, Component Id, Patch
  5563. Id, Qualified Component Ids, and the GUIDs in Darwin
  5564. Descriptors as SQUIDs (GUIDs squished to 20
  5565. characters) in the registry. Though this should not affect any
  5566. of the API tests, this would mean that test/tool that
  5567. itself looks around for Darwin GUIDs in the registry
  5568. would fail. Use the RunScrpt.exe tool to Pack and Unpack
  5569. GUIDs via script, using the PackGuid and UnpackGuid functions.
  5570. 98-01-08 malcolmh Implemented TransformsAtSource. Transforms are not
  5571. cached, but assumed to be at the source, if any of the
  5572. following conditions are true: 1) you set the
  5573. TRANSFORMSATSOURCE property, 2) you specify an '@' at the
  5574. beginning of your list of transforms, or 3) when
  5575. executing the script we see that you have a
  5576. TransformsAtSource policy value set to 1.
  5577. 98-01-08 malcolmh msiexec /P is now used to invoke a patch. msiexec /I
  5578. is now used to install. /X and /I will now accept
  5579. product codes, making the previous /T and /C obsolete.
  5580. /T is now used for transforms and /C has been
  5581. removed.
  5582. 98-01-08 malcolmh The /A (Advertise) parameter to msiexec now takes a
  5583. Transforms list and a lanGuage, specified with the /T
  5584. and /G switches, respectively.
  5585. 98-01-07 bench Renamed the AdminInstallFinalize action to
  5586. InstallAdminPackage. This is because the action should
  5587. come before InstallFiles, so we didn't want to give the
  5588. notion that the action should "finalize" anything.
  5589. The AdminInstallFinalize action will stay around for 30 days
  5590. and currently just calls the InstallAdminPackage action.
  5591. Also updated testdb.msi, template.msi, etc...
  5592. 98-01-06 malcolmh Added /L as a switch to msiexec. This sets the log mode
  5593. by calling MsiEnableLog. Syntax: /L[<logmodes>] <log file>
  5594. 98-01-06 malcolmh Added INSTALLPROPERTY_VOLUMEPREFERENCE to the list
  5595. of properties exposed by MsiGetProductInfo.
  5596. 98-01-06 malcolmh The product code in the summary info stream *must* match
  5597. the one in the property table or you won't be able
  5598. to run maintenance mode. This will remain true until
  5599. we introduce the notion of a "package code".
  5600. 98-01-06 malcolmh The script version has been bumped to 6 as a result of
  5601. source management opcodes changes.
  5602. 98-01-06 malcolmh We now cache an MSI to the temp dir whenever we realize
  5603. that the database we're running from isn't the cached db
  5604. for the product.
  5605. 98-01-06 malcolmh (dev concern only) IPROPNAME_ORIGINALDATABASE now contains
  5606. the launched-from database in maintenance-mode if there is
  5607. one (previously it contained the cached db).
  5608. 98-01-06 malcolmh MsiGetComponentPath now returns the actual
  5609. installstate for installed components (INSTALLSTATE_LOCAL/SOURCE)
  5610. instead of INSTALLSTATE_DEFAULT.
  5611. 98-01-06 malcolmh Removed 'advertise' section from validation and changed msival
  5612. accordingly. The schema's _InstallSequence table has been changed
  5613. to reflect this.
  5614. 98-01-06 malcolmh The minimum disk ID in the media table has been changed from 0
  5615. to 1. Validation has been updated to reflect this.
  5616. 98-01-06 malcolmh Moved PublishProduct, PublishComponents, PublishFeatures,
  5617. RegisterProduct to just before ExecuteFinalize.
  5618. 98-01-06 malcolmh The DiskPrompt property is now used as a template. For each disk
  5619. the prompt from the media table is inserted into the DiskPrompt
  5620. property's [1] parameter. The result is used in the
  5621. "Please insert..." string that's in the error table.
  5622. 98-01-06 malcolmh Source management:
  5623. - The UI's RFS icons now represent the actual source type
  5624. during first-run and the type of the LastUsedSource in
  5625. maintenance-mode.
  5626. - We now publish the source list only when we publish
  5627. the product (i.e. at advertise time or first-run if
  5628. no advertisement has taken place)
  5629. - When we publish the source list we also now attempt
  5630. to divine the media package path for the MSI at this
  5631. time if we're running from media and the
  5632. MediaPackagePath property is not set.
  5633. - When we publish the source list we implictly add the
  5634. source you're running from as a source for the product.
  5635. - If we're not advertising then we if we've resolved the
  5636. source (i.e. SOURCEDIR is set) then we set the resolved
  5637. source as the Last Used source for the product.
  5638. - We bypass source resolution if we're not running from
  5639. the cached database. This is because the source we've been
  5640. launched from has be a valid source, so we use it.
  5641. - Run-from-source components are now source resilient. We'll
  5642. find a valid source for them whenever their path is need.
  5643. We cache the most recent source in-memory, and we try
  5644. this source first, followed by the raw LastUsedSource,
  5645. before we fall back to our standard source resolution mechanism.
  5646. - The ixfSourceListMediaPublish opcode has been removed. Its
  5647. functionality is now in ixfSourceListPublish.
  5648. - The ixfSourceListRegisterLastUsed opcode has been added.
  5649. See msiauto.hlp.
  5650. - The ixfSourceListPublish opcode's arguments have changed
  5651. to accommodate media sources. See msiauto.hlp.
  5652. 98-01-06 malcolmh ixfDatabaseCache now first removes any existing cached package
  5653. for the product before it caching the one given to it.
  5654. 98-01-06 malcolmh Component registration changes:
  5655. - We no longer have an explicit state key for the component
  5656. state. We now derive this from the key file format.
  5657. - Run-from-source component format for key files and folders
  5658. has changed. We now store two digits followed by the relative
  5659. path of the component from the root of the source. The
  5660. two digits indicate the disk ID of the disk containing files
  5661. for this component.
  5662. - The component format for registry keys has changed.
  5663. We now store two digits followed by a colon followed by the
  5664. subkey. The two digits indicate the hive. For run-from-source
  5665. components we offset the hive by 50. For example,
  5666. CLASSES_ROOT, which is 0, would be stored as "00" for a local
  5667. component and "50" for a run-from-source component. We remove
  5668. the offset when returning the regkey.
  5669. - conman.RegisterComponent now takes a disk ID
  5670. - ixfComponentRegister now takes a disk ID
  5671. 98-01-06 malcolmh Source management: changes were made in the way we
  5672. register sources:
  5673. - Under the SourceList key:
  5674. - the LastUsedSource value now has a trailing
  5675. backslash
  5676. - we now have a LastUsedIndex and LastUsedType
  5677. - Under the Net key
  5678. - we now use numbers instead of letters for
  5679. the indexes
  5680. - we now store a single form of net paths (no
  5681. more drive letter & UNC form)
  5682. - Under the Media key
  5683. - we now have a DiskPrompt value
  5684. -----------------------------
  5685. Release 0.10.00.3706
  5686. -----------------------------
  5687. 98-01-05 bench Added UNICODE Darwin to \\united\darwin drops. The following
  5688. folders were added which contain the same files as their
  5689. ANSI counterparts:
  5690. DEBUGW
  5691. SHIPW
  5692. SHIPSYMW
  5693. LEGOW
  5694. 98-01-02 chetanp Added support for registering and managing disabled
  5695. components in Darwin.
  5696. Following is the description of Darwin's behaviour in
  5697. handling disabled components.
  5698. 1. A Darwin component gets disabled when the
  5699. corresponding Component.Condition column evaluates to
  5700. FALSE.
  5701. 2. A disabled component is registered with the
  5702. configuration manager with an empty path and a state of
  5703. INSTALLSTATE_NOTUSED (which is defined as a negative
  5704. value in the INSTALLSTATE enum) when a feature that
  5705. contains that component is selected for install.
  5706. 3. A feature is published with all the components it
  5707. comprises of, irrespective of whether the individual
  5708. components are enabled or not. This allows a feature
  5709. list to be independant of the machine, since the
  5710. result of evaluating the Component.Condition column may
  5711. vary from machine to machine.
  5712. 4. The MsiQueryFeatureState API treats any
  5713. constituent disabled components (in state INSTALLSTATE_NOTUSED)
  5714. the same as INSTALLSTATE_LOCAL. This allows the
  5715. feature state to be determined by the install states of
  5716. enabled components.
  5717. 5. The MsiGetComponentPath API returns the true
  5718. install state (INSTALLSTATE_NOTUSED) for a disabled
  5719. component.
  5720. 6. The MsiProvideComponent, effectively ignores all
  5721. disabled components (of that or the parent features)
  5722. unless it is requesting a disabled component itself,
  5723. in which case the return is an error -
  5724. ERROR_INSTALL_NOTUSED.