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.

2823 lines
146 KiB

  1. Darwin Setup Development Notes for Testing Releases
  2. -----------------------------
  3. Release 1.1.1209
  4. -----------------------------
  5. 99-12-09 eugend Fixed bug # 9909: the latebinding functionality got
  6. extended as not to attempt to load again a DLL it
  7. couldn't load on the first attempt.
  8. 99-12-09 eugend Fixed OEM bugs # 9931 & 9959. In the fix to 9959
  9. I've replaced calls to GetFileAttributes with
  10. GetFileAttributesEx which is faster. 9919 addresses all other
  11. speed optimizations. See spec at
  12. http://dartools/dardev/Specs/OEM%20Fast%20Install.htm for the list.
  13. -----------------------------
  14. Release 1.1.1029.1
  15. -----------------------------
  16. 99-11-30 mattwe Bug 10209: If the system Environment key in NT
  17. contains blank REG_EXPAND_SZ values, they'll be
  18. deleted by running instmsi/copymsi
  19. 99-11-30 mattwe Bug 10258: InstMsi/CopyMsi will silently succeed
  20. on Windows 2000 and later versions of the
  21. non-9X operating systems.
  22. 99-11-29 cnapier Fixed bug 10275. SDK. Changed hardwired product
  23. code used by msival2.exe to new product code (see bug
  24. 10002). Dropped release of msival2_100 from SDK.
  25. -----------------------------
  26. Release 1.1.1029.1
  27. -----------------------------
  28. 99-11-23 cgouge Bug 12049. The GetTokenInformation call on NT4 TSE
  29. was failing when trying to grab the Session Id out of
  30. the impersonation token on NT4 TSE. WE now bypass
  31. that codepath because we don't support remote session
  32. installs on NT4 anyway.
  33. 99-11-21 bench Rebased msi.dll, msihnd.dll and msimsg.dll to avoid
  34. conflicts with Office10 files. New base will only apply
  35. for downlevel systems, as the NT build lab automatically
  36. bases these files in the system range.
  37. #
  38. # bases - our address range for downlevel systems
  39. # (reserved for us by the Office team) is 0x24400000-0x248FFFFF
  40. #
  41. # msi.dll : 0x24400000 - 0x246A0000 (approx. 2,750,000)
  42. # msihnd.dll : 0x246A0000 - 0x247A0000 (approx. 1,050,000)
  43. # msimsg.dll : 0x247A0000 - 0x248FFFFF (approx. 1,440,000)
  44. #
  45. #
  46. 99-11-19 cnapier Fixed bug 10259. SDK. Readme.txt date changed to
  47. December 1999. Redist.txt changed to reference 1.1
  48. redistributables. ProductVersion in Property table
  49. changed to 1.1
  50. 99-11-12 cnapier Updated wimakcab.vbs to be able to generate a DDF on
  51. the fly with a sourcepath that contains spaces.
  52. Furthermore, fixed intelmsi.bat to be able to handle a
  53. release location with spaces when generating the SDK
  54. msi's.
  55. 99-11-09 eugend Fixed bug # 10199: I've checked in the latest
  56. RichEdit binaries:
  57. - RICHED20.DLL ver. 5.30.22.2300 - got it from
  58. - MSLS31.DLL ver. 3.10.337.0 - got it from GHeino
  59. - USP10.DLL ver. 1.325.2145.1 - got it from build
  60. 2714 fre.wks of NT.
  61. 99-11-08 cnapier Fixed bug 10201. Validation: ICE66. Warning of new
  62. functionality only output if column of table (with
  63. new schema) actually present in database.
  64. 99-11-02 cnapier Fixed bug 10175. MakeSDK.bat file for generating
  65. 1.1 SDK. Takes 3 arguments: %1 = release share target
  66. (placed in x86 directory that is created if not
  67. exist), %2 = MSI release build (instmsi.exe), %3 = TOOLS
  68. release build. Finally calls intelmsi.bat to create
  69. the msi's for the SDK. To test on own machine, you
  70. can set the COPYBLDSERVER and COPYBLDSHARE environment
  71. variables. Finally, the product and package code
  72. guids for the 1.1 SDK package have changed (as per
  73. arrangement with bug 10002). Note: we never register the
  74. SDK since we never call RegisterProduct in our
  75. sequence table.
  76. 99-11-01 cnapier Fixed bug 10002. Changed package and product codes
  77. for msival2.msi, orca.msi and msispy.msi (our SDK
  78. packages). Added a file to %DARWIN%\data called
  79. msipkgs.log which logs the product, package, and upgrade
  80. codes of our SDK packages from 1.0 SDK to the current
  81. SDK. This also lists the new GUID,
  82. {8FC7****-88A0-4b41-82B8-8905D4AA904C}, which we will use for subsequent
  83. SDK packages.
  84. 99-11-01 cnapier Fixed bug 10176. Validation. ICE73 (new).
  85. Verifies that your package does not reuse Windows Installer
  86. SDK packages package, product, and upgrade codes.
  87. The new GUID range for subsequent installer SDK
  88. packages (1.1 and on) is
  89. {8FC7****-88A0-4b41-82B8-8905D4AA904C}.
  90. -----------------------------
  91. Release 1.1.1029
  92. -----------------------------
  93. 99-10-29 cgouge Bug 10185. Added missing StopImpersonating() call at
  94. the end of the CustomEXE thread which would throw
  95. off impersonation counts on future threads with the
  96. same ThreadID.
  97. 99-10-28 cnapier Fixed bug 10177. SDK. Added msiloc.cpp to SDK.
  98. The .cpp file as well as the msiloc.txt file (a readme)
  99. will be included with the other sample source files.
  100. 99-10-28 cnapier Fixed bug 10133. Msizap. Now removes a product's
  101. published component information from the components'
  102. keys in per user, per user managed, and per machine
  103. locations. The affected options of msizap are T and O.
  104. (RemoveAll unaffected since it deltrees the registry
  105. keys).
  106. -----------------------------
  107. Release 1.1.1028
  108. -----------------------------
  109. 99-10-27 chetanp fixed bug 10167 - cleanup of orphaned disabled
  110. feature registration in roaming profile for "managed" user
  111. apps.
  112. 99-10-27 mattwe Bug 10164: LocalSystem or Local Administrators can
  113. now own managed app keys, instead of just system.
  114. 99-10-27 cnapier Fixed bug 9962. Fixed pullsdk.bat so that it did
  115. not copy over the ship bits for instmsi* since these
  116. are not the released bits (the lego versions). Also
  117. fixed pullsdk.bat so that msi.h and msi.lib were the
  118. public headers and libs and not our private ones.
  119. Previously we copied over the private header and lib to
  120. the SDK folder on united\darwin\darwin.rel\%build%.
  121. 99-10-27 cgouge Bug 10173. Deferred elevated custom actions in
  122. non-managed installs would be impersonated but not run
  123. through the CA server. This resulted in a non-elevated
  124. app gaining system rights if the custom action could
  125. bypass the thread token.
  126. 99-10-27 cnapier Fixed bug 10050. alpha removed from the SDK folder.
  127. The x86 had already been ALPHA-clean. The fix here
  128. was to change copybld.bat so that it would not call
  129. pullsdk.bat if the platform was Alpha.
  130. 99-10-27 cgouge Bug 10150. Script actions are now run through the
  131. custom action server to prevent spawned child processes
  132. from gaining elevated rights.
  133. 99-10-27 mattwe Bug 8218: We no longer clobber the policy settings
  134. in instmsi. We now only clobber them via service
  135. startup if not owned by the appropriate people.
  136. (That code is old, the instmsi is the only current
  137. change)
  138. 99-10-27 cgouge Bug 9899. Fixed ANSI orca validation problem when
  139. using qualified component CUB file, plus problem with
  140. orca installer that led to bad validation COM
  141. registration
  142. 99-10-27 cgouge Bug 9710. MergeMod.Dll. We no longer require the MSI
  143. sequence table schema in the module if the
  144. corresponding module table is empty and we are not generating
  145. any directory actions for that MSI sequence table.
  146. 99-10-26 cnapier Fixed bug 10092. Msiinfo handling of codepage
  147. validation updated to ignore the case where the property
  148. doesn't exist in the property stream (VT_EMPTY
  149. returned). This was added because internally Darwin
  150. supports this where it defaults to codepage neutral (0) if
  151. the PID_CODEPAGE property doesn't exist.
  152. 99-10-26 cgouge Bug 9894. Added a select subset of standard ICE
  153. validators to the merge module CUB file. These validators
  154. apply equally to modules and full databases.
  155. 99-10-22 cnapier Fixed bug 10143. Validation. ICE06. Changed error
  156. message so that arguments are correct (column goes
  157. with column, table goes with table).
  158. -----------------------------
  159. Release 1.1.1022.1
  160. -----------------------------
  161. 99-10-22 eugend I revisited the checkin for bug # 10131: several
  162. screen-readers expect the text in the STATIC control
  163. that precedes an EDIT control to end in ':' so I've
  164. changed the functionality to append ':' to the text
  165. MaskEdit control serves the screen-readers.
  166. -----------------------------
  167. Release 1.1.1021
  168. -----------------------------
  169. 99-10-21 mattwe 9718: The SFC dll will no longer be loaded on Win9X.
  170. 99-10-21 cgouge Fixed bug 10130. Exe custom actions on TS. STARTUPINFO.lpDesktop
  171. is now set to Winsta0\Default (instead of NULL) so that together with
  172. the TS sessionID, the UI is placed on the visible desktop of the
  173. appropriate session.
  174. 99-10-21 eugend Fixed bug # 10131: MaskedEdit control is now
  175. sensitive to screen readers.
  176. 99-10-20 cnapier Fixed bug 10096. Validation (MM). ICEM10. Verifies
  177. that a merge module does not contain disallowed
  178. properties. (Dev note: Disallowed properties are listed
  179. in the _Disallowed table stored in the mergemod.cub
  180. file).
  181. 99-10-19 cnapier Fixed bug 10091. Validation: ICE12. ICE12 can now
  182. validate type 35 and type 51 custom actions that also
  183. specify scheduling options (like TypeFirstSequence).
  184. 99-10-19 cnapier Fixed bug 10092. Msiinfo now will only set the
  185. codepage (/c option) of the summary information stream if
  186. the system supports the codepage supplied.
  187. Furthermore, the summary information strings are only
  188. displayed if the system supports the codepage of the summary
  189. information stream (this is only on a NT/W2K
  190. system...no such verification is done on Win9X since no
  191. translation from ANSI to WIDE occurs on Win9X platforms).
  192. 99-10-18 cnapier Fixed bug 10095. Schemalog.txt which is NOW
  193. SCHEMA.LOG (for 8.3 filename verification) has been updated.
  194. It includes the listing of tables, columns added
  195. since schema 100 (upto schema 110) plus any columns
  196. whose attributes changed within that time period.
  197. Additionally, the SDK msi was modified so as to pass the
  198. full validation suite.
  199. 99-10-18 cnapier Fixed bugs 9962 and 10050. 9962 dealt with the
  200. inclusion of the SDK drop in our regular builds. It was
  201. fixed, but made the assumption of pulling everything
  202. from the United\Darwin\...\Public folder, which is
  203. the folder that it now replaces. PullSdk.bat now picks
  204. up everything from the places that it can find the
  205. files at. 10050: ALPHA removed from SDK (directly).
  206. This basically means that msispy.msi no longer has
  207. ALPHA support. NONE of the msispy alpha files are
  208. dropped in the SDK or in msispy now (the ALPHA features,
  209. etc. have been removed as well). Furthermore,
  210. msispy only contains the SHIP version of the resource
  211. DLLs, however they are tied to a separate feature so are
  212. still available when installing the debug features
  213. (DEBUG=1 on msiexec command line) for msispy or
  214. installing the "ship/x86" features.
  215. 99-10-18 cnapier Fixed bug 9866. Resource DLL's for msispy
  216. (spyjpn.dll, spyenu.dll, spyara.dll, and spydeu.dll) now have
  217. versions. All msispy DLL's now track MSI version.
  218. Msispy's file table is now authored correctly (updated
  219. during build process by reading from spycab.ddf
  220. although msispy files are not actually cabbed). For
  221. resources to work with the resource DLL's, msitool.mak
  222. was modified. A .cpp file can now optionally specify a
  223. LANGUAGE and CODEPAGE in hex to work with properly
  224. languaging the DLLs. For example, spydeu.dll uses
  225. spydeu.cpp which specifies CODEPAGE = 0x04E4 (for 1252)
  226. and LANGUAGE = 0x0407 (for 1031 = GERMAN).
  227. Furthermore, a .cpp file can now specify both generation of a
  228. VERSION resource as well as inclusion of a separate
  229. resource file (.res). The spydeu.cpp files in
  230. %DARWIN%\src\tools\spy is an example that utilizes this new
  231. feature.
  232. 99-10-13 cgouge Bug 9892. Merge Module validation, ICEM09, checks
  233. that if you are installing to predefined directories
  234. that you have aliased the directory primary keys and
  235. either generated the appropriate custom actions and
  236. placed them in the right place in the sequence tables or
  237. that you have left it completely to the merge tool.
  238. 99-10-12 cnapier Fixed bug 10078. ICE72: new validator. The only
  239. customactions allowed in the AdvtExecuteSequence table
  240. are type 19, type 35, and type 51 custom actions.
  241. -----------------------------
  242. Release 1.1.1012.1
  243. -----------------------------
  244. 99-10-11 mattwe Bug 9962: The SDK now replaces our release
  245. PUBLIC directory. All your favorites should
  246. be there, you may just need to look in a
  247. different spot. The SDK flat files are copied
  248. out, and the actual SDK package with the
  249. cabinets is at the root of the x86 branch.
  250. 99-10-11 mattwe Bug 10014: continued: removed WRITE_DAC and
  251. WRITE_OWNER from the custom action server
  252. process as well.
  253. -----------------------------
  254. Release 1.1.1012
  255. -----------------------------
  256. 99-10-11 mattwe Bug 10014: The custom action server is now secured
  257. against being debugged by the current user.
  258. This is necessary to prevent the user from having
  259. a trusted channel back into the service to modify
  260. the install.
  261. 99-10-09 cgouge Bug 10024. A Work2000 CA was failing because COM is
  262. already initialized on the CA thread in a different
  263. threading model than they were trying to use. We now
  264. spawn a separate thread for the action and don't
  265. initialize COM.
  266. 99-10-07 cnapier Fixed bug 9955 (exempt). ICEM04. Merge Module
  267. validator that ensures that required empty tables are
  268. indeed empty in the Merge Module. ICEMAN was fixed up
  269. as well (ICEMXX validators no longer have hyphens).
  270. -----------------------------
  271. Release 1.1.1007
  272. -----------------------------
  273. 99-10-06 cgouge Bug 10053. ANSI API calls with DBCS characters were
  274. returning the wrong buffer size for DBCS characters.
  275. We have gone back to the sub-optimal solution of
  276. returning twice the required buffer size in this
  277. situation.
  278. -----------------------------
  279. Release 1.1.1006
  280. -----------------------------
  281. 99-10-06 eugend Fixed bug # 10042: if we were failing to open the
  282. destination file for any reason, we weren't closing the
  283. previously open source file handle.
  284. 99-10-05 cgouge Bug 9967. Several APIs were failing when passing
  285. NULL as an input string buffer when they should have
  286. been succeeding (such as clearing a property). These
  287. string arguments now correctly handle NULL arguments.
  288. 99-10-05 cnapier Fixed bug 9899. (exempt). Orca. Fix infinite loop
  289. if publish component information is not registered.
  290. 99-10-01 bench Fixed bug 10048: MsiConfigureProductEx is now
  291. exported from the public msi.lib.
  292. -----------------------------
  293. Release 1.1.0930
  294. -----------------------------
  295. 99-09-29 cnapier Fixed bug 10013. Msi.rc. Network dialog resource
  296. chopped off parts of German text (and potentially
  297. Spanish as well). MsiDlgs tool was updated as well since
  298. its resources must match those in msi.dll. Msidlgs
  299. also did not have a large enough buffer to handle the
  300. German prompt string, possibly leading to not having
  301. found this bug sooner.
  302. 99-09-29 cgouge Bug 10018. Custom actions that throw exceptions now
  303. return failure instead of random value.
  304. 99-09-28 mattwe 9994: Updated readme in SDK to point new users to
  305. msi.chm as starting point for authoring, and to
  306. find descriptions of examples.
  307. 99-09-27 cnapier Fixed bug 9887. Msizap now has an undocumented
  308. option (o) for "orphaning" parts of a product. This was
  309. provided for OEMs to use. It works similar to the T
  310. option for removing a product, however it does not
  311. remove cached icons or clear shared DLL references
  312. -----------------------------
  313. Release 1.1.0923
  314. -----------------------------
  315. 99-09-23 cgouge Bug 10017. MsiBreak on action running via custom
  316. action server was not activating JIT Debugging because
  317. the breakpoint exception was getting caught by the
  318. custom action entry point exception handler.
  319. 99-09-23 mattwe Bug 9966: Registering directories on 9X no longer fails
  320. the install when we run out of registry space.
  321. Registering fails, and orphans the directory, but allows
  322. install to continue.
  323. 99-09-20 cgouge Exempt - no bug #. Checked in code for the new
  324. version of the IceMan ActiveX control on \\dartools. This
  325. DLL is internal use only and is not part of the build
  326. process.
  327. 99-09-20 cgouge Bug 9897. Added ICE-M07, which ensures that the
  328. sequence order of files in the CAB matches the sequence
  329. of files in the file table.
  330. 99-09-20 cgouge Bug 9896. Added ICE-M06, which ensures that merge
  331. modules have no explicit feature references.
  332. -----------------------------
  333. Release 1.1.0917
  334. -----------------------------
  335. 99-09-14 chetanp bug 9805 - we ignore installed component
  336. registrations if component path is not accessible for current
  337. user (in multi-user installation scenarios)
  338. 99-09-13 bench Fixed bug 9957: logging started during the install
  339. when an error occurs is now handled the same as
  340. logging started via policy, where we stop using the log at
  341. the end of the install.
  342. -----------------------------
  343. Release 1.1.0904
  344. -----------------------------
  345. 99-09-10 cgouge Bug 9960: eliminated crash on NT4SP3 caused by too
  346. many release calls on a marshaling object.
  347. 99-09-04 bench Bug 9944: rebuilt the AXP64 and IA64 builds with the
  348. latest tools, libs and headers (from Win2000 build
  349. 2121). the IA64 compiler changed and a rebuild using
  350. the new compiler was necessary.
  351. -----------------------------
  352. Release 1.1.0902
  353. -----------------------------
  354. 99-09-02 chetanp bug 9918 - latebind fix. dont call GetProcAddress
  355. with null hModule
  356. 99-09-02 chetanp bug 9913 - avoid expensive call to
  357. WNetGetResourceInformation with "filename only" args
  358. 99-09-02 cnapier Fixed bug 9895. MM validator. ICE-M05. This is
  359. the Merge Module validator that validates for stray
  360. components in the merge module. A stray component is
  361. defined as (1) Component listed in Component table but
  362. not in ModuleComponents table or (2) Component listed
  363. in ModuleComponents table but not in the Component
  364. table. In addition, it catches those Components listed
  365. in the ModuleComponents table whose ModuleID does not
  366. match the current ModuleID (signature) of the Merge
  367. Module.
  368. 99-09-03 cgouge Bug 9893, MM Validation. Added ICEM03, which checks
  369. that all Module*Sequence tables form a proper forest
  370. under valid root nodes. (Fixed for 0902, but relnotes
  371. added later)
  372. 99-09-03 cgouge Bug 9890: Added ICEM02, which checks that a merge
  373. module has valid exclusions and dependencies. (Fixed
  374. for 0902, but relnotes added later)
  375. 99-09-03 cgouge Bug 9752. Added initial merge module validation
  376. infrastructure. mergemod.cub file is now built and
  377. dropped with other CUB files. It is also installed in the
  378. msival2 installer. (Fixed for 0902, but relnotes added later)
  379. 99-09-02 cnapier Fixed bug 9669. ICE66. Changed warning message to
  380. place warning on the table instead of on the
  381. SummaryInformation stream. This affects Orca's graphical
  382. display (now on the table instead of the pop-up msg
  383. about the SummaryInformation stream containing errors).
  384. 99-09-02 cgouge Bug 9914, missing namespace on CoInitializeEx call
  385. short-circuited latebinding, which caused creating the
  386. process to fail on Win95 gold, even though the
  387. function was never called on that platform.
  388. 99-09-01 eugend Fixed bug # 9906: I've removed an unnecessary Assert
  389. I've added while fixing 9864.
  390. -----------------------------
  391. Release 1.1.0831
  392. -----------------------------
  393. 99-08-31 chetanp bug 8062 - use case insensitivity for file path
  394. comparisons when determining when to clean up HKCR
  395. registrations
  396. 99-08-31 mattwe Bug 9796: On Win9X, the Environment actions are now
  397. more robust about recognizing "set" lines, including
  398. whitespace, and making the "set" optional.
  399. Example: path=foo, and set path=foo are now both
  400. acceptable in existing lines of the autoexec.bat
  401. 99-08-30 cnapier Fixed bug 9885. MsiZap. Deleting an UpgradeCode
  402. value from the UpgradeCodes key failed because the key
  403. was only opened with Read access. Delete requires
  404. KEY_SET_VALUE access.
  405. 99-08-30 bench Bug 9886: we no longer attempt to bind WFP-protected
  406. files (with the BindImage action, BindImage table,
  407. etc...)
  408. 99-08-30 cnapier Fixed bug 9868. EvalCom.dll. Two potential trouble
  409. areas where we could be calling through a garbage
  410. pointer or we could be attempting to get the length of
  411. a null string.
  412. 99-08-30 cnapier Fixed bug 9872. Use of CTempBuffer without
  413. services. Changed to use CAPITempBuffer. This was exposed
  414. on NT 4 Server when MsiUseFeature was called (it then
  415. called IsTerminalServerInstalled which is where the
  416. CTempBuffer was used).
  417. 99-08-27 cgouge Bug 9772, 9773. We now build merge modules for
  418. mergemod.dll and evalcom.dll. These will be build into the
  419. data directory and dropped at samples\modules. These
  420. are generally for MS use only.
  421. 99-08-26 eugend Fixed bugs # 9852, 9864 & 9880: all of these have to
  422. do with a bad fix I made to 9566. The fix to 9864
  423. consists mainly of removing the calls to
  424. SfcConnectToService and SfcClose from DllMain and putting them
  425. into MsiUIMessageContext's Initialize and Terminate.
  426. 9852 is tracking the performance issue resulting from
  427. the condition that caused 9864, so that this one got
  428. fixed as well by the fix to 9864. The fix to 9870
  429. consists of moving the call to SFC::Unbind from
  430. UnbindLibraries into MsiUIMessageContext::Terminate, right
  431. after the call to SfcClose.
  432. 99-08-25 cgouge Bug 9644, 9762. The custom action server was not
  433. secure and would fail when the client was not the same
  434. as the user owning the desktop. To work around this,
  435. Darwin has taken over management of the custom action
  436. server process. Security is now enforced through a
  437. combination of ACLs and cookies, and the owner of the
  438. server is now the determined by the impersonation
  439. token held in the service. See the bugs for details.
  440. 99-08-25 cgouge Bug 9857, thread problems with custom actions. When
  441. custom actions were run from the custom action
  442. server, there was no relationship between the thread in the
  443. service and the thread in the client (especially for
  444. async actions.) This meant that handle management
  445. was all goofed up, because the service would think that
  446. the wrong threads were trying to close the handles.
  447. We now pass the thread id of the caller across to the
  448. service to be used in these cases instead of using
  449. the real thread id.
  450. 99-08-24 chetanp bug 9818 - hack to prevent premature removal of
  451. class registration (to work around incorrect component
  452. definition)
  453. 99-08-23 cnapier Fixed bug 9803. Security. We now verify that the
  454. owner of our registry keys (Installer, Policy, and
  455. Managed) is system or admin. The MSI folder must also
  456. be admin or system owned (unless on a FAT system where
  457. there is no security with files or folders).
  458. Non-system or admin owned keys are deleted (and would
  459. therefore be recreated).
  460. 99-08-23 cnapier Fixed bug 9836. String pool corruption occured if a
  461. table was loaded in memory with no persistent data
  462. changes and the string pool index was bumped from 2 to
  463. 3 (over 64K strings). The table is then released
  464. (and no changes saved since no persistent data
  465. changed). Upon re-load, table is read in incorrectly since
  466. the index size bumped. We read in a 2 byte persisted
  467. format as 3 bytes. Fix was to include the string
  468. index bump as a "data change" and to mark all
  469. non-temporary tables when the string index was bumped.
  470. 99-08-18 mattwe Bug 9844/9845: Minor fixes to MsiGetShortcutTarget and
  471. its automation for buffers being too short for the null.
  472. Added logic for CFixedLengthParam to detect overruns in
  473. DEBUG only.
  474. 99-08-17 cnapier Fixed bugs 9832, 9833. ICES 44 and 45. Fixed so
  475. that the ICE UNKNOWN error is not returned. For ICE44,
  476. UNKNOWN was returned if you didn't have a Dialog
  477. Table but had a ControlEvent table. This was corrected
  478. to not report an error if ControlE table is empty and
  479. reports an error that the Dialog table is missing if
  480. ControlE table is not empty. ICE45 fixed the buffer
  481. problem when getting a summary information stream.
  482. We didn't handle the ERROR_MORE_DATA case correctly.
  483. 99-08-17 bench Fixed suggestion bug 9834: MsiFiler now sets the
  484. Language column of the File table along with the Version
  485. and FileSize columns.
  486. -----------------------------
  487. Release 1.1.0816
  488. -----------------------------
  489. 99-08-16 mattwe Bug 9636: Implemented new API MsiGetShortcutTarget
  490. to retrieve product, feature, and component from a
  491. Installer shortcut.
  492. 99-08-13 chetanp bug 9801 - replace global feature cache semaphore
  493. with local one.
  494. 99-08-13 cnapier Fixed bug 9776 (regression). The ModuleDependency
  495. ModuleLanguage column was entered incorrectly in the
  496. _Validation table used with schema.msm and schema.msi
  497. 99-08-12 eugend Fixed bugs # 9566 & 9817: both of these two fixes
  498. improved Darwin's performance with regard to its
  499. interactions with SFP (system file protection).
  500. -----------------------------
  501. Release 1.1.0811.1
  502. -----------------------------
  503. 99-08-11 chetanp bug 9381 - incorrect param to CreateFileMapping and
  504. premature return from fn, in case of error, w/o
  505. releasing semaphore causes hang.
  506. -----------------------------
  507. Release 1.1.0811
  508. -----------------------------
  509. 99-08-11 bench Fixed bug 9820: regression of bug 9760. reset a
  510. global flag when necessary to prevent calling Wx86 apis
  511. when emulation not loaded.
  512. -----------------------------
  513. Release 1.1.0810.1
  514. -----------------------------
  515. 99-08-10 cnapier Fixed bug 9813. ICE64 -- which validates
  516. directories in user profile are added to RemoveFile table.
  517. However, if the DefaultDir column uses the specification
  518. of ".:MyDir", then it is valid (provided all parents
  519. up to profile folder have .:).
  520. 99-08-10 bench Fixed bug 9819: we always return
  521. ERROR_INSTALL_FAILURE from MsiAdvertiseScript for invalid script
  522. problems.
  523. -----------------------------
  524. Release 1.1.0809
  525. -----------------------------
  526. 99-08-09 cnapier Updated pullsdk.bat, copypub.bat, and makefile to
  527. handle building the msival2.msi 1.0 SDK refresh files
  528. to specific alpha and intel directories (since the
  529. cube file stuffed in the package is platform specific).
  530. Pullsdk.bat was modified to pull the correct package
  531. based on platform. Copypub.bat copies both versions
  532. to Alpha and X86 directories beneath the
  533. packages\100 archive.
  534. 99-08-09 chetanp bug 9816 - check return of while enumerating scripts
  535. on alpha for bogus script file.
  536. 99-08-09 chetanp bug 9719 - remove shared read/write section from
  537. msi.dll. Replace with shared memory mechanism
  538. -----------------------------
  539. Release 1.1.0808
  540. -----------------------------
  541. 99-08-08 bench Fixed bug 9760: several problems with advertising
  542. x86 scripts on alpha machines. Emulation was not
  543. correctly being enabled.
  544. 99-08-08 bench Fixed bug 9810: AdminTools folder not properly
  545. handling cross-machine script generation/execution.
  546. 99-08-04 cnapier Fixed bugs 9699, 9765, 9776. These deal with the
  547. logo cube files and the 1.0 SDK refresh. We now cab
  548. the logo.cub file with msival2.msi and install it as
  549. well. For 1.0 SDK refresh, the original cub file was
  550. modified to work with 1.1 darwin (change schema in
  551. SumInfo from 28 to 100). An x86 and alpha version are
  552. available and built from %DARWIN%\public\packages\100
  553. (x86 and alpha directories respectively). A 1.0 SDK
  554. refresh msival2.msi is built and put in the
  555. public\packages\100 directory. The _Validation table now
  556. contains entries for the MergeModule tables that could be
  557. merged into your database.
  558. 99-08-04 cnapier Fixed bug 9792. Removed line where we assumed a
  559. record had transform data during uninstall. Apparently
  560. this was overlooked when we changed how we obtained
  561. transform information (now from registry). During
  562. remove, we only populate the record with the names of
  563. the transforms, not name-data pairs. We now remove all
  564. transforms (not every other) on Per Machine
  565. installs.
  566. 99-08-03 chetanp bug 9731 - we no longer ACL the files (profile
  567. transforms and icons) that are put in the appdata folder
  568. during per user installs.
  569. -----------------------------
  570. Release 1.1.0803
  571. -----------------------------
  572. 99-08-02 bench Fixed bug 9780. made a few Win64-only code changes and a
  573. couple of non-specific ones to get Win64 builds going with
  574. the latest build tools. We should now be dropping ship and
  575. debug Win64 builds to \\united\darwin.
  576. 99-08-02 bench Bug 9313 - fixed minor problem with previous fix. when profiles
  577. were enabled, a different user would be allowed to continue an install
  578. after reboot. an error would be thrown, but as a warning and not a
  579. fatal error.
  580. 99-08-02 johndelo Bug 9581 - sequence.msi built which has recommended
  581. sequence tables. Darwin 1.0 version for 1.0 SDK
  582. checked in under DARWIN\public\packages\100
  583. Header files conditionalized with MSI version check
  584. for 1.1 definitions that are not available in 1.0
  585. Version 110 (MSI 1.0) forced if _WIN32_MSI not defined
  586. AND _WIN32_WINNT >= 0x0500. Core components set _WIN32_MSI
  587. to 110, but tools use 100 to insure 1.0 compatibility.
  588. 99-08-02 cnapier Fixed bug 9726 (regression). Caused by bug 9751 fix
  589. which overwrote these changes. Removed trailing
  590. quote from WFP error strings in Error table. Updated
  591. inst1033.msi and error.enu. All localized files were
  592. correct.
  593. 99-08-02 cnapier Fixed bug 9684 (regression feature request). New
  594. ICE71 to verify that the Media table has an entry with
  595. DiskId = 1.
  596. -----------------------------
  597. Release 1.1.0729
  598. -----------------------------
  599. 99-07-29 mattwe Bug 9767: Removed the full system path on system
  600. library loads on Win9X. This isn't necessary to
  601. security, and busts instmsi/copymsi.
  602. 99-07-28 cnapier Fixed bug 9766. Fix the S option with msizap so
  603. that it actually does work. (S removes rollback
  604. information).
  605. 99-07-28 cnapier Fixed bug 8905 (regression new feature request).
  606. X-ref components in same feature is a warning. X-ref
  607. components in different feature, parent feature, or
  608. child feature is an error. Verb-Ext, AppId-Class
  609. validations are all warnings (open to author
  610. interpretation).
  611. 99-07-28 bench Fixed bug 9313: on Win9X, allow a user to resume a
  612. ForceReboot install after reboot if profiles are
  613. disabled. This didn't work previously if the user started
  614. the install when logged in as themselves (or dialed
  615. up to the network) but after the reboot they
  616. cancelled the login prompt (or didn't dial up).
  617. -----------------------------
  618. Release 1.1.0728
  619. -----------------------------
  620. 99-07-27 mattwe Bug 9601: Shell folder Admin Tools will
  621. be deleted if it is empty. Since our lookup
  622. mechanism may create it, we don't want empty
  623. copies lying about.
  624. -----------------------------
  625. Release 1.1.0727
  626. -----------------------------
  627. 99-07-27 mattwe Bug 9763: added .DLL to system library loads
  628. 99-07-26 cgouge Bug 9643, cleaned up mergemod header file.
  629. 99-07-26 cnapier Fixed bug 9751. In all of the error.XXX tables in
  630. %DARWIN%\data\intl (and instXXXX.msi in
  631. %DARWIN%\src\intl) updated the 1301 error message by changing
  632. parameter from [3] to [2]. (Used a script for this and
  633. made sure I was on a machine with all of the language
  634. codepage supports).
  635. -----------------------------
  636. Release 1.1.0722
  637. -----------------------------
  638. 99-07-23 cgouge Bug 9637 (regression) Wide versions of the APIs now
  639. will succeed when remoted.
  640. -----------------------------
  641. Release 1.1.0722
  642. -----------------------------
  643. 99-07-22 cgouge Bug 9743. MergeMod was generating invalid sequence
  644. tables when multiple predefined directories were used
  645. in a module that already had multiple predefined
  646. directories from earlier modules.
  647. 99-07-22 cgouge Bug 9596 regression. Change to command line parsing
  648. had broken the ability to use merge modules from the
  649. command line (caused by a variable initialization in
  650. the wrong place.)
  651. 99-07-22 chetanp bug 9732 - We now accomodate the case where a CA
  652. calls Modify on a SELECT query w/o calling Execute.
  653. 99-07-22 mattwe Fixed bug 9722: "latebound" DLLs now are expected
  654. to be in the system directory, and will only load from
  655. there. Non-optional system components (like msi.dll)
  656. will continue to load normally. (So, you can still
  657. run msiexec from a private directory, as long as you
  658. have privileges to register the service there.)
  659. 99-07-22 cnapier Fixed bug 8811. Problems with costing cached patch
  660. packages. When we began recosting the engine cost
  661. (cached database, script, etc) we never re-intialized
  662. the cost of the cached patch package. This would
  663. result in our writing bogus values for the estimated size
  664. in the ARP uninstall key.
  665. 99-07-22 cnapier Fixed bug 9740. Propogate _Validation table changes
  666. (Class.Argument, Environment.Values have
  667. Category=Formatted) to all databases. Our 1.0 databases grabbed
  668. the _Validation table from
  669. %DARWIN%\public\packages\100. Updated _Validation table in 100 and 101 for
  670. those entries. Note that
  671. %DARWIN%\data\schema\_validat.idt was correct. Also, 1.0 Darwin supports these
  672. columns as formatted, we merely validated them as Text.
  673. 99-07-21 cnapier Fixed bug 9726. Error.enu corrected to remove
  674. trailing '"' in 1930,1931,and 1932 error messages.
  675. Error.idt and ActionTe.idt files delfiled from
  676. %DARWIN%\data\template. Makefile changed so that error.enu and
  677. actionte.enu files are imported into the databases
  678. from the %DARWIN%\data\intl directory. This required
  679. copying the .enu file to a .idt file in the TEMP
  680. directory since the bug to fix msidb to allow import of non
  681. idt files was punted way back when.
  682. 99-07-21 cnapier Fixed bug 9736. ICE69 in an infinite loop. Problem
  683. was we were not handling the case where a particular
  684. table was not found in the middle of a while loop.
  685. 99-07-21 cgouge Bug 9620: Fixed problem with new "smart merge" for
  686. validation COM object that would cause validation to
  687. fail if the Binary or CA tables were missing in the
  688. target database.
  689. 99-07-21 mattwe bug 9619: verb registration for .msi and .msp are now
  690. consistent on downlevel platforms as with NT5. InstMsi's
  691. registry table now contains %* for verbs, allowing
  692. command line arguments to be passed in a command line
  693. of the form: "foo.msi blah blah blah"
  694. -----------------------------
  695. Release 1.1.0721
  696. -----------------------------
  697. 99-07-20 chetanp bug 9720 - honour existing "available" feature
  698. state, if readvtising a feature marked as absent via an
  699. advertisement script (during app deployment, relogon).
  700. 99-07-20 chetanp bug 9716 - error when attempting to get file
  701. security for a folder on the net. needed to impersonate the
  702. user.
  703. 99-07-20 chetanp bug 9676 - ORCA: Right Click on a .msi to "Edit with
  704. Orca" did not brings up anything on Win98.
  705. 99-07-20 chetanp bug 8882 - fixed behaviour where we were incorrectly
  706. allowing installs from disconnected CSC sources.
  707. 99-07-20 chetanp bug 9707 - fix crash when a CA calls
  708. MsiSetFeatureState w/o initializing the selection manager (calling
  709. CostInitialize , FileCost , and CostFinalize
  710. 99-07-20 cgouge Bug 9684. A multi-CD install would prompt for a disk
  711. when it needed to determine the source type, but
  712. would list and accept any disk disk from the product.
  713. The last used source would also get tossed in, even if
  714. it was the wrong disk. We now prompt for and accept
  715. only the disk that we actually need.
  716. 99-07-20 cgouge Bug 9637. The marshalling code for the CustomAction
  717. server was having serious problems marshalling across
  718. the users buffers when the provided size was 0. This
  719. manifested as random crashes and/or
  720. RPC_S_INVALID_BOUND returns from any API with an [out, string] buffer
  721. when called from the CA server. Our API calls now
  722. create dummy buffers of 1 char to use in these special
  723. cases. The only exception is MsiRecordReadStream,
  724. which maintains state and thus can't use dummy buffers.
  725. Instead, it explicitly passes across the remote
  726. interface a flag which says whether or not to use the
  727. provided buffer.
  728. 99-07-20 cgouge Bug 9166. When recaching a package from a product
  729. code, we don't verify that the sources in the source
  730. list have the same package code as the cached package,
  731. although they still have to have the same name. This
  732. allows recaching via product code when the source
  733. images have had a minor update applied.
  734. 99-07-20 cgouge Bug 9710: MergeMod. No longer populate the
  735. AdvtUISequence table with generated custom actions for
  736. GUID-ized predefined directories. The table is now left
  737. empty.
  738. 99-07-20 cnapier Fixed bug 9714. MsiDb must pass number bytes, not
  739. number of characters to WriteFile. in addition,
  740. updated msiinfo, msimerg, and msitran to do the same thing
  741. (they worked, but had a hard coded value instead of
  742. sizeof(TCHAR)).
  743. 99-07-19 cnapier Fixed bug 9685. ICE70. Reactivated to handle
  744. properties. Also added validation of #xHex syntax in
  745. registry value column.
  746. 99-07-19 cnapier Fixed bug 9370. ICE68. Reactivated due to
  747. disallowing certain customaction attributes for Text and
  748. Install Types. Text allows the Pass flags (except for
  749. InScript). Install only also allows continue flag.
  750. 99-07-15 cnapier Fixed bugs 8905, 9669, 9685. ICEs 66, 69, and 70.
  751. Reworked ICE 66 due to fix to bug 9536. Warns
  752. (based on your database schema) that functionality only
  753. availabe for certain tables (like Upgrade) if
  754. installed on Windows Installer 1.1 or greater.
  755. ICE 69 fixed to include Environment, Class, and
  756. AppId tables. Environment and Class table required
  757. changes to _Validation table so that Env.Value and
  758. Class.Argument are Formatted strings (originally listed as
  759. Text). AppId validation similar to Verb-Extension
  760. validation.
  761. ICE 70. Validates that registry values with only a
  762. single # preceding a string are followed by numeric
  763. characters.
  764. 99-07-15 cnapier Fixed bug 9694. Made return codes from
  765. MsiGetSourcePath consistent. Previously we returned
  766. ERROR_DIRECTORY for W version and ERROR_BAD_PATHNAME for A
  767. version. ERROR_DIRECTORY now standard for
  768. MsiGetSourcePath, MsiGetTargetPath for when directory isn't in
  769. directory table.
  770. 99-07-15 cgouge Bug 9686. Validation. We were checking the wrong
  771. attributes in the upgrade table.
  772. 99-07-14 mattwe Bug 9698: SourceList APIs were trying to call
  773. impersonation routines on 9X, and don't now.
  774. 99-07-14 mattwe Bug 9455: secure icons and Patch files are now
  775. marked to elevate their operations during rollback.
  776. 99-07-14 cnapier Fixed bug 9621. Instlr11.adm. Updated Terminal
  777. Server policy so that string looks better within the
  778. policy editor (previously you had to scroll forever) for
  779. down-level systems.
  780. 99-07-14 cnapier Fixed bug 9696. ORCA. Default SaveAs extension is
  781. now ".msi" instead of ".odb". The ".odb" extension
  782. was defunct and no longer supported in ORCA.
  783. -----------------------------
  784. Release 1.1.0714
  785. -----------------------------
  786. 99-07-13 cgouge Bug 9674. Orca would crash if a repaint message came
  787. in the middle of the command handler for File/New
  788. when a document was already open. Fixed.
  789. 99-07-13 cnapier Fixed bug 9622. MsiZap. Fixed msizap to be more
  790. restrictive about zapping all. Also made it possible
  791. to remove a product with the product code or msi
  792. package. MsiZap no longer removes the Run-Once key
  793. (potential to mess up other apps). Msizap now removes the
  794. Rollback information (* or S option). Finally during
  795. removal of a product, MsiZap will remove the product
  796. from Patch Keys and Upgrade Keys. A particular
  797. upgrade or patch will then be removed if no other product
  798. references it.
  799. -----------------------------
  800. Release 1.1.0712
  801. -----------------------------
  802. 99-07-12 chetanp fixed bug 9536 - we no longer use the database
  803. version to assume a particular schema type. On the other
  804. hand, for a particular table, we first attempt to
  805. check if it has the latest schema and fall back to the
  806. olders shcema(s) if not. What this allows is the
  807. ability to author a database in the most current schema
  808. and allow same database to run in older versions of
  809. Darwin with graceful degradation.
  810. 99-07-10 cgouge Bug 9620, Validation. The EvalCom validation object
  811. is now more tolerant of merge conflicts between the
  812. CUB file and Database. It ignores _Validation
  813. conflicts, and will work around schema conflicts in the
  814. Binary and CA table when possible.
  815. 99-07-09 cnapier Fixed bug 9621. Created a instlr11.adm file for
  816. non-W2K systems. Used the actual system.adm file
  817. included with W2K as the template. Extracted installer
  818. specific information and removed conditional statements
  819. and other keywords unavailable in versions 1 and 2 of
  820. the system policy editor. Instlr11.adm is located
  821. in %DARWIN%\sdk and the files for building the SDK
  822. were updated with this additional file.
  823. 99-07-09 bench Bug 9665: put back entries for the IsolatedComponents
  824. table in the _Validation table that were inadvertently
  825. removed.
  826. 99-07-09 bench Bug 9660: increased version to 1.10 from 1.03, and changed
  827. version of schema.msi to 110 from 103.
  828. 99-07-09 bench Bug 9659: msiexec.exe was entering non-localized event log
  829. entries. rather than localize these strings, they are sent
  830. to debug output rather than the event log.
  831. 99-07-09 cgouge Bug 9624, changed Orca installer to insntall to
  832. correct place on Win9X
  833. 99-07-08 cnapier Fixed bug 9662. Changed ICE54 to report a warning
  834. instead of an error when using keyfiles with versions
  835. from companion files in different components. This
  836. case can work but has some shortcomings as well.
  837. -----------------------------
  838. Release 1.1.0707
  839. -----------------------------
  840. 99-07-07 mattwe bug 9651: Custom actions continue to be secure
  841. for elevated actions, but may be insecure for
  842. client side custom actions. A future bug will
  843. be filed. This fix is for RC2 release.
  844. 99-07-06 cgouge bug 9632: Schema.msm is now dropped along with
  845. schema.msi.
  846. -----------------------------
  847. Release 1.1.0702
  848. -----------------------------
  849. 99-07-02 mattwe bug 9569: network files now only have their DACLs
  850. saved/restored due to limitation of impersonation/
  851. elevation.
  852. -----------------------------
  853. Release 1.1.0701
  854. -----------------------------
  855. 99-07-01 mattwe bug 9569: Patching now works against secured
  856. network files, and preserves the security correctly.
  857. DEV: See CSecurityDescription for new generic routines
  858. TEST: Removed the config flag from TempFileName automation
  859. 99-07-01 chetanp bug 8041 - fixed case where we were not clearing up
  860. HKCU com registration for component C1 installed in
  861. the context of Product P1 if the same component was
  862. also installed by some other user in another products
  863. (say P2) context.
  864. 99-07-01 Tracyf Bug 9635 - improved the log message generated when
  865. an attempt is made to reinstall protected files.
  866. 99-07-01 cgouge Orca bugs. 9574, 9596, 9074, 9336. Clean up UI,
  867. finish dropping ODB support, and fix a few Win95 Gold
  868. problems.
  869. 99-07-01 cnapier Fixed bug 9629. Ice 35. Changed RFS warning msg to
  870. include phrase "if running from media" as an admin
  871. install would not have the problem.
  872. 99-06-30 chetanp fixed bug 9617 - incorrect shared dll registration
  873. during rollback of component
  874. registration/unregistration.
  875. 99-06-28 cnapier Fixed bugs 6677, 7535, 7536. Documented
  876. MsiLoadString and MsiMessageBox (although they are not exposed
  877. thru automation). Added those API plus the ixoOdbc
  878. op codes to the contents file.
  879. -----------------------------
  880. Release 1.1.0625
  881. -----------------------------
  882. 99-06-24 cgouge Bug 9599. mergemod.dll updated to support Darwin 1.1
  883. shell folders.
  884. 99-06-24 cgouge Bug 9598. Mergemod.dll. We no longer fail if
  885. TARGETDIR does not already exist in the database.
  886. -----------------------------
  887. Release 1.1.0624
  888. -----------------------------
  889. 99-06-23 cnapier Bug 8905. Validation. Added ICE69 which checks
  890. cross-referencing of components between formatted
  891. strings. Also does some cross-checking of components
  892. between formatted strings in the Verb table and components
  893. in the Extension table. Tables typically validated
  894. are the Shortcut, IniFile (and Remove), Registry (and
  895. Remove), and a few others.
  896. 99-06-23 cgouge Bug 9152. Validation. Added ICE66 which checks the
  897. schema of your package and the tables in your database
  898. to make that your schema is in the appropriate
  899. range.
  900. 99-06-23 eugend Fixed bug # 9507: instead of unconditionally
  901. removing all icon files, Darwin now performs a series of
  902. checks before removing any icon file (pls. see the bug
  903. for details).
  904. 99-06-22 johndelo Updated all localized strings to localizer Version9
  905. InstNNNN.msi, Error.LLL, ActionTe.LLL, msiLLL.res
  906. Fixed parameter numbers for errors 1931,1932 - Bug 9389
  907. 99-06-22 bench Fixed bug 9587: we can now write negative DWORD
  908. registry values again (like "#-234"). this was broken by
  909. a regression for bug 9280.
  910. 99-06-22 cgouge Bug 9370. New ICE68, checks that custom action types
  911. are valid.
  912. 99-06-22 mattwe bug 9569: Patching will no longer overwrite files
  913. to which it has no access. (this means both the file
  914. and directory are secured correctly. See bug for more
  915. details.)
  916. 99-06-22 chetanp bug 9570 - fixed incorrect computing of default
  917. verb(s) in case the Argument column was null for the
  918. verbs.
  919. 99-06-22 cgouge Bug 9567. MsiAddSource no longer attempts to connect
  920. to the source or validate its existance.
  921. 99-06-22 bench Bug 9571: feature request to make the Upgrade.Remove
  922. column formatted, meaning you can have an expression
  923. instead of static text, allowing for the list of
  924. features to remove to be dynamic.
  925. 99-06-22 cgouge Bug 9503. Added ICE62, checks for a plethora of
  926. different problems in the IsolatedComponent table.
  927. 99-06-21 cgouge Bug 9563. Validation, new ICE67. Checks shortcut
  928. targets to ensure that they either belong to the same
  929. component as the shortcut or are restricted to source
  930. only or local only. This keeps the shortcut from
  931. becoming invalid when the target component transitions
  932. from RFS to local or v.v.
  933. 99-06-21 bench Fixed bug 9455: security bug where we were always
  934. elevating when running rollback scripts. now we only
  935. elevate when rolling back an elevated install.
  936. 99-06-21 bench Fixed bug 9568: clicking ignore to the error dialog
  937. for error 1328 would not ignore the error - now it
  938. does.
  939. 99-06-21 johndelo Bug 9564,9565. Fusion support added to schema.
  940. Darwin version bumped to 1.03 - core support for Fusion
  941. IsolatedComponent table, validation added to schema.msi
  942. IsolateComponents action added to template.msi
  943. Bug 9581 opened for mechanism to distribute sequence tables.
  944. 99-06-21 johndelo Bug 9163. All ODBC description fields non-localizable,
  945. as they are all registry keys, sometimes hard-wired.
  946. In addition to previous update driver, translators,
  947. and data source tables were updated with this recommendation.
  948. 99-06-21 cgouge Bug 7661. The ADMINTOOLS was failing because we were
  949. always calling ShGetFolderPath with an hToken value,
  950. which is not valid on non-NT5 machines. Thus our
  951. shell folder calls were always falling back on the
  952. registry checks when called from the service. This meant
  953. that a server-side install could hit cases where the
  954. folder did not exist and couldn't be created. We now
  955. pass a 0 value for the token on non-NT5 machines.
  956. 99-06-21 Tracyf Bug 9561: don't put up SFP error dialog when
  957. attempting to reinstall equal-versioned protected files.
  958. 99-06-21 Tracyf Bug 9560: Put up a dialog if SFP fails, instead of
  959. silently rolling back.
  960. 99-06-21 Tracyf Bug 9556: Always log the reason the install requires
  961. a protected file to be copied.
  962. 99-06-21 Tracyf Bug 9493: Change SFP error to fatal if required file
  963. is not copied at all.
  964. 99-06-17 mattwe Bug 9548: We now secure the files used for
  965. configuration data: scripts, caches for
  966. transform, patches, icons, databases, and
  967. the custom action temporary DLLs used during
  968. an install. We do *NOT* secure RBF files beyond
  969. the security they already possess.
  970. 99-06-17 mattwe Bug 9513: We now mark all RBF files as
  971. hidden/system. This prevents the RBF files
  972. from showing up on network share desktops,
  973. for example.
  974. 99-06-16 eugend Fixed bug # 9519: the Copyright information in
  975. Darwin source files has been brought up to date.
  976. -----------------------------
  977. Release 1.1.0616
  978. -----------------------------
  979. 99-06-15 eugend fixed bugs # 9527 - buffer overflow in CA processing
  980. code and # 9552 - incorrect error string for
  981. ERROR_INSTALL_PLATFORM_UNSUPPORTED error.
  982. 99-06-15 cgouge Bug 9547. We no longer set the TerminalServer property
  983. or do TS-specific stuff when on a TS remote admin
  984. machine. The Global mutex prefix is still used
  985. on all NT5 machines and TS4 machines.
  986. We also set a new property on these machines, "RemoteAdminTS"
  987. 99-06-15 Tracyf Bug 9485: Due to an external change in sfc.dll to
  988. fix a memory leak problem, an extra parameter was added
  989. to the SfcIsProtectedFile API, requiring a Darwin
  990. change.
  991. 99-06-15 Tracyf Bug 9537 - Bug 9537: fixed late-binding for SFP
  992. calls to avoid asserts on non-NT5 platforms.
  993. 99-06-15 bench Fixed bug 9529: we now allow a non-localadmin user
  994. to deploy an app via the MMC on Windows 2000 if the
  995. app being deployed happens to be assigned to that user
  996. already. prior we would only allow admins to deploy
  997. in this case.
  998. 99-06-15 cgouge Bug 9362. Validation. Updated ICE45 to check
  999. specific control types for specific bits instead of just
  1000. checking the whole table for any bit that is valid for
  1001. any control type.
  1002. 99-06-15 cgouge Bug 8382. Validation, new ICE65. Checks that the
  1003. Environment.Value column doesn't have invalid formatting
  1004. codes of the type [~]<sep>Value<sep> or the reverse.
  1005. 99-06-15 cgouge Bug 7661. Support for new CSIDL values:
  1006. LocalAppData, CommonAppData, MyPicturesFolder, AdminToolsFolder
  1007. (with ALLUSERS support) and Win2000 ALLUSERS
  1008. TemplateFolder support. See the Darwin1.1 Shell Folder spec
  1009. for details.
  1010. 99-06-09 cgouge Bug 9516. a DLL CA marked to impersonate ran in the
  1011. same process as msiexec. This caused the process
  1012. token to be LOCALSYSTEM when running from the service.
  1013. Thus calling CreateProcess() from the DLL resulted in a
  1014. new process running as the system. We now run all
  1015. impersonated DLL CAs through the remote CA server when
  1016. called from the service, not just for non-elevated
  1017. installs. In-script actions marked icaNoImpersonate
  1018. still run as before (in-proc).
  1019. 99-06-08 cgouge Bug 9361. Validation, new ICE64, validates that
  1020. created directories in the user profile are added to the
  1021. RemoveFile table.
  1022. 99-06-08 cgouge Bug 9253, New ICE63, validates the
  1023. InstallExecuteSequence table with respect to the
  1024. RemoveExistingProducts action.
  1025. 99-06-08 bench Fixed bug 9512: the MsiApplyPatch api now accepts an
  1026. empty string for szPackage where it only accepted
  1027. NULL before. this change is to allow the api to be
  1028. called through automation.
  1029. 99-06-08 bench Bug 9506: InstallExecute in a merged nested install
  1030. will now force execution of the script rather than
  1031. waiting for the parent to execute the script.
  1032. 99-06-08 cgouge Buc 9476. Fixed SourceList API on Win9X. Most
  1033. critically, we were checking if the system owned a reg key,
  1034. but the function always failed on Win9X. The check
  1035. is no longer made. Also modified the way that we
  1036. detect if the modification is to the current user on a
  1037. Win9X system.
  1038. 99-06-07 bench Bug 9525: to support remote-admin mode for Terminal
  1039. Services, we now always prepend "Global\" to mutex names
  1040. on NT5, even if we don't believe TS is installed. As
  1041. before, we also do this on NT4 but only when TS is installed.
  1042. Remote-admin mode is made to look like TS is not installed
  1043. when it really is, and is only supported on NT5.
  1044. 99-06-07 cgouge Bug 9475. Dropped product versions (msispy, orca,
  1045. msival2) now track the MSI version. Note that sample
  1046. databases (testdb, etc) currently keep the same
  1047. versions.
  1048. 99-06-07 mattwe Bug 9490: A user edited WinInit.INI without a newline
  1049. at the end of the file had the next line appended
  1050. incorrectly. This now works.
  1051. 99-06-07 eugend Fixed bug # 9474. The following methods got added
  1052. to the Installer object:
  1053. - Installer.Patches(Product) - wrapper for
  1054. MsiEnumPatches, but unlike that, it returns only the string
  1055. list of patches, it doesn't bother with transforms.
  1056. - Installer.PatchTransforms(Product, Patch) - calls
  1057. MsiEnumPatches and returns the transform information
  1058. for a given patch.
  1059. - Installer.PatchInfo(Patch, Attribute) - wrapper for
  1060. MsiGetPatchInfo.
  1061. - Installer.RelatedProducts(Product) - wrapper for
  1062. MsiEnumRelatedProducts.
  1063. - Installer.AddSource(Product, User, Source) - wrapper
  1064. for MsiSourceListAddSource.
  1065. - Installer.ForceSourceListResolution(Product, User) - wrapper
  1066. for MsiSourceListForceResolution.
  1067. - Installer.ClearSourceList(Product, User) - wrapper
  1068. for MsiSourceListClearAll.
  1069. I've changed FeatureInfo.Attributes into a read-write
  1070. property - it wrapps MsiSetFeatureAttributes.
  1071. Doc bug # 9521 tracks this.
  1072. 99-06-04 cgouge Bug 9497. A merged nested install on Win9X would
  1073. fail if the parent was already in the registry (in this
  1074. case due to an advt) but the child was not. We would
  1075. then reject the child package because we think the
  1076. parent is elevated. The check from bug 9400 (which
  1077. rejects the nested install) now only happens on non-9X
  1078. systems.
  1079. 99-06-03 johndelo Bugs 9275-9278 MSI support for Fusion 1.0
  1080. For details, see implementation doc checked into the
  1081. DARWIN project under: DOC\Fusion.doc
  1082. 99-06-03 johndelo Bug 9496 - we have no Easter egg in Darwin (did we ever?)
  1083. 99-06-03 cgouge Bug 9491. Added private MsiIsProductElevated() API
  1084. for use by NT. This is not a public API, so is not in
  1085. the public header file, public automation layer, or
  1086. docs.
  1087. 99-06-02 cgouge Bug 8972, part 2. LFN checks across components using
  1088. the same Directory table entry now work in ICE30
  1089. 99-06-02 cgouge Bug 8972, validation. ICE30 made case-insensitive,
  1090. so that colliding files and directories don't have to
  1091. match exactly before a warning is generated.
  1092. 99-06-02 bench Fixed bug 9498: a problem with multiple transforms
  1093. where the first transform adds a brand new string to
  1094. the database and the second transform replaces that
  1095. string with another.
  1096. 99-06-02 mattwe Fixed bug 9495: /q on the command line had a buffer
  1097. reading problem where it skipped a null terminator.
  1098. 99-06-02 bench Fixed bug 9487: 2 problems: 1 is that we leave
  1099. behind a half-baked InProgress key when failing to write
  1100. one of its values. 2 is that when we encounter a
  1101. half-baked InProgress key we are stuck and do not allow
  1102. an install to occur until the key is manually removed.
  1103. 99-06-02 bench Fixed bug 9451: type 23 nested installs with
  1104. embedded cabs will now properly copy files when they are
  1105. merged with the parent transaction.
  1106. 99-06-02 bench Fixed bug 9484: updated MsiZap to clear the new
  1107. cached databases and the LocalPackages key introduced by
  1108. the recent fix to bug 9395.
  1109. -----------------------------
  1110. Release 1.1.0602
  1111. -----------------------------
  1112. 99-06-01 cgouge Bug 9478. Drop _InstallValidate table, which was
  1113. used by msival but isn't any longer. This is a change to
  1114. the makefile only, but the file lived with the other
  1115. CUB tables and was thus getting picked up still. It
  1116. will no longer appear in CUB files either.
  1117. -----------------------------
  1118. Release 1.1.0530
  1119. -----------------------------
  1120. 99-05-28 bench Fixed bug 9488 - error deleting a key on NT for non-managed,
  1121. non-admin uninstalls. This was a regression of bug 9395.
  1122. 99-05-28 chetanp bug 9373 - When fetching from a view in a read-only
  1123. database, and selecting to insert a temporary row, we
  1124. now prefetch the result set to avoid cursor
  1125. misplacement
  1126. 99-05-27 cgouge Bug 7852. The EvalCom DLL used in Orca and MsiVal2
  1127. was leaving a temp file behind in the temp directory
  1128. after running validation. We now delete the file
  1129. before exiting.
  1130. -----------------------------
  1131. Release 1.1.0526.1
  1132. -----------------------------
  1133. 99-05-26 chetanp bug 9482 - nested installs failure - occured due to
  1134. a change in status return code for MsiGetProductInfo
  1135. that was caused with the database caching spec
  1136. change.
  1137. -----------------------------
  1138. Release 1.1.0526
  1139. -----------------------------
  1140. 99-05-26 cgouge Bug 9231. Initial checkin of SourceList API. Users
  1141. can modify their own installs and per-machine installs
  1142. based on Browse policy. Admins can also modify
  1143. per-user managed installs for other users. Nobody can ever
  1144. modify another users non-managed installs. This
  1145. checkin consists of 3 calls, MsiSourceListClearAll,
  1146. MsiSourceListAddSource, and MsiSourceListForceResolution.
  1147. See the bug resolution and\or the API spec for
  1148. prototypes and more info. There should be NO changes in
  1149. Darwin behavior due to this bug, it consists solely of
  1150. new API implementation. The automation wrapper is not
  1151. a part of this checkin.
  1152. 99-05-25 chetanp fixed bug 9395 - fixed security hole due to sharing
  1153. of cached database by having individual copies of the
  1154. cached database for every user and the machine (for
  1155. per-machine installation).
  1156. 99-05-25 chetanp bug 9442 - Changed FormatText to resolve paths
  1157. correctly even if the action state is null if the
  1158. requested action state is not on NT5 and for registry writes
  1159. in the event we are writing HKCR info for a "lesser"
  1160. component (see bug 8062).
  1161. 99-05-25 bench Fixed bug 9472: an extension of the fix to bug 9233
  1162. - embedded nested installs with embedded cabs now
  1163. work when copying more than one file in a cabinet.
  1164. 99-05-25 chetanp fixed bugs 8041 - regression from bug 9381. Caused
  1165. HKCR info to be left in multi-user scenarios.
  1166. 99-05-25 chetanp fixed bugs 9461 - regression from bug 9381. Caused
  1167. advertisement on non-shell aware systems.
  1168. 99-05-25 cgouge Fixed Bug 9400. If a child install had a different
  1169. elevation state than the parent, we elevate stuff that
  1170. shouldn't be elevated. The child install will now
  1171. fail. If the child install is set to ignore failures,
  1172. we now correctly keep the parents elevation state
  1173. anyway.
  1174. 99-05-25 mattwe Bug 7283: very long lines (> 255 bytes) to the log
  1175. are now broken up into pieces. Looks normal, except
  1176. for extra linefeeds.
  1177. 99-05-25 Tracyf Fixed bug 9365: ReserveCost values are now
  1178. subtracted from the total disk cost at uninstall.
  1179. 99-05-25 Tracyf Fixed bug 9047: fixed FDI problem in which the
  1180. install cannot exit upon error in certain cases (such as
  1181. filename same as a sibling folder name).
  1182. 99-05-25 Tracyf Bug 9424: Added a new api: MsiSetFeatureAttributes,
  1183. which can be used to change the default attributes
  1184. for a feature at runtime (the defaults are authored in
  1185. the Attributes column of the Feature table).
  1186. 99-05-25 Tracyf Bug 8971: Added support for Win2000 System File
  1187. Protection (SFP). In short, for any file Darwin decides
  1188. it needs to install, it will now check with SFP to
  1189. determine if the file is protected by Windows. If so, and
  1190. the file is missing, Darwin will call SFP at install time to
  1191. actually install the file. For details, see the PM spec at
  1192. ttp://officeweb/specs/TCO/Darwin%201_1%20System%20File%20Protection.html
  1193. and the dev spec at
  1194. ttp://dartools/dardev/specs/System%20File%20Protection.doc
  1195. 99-05-24 bench Fixed bug 9453: ODBC errors that are ignorable with
  1196. UI are now ignored automatically in quiet mode.
  1197. 99-05-24 eugend Fixed bug #9413: from now on event log strings will
  1198. be written in the package's language.
  1199. 99-05-24 bench Fixed bug 8811: the cost associated with caching
  1200. .msp (patch package) files is now calculated and used
  1201. when determining out-of-disk-space and reporting space
  1202. requirements.
  1203. 99-05-24 mattwe bug 8973: When we create shortcuts, we now delay notifying
  1204. the shell of their existence until the end of the install
  1205. script. This gives the icons and other files a chance to
  1206. be copied. This sometimes results in shortcuts initially
  1207. being displayed with default icons, but they will display
  1208. correctly at the end.
  1209. 99-05-24 mattwe bug 9456: Due to database version 0.28 now longer being
  1210. supported (5/17/99), the localized transforms for instmsi
  1211. and copymsi needed to be updated.
  1212. -----------------------------
  1213. Release 1.1.0524
  1214. -----------------------------
  1215. 99-05-24 chetanp bug 9461 - fix lack of removal of all class and
  1216. advertisement information upon uninstall. Regression from
  1217. bug 9381
  1218. -----------------------------
  1219. Release 1.1.0523
  1220. -----------------------------
  1221. 99-05-21 cgouge Bug 9447. Hydra story, part 3. When modifying an INI
  1222. file in the windows folder during a hydra
  1223. per-machine install, we call the TermsrvLogInstallIniFileEx()
  1224. API to notify hydra that the file has been touched.
  1225. Hydra will then propogate the file to each user at
  1226. logon time.
  1227. 99-05-21 chetanp bug 9155 - fixed install error on locked down system
  1228. when attempting to update the EstimatedSize property
  1229. under the Uninstall key.
  1230. 99-05-21 chetanp bug 9037 - shell notification for shortcut
  1231. creation/deletion. Part of the bug was external and got fixed
  1232. with NT 2040.
  1233. 99-05-20 mattwe Bugs 9436: msiexec /q PROP=VALUE accidentally dropped the
  1234. property. (/qb PROP=VALUE worked.) This is fixed.
  1235. 99-05-20 mattwe Bugs 7593, 9256: On NT5, we now attempt to use the
  1236. USERPROFILE and APPDATA environment variables for registry
  1237. icon paths. When we do, the registry key gets a EXPAND_SZ
  1238. type. Note that APPDATA is only available in NT5 starting
  1239. with build 2042.
  1240. 99-05-19 cgouge Bug 7767. Part 2 of the Hydra story. This part syncs
  1241. up all of our GetWindowsDirectory calls so they have
  1242. the same value on the client and server side. All
  1243. calls to GetWindowsDirectory (which might result in a
  1244. lie on TS5 from a non-system context when called via
  1245. an API) have been replaced by a call to
  1246. MsiGetWindowsDirectory(). This function automatically calls
  1247. GetWindowsDirectory or GetSystemWindowsDirectory as
  1248. appropriate. Any future uses of GetWindowsDirectory() should
  1249. use MsiGetWindowsDirectory() instead. (except in
  1250. msiexec.exe)
  1251. 99-05-19 eugend Fixed bug #8984: MsiSetComponentState API now
  1252. returns ERROR_INSTALL_USEREXIT if Cancel button had been
  1253. hit. Doc bug # 9446 tracks this change.
  1254. -----------------------------
  1255. Release 1.1.0519
  1256. -----------------------------
  1257. 99-05-18 johndelo Bug 9432: product registration property InstallDate
  1258. now uses locale-independent date format: "YYYMMDD".
  1259. 99-05-18 bench Bug 9426: multiple cabinets on the first disk are
  1260. now supported even if the volume label in the Media
  1261. table doesn't match the actual volume label.
  1262. 99-05-18 bench Bug 9423: restored support for type 23 (relative
  1263. path to msi) nested installs.
  1264. 99-05-17 chetanp bug 8062 - if we are writing to the per user HKCR
  1265. (HKCU\S\C) AND the key under which we are creating the
  1266. value does not exist BUT the corr. key in the per
  1267. machine HKCR (HKLM\S\C) exists, AND we are witing this
  1268. value as part of a lesser component, then we skip
  1269. creating the key-value altogether since this will then
  1270. shadow the per machine HKCR.
  1271. 99-05-17 chetanp bug 8809 fixed. we now honour the MIME_ column of
  1272. the Extension table in writing the "Content Type" value
  1273. under the extension key. !!!NOTE: we no longer allow
  1274. for database versions < 30!!!
  1275. 99-05-17 eugend I've added a twist to the fix to 6623: if the error
  1276. exists in the table, but is defined as an empty
  1277. string, I don't look anymore for it in the DLL. This is
  1278. useful for packages that do not want to display
  1279. certain errors.
  1280. 99-05-17 cgouge Bug 8521. Part 1 of the Hydra story for 1.1. This
  1281. checkin includes support for the registry propogation
  1282. system in TS5. When beginning a transaction, we call a
  1283. special Hydra API to make a snapshot of .Default. We
  1284. then do all of our per-user registry writes to
  1285. .Default instead of HKCU. At the end of the install, we
  1286. call another API and Hydra diffs the snapshot with the
  1287. current state, propogating any changes to their
  1288. registry system and from there to all users. This fix also
  1289. elevates custom actions on per-machine Hydra 5
  1290. installs so that registry writes go to .Default and will
  1291. be propogated by this system.
  1292. Note: msiexec.exe is now marked as a hydra aware
  1293. app in the PE header.
  1294. 99-05-17 cgouge Bug 8843. Quick validation fix for bug in ICE17. Now
  1295. correctly skips properties that aren't the full
  1296. string when controls reference the binary table
  1297. 99-05-17 chetanp bug 9409 - added new msidbLocatorTypeRawValue =
  1298. 0x00000002 value to enum msidbLocatorType
  1299. 99-05-17 chetanp bug 9334 - We have removed the source resoution
  1300. calls that happen in registry, ini file and shortcut
  1301. costing. We now remember if source resolution failed
  1302. during selfunreg and skip it for the rest of the files
  1303. that were installed on source (logging a debug error).
  1304. 99-05-17 mattwe Bug 9081: The network icon has been updated to the
  1305. latest version in current Windows.
  1306. -----------------------------
  1307. Release 1.1.0513
  1308. -----------------------------
  1309. 99-05-13 mattwe Bug 8872: instmsi.msi now thoroughly uppercased for
  1310. Windows Installer.
  1311. 99-05-13 mattwe Bug 9417: instmsi.msi is now thoroughly frozen on
  1312. schema 30, with action text and error messages from
  1313. current builds. These must remain backwards compatible.
  1314. 99-05-13 cgouge Bug 8882. On NT5 with client side caching enabled,
  1315. we no longer cache the results of a component path
  1316. request for an RFS component. The source is still
  1317. considered valid though. If a share is CSC enabled and
  1318. offline, the source is rejected and we fallback on the
  1319. complete resolution process.
  1320. 99-05-12 bench Fixed bug 9411: If running from a media (CD or
  1321. floppy) with a blank volume label while the Media table
  1322. specifies a non-blank label, maintenance mode installs
  1323. would not accept the media, even though first-time
  1324. installs did. This now works in maintenance mode as
  1325. well.
  1326. -----------------------------
  1327. Release 1.1.0512
  1328. -----------------------------
  1329. 99-05-23 mattwe Bug 9416: Updated instmsi/copymsi media sequence table
  1330. 99-05-11 bench Bug 9374: introduced a new custom action type best
  1331. described as a "delayed launch condition". The new
  1332. type, 19, will display an error message and return
  1333. failure to end the installation.
  1334. 99-05-11 bench Bug 9320: fixed problem with mismatching volume
  1335. labels and Media table-specified labels after a patch is
  1336. applied.
  1337. 99-05-11 cgouge Bug 9260, Validation, ICE61, a new vbscript ICE,
  1338. checks the upgrade table for various problems, such as
  1339. removing newer versions, not having public properties,
  1340. etc. Available only in the full CUB file.
  1341. 99-05-11 chetanp fixed bug 9349 - we now dynamically resize the
  1342. buffer that holds the command line that is generated from
  1343. the MsiAdvertiseScript API. This allows for greater
  1344. total transform path length than before (which was at
  1345. @850).
  1346. 99-05-10 mattwe Per hgrant's request, custexe1.exe in
  1347. testdb now has a file version in the table.
  1348. 1.0.0.0
  1349. 99-05-10 mattwe 9410: msimsg is now going to be released
  1350. in the commondir (and built in individual
  1351. flavors.) It also has a file version now
  1352. for copymsi/instmsi.
  1353. 99-05-10 mattwe 9406: msimsg.dll is now included with
  1354. instmsi/copymsi.
  1355. 99-05-10 mattwe 9141: When the installer initiates a reboot,
  1356. the fact will be recorded in the event log.
  1357. 99-05-10 mattwe 9402: Async custom actions were giving false
  1358. memory leaks, (and missing real leaks) because
  1359. we were checking for open handles on the parent
  1360. thread rather than the CA.
  1361. 99-05-10 eugend I've fixed bug # 6623: if Darwin cannot find an
  1362. Error ar an ActionText entry in a package's table, it
  1363. looks it up now in MSIMSG.DLL. I've opened bug # 9406
  1364. just to make sure MSIMSG.DLL gets into
  1365. InstMsi/CopyMsi.exe.
  1366. 99-05-10 bench Bug 9405: fixed MsiRecord memory leak in error cases
  1367. in ComPlus script operations.
  1368. 99-05-10 bench Bug 9262: added ActionData messages for the
  1369. RegisterComPlus and UnregisterComPlus actions, and the
  1370. associated ActionText table entries.
  1371. 99-05-07 davidmck Fixed bug 9404. Turns out the format of the Shell
  1372. Change Notify Extended Event will not actually work on
  1373. NT5 due to problems marshalling the product code
  1374. string across. Raymond Chen has worked out a correct way
  1375. of doing it and I've checked in the darwin change for
  1376. it.
  1377. 99-05-06 cgouge Bug 9380. Darwin was elevating in the case where a
  1378. product was installed both per-user and deployed
  1379. per-machine. The per-user registration was skipped when
  1380. determining the managed state, but was used for all
  1381. other actions. Thus the install would end up elevated
  1382. even though the per-user install should shadow the
  1383. per-machine install. We now correctly find the per-user
  1384. install and report that the app is not managed.
  1385. 99-05-06 cgouge Bug 9166. When told to recache the package and given
  1386. a product code, we ignore the last used source and
  1387. immediately begin source resolution. If the search
  1388. order has "m"edia first, we demote it to second and
  1389. promote the source type that was second to first in the
  1390. search order. The resolved source becomes the source
  1391. for the install and the last used source. The modified
  1392. search order is then discarded. If given a full path
  1393. to a package and told to recache, we use the
  1394. provided source.
  1395. 99-05-06 mattwe 9367: Modified various error strings based on
  1396. recommendations from UA.
  1397. 99-05-06 chetanp fixed bug 9155 - we now allow installs that do not
  1398. write anything under the HKCR regsitry hive to
  1399. succeed on systems where the user is locked out from
  1400. updating HKCR.
  1401. 99-05-06 bench Bug 8698: we now return a new error code,
  1402. ERROR_PATCH_TARGET_NOT_FOUND, when a patch cannot be applied
  1403. either because the product is not installed or a
  1404. different version of the product is installed.
  1405. 99-05-05 mattwe bug 7967 - We now disable cancel effectively for the
  1406. full UI. Hitting escape or the 'x' on the dialog won't
  1407. do anything when the cancel button is hidden.
  1408. 99-05-05 chetanp bug 9381 - we never remove registration for
  1409. "filename only" registrations. the "filename only"
  1410. registrations allow sharing of com registration such that each
  1411. app has its own private copy of the server. "fusion"
  1412. specs recommend that the registration itself be
  1413. refcounted so that we know when to remove it. this has
  1414. been punted for 1.1
  1415. 99-05-05 bench Bug 9306: nested installs and uninstalls performed
  1416. by RemoveExistingProducts will now display an error
  1417. for problems initializing the nested install or
  1418. uninstall.
  1419. -----------------------------
  1420. Release 1.1.0505
  1421. -----------------------------
  1422. 99-05-04 davidmck Checked in more 64-bit issues. We can now install on
  1423. Alpha64.
  1424. 99-05-04 davidmck Fixed bug 9337 - we now generate an exception fault
  1425. when we are out of memory and there is no user
  1426. interaction.
  1427. 99-05-03 mattwe Bug 8993: BackupFile now restores file attributes
  1428. correctly when it restores a file that wasn't removed
  1429. initially.
  1430. 99-05-03 bench Bug 9084: fixed but in path expansion code that
  1431. sometimes added a second backslash after the drive
  1432. letter. This caused failures with relative paths for the
  1433. database or transforms, among other things.
  1434. 99-05-03 cgouge Fixed bugs 7589, 7684, 8153, 9353. Five changes to
  1435. the SourceList UI. This involved changes to 2 existing
  1436. string resources, dropping 1 existing string, adding
  1437. 1 new string, and changing error.idt for one error.
  1438. Loc work required. For gory detials, see the doc
  1439. attached to 7589.
  1440. -----------------------------
  1441. Release 1.1.0429
  1442. -----------------------------
  1443. 99-04-29 eugend Bug # 7753 again: I've changed the value of the
  1444. Password attribute to 0x0200000, 2097152 in decimal. I've
  1445. updated doc bug # 9355 as well.
  1446. 99-04-29 tracyf Bug 9280 - Darwin now writes an "EstimatedSize"
  1447. value under the Uninstall key. This value represents the
  1448. estimated size, in KB, that the associated product
  1449. is currently consuming on the user's machine (if the
  1450. product is spread across more than one volume, the
  1451. EstimatedSize is the summation across all volumes).
  1452. This value is updated each time the user add/removes
  1453. features during maintenance mode.
  1454. 99-04-29 davidmck Fixed bug 9360 - the sorting routine for the volume
  1455. cost list called PutInteger rather than PutHandle.
  1456. 99-04-28 bench Bug 9356: fix assert during admin install of a
  1457. package with an embedded cabinet. The bug was caused by a
  1458. regression of bug 9233.
  1459. -----------------------------
  1460. Release 1.1.0428
  1461. -----------------------------
  1462. 99-04-27 eugend Fixed bug # 7753: I've added the Password edit
  1463. control stylebit, its value is 131072. If specified in
  1464. the Attributes field of the Control table, it creates
  1465. an edit control that displays all characters as an
  1466. asterisk (*) as they are typed into the control. Doc
  1467. bug # 9355 tracks this.
  1468. 99-04-27 malcolmh Fixed bug 9006: Fix problem resizing our internal
  1469. buffer when you have backslashes in your registry
  1470. keypath value
  1471. 99-04-26 chetanp "bug 8041 - remove class registry left overs in
  1472. multiuser scenarios.
  1473. 99-04-26 chetanp bug 9344 - fix RemoveFile action for folders set to
  1474. be deleted upon uninstallation of components (from
  1475. the RemoveFile table).
  1476. 99-04-26 bench bug 8499: error string displayed during a binary
  1477. patch application failure is now an authorable ship
  1478. error.
  1479. 99-04-26 davidmck Checked in further changes for 64-bit builds.
  1480. Updated the object pool for both the database and the
  1481. handler. See 64bit.txt for more details.
  1482. 99-04-23 mattwe Bug 9138: The FDI server (cabinet/compressed) will now
  1483. restart correctly when it receives an Open request in
  1484. the middle of reading a file.
  1485. 99-04-23 bench Bug 9122: Validation of Upgrade table and Upgrade
  1486. actions is in.
  1487. 99-04-23 bench Bug 9233: addition fix to this bug to handle
  1488. packages with the old stream naming convention.
  1489. 99-04-23 bench Bugs 9208, 9214: the following nested install types
  1490. are no longer supported: relative msi path (23),
  1491. property name/key (55) and asynchronous (+128). an error
  1492. message will be displayed when one of these types is
  1493. attempted.
  1494. 99-04-23 bench Bug 8709: fixed thread handle leak that occured when
  1495. asynchronous custom actions finished before the end
  1496. of the installation.
  1497. 99-04-22 mattwe Bug 9248 - refix - We must elevate to acquire token
  1498. privileges. Before, we grabbed them pell-mell, and
  1499. we just happened to be impersonated in the right
  1500. scenarios. Now we do it the right way.
  1501. 99-04-22 cgouge Bug 9122. To support the upgrade actions
  1502. (specifically, RemoveExistingProducts) ICE27 now has a
  1503. PostExecution phase, which ocurrs after InstallFinalize.
  1504. Currently, RemoveExistingProducts is the only action valid
  1505. there.
  1506. 99-04-22 cgouge Bug 9324. Added InstallExecuteAgain information to
  1507. ICE validation. (ICE27). Restrictions are the same as
  1508. InstallExecute.
  1509. -----------------------------
  1510. Release 1.1.0421
  1511. -----------------------------
  1512. 99-04-20 malcolmh Fixed bug 8478: New behavior for secure transforms.
  1513. 99-04-20 bench Fixed bug 9233: nested substorage installs will now
  1514. work with embedded cabinets.
  1515. 99-04-19 mattwe The following files have been updated for use with
  1516. instmsi:
  1517. shfolder.dll
  1518. imagehlp.dll
  1519. msls31.dll
  1520. usp10.dll
  1521. riched20.dll
  1522. 99-04-19 chetanp fixed bug 9168 - we now handle permanent components
  1523. that were installed to different locations via
  1524. different products. We now use separate GUIDS from
  1525. {00000000-0000-0000-0000-000000000000} to
  1526. {000000FF-0000-0000-0000-000000000000} to represent the system as a
  1527. client product for possibly 256 different locations for
  1528. a permanent component to be installed (via different
  1529. product). Afterwards we simply keep using the
  1530. {00000000-0000-0000-0000-000000000000} GUID.
  1531. 99-04-16 bench Added new Upgrade functionality. In short, the new functionality
  1532. allows easy upgrades between products with different product
  1533. codes. For more information, see the spec on
  1534. http://officeweb/specs/tco/darwinupgrades1_1.html and the design doc
  1535. on \\bench4\public\upgrade design 1.1.doc.
  1536. Documentation in msi.chm is pending.
  1537. 99-04-16 bench Added new action: InstallExecuteAgain. The action is identical
  1538. to InstallExecute but since it has a different name it can be
  1539. used with InstallExecute in the same sequence table.
  1540. 99-04-16 bench Changed schema.msi schema version to 102 for several changes
  1541. made to the schema. The changes are:
  1542. addition of Upgrade table
  1543. addition of Class.Attributes column
  1544. addition of Services.Description column
  1545. Also bumped minor version of Darwin files. The version is
  1546. now 1.02.BBBB.U.
  1547. 99-04-16 bench Added new Class.Attributes column to schema.msi as part of
  1548. the schema 102 additions.
  1549. See relnotes entry "99-03-23 johndelo Bug 9094" for more
  1550. information.
  1551. 99-04-16 mattwe Fixed bug: 9197. We now impersonate while setting
  1552. icon paths into shortcuts. This gives the shell on
  1553. Windows 2000 the opportunity to recognize these as
  1554. roaming paths.
  1555. Fixed bugs 9288,9289: Several columns in the
  1556. ServiceControl and ServiceInstall tables are now
  1557. formatted.
  1558. Fixed bug: 8993. We now clear and re-set the
  1559. hidden, read-only and system attributes on the
  1560. autoexec.bat file on Win9X while writing environment
  1561. variables.
  1562. Fixed bug: 8381. At the end of script execution on NT,
  1563. we broadcast a WM_SETTINGCHANGE message to let the
  1564. system know we've change environment variables.
  1565. This allows you to change variables for new processes
  1566. without requiring a reboot.
  1567. -----------------------------
  1568. Release 1.1.0415
  1569. -----------------------------
  1570. 99-04-14 malcolmh Fixed bug 8908: We now have a Description column in
  1571. the ServiceInstall table which allows an author to
  1572. specify a description for a service. This column is
  1573. presumed to exist only in databases with schema versions
  1574. greater than 101.
  1575. 99-04-14 cgouge Bug 8122 (part 2). Validation, added ICE60, which
  1576. does the check for the file table that internal
  1577. validation used to do. Displays a warning if an entry in the
  1578. file table has a version but no language, and is not
  1579. a font or companion file reference.
  1580. 99-04-14 cgouge Bug 8122. The requirement that all files with
  1581. versions have languages has been removed from the internal
  1582. field validation. Validation of the "Version" data
  1583. type now only checks that the version is valid. The
  1584. language requirement will be in a new ICE, ICE60.
  1585. 99-04-14 tracyf Bug 9299 - removed the FixedSize attribute from
  1586. bitmaps in sample MSI's.
  1587. 99-04-14 tracyf Bug 9297 - disabled the ValidateProductID
  1588. ControlEvent in sample MSI's.
  1589. -----------------------------
  1590. Release 1.1.0414
  1591. -----------------------------
  1592. 99-04-13 johndelo Schema fixes - bugs 9120 and 9163
  1593. Note that these fixes were propagated back to
  1594. schema 100, so as to be incorporated into the SDK.
  1595. All active databases and idt files have been
  1596. updated (as far I can find). The following changes:
  1597. LaunchCondition.Description is now non-nullable
  1598. ODBCDriver.Description is not localizable
  1599. _SummaryInformation.Application is "Windows Installer"
  1600. _Validation updated to reflect LaunchCondition change.
  1601. 99-04-12 malcolmh Fixed bug 9114: We now automatically suppress
  1602. autorun during installs.
  1603. 99-04-09 malcolmh Fixed bug 8444: AD: In no UI case Darwin does not
  1604. log failure of installs due to LaunchCondition table
  1605. 99-04-09 malcolmh Fixed bug 9116: We now write OutOfDiskSpace messages
  1606. to the event log.
  1607. 99-04-09 malcolmh Fixed bug 9217: Security: Should remove "everyone"
  1608. read access from config.msi security descriptor
  1609. 99-04-09 malcolmh Fixed bug 9036: CCPSearch, AppSearch stop searching
  1610. once it encounters a drive it cannot access
  1611. 99-04-09 malcolmh Fixed bug 8744: MsiGetUserInfo returns 1 when
  1612. Organization name is not set.
  1613. 99-04-09 malcolmh Fixed bug 9037. Changed the way we do shell
  1614. notification for shortcuts
  1615. 99-04-09 malcolmh Fixed bug 9236: AD: Darwin does not recover
  1616. completely from an install that causes an AV
  1617. 99-04-09 cgouge Bug 8161. When merging a table via
  1618. MsiDatabaseMerge(), if two columns string columns have different
  1619. length limits, we take the larger of the two limits (or 0
  1620. for unlimited length if either column has that
  1621. limit).
  1622. 99-04-09 cgouge Bug 9252. uisample.msi (and thus all of our tools
  1623. installers) was now allowing the Admin target location
  1624. to be changed via the edit box in the dialog, only
  1625. via the browse dialog. Added a control event to set the
  1626. directory.
  1627. 99-04-09 cgouge Fixed bug 9088. The Path data type was unnecessarily
  1628. strict when it came to properties and filenames. I
  1629. removed the requirement that properties be surrounded
  1630. only be '\' characters and the restriction that all
  1631. components of the path satisfy the short filename
  1632. syntax. It is now the LFN syntax, except when specifying
  1633. a single level deep subdir. In that case you can use
  1634. the SFN|LFN syntax.
  1635. 99-04-09 mattwe Bug 9248: We now acquire our token privileges once per
  1636. process, instead of every time we'd need the particular
  1637. privilege. (Each place still makes a call, but we see
  1638. that've already requested.) Should be a *big* advertising
  1639. performance gain. (On the order of 30% time savings in some
  1640. scenarios.)
  1641. 99-04-08 cgouge Bug 9147, Validation. Added ICE58, which checks that
  1642. you don't have more than 80 rows in the Media table.
  1643. The ICE is found only in the full darice.cub file.
  1644. 99-04-08 chetanp fixed bug 9251so that we now simply log the SelUnreg
  1645. failure w/o putting up an error dlg.
  1646. 99-04-08 chetanp bug 9246 - We now have
  1647. SCRIPTFLAGS_REGDATA_CLASSINFO and SCRIPTFLAGS_REGDATA_EXTENSIONINFO for whether
  1648. to populate the class / extension information. The
  1649. MIME and verb information is tied to the extension
  1650. information while the Clasid key under the ProgId is tied
  1651. to the class information. We defined
  1652. SCRIPTFLAGS_REGDATA_APPINFO to SCRIPTFLAGS_REGDATA_CLASSINFO |
  1653. SCRIPTFLAGS_REGDATA_EXTENSIONINFO for backward level source
  1654. compatibility. Internally we translate
  1655. SCRIPTFLAGS_REGDATA_APPINFO_OLD to SCRIPTFLAGS_REGDATA_APPINFO to
  1656. maintain backward level binary compatibility.
  1657. 99-04-08 davidmck Fixed bugs 8733 and 8818 - removed
  1658. INSTALLPROPERTY_VOLUMEPREFERENCE since it is not used from msi.h.
  1659. Removed INSTALLPROPERTY_ADVTFLAGS since it it not public.
  1660. 99-04-08 tracyf Fixed bug 9225 - for files extracted from cabinets,
  1661. we were incorrectly setting the date/time, such that
  1662. it was 7 or 8 hours off (dependiing on daylight
  1663. savings) from the source file's date/time. We now
  1664. properly set the date/time as universal (not local) time.
  1665. In addition, to be consistent with how we set the
  1666. date/time for uncompressed files, the "created" and
  1667. "modified" times are set to that of the source file,
  1668. while the "last accessed" time is set to the current time
  1669. (i.e. the time of the install).
  1670. 99-04-07 eugend Fixed bug # 9206: CMsiDialog::WindowShow() does not
  1671. fail anymore if the next window in the tab-order that
  1672. can take the focus is a child window of a Darwin
  1673. control.
  1674. 99-04-07 eugend Fixed bug # 9232: ship errors do not start anymore
  1675. in "Error nnnn: " string, but this piece of info is
  1676. still written into the log file.
  1677. 99-04-07 eugend Fixed bug # 9249: DirectoryCombo controls on
  1678. AdminBrowse dialogs do not get updated now whenever the user
  1679. selects a different directory in the DirectoryList
  1680. control.
  1681. -----------------------------
  1682. Release 1.1.0407
  1683. -----------------------------
  1684. 99-04-06 cgouge Bug 9235, Validation. ICE20 will not fail when
  1685. looking for the name of the dialogs to validate in the UI
  1686. sequence tables if the tables do not exist, but
  1687. LIMITUI is not set either.
  1688. 99-04-06 cgouge Bug 9077. Validation. ICE26 will no longer complain
  1689. about required actions in the UI sequence tables if
  1690. LIMITUI is set in the package.
  1691. 99-04-06 mattwe Bug 9189: We now only set in the user's environment
  1692. variables when we're running from the service. The
  1693. client normally doesn't need this, and when we're running
  1694. the client in somebody else's process, it's a bad thing.
  1695. 99-04-05 eugend UI Sample uses now Tahoma font instead of MS Shell
  1696. Dlg and buttons on Cancel dialog are 4 dlus appart.
  1697. 00-01-05 chetanp bug 8062:we now write the HKCR information
  1698. associated with a component on NT5 even if a higher versioned
  1699. keyfile already existed, to ensure that HKCR entries
  1700. are not missing because the better keyfile was
  1701. installed by another user (or per machine and this
  1702. installation is per user and vice versa). These writes are
  1703. different from the regular writes in that we write the
  1704. registry entries only if they are absent in an
  1705. attempt to prevent overwriting possible writes from the
  1706. better component.
  1707. 99-04-02 eugend All the fixes suggested so far are in the
  1708. UITESTDB.MSI. We're still waiting for the new icons.
  1709. 99-04-02 tracyf Bug 7954: if any error occurs while attempting to
  1710. copy a file, we now silently ignore (and log) the error
  1711. if ALL the following conditions are true:
  1712. 1) There's an existing file on the machine.
  1713. 2) Our source file is unversioned.
  1714. 3) Our source file is not authored as a Companion
  1715. file.
  1716. 4) The "Force All" reinstall mode (the 'a' flag in
  1717. the REINSTALLMODE property) is NOT set.
  1718. In addition, on uninstall, errors attempting to
  1719. delete files will now be ignored and logged as well (in
  1720. the delete case, regardless of whether the file is
  1721. versioned/unversioned, companion or not, etc).
  1722. Note that when logging ignored errors, we do not
  1723. attempt to re-format the error string - we send it to
  1724. the log as is. Thus, the message in the log will not
  1725. explicitly mention that the error was ignored, but
  1726. the fact that the install proceeds implies that. Not
  1727. ideal, but per triage the extra work of adding a
  1728. number of new error strings to explicitly call this out
  1729. was punted.
  1730. Also note that when logging ignored errors in a
  1731. verbose log, you may see the error string appear more
  1732. than once. The first is because of our automatic
  1733. verbose logging of any posted error record. The second is
  1734. explicitly sent to the log when we decide to ignore
  1735. the posted error - this is done so that ignored
  1736. errors get logged in the non-verbose case as well.
  1737. 99-04-01 mattwe Bug 9209 - For remote volumes, we no longer
  1738. create config.msi directories. This is to plug
  1739. security holes where we can't adequately secure
  1740. the backup directory.
  1741. 99-04-01 eugend I've added new bitmaps to UISample.
  1742. -----------------------------
  1743. Release 1.1.0331
  1744. -----------------------------
  1745. 99-03-30 cgouge Bug 9207. Validation. string buffer problems
  1746. generating an error message in ICE03 if the primary keys
  1747. were really long (collectively greater than 255). Fixed
  1748. so that the length is not limited.
  1749. 99-03-30 malcolmh Fixed bug 8962: Darwin does not handle well the
  1750. installing of a package per user and per machine together
  1751. on a machine.
  1752. 99-03-30 eugend Fixed bug # 9156: Darwin doesn't cause anymore
  1753. crashes in SHELL32.DLL on NT5.
  1754. 99-03-29 cgouge Bug 9144. ICE56 has been updated to exempt from its
  1755. check (for bogus admin installs) any directory which
  1756. has no files and which has no descendants that have
  1757. files. This is a relaxation of our restriction that
  1758. every MSI has a single root dir so that Beagle can pass
  1759. validation with their default shortcut component.
  1760. 99-03-29 cgouge Bug 9122 (ICE45 part). Validation: ICE45 updated to
  1761. handle in the new upgrade table schema and check for
  1762. reserved bits in the appropriate column.
  1763. 99-03-29 malcolmh Fixed bug 9140: Loop condition in FeatureCache.
  1764. 99-03-29 davidmck Fixed bug 9145 - Mark our unicode log files as
  1765. unicode.
  1766. 99-03-29 malcolmh Fixed bug 8847: Sourcelist not being updated by
  1767. /fvomus or /i REINSTALLMODE=vomus
  1768. 99-03-29 malcolmh Fixed bug 8478. We now cache secure transforms on
  1769. the local machine. Source transforms have been rolled
  1770. into secure transforms. Any reference we see to a
  1771. source transform will automatically be treated like a
  1772. reference to a secure transform.
  1773. 99-02-29 mattwe bug 8812 - The Product Icon is now written with
  1774. %USERPROFILE% when possible for roaming.
  1775. 99-03-29 chetanp bug 7883 - shortcuts were not being created for
  1776. advertised features of published apps.
  1777. 99-03-26 tracyf Fixed bug 8938. Darwin was duplicating multiSZ data
  1778. in the registry when writing more than one multiSZ
  1779. value under a single registry key.
  1780. 99-03-26 tracyf Fixed bugs 9112 and 9138. 9112 involves the lack of
  1781. automatic retry in some cases during a quiet
  1782. install, if the net connection is lost. 9138 is similar,
  1783. but specifically involves loss of the net connection
  1784. when the source is a cabinet.
  1785. 99-03-26 bench bug 9195: added a Language value to the per-machine
  1786. configuration info. this may be used by future
  1787. versions of Darwin to determine the language of an install
  1788. that belongs to a different user. the exact key and
  1789. value are:
  1790. Key:
  1791. HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductCode GUID]
  1792. Name: Language Data: language id (1033 for example) Type: REG_DWORD
  1793. 99-03-26 mattwe Fixed bug # 9031: There is a new property
  1794. REBOOTPROMPT, which when set to Suppress will
  1795. prevent any user interaction before a reboot.
  1796. It won't prompt any new reboots, it just prevents
  1797. asking the user about it.
  1798. 99-03-25 eugend Fixed bug # 9177: I've eliminated the Reinstall
  1799. button from MaintenanceTypeDlg.
  1800. 99-03-25 eugend Fixed bug # 7925: if CreateFontIndirect fails in
  1801. CMsiControl::ChangeFontStyle, we report now the value of
  1802. GetLastError().
  1803. 99-03-25 eugend Fixed bug # 8707: I've eliminated leaking thread
  1804. created in FDI_Interface::LaunchFDIServer().
  1805. 99-03-24 malcolmh Fixed bug 9179: Too many cabinets can cause database
  1806. cache failure
  1807. 99-03-24 malcolmh Fixed bug 9006. We now handle registry value
  1808. keypaths where the value name contains a backslash.
  1809. 99-03-24 cgouge Bug 8739, 9151. The ability to select and browse to
  1810. media is also gated by the user rights and elevation
  1811. state of the package. If the user is not an admin,
  1812. s/he can only use media on non-elevated installs. The
  1813. policies that control this behavior are the new
  1814. DisableMedia and AllowLockdownMedia policies. Note that
  1815. DisableMedia is very similar, but not exactly the same
  1816. as, leaving "m" out of the search order. Media being
  1817. disabled for security/policy reasons will cause the
  1818. lastused source to be rejected if it is a media entry,
  1819. whereas removing "m" from the search order will
  1820. accept the media entry as long as it is the
  1821. LastUsedSource.
  1822. This leads to the case where you could end up with a
  1823. sourcelist dropdown that is compeltely empty. and
  1824. browsing is also disabled, the sourcelist dialog is now
  1825. utterly useless. In this case, if browsing is also
  1826. disabled, we don't even bother to show the dialog,
  1827. 99-03-24 cgouge Bug 8738, 9151. The ability to patch is now gated by
  1828. the same admin/elevation logic as Browsing described
  1829. below. The policies for this are DisablePatch and
  1830. the new AllowLockdownPatch policy.
  1831. 99-03-24 cgouge Bug 8737, 9151. The default security level for
  1832. browsing in the sourcelist dialog is now more secure. If a
  1833. user is not an admin, s/he cannot browse if the
  1834. install is elevated. Users can browse for non-elevated
  1835. installs, and admins can browse whenever they want. The
  1836. DisableBrowse policy will always disable browsing,
  1837. and the new AllowLockdownBrowse policy will allow
  1838. anybody to browse.
  1839. The ability to recache the msi from unblessed sources
  1840. is gated by the same log and policies.
  1841. 99-03-24 cgouge Bug 8320, logging is now correct when renaming files
  1842. on reboot.
  1843. 99-03-24 chetanp fixed bug 8417 - For RFS installed components having
  1844. missing auxiliary registry key paths (on NT5),
  1845. MsiQueryFeatureState used to return
  1846. INSTALLSTATE_SOURCEABSENT instead of INSTALLSTATE_BROKEN even if the source
  1847. was infact present. NOTE: We now return
  1848. INSTALLSTATE_BROKEN if the auxiliary registry key path of a RFS
  1849. installed component is missing (inplace of
  1850. INSTALLSTATE_SOURCEABSENT) when the source is infact present.
  1851. On the other hand if the source is missing, we still
  1852. return INSTALLSTATE_SOURCEABSENT irrespective of
  1853. whether the auxiliary registry key path is present. What
  1854. this achieves is preventing the trigger of a repair
  1855. when the user has cancelled the source resolution
  1856. dialog.
  1857. -----------------------------
  1858. Release 1.1.0324
  1859. -----------------------------
  1860. 99-03-24 eugend Fixed bug # 9164: text on ResumeDlg is corrected and
  1861. sequence numbers in AdminUISequence and
  1862. InstallUISequence tables match the respective values in
  1863. TEMPLATE.MSI.
  1864. 99-03-24 eugend Fixed bug # 9108: if Japanese KANA IME is used,
  1865. MaskedEdit control switches properly to English keyboard
  1866. when any of its edit fields receives focus.
  1867. 99-03-24 eugend I've fixed bug # 8468: GetLastError() will return
  1868. the correct value if LocalLoadLibraryEx() fails on
  1869. Alpha machines.
  1870. 99-03-23 bench bug 9154: MsiCreateTransformSummaryInfo will no
  1871. longer fail if either db is missing the PageCount suminfo
  1872. property. Instead the current Darwin version is
  1873. used as the minimum version to process the transform.
  1874. This is a change to the fix made for bug 8781.
  1875. 99-03-23 bench uisample.msi is now built with just the necessary
  1876. tables. It no longer contains empty tables like File
  1877. and Registry.
  1878. 99-03-23 johndelo Bug 8290 Automation FileVersion now uses internal routines.
  1879. Optional 2nd argument is a boolean, default is False:
  1880. False to return version number string for a file
  1881. True to return language ID as a string for a file
  1882. 99-03-23 johndelo Bug 8332 Disabled ODBC drivers/translators don't register
  1883. 99-03-23 johndelo Bug 8420 Updates not allowed after execution of queryies
  1884. having no result set, e.g. CREATE TABLE...
  1885. Note that all views must be executed before any update
  1886. operations can be performed (there were a few cases
  1887. where the execute could be omitted - no more).
  1888. 99-03-23 johndelo Bug 8453 Cabinet file extraction is now case-insensitive
  1889. 99-03-23 johndelo Bug 8689 Packages with neutral codepage resolved late
  1890. to prevent BiDi handling of English text.
  1891. When database codepage is neutral, the codepage used
  1892. for font selection is determined by the install language.
  1893. 99-03-23 johndelo Bug 8795 MsiRecordGetFieldCount returns -1 if bad handle
  1894. 99-03-23 johndelo Bug 8982 Fix to prevent failure of simple installs
  1895. with non-registered components (NULL ComponentId)
  1896. 99-03-23 johndelo Bug 9062 Prevent AV when GetDateFormat fails
  1897. (was due to use of language unsupported by NLS)
  1898. 99-03-23 johndelo Bug 9094 Allow bare file name for COM servers.
  1899. Attributes column added to Class table.
  1900. (but not put into schema until it is bumped to 102).
  1901. If column is present and msidbClassAttributesRelativePath
  1902. is set (low order bit), then the file name only is
  1903. registered instead of the complete path, allowing
  1904. the server in the current directory to take precedence,
  1905. and allowing multiple copies of the same component.
  1906. 99-03-23 davidmck Checked in code and tools for 64-bit Intel builds.
  1907. Still have work to do and this should not affect the
  1908. Win32 builds.
  1909. 99-03-23 cgouge Bug 8353, msival2 installer space requirements
  1910. updated, CUB file now part of the install.
  1911. 99-03-22 mattwe Fixed bug 8469. You can now apply patches from URLs.
  1912. This involves several changes to opening storages,
  1913. devs should see msiutil.cpp for OpenMsiStorage, and
  1914. OpenAndValidateStorage for all your read-only storage
  1915. opening requests.
  1916. 99-03-22 mattwe Fixed bug 9146. We no longer unload URLMON between
  1917. installs from the service. This has a performance
  1918. hit, but prevents hangs caused by bugs in URLMON.
  1919. 99-03-22 bench Added the ComPlus table, bring the schema version to 101.
  1920. 99-03-19 malcolmh Fixed bug 9046. The potential reboot race condition
  1921. has been eliminated. We should now reboot whenever we
  1922. trigger a reboot.
  1923. 99-03-19 chetanp bug 9131 - fixed code defect handling DBCS reg. key
  1924. paths when "\" is the trailing byte of a 2 byte char
  1925. which is the last char in the registry value. Was
  1926. causing key path detection to always fail.
  1927. -----------------------------
  1928. Release 1.1.0319.1
  1929. -----------------------------
  1930. 99-03-19 bench bug 9153: fixed regression from bug 9013 that caused
  1931. patch application to fail.
  1932. -----------------------------
  1933. Release 1.1.0319
  1934. -----------------------------
  1935. 99-03-18 malcolmh Fixed bug 9001: AD: per-user registry leak in darwin
  1936. in services.exe
  1937. 99-03-18 cgouge Bug 9143, validation: ICE18 no longer checks
  1938. directories that are root directories.
  1939. 99-03-18 bench bug 6933: ixoUpgradeCodePublish/Unpublish are now
  1940. written to advertise scripts in the MsiAdvertiseProduct
  1941. api.
  1942. 99-03-17 bench bug 9064: fix for nested installs that require a
  1943. reboot. when a nested install replaces a file-in-use,
  1944. or triggers a reboot in some other way, the reboot
  1945. request is held by the parent install and used to prompt
  1946. at the end of all installs. previously if a nested
  1947. install required a reboot the install would
  1948. immediately fail ungracefully.
  1949. 99-03-17 cgouge Bug 7265. Validation. Limit on max components per
  1950. feature reduced to 800 due to registry limitations.
  1951. 99-03-17 cgouge Bug 8118. Validation. ICE56 was not reporting an
  1952. error for long root directories that were not TARGETDIR.
  1953. 99-03-17 malcolmh Fixed bug 9123. We have a new api:
  1954. MsiEnumRelatedProducts. It can be used to enumerate all products with
  1955. a particular upgrade code.
  1956. 99-03-17 chetanp fixed bug 8862 - There are scenarios where darwin
  1957. did not re-register the component during a reinstall of
  1958. the component.
  1959. 1. When darwin does an implicit reinstall of the
  1960. component.
  1961. 2. A (broken) component has been set up for an
  1962. explicit reinstall and a custom action of type 35, changes
  1963. the target path for the component.
  1964. Fixed so that we re-register the component in cases
  1965. 1. and 2. above.
  1966. NOTE: case 2 is being used by office today but
  1967. might not work in the future if we decide to never allow
  1968. changing directories of installed components (no
  1969. matter if they are broken as in this case).
  1970. 99-03-17 eugend fixed bug # 9055: Darwin's basic UI won't come up
  1971. anymore maximized/minimized.
  1972. 99-03-16 chetanp fixed bug 8425 - bogus shortcuts created if feature
  1973. is advertised on a system with the updated shell AND
  1974. the DISABLEADVTSHORTCUTS property is set.
  1975. 99-03-16 bench bug 9110: fixed uninitialized variable that
  1976. prevented the ServicePackLevel property from being set in
  1977. certain builds (but not 1.0.5104)
  1978. 99-03-15 bench bug 9097: picked up new mspatcha.lib and
  1979. mspatchc.lib files, which are compatible with the VC5.0
  1980. link.exe. The previous versions were not. This change
  1981. effects the SDK only - not the bits used by Office 2000 or
  1982. Win2000.
  1983. 99-03-10 tracyf Bug 9013 - added the ability to copy files
  1984. decompressed from cabinets to multiple locations. A doc bug
  1985. to explain this is imminent, but the basic idea is to
  1986. include multiple entries in your File table, each
  1987. with the same FileKey, except differing only by case.
  1988. These files should have the same sequence numbers (or
  1989. at worst, there should be no unrelated File table
  1990. entries with intervening sequence numbers). Each of
  1991. these files can be linked to different components, or
  1992. can be tied to the same component, in which case the
  1993. destination name given in the FileName column must be
  1994. different.
  1995. 99-03-10 malcolmh Fixed bug 9038. Cannot install Office from CD when
  1996. AllocateCDRom policy is set. We now impersonate when
  1997. attempting to access the CD or removable drives. This
  1998. allows us to operate in lock-down environements where
  1999. _only_ the user has access to the drive (not even
  2000. LocalSystem has access).
  2001. 99-03-09 tracyf Bug 7493 - fixed so that file copy errors now return
  2002. iesFailure instead of iesUserExit.
  2003. 99-03-09 chetanp bug 8568 - fixed code so that we publish advt
  2004. information (shortcuts, class, publishcomponents) tied to a
  2005. child feature in advertised state during a reinstall
  2006. where a transitive component becomes enabled
  2007. 99-03-08 bench Bugs 7793, 7853 and 8316: added two new return codes
  2008. for cases where a reboot is required. The return codes
  2009. are returned from the APIs, msiexec.exe and instmsi.exe.
  2010. ERROR_SUCCESS_REBOOT_REQUIRED: returned when a reboot is
  2011. required to complete the install but the reboot was
  2012. rejected by the user or suppressed with REBOOT=Suppress
  2013. or ReallySuppress.
  2014. ERROR_SUCCESS_REBOOT_INITIATED: returned when a reboot
  2015. has been triggered by Darwin. note that this is a new
  2016. error code added for this bug. it is defined in msi.h and
  2017. will be added to the NT5 winerror.h.
  2018. 99-03-08 eugend fixed bug # 8785: "can't install product when
  2019. uninstall is interupted in the middle".
  2020. 99-03-08 malcolmh Fixed bugs 8390, 8389, 8392.
  2021. - Hydra installs from user sessions now work (fixed
  2022. the mutex problem)
  2023. - Installs from user sessions are prevented unless
  2024. the user is an admin and the EnableAdminTSRemote
  2025. policy is set. Admin installs and the creation of
  2026. advertise scripts are exempt from this restriction
  2027. (if you're an admin)
  2028. Test automation note: we have a new return value from
  2029. engine.initialize: ieiTSRemoteInstallDisallowed
  2030. 99-03-05 malcolmh Fixed bug 7799: When SCRIPTFLAGS_CACHEINFO is set,
  2031. MsiAdvertiseScript doesn't strip off the filename from
  2032. the transform path. This means that profile
  2033. transforms can now be used through app deployment.
  2034. 99-03-05 mattwe Bug 8323: During reinstall (patching counts,)
  2035. where shortcuts or machine data is being set,
  2036. icons will be re-cached. The REINSTALLMODE
  2037. property doesn't need to be set.
  2038. 99-03-05 eugend fixed bug # 5296: I've changed the format of the
  2039. notification sent to the NT5 shell at the end of the
  2040. installation. Doesn't affect other OSes.
  2041. 99-03-05 mattwe Bug 9045: Fixed potential global atom leak when
  2042. client window can't be found for verbose logging.
  2043. 99-03-04 chetanp bug 8991: fixed crash in font registration code
  2044. during a repair.
  2045. 99-03-03 malcolmh Fixed bug 8842: RemoveFile infinite loop when
  2046. removing readonly folder
  2047. Fixed bug 9027: Path::GetSelfRelativeSD fails to read
  2048. large descriptors
  2049. Fixed bug 9028: SECURITY: rollback of RemoveFolder on
  2050. a folder with big security descriptor wipes all
  2051. security
  2052. 99-03-03 mattwe Bug 8989: You can now write 0x80000000 to the registry
  2053. as a DWORD. Involves several small changes as we've
  2054. added a flag to GetIntegerValue that returns more
  2055. information about the value returned.
  2056. 99-03-03 mattwe Bug 8812: We've changed the PRODUCTICON property to
  2057. ARPPRODUCTICON. The GetProductInfo name hasn't changed.
  2058. 99-03-03 johndelo Bug 8435: Vietnamese text corrupted on Unicode build.
  2059. Removed use of WC_COMPOSITECHECK in Unicode->ANSI conversion.
  2060. 99-03-02 cgouge Bug 8917: Validation. Due to an earlier bug fix
  2061. (7846), several ICEs were generating info messages if
  2062. critical tables were missing. These messages would be
  2063. filtered away by tools and never be seen again. They
  2064. should actually be errors. The offending ICEs were
  2065. ICE18, ICE21, and ICE22. They now explicitly create error
  2066. messages in these cases.
  2067. 99-03-02 cgouge Bug 8899: Validation, ICE43 modified to exempt from
  2068. this ICE shortcuts that are created in non-profile
  2069. directories, as these shortcuts would fail one of ICE57
  2070. or this ICE no matter what they did. (and this one
  2071. was wrong).
  2072. 99-03-02 cgouge Buc 8843: Validation, ICE17 updated to allow entries
  2073. in the control table to use properties to reference
  2074. items in the Binary table. (Bitmaps, Icons, etc)
  2075. 99-03-02 cgouge Bug 8826: Validation, ICE33 updated to check for
  2076. TypeLib entries in the registry table.
  2077. 99-03-02 cgouge Bug 8702. Validation: Added ICE57, which checks that
  2078. components don't contain both per-machine and
  2079. per-user data. It also does a few checks on -1 root
  2080. reg-keys to ensure that you don't get any goofy install or
  2081. detection problems. TestDB was modified to pass this
  2082. ICE by splitting several components that contained
  2083. both types of data.
  2084. 99-03-02 chetanp fixed bug 9000. This was a leak of registry keys
  2085. that we failed to close during app deployment, when
  2086. MsiAdvertiseScript was called with the
  2087. SCRIPTFLAGS_VALIDATE_TRANSFORMS_LIST flag. One can see this leak with
  2088. previous leaks when MsiAdvertiseScript is called with
  2089. the SCRIPTFLAGS_VALIDATE_TRANSFORMS_LIST when the
  2090. product is already advertised/ installed on the machine.
  2091. No transforms are needed, just setting the flag
  2092. causes this.
  2093. 99-03-02 malcolmh Fixed bug 8797: msipath.findfile fails when
  2094. accessing inaccessible directory. AppSearch will now continue
  2095. even if a directory that it's searching is
  2096. inaccessible.
  2097. 99-03-02 chetanp fixed bug 8462. We should not count products who
  2098. installed components as disabled as true clients during
  2099. uninstallation. We should remove the entities tied
  2100. to a component when the last product that did not
  2101. install the component disabled is uninstalling. This bug
  2102. leads to files/ registry entities being orphaned if
  2103. the product that installed that component disabled is
  2104. uninstalled last.
  2105. 99-03-02 chetanp fixed bug 7412. Fixed code that invokes an implicit
  2106. reinstall of a feature to pass in the
  2107. REINSTALLMODE_USERDATA as well. This code is used when a feature is
  2108. detected to be broken, when
  2109. MsiProvideComponentFromDescriptor and MsiProvideQualifiedComponent or the
  2110. MsiProvideComponent API is called with the dwInstallMode
  2111. arg = INSTALLMODE_DEFAULT. This is what is used by
  2112. the shell and OLE when calling MsiProvideCFD. This can
  2113. cause scenarios where clicking on the shortcut causes
  2114. darwin to keep reinstalling over and over again
  2115. (there is a component in the feature or in the ancestry
  2116. that has a HKCU registry key path that is broken).
  2117. 99-03-01 eugend Fixed bug # 9008: in CONTROLS.CPP we better handle
  2118. missing or incorrect values of PROMPTROLLBACKCOST
  2119. property.
  2120. 99-03-01 cgouge Bug 9002: _Validation table update. Control.Text
  2121. column is now type "Formatted"
  2122. 99-03-01 davidmck Fixed bug 8066 again, this time checking in the
  2123. bld1402.16 version of shfolder.dll.
  2124. 99-02-26 eugend As a result of fixing bug # 8922, AppId table's
  2125. RemoteServerName got changed into Formatted (from Text).
  2126. I've opened DOC bug # 9011 to track this.
  2127. 99-02-26 mattwe Fixed bug 8812: New property PRODUCTICON is used to
  2128. support a per-package primary icon. It is registered
  2129. during advertisement/publishing/installation, and
  2130. the final path is available through
  2131. MsiGetProductInfo(..., INSTALLPROPERTY_PRODUCTICON)
  2132. This is available on all platforms, but will primarily
  2133. be used by the new ARP panel on Windows 2000
  2134. 99-02-25 cgouge Bug 8322. DisableRollback policy is now per-machine
  2135. as well as per-user. If either location has the
  2136. policy set, Rollback will be disabled.
  2137. 99-02-25 mattwe Fixed bug 5535: The Environment operations now have
  2138. consistent error messages in all cases, and will
  2139. absolutely not kick off rollback without warning.
  2140. 99-02-25 bench fixed bug 8781: MsiCreateTransformSummaryInfo checks
  2141. the Page Count (minimum installer version)
  2142. properties of the two dbs and uses the larger of the two for
  2143. the transform Page Count property. Previously it
  2144. always set the minimum version for the transform to the
  2145. current installer version, but this made transforms
  2146. incompatible with older installer versions when they
  2147. weren't necessarilly so.
  2148. 99-02-25 davidmck Fixed bug 8066 - took version 5.0.2014.204 of
  2149. shfolder.dll to be in sync with IE5.
  2150. 99-02-25 davidmck Fixed bug 8983 - updated to usp10.dll version
  2151. 1.175.0.1 to be in sync with Office.
  2152. 99-02-23 mattwe Bug 8343: checking the ownership of registry keys and
  2153. and security descriptors has been streamlined, and now
  2154. isn't affected by DACLs in the SD.
  2155. 99-02-23 mattwe Bug 7730: GetTempDirectory on NT now calls GetTempPath
  2156. instead of the work-around for 9x done for #4036.
  2157. The end result is that when tmp and temp are undefined,
  2158. NT now goes to the windows folder instead of the
  2159. windows volume\temp. (c:\temp)
  2160. 99-02-23 cgouge Bug 8463. IsAdmin check extended to use NT5 specific
  2161. CheckTokenMembership API that handles special NT5
  2162. only cases.
  2163. 99-02-23 eugend UISample.msi and UITestDb.msi got checked in.
  2164. UISample.msi is a template database featuring a UI that
  2165. wants to be in line with current wizard design
  2166. requirements. UITestDb.msi is the old TestDb.msi driven by
  2167. this new UI. I've just checked in the changes I've
  2168. made to the makefile; the IDTs and IBDs were already
  2169. checked into the <Darwin root>\data\UISample directory.
  2170. 99-02-23 malcolmh Fixed bug 8793: Darwin: Unable to deploy app that
  2171. has already been assigned and installed by admin.
  2172. 99-02-23 mattwe Bug 8500: InstMsi now closes its service and
  2173. service manager handles correctly.
  2174. 99-02-23 cgouge Bug 8832. Typos in schema _Validation table.
  2175. 99-02-22 cgouge Bug 7722: Mergemod.dll: Support added for Darwin
  2176. predefined property directories in a merge module.
  2177. Previously it was very common to get merge conflicts when
  2178. using one of these directories. Now you can GUID-ize
  2179. these directories (as you do other module
  2180. directories) and the merge tool will dynamically generate
  2181. actions that set this GUIDized property to the appropriate
  2182. non-guidized property.
  2183. 99-02-22 cgouge Bug 8130: Mergemod.dll. Added logging when base
  2184. action is completely missing from Module*Sequence tables.
  2185. 99-02-22 cgouge Bug 8229, Mergemod.dll. Logging when action in
  2186. Module*Sequence tables does not get processed because it
  2187. doesn't have an ancestor which was a standard action
  2188. with an assigned sequence number.
  2189. 99-02-22 cgouge Bug 8321. Mergemod.dll, logging for CAB extraction.
  2190. 99-02-22 cgouge Bug 8391. Mergemod.dll. Log message had spaces
  2191. between characters.
  2192. 99-02-22 malcolmh Fixed bug 8875: RFS shortcut fails to provide
  2193. Network Resource Dialog when Explorer.exe FEATURECACHE
  2194. returns SOURCE_ABSENT.
  2195. Fixed the regression from bug 7854: we no longer do
  2196. feature caching from
  2197. MsiProvideComponentFromDescriptor.
  2198. We also no longer feature-cache the
  2199. INSTALL_SOURCEABSENT state.
  2200. 99-02-22 malcolmh Fixed bug 8933. Fixed our failure to run EXE custom
  2201. actions on Win9X.
  2202. 99-02-22 bench bug 8906: file replacement operations in wininit.ini
  2203. are now accomplished by a single rename line. Prior
  2204. to this change such operations were done with a
  2205. delete followed by a rename. This fix was made to allow
  2206. for a workaround to a Win98 bug. The bug would
  2207. sometimes cause the wininit.ini file to be processed
  2208. multiple times, and the delete lines would remove the new
  2209. files the second time through.
  2210. 99-02-22 bench bug 8949: removed unsupported property
  2211. INSTALLPROPERTY_UPGRADECODE from msi.h.
  2212. -----------------------------
  2213. Release 1.1.0212
  2214. -----------------------------
  2215. 99-02-12 malcolmh Fixed bug 8845. We now prevent EXE custom actions
  2216. from elevating when the install is not managed.
  2217. 99-02-12 malcolmh Fixed bug 8841 -- Added these properties to our
  2218. secure list:
  2219. > FILEADDSOURCE,
  2220. > FILEADDDEFAULT,
  2221. > AFTERREBOOT,
  2222. > EXECUTEACTION,
  2223. 99-02-12 cgouge Bug 8837. Summary info of packages updated to 100,
  2224. schema version removed from title.
  2225. -----------------------------
  2226. Release 1.1.0210
  2227. -----------------------------
  2228. 99-02-10 davidmck Fixed bug 8821 - Changed copyright in instmsi to
  2229. 1999.
  2230. 99-02-10 murate Implemented COM+ Registration support.
  2231. -----------------------------
  2232. Release 1.1.0000
  2233. -----------------------------