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.

3244 lines
165 KiB

  1. Darwin Setup Development Notes through 12/31/96
  2. -----------------------------
  3. Release 0.10.00.2431
  4. -----------------------------
  5. 96-12-30 bench ExecuteFinalize now commits (or rolls back or deletes)
  6. the database, rather than Engine.Terminate doing so. By
  7. commiting the database in this action, we can ensure that if any
  8. actions after ExecuteFinalize (starting the app, starting
  9. help, etc.) fail for whatever reason, the database will
  10. still be commited (and remain in sync with the config
  11. database). This would not occur if Terminate did the
  12. database commitment.
  13. As such, Engine.Terminate no longer takes the boolean
  14. indicating whether to commit the database or not. Any
  15. clients that relied on Terminate to commit the database
  16. should now commit the database before calling Terminate.
  17. Note, Engine.Sequence properly handles the commitment of the
  18. database during an install, so any clients using the engine
  19. to do an install (by calling DoAction("Install") for
  20. instance) do not need to explicetely commit the database.
  21. 96-12-27 davidmck Checked in code to allow us to track reference
  22. counting bugs down a bit more easily. This code is in the
  23. debug version, but only is turned on for those
  24. objects that are explicitly turned on.
  25. Turn on reference tracking for an object by setting
  26. the TRACK_OBJECTS environment variable to a list of
  27. comma separated iids you want to keep information on.
  28. This code is currently only in the services DLL.
  29. -----------------------------
  30. Release 0.10.00.2415
  31. -----------------------------
  32. 96-12-14 malcolmh Security for our server when running as a service is
  33. now set automatically by the service. There is no
  34. need to use dcomcnfg anymore.
  35. -----------------------------
  36. Release 0.10.00.2414
  37. -----------------------------
  38. 96-12-14 mattwe MsiUtil: Turned off building debug launchers by
  39. default. From VB, call
  40. util.LinkerDebugOn to set them on.
  41. -----------------------------
  42. Release 0.10.00.2413
  43. -----------------------------
  44. 96-12-12 bench The ixoReg* operations have been updated to allow
  45. modification of the HKEY_CURRENT_USER hive when running
  46. as a service. Entries have been added to the
  47. Registry and RemoveRegistry tables in the testdb to modify
  48. this hive. Note: this does not yet work on Win95.
  49. 96-12-12 alanr MSIGEN: MakeTables SourceDirectory and SourceFile
  50. table generation now use true Sysdiff directory names
  51. instead of Darwin property names. Short filenames
  52. have also been added for Default names of directories
  53. specified by predefined properties.
  54. -----------------------------
  55. Release 0.10.00.2412
  56. -----------------------------
  57. 96-12-11 malcolmh The server can now be run as an local server or a
  58. Win32 Service.
  59. Use /regserver to register as a local server
  60. Use /regservice to register as a service if possible.
  61. Currently this registers as a service on NT and
  62. local server on Win95.
  63. Use /unregister to unregister the server (local
  64. server and service)
  65. When the service is registered and unregistered it
  66. is installed and uninstalled from the system.
  67. The server can only be registered either as a local
  68. server or as a service. All previous registration is
  69. removed each time the server is registered.
  70. You can use the Services Control Panel to view the
  71. status of the service, or to stop it.
  72. 96-12-11 bench MsiPatch: BuildAcmePatch populates a Component table
  73. rather than a Selection table. The Selection table
  74. in patship.msi has been replaced with a Component
  75. table. Note: patch application will not work correctly
  76. until that is updated also. Stay tuned.
  77. 96-12-11 johndelo Added new SummaryInformation property:
  78. PID_MSISOURCE, Source Type, which specifies the source file image
  79. type, short or long filenames, and tree(Directory
  80. table) or cabinet&file(Media table). See SummaryInfo
  81. help topic.
  82. Engine mode flags iefNoSourceLFN and iefCabinet are
  83. set from this summary property. SumInfo.Exe has been
  84. updated as well (testdb is currently set to 1, short
  85. names in tree). File copy will need to be updated to
  86. use these flags.
  87. 96-12-11 bench MsiPatch: input to BuildAcmePatch changed to include
  88. unique product keys for each app. See help for more
  89. info.
  90. 96-12-11 mattwe MSIGEN: Update sysdiff INF parsing to use
  91. feature/components
  92. Known Issues: Registry table gets the Uninstall keys
  93. points at Acme.
  94. Will replace this with a call to msiexec /m
  95. 96-12-11 alanr MSIGEN: MakeTables updated to handle ityDif, NT Sysdiff ($OEM$),
  96. directory, generating the following tables: File, Directory, Component,
  97. Feature, FeatureComponents, SelfReg, SourceFile, and SourceDirectory.
  98. -----------------------------
  99. Release 0.10.00.2411
  100. -----------------------------
  101. 96-12-10 bench Moved script opening out of Engine::Initialize.
  102. Scripts should only be created if an operation other
  103. than ixoActionStart, ixoHeader or ixoEnd is executed
  104. when running as a client or when running stand-alone and
  105. the SCRIPTFILE property is set. Help is on the way.
  106. -----------------------------
  107. Release 0.10.00.2410
  108. -----------------------------
  109. 96-12-09 bench Fixed some errors in the database from the
  110. Selection->Component/Feature changeover,
  111. added an ActionData message to ixoShortcutCreate, and
  112. changed the InstallFiles and RemoveFiles actions to only do
  113. ixoProgressTotal if the progress total is > 0, all in hopes
  114. of fixing the progess and logging of the various
  115. actions. If any actions don't dispatch progress or log
  116. entries that should, write strange log entries, etc.,
  117. bugs should be posted. Note: an Action shouldn't be logged
  118. or be in the script if it doesn't do anything (i.e. doesn't
  119. use operations or dispatch progress).
  120. 96-12-09 thussey The launcher now copies over the server along with
  121. the darwin dlls, but does not register it.
  122. 96-12-09 tracyf Updated the helpfile to match the new
  123. Feature/Component table architecture.
  124. -----------------------------
  125. Release 0.10.00.2409
  126. -----------------------------
  127. 96-12-07 ivanw Changed the handler to match the changes in the
  128. SelectionManager
  129. 96-12-06 mattwe dbview: Forced ivcFetch intent on Selects, took out error when it
  130. wasn't set. See ChetanP.
  131. 96-12-06 mattwe MSIGEN: Integrated Sysdiff INF parsing into MakeTables.
  132. Updated the properties used from the obsolete ones.
  133. Marked most of the locations that we need to do feature\component
  134. work in the code with //!! FEATURE/COMPONENT comments.
  135. 96-12-05 tracyf I've checked in all the changes that split the
  136. Selection table in the Feature, Component, and
  137. FeatureComponents tables. However, there's still work to be
  138. done in the Handler before the TestDB can be executed
  139. properly. I'll be fixing the help files as soon as
  140. possible.
  141. 96-12-03 malcolmh - Changed Conman::Add/RemoveProduct to
  142. Register/UnregisterProduct.
  143. - Added Conman::Register User. RegisterProduct now
  144. registers only product-specific info. The user info is
  145. registered via RegisterUser, perhaps at an app's
  146. first run.
  147. -----------------------------
  148. Release 0.10.00.2329
  149. -----------------------------
  150. 96-11-27 johndelo The ConfigurationManager property has been exposed
  151. to automation from MsiEngine.
  152. The SelectLanguage method has been moved to MsiEngine
  153. from MsiHandler.
  154. 96-11-26 johndelo MsiEngine.Initialize no longer takes services and
  155. handler pointers. The objects are obtained as needed by
  156. CreateInstance or from the config manager.
  157. MsiEngine.Initialize takes an enum, iuiEnum type in
  158. engine.h, that specifies the UI level desired, from
  159. iuiFull to iuiNone.
  160. The value iuiBasic uses the IMsiMessage
  161. implementation in the engine default UI handler instead of loading
  162. A new property, "UI", is now recognized by the launcher,
  163. which sets the iuiEnum value as follows:
  164. UI=Full iuiFull (default, if not present)
  165. UI=Reduced iuiReduced (no modeless dialogs)
  166. UI=Basic iuiBasic (used engine message handler)
  167. UI=None iuiNone (no UI displayed)
  168. Only the first letter is examined, case insensitive.
  169. The engine object now always has a valid services and
  170. configuration manager, so no tests against 0 should
  171. be made.
  172. 96-11-26 bench Renamed almost all folder properties from *Dir to
  173. *Folder. Old properties are still being set. Added
  174. some new folder properties. See help for more info.
  175. 96-11-26 ivanw Changed the way progress messages handled in the
  176. handler. The Handler stores the name of the Action from
  177. the ActionStart message. Therefore it does not have
  178. to be included in the third field of the Progress
  179. messages anymore. Also if an action consists of equal
  180. size steps, it can use the ActionData messages to drive
  181. the progress indicators. In this case it sends one
  182. Progress message with the number of the total steps and
  183. NULL as the current progress. This signals that the
  184. Handler has to count the ActionData messages and
  185. treat them as Progress messages.
  186. 96-11-26 ivanw Implemented the ActionDone message in the
  187. Handler::Message method
  188. -----------------------------
  189. Release 0.10.00.2326
  190. -----------------------------
  191. 96-11-25 johndelo Log is now fixed. Temporarily, if no handler is
  192. specified (handler="") the default, simple UI will be
  193. used instead.
  194. In the next build, the UI level will specifyable on
  195. the command line and passed to MsiEngine::Initialize.
  196. It will no longer be possible to specify DLL names on
  197. the command line (components must be registered).
  198. Necessitated by operation as a server/service.
  199. 96-11-22 malcolmh Added Register/Unregister folder to conman. Fixed
  200. bug 686.
  201. -----------------------------
  202. Release 0.10.00.2322
  203. -----------------------------
  204. 96-11-21 johndelo MsiRecord as a new "Data" property typed as variant,
  205. that will transfer any MsiRecord type--see help.
  206. This greatly simplifies record object management by VB
  207. scripts.
  208. 96-11-21 johndelo The enumerations for input and return from the Message
  209. functions have changed, necessitated by the remote execution model.
  210. At the same time, missing message types were added.
  211. Message type: OLD: icmt NEW: imt
  212. Message status: OLD: icms NEW: ims
  213. Note that the message type is store in the high byte;
  214. the other bits are used to specify the buttons and icon desired. See engine.h
  215. Most callers currently specify imtError, which shows only an Ok button.
  216. Most of these uses within the actions need something else.
  217. You now must OR in the message box button set (if not simply Ok)
  218. and the default button (if not the first).
  219. When using a switch on the return value of Message,
  220. specify cases only for the non-default buttons.
  221. The default: case will catch the default button as well as imsNone
  222. (if running silently), assuming the default for quiet is the same.
  223. There is no longer a need to Assert in all the Message returns,
  224. as bad returns can be caught further upstream now.
  225. The use of a {buttons} list in error messages is no longer supported.
  226. The message attributes are defined identically to Win32.
  227. The defines in msiauto typelib Constants have been updated.
  228. 96-11-21 johndelo ODBC databases, including .MDB files, now require a
  229. valid _SummaryInformation table. Properties are read
  230. from this table in the same way as the summary info
  231. is read from MSI _SummaryInformation stream. ODBC
  232. databases will always be opened read-only by
  233. Engine::Initialize, and they can be used to generate a
  234. maintenance mode database.
  235. 96-11-21 ivanw Handler::Break is implemented.
  236. 96-11-21 chetanp provided execute functions for the progman item
  237. creation/ deletion actions
  238. 96-11-21 chetanp provided execute functions for the configuration
  239. manager interface
  240. 96-11-20 malcolmh The configuration manager no longer gives an error
  241. when trying to run an installation after aborting an
  242. installation (i.e. killing the installer process) .
  243. 96-11-20 malcolmh The C++ version of GetProductInfo now takes an
  244. rpiRecord for the product information, allowing it to
  245. return errors if necessary.
  246. 96-11-20 ivanw Changed the Handler so it uses the message box
  247. enums. Also changed the error messages in the Handler that
  248. used non default buttons.
  249. 96-11-20 ivanw Added screenreader accessibility to the popup menues
  250. in the SelectionTree. We detect when a screenreader
  251. is running and modify the UI so it uses only controls
  252. that the screenreader can read. This requires no
  253. extra effort on the autrhors side! With this addition,
  254. Darwin Window UI is completely blind accessible.
  255. 96-11-20 johndelo MsiEngine::Initialize now determines database type
  256. by content, rather than by file extension (bug 545).
  257. The logic is: 1. If it is a storage file or resource
  258. marked as MSI by SummaryInformation, then it is MSI.
  259. 2. If it has the Access DB signature, then it is MDB.
  260. 3. If it is UNC without a 3-char extension then it
  261. will be attempted to open as SQL Server DB. 4. Else it
  262. will be opened as an ODBC data source.
  263. 96-11-19 malcolmh mkerrtbl now generates an RTF file for inclusion in
  264. the help file
  265. -----------------------------
  266. Release 0.10.00.2319
  267. -----------------------------
  268. 96-11-18 bench UpdateResource action defers execution
  269. 96-11-17 ivanw Implemented defered execution in Register/Unregister
  270. Fonts
  271. 96-11-16 davidmck Added a DebugLog capability to the IMsiDebug object
  272. and implemented it in the Services DLL. Writes a
  273. debug log when the normal log is not available.
  274. 96-11-16 davidmck Added Memory object tracking the CMsiCursor,
  275. CMsiTable, CMsiRegKey. Also added routines to give a list of
  276. leaked objects by type and number.
  277. Modified AllocObject to handle the fact that RTTI
  278. information does not transfer across DLLs.
  279. 96-11-16 mattwe MsiGen: Added ImportINF that reads a SysDiff
  280. INF (AddReg, DelReg and UpdateInis sections)
  281. Known Issues: The registry value column from an INF
  282. is generally too long to import into Access.
  283. The Directory_ column of the IniFile is currently
  284. the path from the INF, not looked up/added to the
  285. Directory table. This needs integration with AlanR's
  286. forthcoming work.
  287. 96-11-15 ivanw Implemented defered execution in Create/Delete
  288. Shortcuts
  289. 96-11-15 bench Removed the Selection_ column from the Resource
  290. table in the testdb. This column prevented the
  291. UpdateResources action from working on the testdb.
  292. 96-11-15 chetanp The CMsiView object now supports INSERT DELETE and
  293. UPDATE
  294. SQL stmts. Please see help on MsiView object for the
  295. sytax
  296. 96-11-15 davidfer MsiUtilities: Updated column names for compatibility
  297. with latest Darwin database format (KeyFile ->
  298. Cabinet & DiskLabel -> VolumeLabel)
  299. -----------------------------
  300. Release 0.10.00.2315
  301. -----------------------------
  302. 96-11-14 mattwe MsiLocalize: Added volumecost and scrollabletext support
  303. Known issues: billboards no longer generate errors, but
  304. also don't generate to the RC file. Still to determine
  305. if this fixes the overall issue since billboards are
  306. custom controls in Darwin, and don't map to windows
  307. controls easily.
  308. 96-11-14 johndelo TestDB test database will only be released as an
  309. .MSI file. There are too many problems associated with
  310. various flavors of ODBC.
  311. We are phasing out MDB files as we cannot support
  312. full functionality without an excessive amount of work.
  313. These can still be built
  314. using MsiTable.EXE or the makefile with explicit
  315. targets, testdbmdb and tdbmacmdb.
  316. 96-11-14 bench Re-wrote SelfRegModules, SelfUnregModules,
  317. WriteIniValues and RemoveIniValues actions to defer execution.
  318. The description string for WriteIniValues changed
  319. slightly and the testdb has been updated to reflect
  320. this.
  321. 96-11-14 tracyf Thanks to the new deferred execution model for
  322. actions, a new attribute is needed for files in the File
  323. table - if a file in a cabinet is split across disks,
  324. the 'Split' attribute bit must be set. See the File
  325. table topic in the helpfile for more info.
  326. 96-11-14 malcolmh The storage object now correctly handles
  327. DeleteOnRelease on Windows 95. Previously if a database was
  328. persisted with idpPersist on Win95 the database was not
  329. actually deleted. This fix fixes a number of bugs
  330. (604, 622, 606, 648, to name a few).
  331. 96-11-13 tracyf Re-wrote the InstallFiles and RemoveFiles actions to support
  332. deferred execution.
  333. -----------------------------
  334. Release 0.10.00.2312
  335. -----------------------------
  336. 96-11-11 malcolmh Modules can once again be compiled as EXEs. Multiple
  337. CLSIDs in each module are now handled.
  338. 96-11-11 thussey MAC: Some minor changes to the files copied to the
  339. release point. RegMsi is now copied instead of the
  340. defunct RegAuto. The test database (tdbmac.msi) is now
  341. copied. The proper creator signatures are now used.
  342. Also, we no longer try to copy the non-existent loader.
  343. 96-11-10 bench Re-wrote the WriteRegistryValues and RemoveRegistryValues
  344. actions to use the ixo* operations. Also, the
  345. messages logged and displayed by these actions are now
  346. of the type "Key [1], Name [2], Value [3]" rather than
  347. "Root [1], Key [2], Name [3], Value [4]" and
  348. Key includes the root name (such as
  349. HKEY_LOCAL_MACHINE\Software\Microsoft).
  350. The InstallSequence table in the testdb has been
  351. changed to reflect this.
  352. 96-11-08 thussey Darwin was inconsistent about how it named methods
  353. which returned enumerations. The OLE automation
  354. standard specifies that property names that return
  355. a collection are named the plural of the object in
  356. the collection. Also, the C++ names have been
  357. changed to be consistent. We should all adopt this
  358. standard in the future.
  359. Old Name OLE name C++ name
  360. msiPath
  361. GetSubFoldersEnum SubFolders GetSubFolderEnumerator
  362. msiRegKey
  363. GetValuesEnum Values GetValueEnumerator
  364. GetSubKeyEnum SubKeys GetSubKeyEnumerator
  365. msiStorage
  366. EnumerateStreams Streams GetStreamEnumerator
  367. EnumerateStorages Storages GetStorageEnumerator
  368. msiConfigurationManager
  369. EnumerateApplications << gone from project >>
  370. EnumerateComponents Components GetComponentEnumerator
  371. EnumerateComponentClients ComponentClients GetComponentClientEnumerator
  372. 96-11-08 bench Added MsiRegKey::Key method, which returns the full
  373. path of the key, including the root name. See help
  374. for more info.
  375. 96-11-08 chetanp Further explanation of my comments below -
  376. The IMsiView object (SQL query handler) now flags
  377. any attempt
  378. to modify a persistent column (via
  379. insert/update/delete) in a table,
  380. as an error, IF the database is NOT in the idsWrite
  381. mode.
  382. 96-11-08 chetanp put correct check on database writability in
  383. CMsiView object.
  384. Need to remove the "State" column from the "File"
  385. table.
  386. -----------------------------
  387. Release 0.10.00.2308
  388. -----------------------------
  389. 96-11-08 malcolmh Fixed a bug requiring that an automation user create
  390. a services object prior to using the configuration
  391. manager.
  392. 96-11-08 ivanw If the user enters a new volume in the PathTailEdit
  393. control, the volume is added to the list in the
  394. DirectoryCombo control.
  395. 96-11-08 ivanw Changed the strings shown on the SelectionSize
  396. controlaction. The string and the size is different if the
  397. selected item is expanded or colapsed in the tree.
  398. 96-11-08 ivanw Directory combo shows the UNC path for remote
  399. volumes.
  400. 96-11-07 chetanp A note to the testers that SelfReg action has now
  401. changed to SelfRegModules
  402. and SelfUnreg to SelfUnregModules. Please see more in
  403. the help.
  404. 96-11-07 bench Changed the MsiMalloc function LcbOfBlock to
  405. GetSizeOfBlock. The code and doc differed, and
  406. GetSizeOfBlock sounds better, so all instances of LcbOfBlock were
  407. changed to GetSizeOfBlock. Any tests previously
  408. calling LcbOfBlock must be updated.
  409. 96-11-07 ivanw Removed the ErrorString DialogAttribute. (it was
  410. used for error dialogs only)
  411. 96-11-06 chetanp added shared files support in shared.cpp. Needs the
  412. Component, and the
  413. KeyFile tables and the PrepareSharedFiles and the
  414. ProcessSharedFiles
  415. actions. More on these in the help.
  416. 96-11-06 chetanp changed the ivcEnum flag values for
  417. IMsiDatabase::OpenView function.
  418. The values are now suitable for future UPDATE, INSERT
  419. and DELETE
  420. SQL support.
  421. 96-11-06 chetanp shifted Shortcut creation/ deletion to Services.
  422. need to still implement the automation wrappers.
  423. 96-11-06 thussey Deleted regauto.cpp, regauto.r, regauto.rc from the
  424. project since they are no longer used.
  425. 96-11-06 ivanw Replaced all the icons used by the selection tree
  426. control. These smaller icons will make possible to show
  427. more items in the same window.
  428. 96-11-06 ivanw Added keyboard navigation to the SelectionTree (on
  429. Windows). To open the menu for a selection item one
  430. can hit F4, or Alt-Up or Alt-Down. To close it keeping
  431. the changes hit Return, to close it canceling the
  432. changes hit Escape. With these changes I hope all the
  433. controls are completely accessible from the keyboard.
  434. Also all controls should be visible for the screen
  435. readers. Let me know if I missed something.
  436. 96-11-06 malcolmh Fixed bug 398 -- crash when the engine is
  437. initialized with a temp. db. and then the db is persisted
  438. 96-11-05 malcolmh Error strings returned via automation are now
  439. formatted regardless of whether an MsiServices object has
  440. been created. See bug 569 for more info.
  441. 96-11-05 mattwe AcmeConvert: Forced all Directory table primary keys to lowercase to
  442. avoid bogus duplicates
  443. 96-11-05 mattwe acmedb.cpp, AcmeParse, AcmeConvert: Added gfForceLower
  444. for column definitions to force the column to lower case.
  445. Used this on the section and item selections in the INF table,
  446. to facilitate tracking sections/items between installs of
  447. differing versions of the same app, if they change the
  448. capitalization
  449. Also fixed a bug from the intern's code that creates
  450. a non-valid primary key on the last line of parsing the
  451. INF.
  452. 96-11-05 mattwe AcmeConvert: Removed SummaryInput, fixes build hose
  453. (see: JohnDelo 96-11-04, removing summary input)
  454. -----------------------------
  455. Release 0.10.00.2305
  456. -----------------------------
  457. 96-11-04 thussey MAC: The 10/21 build of the componetized Mac OLE is
  458. checked into darwin. Also, a new OLE Automation DLL
  459. has been checked in to allow typelib calls. IMPORTANT:
  460. Everyone running MacDarwin needs to run
  461. "\darwin\tools\macole\putmole debug" again to get the new ole
  462. build. Also, to get the automation dll to the correct
  463. place, you need to first add and environment variable
  464. on your NT machine. The name is "MacSystemFolder" and
  465. the value should be something like ":Macintosh
  466. HD:System Folder". Details are in Step II Section 3 and
  467. Step III Section 8 of the tedious but complete
  468. macsetup.txt.
  469. 96-11-04 thussey MAC: Added Apple's standard SystemSevenOrLater
  470. define to the makefile-- this allows us to use the system
  471. 7 definitions in darwin resource scripts. It also
  472. will prevent code from the old APIs from compiling,
  473. which is a good thing since the old APIs won't work on
  474. the PowerMac.
  475. 96-11-04 thussey MAC: RegMsiD now works on the mac. It registers all
  476. 4 darwin components. It takes no cmd line args, it
  477. just registers. Or hold down the option key when
  478. launching RegMsiD to unregister.
  479. 96-11-04 thussey MAC: The typelib file is now built into a resource
  480. in the automation dll just like on windows.
  481. 96-11-04 thussey MAC: The automation DLL now registers/unregisters
  482. its type library.
  483. 96-11-04 johndelo MsiSummaryInput and MsiSummaryOutput have finally
  484. been removed. Replace any test with MsiSummaryInfo,
  485. which combines the two. See help or previous relnotes.
  486. 96-11-04 ivanw Changed the VolumeCost control, so it is is fully
  487. accessible for screen readers.
  488. 96-11-02 ivanw Added DirectoryListOpen control event. This makes
  489. possible to put an open button on a browse dialog. With
  490. this the browse dialog is completely keyboard
  491. accesible.
  492. 96-11-01 mattwe AcmeConvert added three columns to the stf object
  493. table, to facilitate debugging. DarwinDirectory,
  494. ParentObjID, and DarwinSelection. They contain
  495. the most recent references during tree-walking
  496. All selections, hidden and visible are generated
  497. along with appropriate display values based on
  498. Acme logic. Their "checked" state is picked up
  499. from batch information. The Directory table is
  500. also populated with every directory reachable
  501. along the root.
  502. The Root object, and custom dialog choice are still
  503. hard coded. We'll update the automation and the
  504. docs when we get this updated.
  505. Known issues: leaks memory like a sieve.
  506. the properties for roots in the
  507. directory table need to be verified
  508. No app-search parsing yet, so the
  509. root selection is hard-coded
  510. 96-11-01 ivanw The VolumeCostList now shows the total size of the
  511. volume.
  512. 96-11-01 ivanw Added tooltips to Windows controls. Tooltips are
  513. used with buttons that display a picture instead of a
  514. text. The tooltip text is used by screenreaders for
  515. static pictures, although this text does never show up
  516. on a regular user's screen. To support tooltips and
  517. context sensitive help for radio buttons, I had to add
  518. a help field to the RadioButton table. The code will
  519. run with the old tables, that miss this column, but
  520. will generate a warning in the log. This is just a
  521. reminder, that all existing radiobutton tables should be
  522. updated.
  523. The syntax for the help string in the Control table
  524. and the RadioButton table:
  525. [ToolTip text]|[ContextSensitive help text]. The
  526. separating "|" is required even if only one of the two
  527. kinds of help strings is present.
  528. -----------------------------
  529. Release 0.10.00.2301
  530. -----------------------------
  531. 96-10-31 tracyf The "TotalSpaceK" function has been added to
  532. MsiVolume, as a complement to the existing "FreeSpaceK".
  533. 96-10-31 malcolmh Added more specific error messages to the SQL query
  534. engine.
  535. 96-10-31 tracyf The handling of files-in-use has been enhanced
  536. considerably. The InstallValidate action now detects
  537. whether file costing has identified any files in use, and
  538. will put up a dialog if appropriate listing the
  539. processes "using" the file(s). The InstallFiles and
  540. RemoveFiles actions now also check for files in use, and
  541. if the user hasn't shut down the offending processes,
  542. will schedule the file(s) for replacement or removal
  543. at reboot time (note: Darwin doesn't handle
  544. automatic reboots yet). See the InstallValidate help topic
  545. for all the new details.
  546. 96-10-30 ivanw Added two new possible arguments to the EndDialog
  547. control event: Retry and Ignore. Both of these remove
  548. the present dialog, return control to the engine and
  549. return IDRETRY and IDIGNORE values respectively.
  550. 96-10-30 chetanp the msi query engine now supports the DISTINCT
  551. clause
  552. 96-10-30 ivanw The syntax of the error messages changed slightly.
  553. The header text and the error messages has been
  554. swapped. This was necessary so when the Engine appends
  555. the error number to the front of the text, it will became
  556. part of the error text and not the header.
  557. The new syntax for an error message is:
  558. Error text{button list}Header text
  559. Most error messages that we have at this point specify only
  560. the error text. These are not effected by this change.
  561. 96-10-30 ivanw Changed how the error dialog works. Now the dialog
  562. is created when needed. As a result, the
  563. MsiErrorDialog class has been removed. The ErrorDialog property
  564. determines which dialog is used. The dialog has to have
  565. the ErrorDialog stylebit set. It also has to have an
  566. ErrorText text control (this has not changed). The
  567. author has to specify the action of the buttons in the
  568. ControlEvent table.
  569. -----------------------------
  570. Release 0.10.00.2229
  571. -----------------------------
  572. 96-10-28 ivanw Included logic that takes into account the taskbars
  573. on the Windows screen. Sizes of large dialogs and
  574. positions of new dialogs use only the rest of the
  575. screen.
  576. 96-10-25 tracyf The "second half" of the RemoveFiles action has been
  577. completed. In addition to uninstalling (when
  578. appropriate) files installed by the InstallFiles action,
  579. RemoveFiles now also reads a new RemoveFile table (if
  580. present), and tries to remove the files specified
  581. there. See the helpfile for info.
  582. 96-10-25 chetanp added DISTINCT support in SQL support for .MSI
  583. databases
  584. -----------------------------
  585. Release 0.10.00.2225
  586. -----------------------------
  587. 96-10-24 ivanw There is a large number of control and dialog
  588. attributes that are used only from automation, but the code
  589. itself never calls them. I put all of these into
  590. #ifdef ATTRIBUTES. This flag is automatically turned on
  591. in DEBUG. In the future, if needed, we can turn it on
  592. or off independently. This cuts the handler ship
  593. size by 15K.
  594. 96-10-24 ivanw Wizard sequence allows different size dialogs
  595. (untill now all had to be the same size). The next dialog's
  596. center will be at the same point as the center of
  597. the old one was. If this puts the new dialog off the
  598. screen we pull it back so a little is on the screen,
  599. so the user can grab it with the mouse.
  600. 96-10-23 thussey makefile change: DllCanUnloadNow is now exported for
  601. engine, handler, and services (this change affects
  602. both win and mac).
  603. 96-10-23 tracyf Progress bar callbacks have been added to the
  604. RemoveFiles action - you should now see a rapid progress
  605. bar when uninstalling files during maintenance mode.
  606. 96-10-22 ivanw When a control (say a button) triggers an event in
  607. an other control it is described in the ControlEvent
  608. table. When that control wants to enable and disable
  609. the button depending on some condition, it had to be
  610. describen in the EventMapping table. The same control
  611. had to be listed in two tables with the same event.
  612. To remove this duplication, the Dialog::EventAction
  613. now looks in both tables, therefore if the control is
  614. listed in the ControlEvent table, it does not have to
  615. be repeated in the EventMapping table.
  616. 96-10-22 ivanw Split the Handler interface in two. The methods
  617. needed by the Engine are in the MsiHandler interface.
  618. Methods related to creating and destroying dialogs are
  619. in the new MsiDialogHandler interface. This split makes it
  620. easier to implement an object that supports the basic
  621. methods of the handler without supporting the methods that
  622. are used only by the automation.
  623. 96-10-22 tracyf File version handling has been upgraded in several
  624. ways: first, the Version column of the file table (and
  625. at a lower level, the CheckFileVersion Path
  626. function) now accepts one of three formats: a version, a
  627. date, or an 'overwrite directive'. See the File Table
  628. and CheckFileVersion topics in the helpfile for more
  629. info (note that the version column can no longer be
  630. left blank; you'll get an error if you do). In
  631. addition, the Version column also now accepts a 'companion
  632. file' reference to another file in the File table,
  633. instead of a version or date (again, see the File table
  634. docs for more info). Full support for proper costing
  635. of companion files (like when the directory of the
  636. companion parent changes) is included.
  637. -----------------------------
  638. Release 0.10.00.2222
  639. -----------------------------
  640. 96-10-18 thussey Added IStrCat to istring.h. Changed all occurrences
  641. of strcat to IStrCat. If you have any code which
  642. calls ANSI string functions, e.g. strlen, strcat, etc,
  643. you should use the corresponding IStr* function
  644. instead. If there is no corresponding IStr* function you
  645. should add one. _c2pstr and _ptocstr can be replaced
  646. with CtoPstr and PtoCstr.
  647. 96-10-18 thussey Added /OPT:REF to the linker options for both WIN
  648. and MAC ship builds. The default compiler and linker
  649. options in msdev are different in places between the
  650. win and ppcmac compilers. Because of this more default
  651. options will probably be explicitly set in the
  652. future.
  653. 96-10-18 thussey makefile change: LIBC is no longer linked into the
  654. Install.exe ship builds on both WIN and MAC. The
  655. runtime code has been completely eliminated from the
  656. launcher. You will get a link error in the ship build if
  657. you add code which requires libc.
  658. 96-10-18 thussey MAC: Due to the changes to the way uncompressed
  659. files work, you need to rearrange the files on your mac
  660. to run the mac test database. The files "Month.jan",
  661. "Month.feb", "Month.mar", "Month.apr", and
  662. "testdb1.cab" should now be in your Darwin folder, not a
  663. subfolder. The "Cab2Mac" batch file and the macsetup
  664. instructions have been updated to reflect this.
  665. 96-10-18 thussey Change to common.h: the symbols "OLE" and "REG" now
  666. always defined for both win and mac.
  667. 96-10-18 thussey MAC: Creator types have been added for all the
  668. darwin components. These have not been registered with
  669. apple yet and may change.
  670. 96-10-18 thussey MAC: makefile change: mac automation dependencies
  671. have been updated.
  672. 96-10-18 thussey MAC: String handling has been centralized. A file
  673. macstr.cpp has been created to hold all the string
  674. implementations. CopyPascalString,
  675. CopyCStringToPascalString, and CopyPascalStringToCString have been moved
  676. from macutil.cpp to macstr.cpp. The inline string
  677. functions in macstr.h have been moved to macutil.cpp and
  678. are no longer inlined. All occurences of _c2pstr and
  679. _p2cstr have been replaced with CtoPstr and PtoCstr to
  680. allow elimination of the mac runtime.
  681. 96-10-18 thussey MAC: Added environment variable to toggle between
  682. using the shipping and componetized OLE Dlls:
  683. "COMPONENT_OLE={yes,no}".
  684. 96-10-18 thussey MAC: Changed mac GetEnvironmentVariable
  685. implementation to make environment settings universal. Instead of
  686. putting environment variables into the install.r
  687. file, they are now in a file in the preferences folder.
  688. To create environment variables on the mac, use
  689. Resourcerer or ResEdit to create a resource file named
  690. "MSIEnv" in the "Preferences" folder in the system
  691. folder. Each preference is a resource of type "STR ". The
  692. resource name is the name of the environment
  693. variable, and the resource data is the value. Note:
  694. environment variables are only implemented in the mac DEBUG
  695. builds. You cannot use environment variables in
  696. strings passed to FormatText because there is no equivalent
  697. on the Macintosh.
  698. 96-10-18 thussey MAC: The files mautostb.cpp and mautostb.h have been
  699. added to the Automation Dll. These stubs allow us to
  700. switch back and forth between the shipping OLE and
  701. the componetized OLE.
  702. 96-10-18 thussey MAC: Assert code has been centralized in files
  703. macassrt.cpp, macassrt.h. The mac MessageBox
  704. implementation has been moved from macutil.cpp to macassrt.cpp.
  705. 96-10-18 thussey MAC: Apple's "morefiles" library of file utility
  706. routines has been checked into darwin. These routines
  707. should be used whenever you have to deal with the mac
  708. file system.
  709. 96-10-18 thussey MAC: Changes to the installer. The installer now
  710. correctly copies new Darwin components over the way the
  711. windows version does. Also, the
  712. CoCreateInstance/DllRegisterServer tangle has been implemented. All
  713. runtime dependencies have been removed.
  714. -----------------------------
  715. Release 0.10.00.2218
  716. -----------------------------
  717. 96-10-17 ivanw Added a new "ImageHandle" style bit to controls.
  718. This is applicable to all controls that normaly get some
  719. image from the Binary table. If this stylebit is
  720. set, the image is not fetched from the binary table,
  721. instead the text field of the control contains the
  722. handle to an already loaded icon or bitmap. This image
  723. must be loaded by some other action previously and the
  724. handle is put in the table at runtime. This can be
  725. used to create a list of all running applications with
  726. their icons.
  727. 96-10-17 ivanw Added a listview control to the Windows code. This
  728. control displays a single column of values with an
  729. icon next to each one.
  730. -----------------------------
  731. Release 0.10.00.2215
  732. -----------------------------
  733. 96-10-14 johndelo In preparation for supporting temporary database
  734. table rows, some API functions have changed slightly.
  735. CreateTable and LoadTable no longer take a boolean
  736. indicating whether the table can be linked as a
  737. tree--no longer needed. (extra arg ignored by automation)
  738. CreateOutputDatabase takes an additional optional
  739. boolean argument: True to persist temporary rows, False
  740. to drop temporary rows.
  741. MsiSummaryInput and MsiSummaryOutput will be removed
  742. from the next build--use MsiSummaryInfo instead.
  743. The new MsiTable property: RowState (C++
  744. SetRowState/GetRowState) is defined, but not implemented yet.
  745. 96-10-14 tracyf Prompting for the next removable install disk has
  746. been implemented, for both Win and Mac. If the InstallFiles
  747. action detects that SOURCEDIR references a removable (floppy or
  748. CD-ROM) volume, it will verify that the required disk is
  749. present in the drive. If not, the user will be prompted to
  750. insert the proper disk (on the Mac, if the wrong disk is in
  751. the drive, it will be ejected to allow the user to put the
  752. right disk in). The InstallFiles and MediaTable helpfile
  753. topics have been updated to explain this in more detail.
  754. 96-10-14 tracyf The DirectoryInitialize action now determines the
  755. state of a new internal Engine mode flag: iefCabinet.
  756. This flag is set if the cabinet file specified in the
  757. first Media Table record can be located in the
  758. SOURCEDIR directory. If no cabinet file name is specified
  759. (or if the 'Cabinet' column is omitted from the
  760. table), or if the specified file cannot be located, all
  761. source files are assumed to be uncompressed and
  762. located in the appropriate positions in the source
  763. directory tree. See the Media table help topic for more
  764. information.
  765. 96-10-14 tracyf Services has a new CreateVolumeFromLabel function,
  766. which searches for a mounted volume with a specified
  767. label and creates an MsiVolume object if it finds a
  768. match. This is needed for disk switching during
  769. InstallFiles, and will soon be used by the
  770. ConfigurationManager.
  771. 96-10-14 tracyf Added a SetVolume function to MsiPath, which allows
  772. the MsiVolume object of MsiPath to be replaced
  773. on-the-fly. This is also used during InstallFiles
  774. disk switching.
  775. -----------------------------
  776. Release 0.10.00.2211
  777. -----------------------------
  778. 96-10-10 johndelo MsiSummaryInfo object is now finished and being used
  779. in the engine and tools.
  780. This encompasses the functionality of MsiSummaryInput
  781. and MsiSummaryOutput, which will be removed soon.
  782. Please update any code and tests.
  783. Note that by default, existing property values in the
  784. SummaryInformation stream are retained, unless
  785. deleted or replaced.
  786. 96-10-10 thussey Note: because of the Mac database fix, if you have
  787. run MacDarwin recently then before you can run the
  788. fixed MacDarwin you will need to throw out the old
  789. "Config.Msi" file in the MSI subfolder of your Preferences
  790. folder.
  791. 96-10-10 malcolmh Fixed bug in Get/Set Int16/32 on the Mac. Databases
  792. can now be written to and read from on the Mac.
  793. 96-10-10 ivanw The Windows code for ScrollableText is checked in.
  794. This is the control used to display the license
  795. agreement. Right now it displays a hardwired text. As soon
  796. as the database is able to handle long strings, it
  797. will read it from the tables like other controls.
  798. 96-10-08 thussey GetEnvironmentVariable is now implemented for the
  799. Mac. Removed all the #ifdefs around it in the code. To
  800. add an environment variable on the mac add a resource
  801. of type 'ENV ' whose name is the variable you want
  802. to set, and whose value is a string containing the
  803. environment variable's value. See install.r for
  804. examples.
  805. 96-10-08 tracyf A new "VolumeLabel" function has been added to the
  806. MsiVolume object. See the updated help file for info.
  807. 96-10-08 tracyf The SelectionManager's FreeSelectionTable function
  808. has been upgraded so that it appropriately updates the
  809. "Installed" column of the Selection table, based on
  810. the action taken during the current install. This
  811. function also now returns a Bool indicating whether
  812. there are any selections remaining in the installed
  813. state.
  814. 96-10-08 tracyf The Action table has been replaced by two (and
  815. possibly more later) new tables: InstallSequence and
  816. AdminSequence. Note that these columns correspond to the
  817. "sequence" columns that existed in the Action table.
  818. Also note that the concept of a "RemoveSequence" has
  819. been eliminated - the InstallSequence actions are
  820. responsible for installation AND removal operations.
  821. -----------------------------
  822. Release 0.10.00.2208
  823. -----------------------------
  824. 96-10-07 thussey Mac test database now writes a "MacDarwin" registry
  825. key.
  826. 96-10-07 ivanw Windows dialogs are created with the close button
  827. and the close option in the system menu enabled or
  828. disabled depending if a cancel button is defined in the
  829. Dialog table. The close button, close from the sysmenu
  830. and ALT+F4 are all equivalent to hitting Escape on a
  831. dialog: it activates the designated cancel button.
  832. 96-10-07 johndelo Maintenance mode handling has been implemented in
  833. the engine and configuration manager. The selection
  834. manager does not yet save the installed state.
  835. Databases are generated and stored in an MSI folder
  836. under the Windows directory (Preferences for MAC).
  837. The configuration database name is config.msi, the
  838. product database uses the product key with extension
  839. .msi. For now, to cleanup, simply delete everything
  840. in the MSI folder. A property is set to indicate
  841. maintenance mode: "Installed" which is set to the
  842. date of the original install, format: YYYY/MM/DD HH:MM:SS.
  843. This may be used to conditionalize the UI: e.g. NOT INSTALLED.
  844. Also there is a mode bit in the engine that actions
  845. can check if they absolutely must: iefMaintenance.
  846. Most of the actions and processing shouldn't behave
  847. differently for initial install or maintenance mode.
  848. 96-10-07 johndelo New actions are added to deal with product registration.
  849. "ProcessUserInfo" action obtains the user name and org name
  850. from various registry locations and preprocesses the PID.
  851. The must be called prior to the main UI wizard sequence.
  852. The PID processing handles only CD and floppy modes, and
  853. will be fully implemented and documented in a later release.
  854. "RegisterProduct" action initialized generation of the
  855. maintenance mode database and the registration of the product
  856. with the configuration manager. Eventually it will stamp
  857. the user info back onto the floppy. This action need not be
  858. called by products that don't support maintenance mode.
  859. New summary stream properties have been defined for PID and
  860. other user info. For new databases, property 31, PID must be
  861. defined to be a valid PID for these actions to succeed.
  862. Help on PID is forthcoming. See _summary.idt in testdb for now.
  863. 96-10-07 johndelo The MsiDatabase methods Commit and Rollback have been removed.
  864. It their place is a single function that takes an extended
  865. set of options: idpCommit, idpRollback, idpSave and idpDelete.
  866. See the help topic MsiDatabase_Persist for documentation.
  867. 96-10-07 johndelo Warning of upcoming change: MsiSummaryInput and MsiSummaryOutput
  868. are being merged into a new object: MsiSummaryInfo,
  869. which will allow selective updates of individual properties.
  870. Both the new and old objects will be supported for a few releases.
  871. 96-10-07 johndelo Error codes were added to the return from MsiEngine.Initialize.
  872. See engine.h for these and for new methods of MsiEngine:
  873. RegisterProduct and GetProductKey. Some new properties were added.
  874. 96-10-05 ivanw Changed both ListBox and ComboBox such that there is
  875. an optional Text field. If the text entry is missing
  876. or the entire column is missing, the value is used
  877. for the text as well. Rewrote the combobox code so it
  878. is now derived from the listbox, saving some code.
  879. 96-10-04 thussey Change to the makefile: The mac debug build now
  880. builds the mac test database.
  881. -----------------------------
  882. Release 0.10.00.2204
  883. -----------------------------
  884. 96-10-03 ivanw Added Value_Next column to the RadioButton table.
  885. This column is required, if missing you will get an
  886. error message! The values in this column define the tab
  887. order within a radiobutton group.
  888. 96-10-03 ivanw Added Control_Cancel column to the Dialog table. The
  889. control named in this field gets activated, if the
  890. Escape button is hit. The value is optional, if empty,
  891. nothing happen on Escape. If the entire column is
  892. missing, the database still funtional, but the escape
  893. will not do anything on any dialog.
  894. 96-10-03 tracyf Fixed a bug in the Handler, in which negative file
  895. cost was being treated as an unsigned, and therefore
  896. huge, space requirement. This bug would show up if
  897. your install is overwriting a file that is larger than
  898. the new file being installed (according to the size
  899. given in the File table), resulting in the out of disk
  900. space dialog popping up.
  901. 96-10-02 tracyf Checked in a bunch of Mac fixes. We can now do complete
  902. Mac setups, installing both compressed and uncompressed
  903. files. Fixes include changes in the InstallFiles action,
  904. the FDIServer module, the MsiFileCopy and MsiCabinetCopy
  905. objects, and the MsiStringSBCS::AppendString function.
  906. Also fixed all the Mac memory leaks. In addition, a new
  907. Mac TestDB has been created, and the .idt and .idb files
  908. checked in. Instructions on configuring your Mac to
  909. run this TestDB before checkins will be ready soon.
  910. 96-10-01 ivanw Added an Escape method to the Event interface. The
  911. controls call this method when they notice that the
  912. Escape button is pressed. The notification part is
  913. ready, the Escape method is not complete yet.
  914. 96-10-01 ivanw Added keyboard navigation to scrollbars. The Home,
  915. End, PageUp and PageDown buttons are used for vertical
  916. movement. Same buttons with a Shift or Control for
  917. horizontal. (I did not find any better guidelines for
  918. this)
  919. -----------------------------
  920. Release 0.10.00.2201
  921. -----------------------------
  922. 96-09-27 tracyf Exposed through automation these IMsiSelectionManager
  923. functions that were previously missing: GetVolumeCostTable,
  924. AddFixedCost, RecostDirectory. Also added a bunch 'o new
  925. help topics: IMsiCostAdjuster interface, GetDynamicCost,
  926. GetVolumeCostTable, AddFixedCost, InitializeDynamicCost,
  927. RegisterCostAdjuster, RecostDirectory.
  928. -----------------------------
  929. Release 0.10.00.2127
  930. -----------------------------
  931. 96-09-26 ivanw Changed the Windows UI, so that the system handles
  932. tabbing, accelerator keys and hitting the default
  933. button. As part of this change, I removed the
  934. JumpToNextFocus and JumpToPreviousFocus methods from the Event
  935. public interface and the Accelerator and IsButton
  936. methods from the Control interface. As a consequence of
  937. this change, the accelerators are defined in the
  938. standard Windows manner. If a text control defines the
  939. accelerator key to a control placed next to it, one
  940. should take care to place the text control right before
  941. the other control in the Next-order in the Control
  942. table.
  943. 96-09-26 ivanw Added support for large dialogs on Windows. If the
  944. specified dialog size is larger than the screen size,
  945. we create a smaller window and add scrollbar(s) on
  946. one or both sides. Also added mouse interaction with
  947. the scrollbars. Keyboard interaction with the
  948. scrollbars is not complete. yet. In connection with this
  949. added a FullSize dialogattribute. This read only
  950. attribute describes the size of the entire dialog, not just
  951. the window we see.
  952. 96-09-25 tracyf Internal MsiVolume caching has been modified, to
  953. avoid problems that arise when creating MsiVolumes that
  954. refer to the same network share using the UNC path
  955. one time, and by mapped drive letter another time.
  956. 96-09-25 tracyf Added the DiskNotInDrive method to MsiVolume, to
  957. assist when creating volume objects that refer to floppy
  958. disks or CDROMs.
  959. -----------------------------
  960. Release 0.10.00.2124
  961. -----------------------------
  962. 96-09-23 tracyf Updated the File Table topic in the helpfile to
  963. include information about the Mac-only columns.
  964. -----------------------------
  965. Release 0.10.00.2120
  966. -----------------------------
  967. 96-09-18 ivanw Modified the Initialize and Terminate methods of the
  968. Handler, so that if the initialization fails (for
  969. any other reason than being already initialized), the
  970. Handler is returned to a clean state, just like it was
  971. created, but never tuched. Terminate returns the
  972. object to this same clean state.
  973. 96-09-17 ivanw Changed the SelectionTree, PathTailEdit and
  974. DirectoryList controls such that they can be displayed even
  975. if the DirectoryManager and/or the SelectionManager is
  976. not initialized. Added DoNotCallManager stylebit to
  977. PathTailEdit, and DirectoryList controls. This style
  978. means that the controls only set a path, but do not
  979. call the DirectoyManager to set a TargetPath. In
  980. order to keep the existing databases running, the default
  981. is to call the manager and one has to set this new
  982. style bit if this is not desired.
  983. 96-09-17 chetanp fixed bugs 420 and 421 reagrding inserting null
  984. integer columns using CMsiView and the incorrect error
  985. message 1213.
  986. 96-09-17 chetanp Fixed incorrect "current row" state of the
  987. CMsiCursor when Insert, Delete, Update or Assign functions
  988. failed the first time. Used to cause the CMsiDatabase to
  989. assert the second time around.
  990. -----------------------------
  991. Release 0.10.00.2117
  992. -----------------------------
  993. 96-09-16 t-robbae MsiGenerate:
  994. Added support for Macintosh files in the MakeTables
  995. Method. Now, if you are working with files in an NTFS
  996. Macintosh volume, set the property MacFiles to True.
  997. When the file table is generated, four new columns
  998. will be added: ResourceForkSize, FileFlags, Creator
  999. and Type. These table entries will be filled with the
  1000. appropriate information for Mac files. In addition,
  1001. the appropriate Macintosh Version data is placed in
  1002. the File table's Version column.
  1003. 96-09-16 chetanp Added help topices for AppSearch CCPSearch,
  1004. RMCCPSearch and PISearch actions
  1005. 96-09-16 chetanp enhanced the APPSearch, CCPSearch and PISearch
  1006. actions so that now they allow for properties in the
  1007. RegLocator, IniLocator and DrLocator tables.
  1008. 96-09-16 johndelo A relative database path passed to
  1009. MsiEngine.Initialize will now be appended to the folder from which the
  1010. launcher was run (actually it uses the module whose
  1011. resource handle was passed in). Leading dot is not
  1012. supported.
  1013. Memory management for the engine, storage, and
  1014. summary stream objects were cleaned up to prevent leaks.
  1015. 96-09-16 tracyf Now that property handling has been moved out of
  1016. MsiServices, MsiPath and MsiVolume objects no longer
  1017. know anything about the SHORTFILENAMES property. To
  1018. ameliorate this situation, the CreatePath services
  1019. method now takes an additional parameter to allow
  1020. suppression of long filenames. I've updated the helpfile in
  1021. a number of places to not only reflect the change,
  1022. but to better explain Darwin's usage of long and short
  1023. file names (check out the updated MsiPath object
  1024. overview, which now details (finally!) the
  1025. "shortname|longname" syntax, and the SHORTFILENAMES property
  1026. topic).
  1027. 96-09-16 chetanp Added table definitions for ProgMan and Shortcut
  1028. tables (.idt files) in darwin\data\testdb.
  1029. 96-09-16 chetanp Added tables Shortcut and ProgMan. Note that the
  1030. structure of the ProgMan table has changed to be
  1031. consistent with the Shortcut table. Added documentation for
  1032. the ProgMan and Shortcut tables and for the
  1033. CreateShortcuts, DeleteShortcuts, CreateProgManItems,
  1034. DeleteProgManItems actions.
  1035. 96-09-16 chetanp Added CreateShortcuts, DeleteShortcuts,
  1036. CreateProgManItems, DeleteProgManItems actions.
  1037. 96-09-16 malcolmh GenerateTransform now creates a summary info stream,
  1038. and the engine now validates that stream. See help
  1039. on GenerateTransform for the details.
  1040. 96-09-13 ivanw Checked in the common and Windows code for the
  1041. VolumeCostList control. This control is used on an Out of
  1042. disk space dialog. Testdb is modified to show the use
  1043. of this control.
  1044. 96-09-13 chetanp Added IniFile and RemoveIniFile table definitions
  1045. (idt files) and corresponding help.
  1046. 96-09-13 chetanp Changed WriteIniValues, RemoveIniValues actions.
  1047. The WriteIniValues action now works on the IniFile
  1048. table only for the "install" mode. The RemoveIniValues
  1049. action works on both the IniFile table (during
  1050. "uninstall" mode) and the RemoveIniFile table (during
  1051. "install" mode).
  1052. 96-09-13 chetanp Corrected and added documentation of the Registry,
  1053. RemoveRegistry tables and the WriteRegistryValues,
  1054. RemoveRegistryValues actions in the action.rtf,
  1055. tabledef.rtf files
  1056. 96-09-13 chetanp Corrected the Registry and RemoveRegistry table
  1057. structures (.idt files) in darwin\data\testdb.
  1058. 96-09-13 chetanp Changed WriteRegistryValues and RemoveRegistryValues
  1059. actions. The WriteRegistryValues action now works on
  1060. the Registry table only for the "install" mode. The
  1061. RemoveRegistryValues action works on both the
  1062. Registry table (during "uninstall" mode) and the
  1063. RemoveRegistry table (during "install" mode"). Also
  1064. made changes to remove the redundant GetExpandedString
  1065. function in the Engine.
  1066. -----------------------------
  1067. Release 0.10.00.2113
  1068. -----------------------------
  1069. 96-09-12 thussey Minor changes to the makefile/dependencies (these
  1070. actually occurred yesterday, I forgot to document
  1071. 1) Removed _handler.h from the engine deps
  1072. 2) build now imports the freshly built error.idt
  1073. into the testdb
  1074. 3) allow a separate set of ship compiler
  1075. optimizations for mac and windows
  1076. 4) common.h supresses bogus warnings in mac ship
  1077. build
  1078. 96-09-12 thussey Checked in new diamond.exe which can correctly build
  1079. mac cabinets. This new diamond.exe is also synched
  1080. to the current diamond slm tree.
  1081. 96-09-12 johndelo The type library for Darwin automation is now stored
  1082. as a resource in the automation DLL, MsiAuto.DLL or
  1083. MsiAutoD.DLL, and is registered by the DLL when it is
  1084. self-reg'd, either by install.exe or regmsi.exe.
  1085. Unregistration of the type library when the DLL is
  1086. unregistered is commented out, as the OLEAUT32 in NT
  1087. 3.51 does not support UnregisterTypeLib. This will be
  1088. enabled when NT ServicePack 5 is released, which
  1089. updates that DLL.
  1090. The SampleTool makefile has been fixed to do the
  1091. same, and the one line added to the .CPP file: "#define
  1092. REGISTER_TYPELIB GUID_IID_IMsiSampleToolLib". Other
  1093. tools need to be updated.
  1094. With Excel95, you still need to go to
  1095. Tools/References, but the typelib should always be ready to be
  1096. checked on.
  1097. Note that if a new version of MSI is required it will
  1098. be installed to you system directory. To debug from
  1099. you build, run "REGMSI D" from your build directory
  1100. to reregister those components.
  1101. 96-09-12 tracyf "Selection_Shares" functionality has been added to
  1102. the SelectionManager. See the updated Selection Table
  1103. topic in the helpfile for all the details.
  1104. 96-09-12 chetanp Added IMsiServices::GetModuleUsage functionality
  1105. 96-09-11 johndelo Property handling is now in MsiEngine and has been
  1106. removed from MsiServides, except for
  1107. SetPlatformProperties which now requires a table object. The FormatLog
  1108. and CreateDefaultPropertyTable are obsolete and have
  1109. been removed.
  1110. Text string formatting is now done in two stages:
  1111. MsiRecord.FormatText formats its template string,
  1112. substituting numeric parameters with record field values.
  1113. MsiEngine.FormatText formats any string, substituting
  1114. property values and environment variables.
  1115. EvaluateCondition, which uses property values, had to
  1116. move from services to MsiEngine.
  1117. 96-09-10 ivanw Changed the controls and dialogs such that if their
  1118. caption contains some property, the text updates when
  1119. the property changes. In order to receive the
  1120. update message the control has to specify some property in
  1121. the Control table. This may change when we redesign
  1122. the Control table.
  1123. The limit of the text size for the edit fields and
  1124. comboboxes has to be defined using {}. I.e. if you
  1125. had [40] for the limit in the text field of the Control
  1126. table, it has to be changed to {40}. This is
  1127. necessary because of the way Record::FormatText works.
  1128. 96-09-10 t-robbae MsiUtilities:
  1129. - For future code compatibility, removed all direct
  1130. reference to 'Darwin' in the code, replacing it with
  1131. the text 'MSI'. This extends all the way up to the
  1132. Automation layer, so any test scripts out there which
  1133. previous included calls to DarwinComponent or
  1134. IncludeDarwin should now be changed to MSIComponent and
  1135. IncludeMSI.
  1136. 96-09-10 t-robbae MsiUtilities:
  1137. -The Launcher Linker portion of the tool has been
  1138. added. This enables the linking of a virgin
  1139. launcher.obj with an RC file and various CustomActions into one
  1140. finished executable. See help for more info.
  1141. -Both LoadProp and the LauncherRc File Creator now
  1142. support the storing of MSI Component files within the
  1143. launcher.
  1144. -The code for LoadProp has undergone a major
  1145. overhaul. Watch out for any new bugs that may have cropped
  1146. up in this code change.
  1147. -----------------------------
  1148. Release 0.10.00.2110
  1149. -----------------------------
  1150. 96-09-09 johndelo Darwin version bumpted to 0.11 (property stream
  1151. changes). Engine will reject databases of version 0.10.
  1152. 96-09-09 johndelo The launcher now recognizes a property called
  1153. INSTALLER, that indicates the path to the folder containing
  1154. the Darwin components. Its value may be either a
  1155. subpath beneath the launcher's folder or a
  1156. fullyl-qualified path. If not present the launcher looks for
  1157. components in its own folder.
  1158. 96-09-06 tracyf HelpFile documentation has been updated for the
  1159. Condition Table and for the ProcessConditionTable method.
  1160. 96-09-06 tracyf The IMsiSelectionManager::ResolveSelections method
  1161. is obsolete and has been removed from the COM and
  1162. automation interfaces.
  1163. 96-09-06 ivanw Added FormatText function to the Engine interface.
  1164. This new method combined with MsiRecord::FormatText
  1165. provides the same functionality as the old
  1166. MsiServices::FormatText. Changed all calls to FormatText to use
  1167. the new one, except in Services::FormatLog. As soon as
  1168. FormatLog is migrated from the Services to the
  1169. Engine, we will be able to remove FormatText from the
  1170. Services and with it all the methods getting and setting
  1171. properties. The new Engine::FormatText is
  1172. significantly smaller than the old one. In case of correct
  1173. syntax it should produce the same output (if combined
  1174. with Record::FormatText). If there is a syntax error in
  1175. the string the unmatched square bracker or curly
  1176. brace is left in the text.
  1177. -----------------------------
  1178. Release 0.10.00.2106
  1179. -----------------------------
  1180. 96-09-05 johndelo The automation dll, MSIAUTO.DLL or MSIAUTOD.DLL will
  1181. be installed along with the other components by the
  1182. loader if present in the same folder. No error will
  1183. be generated if not present (error will be generated
  1184. if copy error).
  1185. The Darwin components that are to be installed may be
  1186. optionally LZ compressed.
  1187. 96-09-05 johndelo The default database name used by the
  1188. launcher/loader is now INSTALL.MSI, not TESTDB.MSI. Either rename
  1189. your database, set the resource, or use command line
  1190. DATABASE=...
  1191. 96-09-05 johndelo The launcher/loader, INSTALL.EXE or INSTALLD.EXE,
  1192. now will install Darwin, ship or debug respectively,
  1193. if needed.
  1194. The logic sequence is as follows:
  1195. 1. Explicitly specified components are loaded.
  1196. Install fails if any of them fails.
  1197. 2. Remaining components are attempted to be created
  1198. by CoCreateInstance
  1199. 3. If all not created, components residing in the
  1200. system directory are re-registered.
  1201. 4. If still not all created, all components are
  1202. copied to the system directory, registered, and created.
  1203. 5. If any of the components return version mismatch
  1204. with database, all are installed if not already done.
  1205. Prefix the action name, normally "Install" with an at
  1206. sign, '@' forces Darwin to install.
  1207. A null action name, or "@", will install Darwin as
  1208. necessary, but will not commence any install.
  1209. This particular launcher expects to find the Darwin
  1210. components in the same folder as the launcher.
  1211. Separate launcher will be built for internet and other
  1212. needs.
  1213. Does not yet install Darwin on the Mac. Help topics
  1214. are forthcoming.
  1215. The DEBUG launcher, INSTALLD.EXE will install and use
  1216. the DEBUG components.
  1217. The SHIP launcher, INSTALL.EXE will use whichever
  1218. components are registered most recently.
  1219. 96-09-04 malcolmh - The summary information stream has changed. See
  1220. "What is the summary info property set?" in the help
  1221. file for specifics.
  1222. - The engine now validates information in the summary
  1223. information stream. Note that the _summary.idt file
  1224. for the testdb has been updated to reflect these
  1225. changes, and will pass all validation tests. If you have
  1226. created other databases you can import the new
  1227. _summary.idt into your database to make things work.
  1228. The following engine does the following validation:
  1229. The MSI Tag field must contain the correct tag (e.g.
  1230. "MSI Product" for a product database).
  1231. The MSI database and engine versions must be
  1232. compatible.
  1233. The platform specified in the Template property must
  1234. be correct.
  1235. One of the languages specified in the Template
  1236. property must exactly match an available language on the
  1237. system (usually English). In future releases more
  1238. multi-language support will be added.
  1239. 96-09-04 tracyf The InstallFiles action has been fixed up so that
  1240. proper progress messages are once again being sent
  1241. during file copying (i.e. progress bars are working
  1242. again).
  1243. 96-09-04 thussey Modified make.bat and the makefile to allow mac
  1244. builds on machines without otools. OTools contains alpha
  1245. versions of MacOLE 2.10 while VC4.2 has the shipping
  1246. MacOLE 2.06 headers. Added the file oldole.h which
  1247. enabled the shipping MacOLE headers to work with
  1248. Darwin.
  1249. 96-09-03 ivanw Removed the following methods from the Handler
  1250. public interface:
  1251. GetEngine
  1252. GetServices
  1253. GetDatabase
  1254. CursorCreate
  1255. TreeCursorCreate
  1256. GetUIText
  1257. Added a GetEngine method to the Event public
  1258. interface.
  1259. -----------------------------
  1260. Release 0.10.00.2103
  1261. -----------------------------
  1262. 96-08-30 tracyf Helpfile documentation has been updated for the
  1263. CostInitialize, FileCost, and CostFinalize actions, and
  1264. for the 'File' table.
  1265. 96-08-30 tracyf To avoid potential confusion, the new
  1266. InstallInitialize action has been renamed to InstallValidate (the
  1267. testdb and docs have been updated).
  1268. -----------------------------
  1269. Release 0.10.00.2030
  1270. -----------------------------
  1271. 96-08-29 mattwe Acme2Msi (aka Beagle)
  1272. No more rollback or commit
  1273. Convert now requires a database reference, rather than a filename
  1274. Exposed C++ interface for AcmeConvert to simply parse STFs/INFs
  1275. into named tables. This will allow you to do several passes
  1276. with different STFs/INFs and get the results in different tables
  1277. It's a quick hack that'll get cleaned up and exposed to VB after
  1278. I get back. (9/8)
  1279. Known problems:
  1280. Memory leak, and calling SelectionsPass is short-circuited to NYI.
  1281. Checked in intermediate files that I wasn't ready to release to help BenCh.
  1282. -----------------------------
  1283. Release 0.10.00.2027
  1284. -----------------------------
  1285. 96-08-26 t-robbae Utilities:
  1286. Launcher RC file creator now fully implemented. See
  1287. help for full details on use.
  1288. 96-08-26 johndelo SOURCEDIR now defaults to the location of the
  1289. launcher (actually to the folder of the HINSTANCE passed to
  1290. MsiEngine.Initialize). Relative paths are supported,
  1291. as long as they don't begin with the dot notation. A
  1292. new MsiEngine method, ResolveFolderProperty, was
  1293. added to handle source properties. See help.
  1294. 96-08-26 johndelo The default database open mode for
  1295. MsiEngine.Initialize is read-only if the PID_SECURITY is not set. This
  1296. summaryinfo property, 19, needs to be 0 to open
  1297. read-write.
  1298. 96-08-26 thussey Changed handler code to get properties from engine
  1299. instead of services.
  1300. 96-08-26 johndelo The MsiServices Set/Get property methods and the
  1301. Property automation method have been moved from the
  1302. services class to the engine class. All source modules in
  1303. the engine have been updated. For a SHORT time the
  1304. methods remain in services to allow other code and
  1305. tests to be transitioned. See the help and engine.h for
  1306. details.
  1307. 96-08-25 tracyf Dynamic file costing has been implemented. This
  1308. involves changes in the CostInitialize and CostFinalize
  1309. actions, and the addition of the FileCost and
  1310. InstallInitialize actions. The CostInitialize documentation
  1311. gives an overview of using the costing actions, and
  1312. more documentation will be added soon.
  1313. 96-08-23 bench Removed argument to MsiDirectoryManager.LoadDirectoryTable
  1314. that specified whether to create a column for
  1315. source paths or not. That column is now always
  1316. created.
  1317. 96-08-23 thussey Added inline bottlenecks to UI objects to make it
  1318. easier to move the Get/SetProperty interface from the
  1319. services to the engine.
  1320. 96-08-23 thussey -- Turned on -Gy (dead code stripping) and -Os
  1321. (optimize for size) in the makefile for both Windows and
  1322. Mac builds.
  1323. -- Partial implementations of Mac list box and icon
  1324. controls. Only enough to support the demo that ended
  1325. up not showing the Mac version. It isn't worth
  1326. bothering to test them yet.
  1327. -- Added STRICT_CONTROLS, STRICT_WINDOWS,
  1328. STRICT_MENUS, and STRICT_LISTS definitions to the Mac builds.
  1329. These are helpfull for sorting out Copland/System 7
  1330. issues.
  1331. -- macutil2.c & h have been removed from the
  1332. project. The window management routines are now in the
  1333. handler code, and the rest is folded into macutil.cpp
  1334. -- An odd macutil.h/cfile.h header dependency has
  1335. been sorted out.
  1336. -- Added some new files to the project. These are
  1337. relevant only to the Mac. All these extra files are
  1338. needed to give a layer of abstraction necessary to
  1339. support the eventual Copland OS. Due to my total lack of
  1340. creativity, they have icky names: macdarc.cpp & h
  1341. contain defprocs specific to Darwin. macdproc.cpp & h
  1342. contain the defproc base classes. macdpint.h contains
  1343. internal definitions used by the defprocs.
  1344. -----------------------------
  1345. Release 0.10.00.2023
  1346. -----------------------------
  1347. 96-08-20 t-robbae Utilities:
  1348. Added LogFile property to object. Now LogFile is
  1349. only generated when set to a full path where it is to be
  1350. generated. See Help for more details.
  1351. Added Documentation for future SLM Database
  1352. operations. These don't work yet, and shouldn't be attempted,
  1353. but their basic skeletons are there, both in
  1354. automation and Help file information.
  1355. 96-08-20 malcolmh - Added support for specifying how errors are
  1356. handling during transforming. A parameter should now be
  1357. passed to SetTransform to indicate which conditions are
  1358. treated as errors and which as warnings. See the help
  1359. file for SetTransform for more information.
  1360. -----------------------------
  1361. Release 0.10.00.2020
  1362. -----------------------------
  1363. 96-08-19 t-robbae Utilities Object:
  1364. (some information reentered here after SLM error ate
  1365. my last update of the release notes).
  1366. Fixed error in OpenDatabase. Now the Summary
  1367. Information stream is properly copied to the new database
  1368. when an output database is specified, (note that the
  1369. method now only supports MSI and Access databases).
  1370. Eliminated the idtRoot and idtShare enumerations
  1371. once used in setting directories. Now the idtSource
  1372. should be the parent directory of all the source files
  1373. in the Admin Image (which can now be generated by the
  1374. generate tool).
  1375. Modified "Attribute" in the automation layer.
  1376. Attribute is now a property which accepts either strings
  1377. or integers on the rhs of the assignment operator.
  1378. These it converts automatically to their appropriate
  1379. value. The set and record arguments have been
  1380. eliminated from this automation layer property. They are
  1381. now controlled by the assignment operator like all
  1382. properties. See help for more details.
  1383. 96-08-18 davidmck Added FCheckBlock and GetSizeOfBlock functions to
  1384. ole automation to allow testing to get more information
  1385. from blocks.
  1386. Also checked in code to warn when freed objects are
  1387. being called rather than crashing.
  1388. -----------------------------
  1389. Release 0.10.00.2016
  1390. -----------------------------
  1391. 96-08-14 bench Many changes to MsiDirectoryManager. First,
  1392. CreateSourcePaths is now implemented, and the creation
  1393. of the source paths is removed from CreateTargetPaths.
  1394. Also, SetTargetPath has been modified so that when a
  1395. path is changed, all children or duplicates of that path
  1396. are updated appropriately.
  1397. Also, changes to the way the directory table is interpreted
  1398. when creating source paths have been made. Before, the
  1399. source paths for each entry were just set to SOURCEDIR.
  1400. Now, the source is assumed to have the directory structure
  1401. defined by the Directory Table. When resolving non-root
  1402. source paths, the values of the Directory_Parent and
  1403. DefaultDir fields are used and no properties are checked
  1404. like they are when resolving target paths. When resolving
  1405. root source paths (those records in the Directory Table
  1406. with null parents or parented to themselves), the full
  1407. path of the directory is assumed to be the value of the
  1408. property given in the DefaultDir field. For example,
  1409. the following records resolve to the following source and
  1410. target paths (assuming the ROOTDIR property = C:\ and the
  1411. SOURCEDIR property = C:\SOURCE):
  1412. DIRECTORY PARENT DEFAULTDIR TARGET SOURCE
  1413. ROOTDIR SOURCEDIR C:\ C:\SOURCE
  1414. excel ROOTDIR Excel C:\Excel C:\SOURCE\Excel
  1415. Resolving the source directories this way allows multiple
  1416. roots for the source, where different parts of the source
  1417. may even be located on different servers.
  1418. The \darwin\data\testdb\director.idt file has been updated
  1419. and the location of the test source files has moved from
  1420. \darwin\data to \darwin\data\test\months so that an install
  1421. using testdb will work with these changes.
  1422. 96-08-13 johndelo The message headers have been removed from the error
  1423. messages defined
  1424. by the IError(...) macro in the header files, i.e.
  1425. Error [1]. The appropriate header
  1426. is applied by IMsiEngine::Message when the message if
  1427. formatted. The actual
  1428. header is determined by the message type specified in
  1429. the call, and references
  1430. reserved, low-numbered messages in the Error table.
  1431. See Error table help.
  1432. The DEBUG builds still do not use the error table;
  1433. they use the strings from
  1434. the IError(...) definitions (the DEBUG build still
  1435. makes sure that the table exists).
  1436. Note that the build produces a listing of all ship
  1437. and debug errors in a
  1438. file called MSIERROR.TXT (produced by the
  1439. mkerrtbl.exe tool.
  1440. -----------------------------
  1441. Release 0.10.00.2013
  1442. -----------------------------
  1443. 96-08-09 t-robbae LoadProp in the Utilities tool has been modified to
  1444. be more flexible
  1445. in its operation. Now if no cabinet files are listed
  1446. in the prop file,
  1447. it is not necessary to set a WorkDirectory and Open a
  1448. database.
  1449. An error will be raised if the prop file does include
  1450. cabinets and these
  1451. two preparation items are not performed. Note that
  1452. this means
  1453. that the path given for a database in the prop file
  1454. is now used
  1455. in all cases except when Cabinets are to be stored in
  1456. the resources.
  1457. When cabinets are stored, the path in the prop file
  1458. is ignored as
  1459. before and the open database is stored instead.
  1460. These changes are
  1461. all outlined in the help file.
  1462. 96-08-09 malcolmh Changed CreateStorageFromMemory in the services
  1463. object. It now takes the size of the memory block as its
  1464. second parameter and only supports read-only
  1465. storages.
  1466. 96-08-09 malcolmh - Added the GenerateTransform and SetTransform
  1467. members to the Database object.
  1468. - Added support for extracting a database stored as a
  1469. resource in the launcher
  1470. -----------------------------
  1471. Release 0.10.00.2009
  1472. -----------------------------
  1473. 96-08-09 t-robbae Numerous changes to the utilities tool:
  1474. LoadProp now works correctly. Note that currently
  1475. a workdirectory
  1476. and a database must be opened before the propfile can
  1477. be loaded.
  1478. LoadProp now accepts TRANSFORM files as well as
  1479. Databases and
  1480. cabinets to store as resources.
  1481. PassType now accepts enumerated values of iptRough
  1482. and iptFine
  1483. instead of its old string values.
  1484. OpenDatabase now as a second argument accepts the
  1485. full path
  1486. to a new file in which to write an output database.
  1487. If this string path
  1488. is left out, OpenDatabase attempts to open the first
  1489. file argument as
  1490. read/write. OpenDatabase may now open other database
  1491. types
  1492. besides .MSI databases so long as the second argument
  1493. is included
  1494. so that a new .MSI database is eventually created.
  1495. (Can't successfully
  1496. deal with an Access database opened as read/write).
  1497. Note that with David Gonzalez's permission, the
  1498. utiliteis tool
  1499. DOES NOT support a setable Database property in which
  1500. utilites can be passed a database object itself.
  1501. This is because
  1502. utilites must have exclusive control over its
  1503. databases to open and
  1504. close them as needed, and this cannot be done if a
  1505. client is holding
  1506. onto a reference to the database object. This still
  1507. works because
  1508. utilities should always come at the end of the tools
  1509. process and
  1510. no one should be modifying the database after this
  1511. tool anyway.
  1512. 96-08-09 ivanw Modified the selection tree such that it uses one
  1513. large icon next to each item (instead of two smaller
  1514. ones) This one icon shows information both about the
  1515. present state and the future state of the item. Changed
  1516. the icons and the text sucht that no distinction is
  1517. made between different kind of source media except in
  1518. the icon on the path line. Changed such that if an
  1519. item is unselected, the children are collapsed and
  1520. hidden, the user can not expand it. The control
  1521. remembers the previous state, and if the item is selected
  1522. again, it expands the same way it was before. The name
  1523. of the items whose selection state will change is
  1524. displayed in bold. If the user does not change the
  1525. selection the text is plain.
  1526. 96-08-08 tracyf The IMsiFileCopy interface now supports
  1527. decompression of files from cabinets stored as Launcher resources
  1528. (not supported through automation yet). See the
  1529. Media Table and MsiFileCopy.ChangeMedia help topics for
  1530. details.
  1531. 96-08-08 tracyf The MsiFileCopy object has changed significantly!
  1532. First, the CreateCopier interface has moved from
  1533. MsiPath to MsiServices. Also, the
  1534. MsiFileCopy::ChangeSource interface is now called ChangeMedia, and has new
  1535. arguments. The MsiFileCopy::CopyTo object takes a new
  1536. argument (to specify the source path object), and
  1537. finally, CopyTo now allows the specification of
  1538. separate source and destination file names for uncompressed
  1539. files. All of these changes are documented in the
  1540. updated help file.
  1541. 96-08-07 johndelo The Darwin loader DLL is GONE, msildr.dll and
  1542. msildrd.dll. The 7K launcher and 27K loader
  1543. are combined into a single 11K install.exe, ship
  1544. build. (this arithmetic baffles me).
  1545. This module did not self-register, was not a COM
  1546. component and was not version-safe,
  1547. and it was not viable for use with an Internet
  1548. installer. It wasn't used by automation either.
  1549. 96-08-07 t-robbae I've made some changes to the way LoadProp and
  1550. OpenDatabase behave.
  1551. OpenDatabase not accepts a new file value stating
  1552. the name for a
  1553. new file to be created in the work directory. The
  1554. old one argument
  1555. OpenDatabase still works as before. See Help for
  1556. more details.
  1557. LoadProp must now have the WorkDirectory set and a
  1558. database opened
  1559. in order to operate. There are more structural
  1560. changes inside the
  1561. method, but these should not affect its use on the
  1562. surface except
  1563. in the way property files are written. See Help for
  1564. more details.
  1565. ... Also note the changes to the Attribute method I
  1566. forgot to mention
  1567. on the last release. Attribute now take enumerated
  1568. constants to
  1569. specify the attribute type. See Help for more
  1570. details.
  1571. -----------------------------
  1572. Release 0.10.00.2006
  1573. -----------------------------
  1574. 96-08-05 johndelo Error handlling has been alterered for core Darwin
  1575. components:
  1576. Debug modules set the error templates directly and do
  1577. not use the database Error table.
  1578. Ship modules still lookup error codes in the Error
  1579. table, which now has only Error and Message columns.
  1580. Debug messages, idbgXXX are not in the Error table
  1581. and receive a generic message in Ship builds.
  1582. Most of the messages should be converted from imsg to
  1583. idbg debug messages, as they can only occurs
  1584. due to authoring or coding errors. This will be an
  1585. ongoing process.
  1586. This does not affect tools, since their error
  1587. templates are in their resources.
  1588. Things will be cleaned up a bit more when the engine
  1589. error handling is finished.
  1590. 96-08-03 ivanw Added code and changed the testdb such that the
  1591. Browse dialog can be triggered from the Selection dialog
  1592. to modifiy the path of an item. The name of the
  1593. browse dialog is authorable, thus if we have more than one
  1594. selection dialog they can use differently authored
  1595. browse dialogs.
  1596. 96-08-03 ivanw Added HandleEvent method the MsiDialog and the
  1597. MsiEvent classes. A control uses this method to notify
  1598. the publisher of an event that it is time to trigger
  1599. the event.
  1600. 96-08-03 ivanw Added a one-icon option to the SelectionTree. By
  1601. setting a stylebit the author can choose to show only
  1602. one icon. This might be preferred in a first instal
  1603. when all the first icons would show the absent state.
  1604. 96-08-03 ivanw Added controlevents to SelectionTree control. As the
  1605. sample shows in testdb information about the
  1606. selected item is displayed in several controls subscribing
  1607. to events published by the selectiontree.
  1608. 96-08-02 mattwe Rollback/Commit now remove the copied file
  1609. Parses the STF and INF into tables: Acme-HDR (stf
  1610. header) Acme-OBJ (stf objects) Acme-INF (inf files),
  1611. and Acme-SMD (source media descriptor).
  1612. What's Broke: running "Convert" twice in a row without
  1613. a new AcmeConvert object asserts. Parsing mangled
  1614. stfs/infs isn't handled at all.
  1615. Long File Names column in Acme-INF doesn't include path
  1616. from ShortFileName MsiTable has been wobbly importing/
  1617. exporting really large (OfficePro '95) tables. Still
  1618. investigating. Works fine with Works' files from
  1619. \\products.
  1620. DEBUG has all memory tracking on, so is really slow.
  1621. SHIP handles Office in ~8 seconds on my p6-200.
  1622. Localized stfs/infs with multibyte chars is broken.
  1623. 96-08-02 johndelo MsiString object has two new methods: UpperCase and
  1624. LowerCase. See help.
  1625. These are optimized to convert inplace when only one
  1626. reference exists.
  1627. -----------------------------
  1628. Release 0.10.00.2002
  1629. -----------------------------
  1630. 96-07-31 ivanw Changed PublishEvent so the argument is a record not
  1631. a string. Since this argument gets passed to a
  1632. Control::Attribute function, that takes a record, this is
  1633. more general this way. Also changed the SetText and
  1634. SetProgress control attributes.
  1635. 96-07-31 ivanw Added UIText table. This table contains the
  1636. localized text strings used by the UI that have no home in
  1637. some other table. Added a GetUIText method to the
  1638. handler to get these strings.
  1639. -----------------------------
  1640. Release 0.10.00.1930
  1641. -----------------------------
  1642. 96-07-29 johndelo LEGO builds are now using LIBCMT.LIB for runtime
  1643. library, insteal of
  1644. LIBCMTD.LIB which has no codeview info. In fact, only
  1645. the LIBCMT in
  1646. OTOOLS has codeview info. not that from VC4.0 or
  1647. VC4.2.
  1648. 96-07-29 ivanw Changed the ProgressBar so it can take different
  1649. range values. The default is still 1024, if none is
  1650. specified. The progress message can also specify the name
  1651. of the action, this way we can have more than one
  1652. ProgressBar on the same dialog showing the progress of
  1653. different actions.
  1654. 96-07-28 ivanw Changed the way icons are loaded. With two style
  1655. bits the author can specify what size image of the icon
  1656. should be loaded. Also added a static icon control
  1657. type. With these modifications the bitmaps and icons on
  1658. different kind of buttons should be complete except
  1659. graying the images on disabled buttons on NT3.51.
  1660. 96-07-26 ivanw Rewrote the Bitmap class such that it uses a static
  1661. control on Win95 and NT4. Also added the fixedsize
  1662. option to bitmaps on all Windows systems.
  1663. 96-07-26 ivanw Fixed the accelerator keys in the Windows UI. You
  1664. can put an accelerator key in the text of a control,
  1665. even if the text is not shown on the screen.
  1666. Accelerator keys in static text are displayed (as underlined)
  1667. but not functional, since the text control can not
  1668. take focus. Using these two facts you can assign an
  1669. accelerator key to an edit field (whose corresponding
  1670. text from the table is not visible) and to show it to
  1671. the user you can put the same accelerator in the
  1672. associated text control. If this sounds too complicated,
  1673. look at the first dialog of testdb, and it will be
  1674. clear. One can put accelerator keys to the text field of
  1675. any control except the bitmap and the (not yet
  1676. implemented) icon control. The text field in those is the
  1677. name of the binary data. This is not a real
  1678. limitation, since these two controls can not take focus anyway.
  1679. -----------------------------
  1680. Release 0.10.00.1926
  1681. -----------------------------
  1682. 96-07-25 ivanw Added a Reset method to dialog, that resets all the
  1683. properties and controls to their state at the
  1684. creation of the dialog. Added reset buttons to the dialog in
  1685. testdb, to show how this works. Also added Undo to
  1686. indirect controls.
  1687. 96-07-25 ivanw Modified all controls such that indirect properties
  1688. get updated on the same dialog. Added two new dialog
  1689. to testdb to show and test some of the cool things
  1690. that can be done with this. (based on Tim's idea)
  1691. 96-07-25 ivanw Modified the ListBox, ComboBox and RadioButtonGroup
  1692. classes such that they can be created with a property
  1693. that has no initial value. The controls come up with
  1694. nothing selected initialy. After the user selected
  1695. something, there is no way of going back to unselect.
  1696. If the control is tied to an indirect property, that
  1697. property must have an initial value!
  1698. 96-07-25 ivanw Added a new stylebit to the ComboBox control,
  1699. creating a control with not edit field. This way the user
  1700. can select from a list of predefined values, but can
  1701. not add a new one.
  1702. 96-07-24 ivanw Since many found calling AddControl with Null
  1703. strange, I added a new method, FinishCreate to the Dialog
  1704. interface. One should call this when all the controls
  1705. are added. In order to keep the old scripts alive
  1706. calling AddControl with Null will still do the same.
  1707. -----------------------------
  1708. Release 0.10.00.1923
  1709. -----------------------------
  1710. 96-07-22 ivanw Changed all the handler classes (except the Mac
  1711. specific ones) such that they use PComPointers as member
  1712. data. If I done this correctly, it should result in
  1713. no visible difference in the way things work. Since
  1714. every object was changed in the process, it needs
  1715. testing.
  1716. 96-07-20 ivanw Changed the testdb such that to run AppSearch one
  1717. has to set the APPS_TEST property. To run CCPSearch one
  1718. has to set the CCP_TEST property. This way the rest
  1719. of us don't have to sit through these actions every
  1720. time we run testdb.
  1721. 96-07-19 johndelo Commit MUST be called on MsiDatabase objects before
  1722. their destruction in order
  1723. for changes to be preserved. Else, the default
  1724. behavior on destruction is to
  1725. Rollback the database. Previously it would Commit on
  1726. destruction which led
  1727. to an abundance of corrupt databases. Note that the
  1728. engine will call
  1729. Commit or Rollback on its Terminate method, depending
  1730. upon the arg passed.
  1731. MsiDatabase.CreateOutputDatabase now transfers binary
  1732. streams from both
  1733. MSI and MDB databases, thus generating an installable
  1734. database.
  1735. -----------------------------
  1736. Release 0.10.00.1919
  1737. -----------------------------
  1738. 96-07-18 johndelo Engine.Terminates now takes a required boolean
  1739. argument: True to Commit, False to Rollback the database,
  1740. and Terminate now writes SummaryInformation
  1741. properties to the database file created by
  1742. CreateOutputDatabase. Note that CreateOutputDatabase
  1743. does not yet transfer binary streams (bitmaps).
  1744. The Database.Storage property was added for use by
  1745. the MsiEngine to access the output storage object.
  1746. -----------------------------
  1747. Release 0.10.00.1916
  1748. -----------------------------
  1749. 96-07-15 johndelo Error handling added to SampleTool, need to do the
  1750. same for other tools.
  1751. Worked around ODBC shutdown bug which caused random
  1752. crashes and app exits.
  1753. 96-07-14 ivanw Added PropertyChanged to MsiDialog interface. It is
  1754. called when a child dialog is destroyed and control
  1755. returns to the parent dialog. This way we can update
  1756. the controls in case the child window changed the
  1757. value of some property.
  1758. 96-07-14 ivanw Completely rewritten Services:FormatText using
  1759. MsiString functions instead of buffers. Also added some
  1760. new functionality. See help page for details. Also
  1761. checked in format.xls a small script to test the
  1762. function. Considering the large number of cases that can go
  1763. wrong in this function, it needs more testing.
  1764. -----------------------------
  1765. Release 0.10.00.1912
  1766. -----------------------------
  1767. 96-07-11 ivanw Added a large number of new pages under the new
  1768. "User Interface Topics" heading describing all the dialog
  1769. types, control types, style bits, attributes, and
  1770. controlevents.
  1771. 96-07-11 johndelo If MsiEngine.Initialize is given an empty string for
  1772. a database path, it will construct
  1773. a temporary database with an empty Property table.
  1774. This functionality is for
  1775. testing purposes, replaced the previous method of
  1776. using CreateDefaultPropertyTable (or whatever it is
  1777. called)
  1778. 96-07-09 ivanw msihndlr.xls and the text version of the same file
  1779. msihndlr.bas, are modified to use the new engine
  1780. initialization method. They are intended to show the
  1781. correct sequence of initialization and termination of the
  1782. objects needed to use the Handler object.
  1783. -----------------------------
  1784. Release 0.10.00.1909
  1785. -----------------------------
  1786. 96-07-08 johndelo The CreateDestinations action is obsolete, use
  1787. DirectoryInitialize instead.
  1788. The old action is temporarily supported by simply
  1789. calling the new one.
  1790. MsiServices.CreateDatabaseFromStorage has been
  1791. exposed to automation.
  1792. It has been used internally, and requires that the
  1793. storage object contain valid database data.
  1794. 96-07-05 johndelo MsiEngine::Initialize now takes services, handler,
  1795. database, and propertyfile
  1796. properties formerly passed as parameters. Check the
  1797. Help topic. Note that the
  1798. database path is passed in, not the object. The
  1799. engine now validates the file
  1800. before creating the database object. MSI databases
  1801. now must have a
  1802. summary info property stream with the PID_TITLE
  1803. property set to
  1804. "Installation Database 0.10" in order to work with
  1805. this version of Darwin.
  1806. For ODBC databases, the information is put in the
  1807. _SummaryInfo table, but
  1808. that table is not checked in this release--will be
  1809. added soon.
  1810. 96-07-05 ivanw To avoid further confusion, removed the Initialize
  1811. and Terminate methods for Handler from automation. The
  1812. Handler object has to be initialized and terminated
  1813. through the appropriate methods of the engine.
  1814. 96-07-05 davidmck Changed code in CMsiMalloc to give information on
  1815. IMsiRecord object.
  1816. 96-07-03 johndelo OpenView intent flag ivcTableAll has been removed
  1817. and is no longer supported.
  1818. Child MsiStorage objects now keep a reference to
  1819. their parent objects to prevent their premature release.
  1820. 96-07-03 thussey The file controls.h has been deleted from the
  1821. project since it is no longer used anywhere and contains
  1822. obsolete definitions which get in the way of global
  1823. searching.
  1824. 96-07-02 ivanw Since we don't build the old UI anymore, the
  1825. previous file name conflicts are removed. Hence _control.h
  1826. is renamed to control.h and ccontrol.cpp is renamed
  1827. control.cpp.
  1828. 96-07-02 thussey Added two files: mactool.cpp and mactool.h. These
  1829. files implement stack-based wrapper classes for Mac
  1830. Toolbox data structures.
  1831. -----------------------------
  1832. Release 0.10.00.1902
  1833. -----------------------------
  1834. 96-07-01 johndelo RegMsi.Exe tool has been fixed an extended to
  1835. register all Darwin and tool DLLs.
  1836. Type regmsi ? to get help. The debug version
  1837. regmsid.exe works identically except
  1838. that it contains debugging symbols. Both can register
  1839. modules of all builds.
  1840. The module.h and tools.h headers have been cleaned up
  1841. a bit, requiring minor
  1842. changes in the include sections of all module files
  1843. (all checked in).
  1844. 96-07-01 tracyf Alert: significant changes have been made to the
  1845. File and Media tables. In the Media table, the
  1846. 'Noncabinet' and 'Split' columns have been eliminated
  1847. (doesn't hurt anything if they still exist in your table).
  1848. Files are now marked as uncompressed by setting an
  1849. Attribute bit in the file table (until you mark your
  1850. uncompressed files, if you've got any, you'll get
  1851. errors saying this file or that can't be found in a
  1852. cabinet). See the updated docs for these tables in the
  1853. HelpFile.
  1854. 96-06-29 davidmck Added code to step back two additional callers in
  1855. the memory debugger for a bit more information.
  1856. Added code to check all memory blocks for corruption.
  1857. -----------------------------
  1858. Release 0.10.00.1828
  1859. -----------------------------
  1860. 96-06-27 ivanw The DirectoryCombo and VolumeSelectCombo controls
  1861. display the
  1862. volumes whose type is specified in the stylebits. For
  1863. now the removable
  1864. and the floppy are the same. So if you set both bits
  1865. at the same time
  1866. you are asking for trouble. In the future the
  1867. path/volume object
  1868. will distinguish between the two kinds of volumes.
  1869. 96-06-26 ivanw ControlEvent table modified so the push of a button
  1870. (or other control)
  1871. can trigger more than one event. Their order is
  1872. determined by the new
  1873. Ordering column at the end of the table. This column
  1874. is REQUIRED.
  1875. If the column is missing the UI will fail. Leaving
  1876. the column empty is OK, if a
  1877. button triggers only one event or you don't care for
  1878. the order.
  1879. -----------------------------
  1880. Release 0.10.00.1825
  1881. -----------------------------
  1882. 96-06-24 ivanw Browse dialog completed, except some cosmetic issues
  1883. on NT3.51.
  1884. The dialog involves three new controls.
  1885. The PathTailEdit control is an edit control that is
  1886. design to modify the last
  1887. segment of the path. If a complete path is entered,
  1888. it recognizes that and
  1889. sets the entire path. Also if several segments of the
  1890. path are entered, it
  1891. accepts it as long as the whole path makes sense.
  1892. The DirectoryCombo and DirectoryList controls are
  1893. designed to select the
  1894. path except its last segment. They also deal with
  1895. phantom pathes and
  1896. creating/renaming folders.
  1897. All the above controls verify if the selected path is
  1898. valid.
  1899. The VolumeSelectCombo is a combobox showing all
  1900. volumes.
  1901. Added a new style to the progress bar, so it can be
  1902. displayed in the
  1903. solid, continuous form as before or the chunky stile
  1904. of Win95.
  1905. If there is a text specified in the Control table
  1906. for a progress bar, the
  1907. control will publish a controlevent of this name.
  1908. When the progress bar
  1909. is complete (gets to 100%) it enables all controls
  1910. subscribing to this
  1911. controlevent.
  1912. The Handler::Message function in case of a progress
  1913. message checks
  1914. the record if there is an action name in the third
  1915. field. If there is, it
  1916. publishes a progress event by that name. If there is
  1917. no name there, it
  1918. publishes a default event. This way we can have more
  1919. than one
  1920. progress bar at the same time, tracking the progress
  1921. of different actions.
  1922. -----------------------------
  1923. Release 0.10.00.1821
  1924. -----------------------------
  1925. 96-06-19 tracyf Made several fixes to bring the Mac MsiPath and
  1926. MsiCopyFile objects back up to approximate par with the
  1927. Windows versions: fixed several MsiCopyFile::CopyTo
  1928. bugs (cabinet version), updated the docs, and fixed a
  1929. Mac bug in MsiServices::GetLocalPath. I also checked
  1930. in a new version of MsiPath.bas (in the Darwin\tools
  1931. directory) which now tests all MsiPath/MsiFileCopy
  1932. interface functions, both the Mac and Win.
  1933. -----------------------------
  1934. Release 0.10.00.1807
  1935. -----------------------------
  1936. 96-06-07 johndelo SumInfo.Exe is now in the build, a simple tool that
  1937. loads Services via OLE
  1938. and displays the SummaryInformation stream
  1939. properties.
  1940. -----------------------------
  1941. Release 0.10.00.1804
  1942. -----------------------------
  1943. 96-06-04 tracyf Fixed bug 164 (allowing the MsiPath::GetLocalPath
  1944. function to treat its parameter as optional).
  1945. 96-06-04 tracyf Last build, in response to bug 170, I erroneously
  1946. changed the MsiPath::CopyTo function to use field 1 of
  1947. the passed in record as the source file name for
  1948. uncompressed file copying. For this build, I've changed
  1949. it back so that both the source and destination file
  1950. names are taken from field 2.
  1951. 96-06-02 tracyf Fixed the following bugs: 157, 167, 170, 173, 182,
  1952. 186, all dealing with MsiPath functionality or
  1953. documentation.
  1954. 96-06-02 tracyf A new function, ReadResource, has been added to the
  1955. MsiPath interface. This allows for automated testing
  1956. in conjunction with the UpdateResource function, and
  1957. also may prove useful in the future for various
  1958. install actions. The helpfile has been updated to
  1959. include ReadResource documentation.
  1960. 96-06-02 tracyf The MsiPath::UpdateResource function has been fixed
  1961. so that it now works with both 16 and 32 bit
  1962. executables (previously it was badly broken for 32 bit
  1963. files). The docs in the helpfile have also been updated.
  1964. -----------------------------
  1965. Release 0.10.00.1731
  1966. -----------------------------
  1967. 96-05-23 johndelo MsiServices::CreateMsiStorage has been renamed to
  1968. MsiServices::CreateStorage, fixing misnaming in help/tlb.
  1969. AUTOCOM.H has been moved to the common INC directory,
  1970. and can be used for any automated module.
  1971. All common module code is now contained in the headers:
  1972. module.h, autocom.h, and _assert.h. See file header comments.
  1973. Initial sample tool code checked in to SRC\TOOLS\SAMPTOOL.
  1974. 96-05-30 tracyf The following bugs have been resolved (most all
  1975. involving MsiPath or related services functions): 187,
  1976. 188, 191, 192, 193, 199, 202, 203, 204, 212, 213, 218,
  1977. 219
  1978. 96-05-30 tracyf Added support to the InstallFiles action for
  1979. handling files in use: if a file to be replaced is in use,
  1980. it now gets added to the restart list (in the registry
  1981. on NT, or in WININIT.INI on Windows 95), to be
  1982. replaced at restart time. Of course, Darwin does not yet
  1983. support automatic restart at the end of setup, so
  1984. you'll have to reboot manually to see the effect.
  1985. 96-05-28 davidmck Added GetDebugFlags routine to the debug allocator
  1986. so you can check on what flags are set.
  1987. -----------------------------
  1988. Release 1.0.1724
  1989. -----------------------------
  1990. 96-05-23 johndelo Version numbers have been changed for all Darwin
  1991. components to 0.10.0.<build>.
  1992. This number will be bumped (minor version) each time
  1993. we break database compatibility.
  1994. We we RTM Darwin the first time, the version will
  1995. then be bumped to 1.0.
  1996. Following the ACME convention, the version numbers
  1997. reported as properties by the various components
  1998. will contain only 2 fields for SHIP build,
  1999. e.g."0.10", and 4 fields for DEBUG builds, e.g."0.10.0.1724".
  2000. 96-05-22 johndelo All of the Darwin DLLs now support the standard OLE
  2001. entry points and will
  2002. self-register to allow them to be created with
  2003. CoCreateInstance. A new tool
  2004. is available, RegMsi.EXE, to register any or all of
  2005. the components See help file.
  2006. (RegMsiD.EXE and REgMsiL.EXE to register DEBUG and
  2007. LEGO build components).
  2008. The services, handler, and engine all set their
  2009. version properties: VersionServices, etc.
  2010. Asserts have been reworked to avoid inline expansion,
  2011. which was bloating debug builds.
  2012. 96-05-22 ivanw Icons are working on pushbuttons, radiobuttons and
  2013. checkboxes.
  2014. testdb is expanded by several dialogs to test these
  2015. new styles.
  2016. The additional dialogs show up only if the property
  2017. UITEST is set.
  2018. The checked in code and testdb contain some yet
  2019. unfinished code for
  2020. MsiBrowseCombo, but it should not hurt anything else.
  2021. -----------------------------
  2022. Release 1.0.1717
  2023. -----------------------------
  2024. 96-05-16 johndelo For creating summary streams on newly built MSI
  2025. databases, importing a table
  2026. named "_SummaryInformation" will stream its data
  2027. pairs to the standard property stream.
  2028. (For ODBC database, a standard table will be
  2029. created.) See help under ImportTable.
  2030. The new file under darwin/data/testdb is
  2031. "_Summary.idt".
  2032. 96-05-15 johndelo ImportTable and ExportTable are now fully functional
  2033. with .MSI databases.
  2034. MsiTable.EXE has been updated to handle .MSI
  2035. databases as well.
  2036. Note that the text archive format spec "b0" has been
  2037. changed to "i0" (Boolean data type).
  2038. The old format "b0" will still be accepted for a few
  2039. builds.
  2040. The makefile now builds TestDb.Msi as well as
  2041. TestDb.Mdb. Install may be run from either.
  2042. 96-05-15 chetanp 1. Added "iField" parameter to ReadIniFile to be
  2043. able to access individual fields in an .INI file
  2044. 96-05-15 tracyf Resolved bugs 166, 170, 174, and 181. Of particular
  2045. note are changes to the MsiPath::CreateCopier,
  2046. MsiFileCopy::CopyTo functions. See the updated help file
  2047. for full documentation.
  2048. -----------------------------
  2049. Release 1.0.1714
  2050. -----------------------------
  2051. 96-05-13 johndelo New methods implemented for MsiStorage, including
  2052. enumerators and RemoveElement. See TLB,Help
  2053. DropTable implemented for MSI databases,
  2054. Import/ExportTable implemented but not ready for testing until
  2055. next build.
  2056. -----------------------------
  2057. Release 1.0.1710
  2058. -----------------------------
  2059. 96-05-09 tracyf After copying a file in the InstallFiles action, the
  2060. "State" column of the Files table is now updated to
  2061. reflect the file's installation status. If Darwin
  2062. installed a new file, the state is set to
  2063. "ifsInstalled". If an older file was overwritten, the state
  2064. becomes ifsOverwriteInstalled. However, note that these
  2065. states won't actually be detectable or useful until
  2066. writing out of the persistent maintenance database is
  2067. implemented.
  2068. 96-05-09 tracyf Added version checking to the InstallFiles action -
  2069. if an existing file is the same or higher version, it
  2070. will not be overwritten.
  2071. 96-05-09 tracyf If the CommonFilesDir or ProgramFileDir directory
  2072. location cannot be read from the registry, Darwin now
  2073. sets a default location for these directories. For
  2074. now, a subdirectory of the Windows directory is used,
  2075. with subdirectory names of "Common Files" and "Program
  2076. Files". (This may change if/when a more "proper"
  2077. default location is decided upon).
  2078. 96-05-09 tracyf Fixed a bug in the FDI Server: previously, an FDI
  2079. error would occur when trying to copy files from more
  2080. than one cabinet, IF the file split from one cabinet
  2081. to the next was not copied, OR if there is no file
  2082. split across cabinets. This was because there was no
  2083. Darwin mechanism to switch cabinets other than the
  2084. processing of the "need next cabinet" message send by
  2085. FDI, which occurs only when a file split across cabinets
  2086. is being copied.
  2087. 96-05-08 ivanw Pushlike radiobuttons, and checkboxes added with
  2088. text or bitmaps.
  2089. Pushbuttons with bitmaps (picturebuttons) are added.
  2090. Bitmaps are
  2091. stretched even on Win95 (where the system would not
  2092. do it on its own).
  2093. Icons on buttons are still not functional.
  2094. testdb.mdb demonstrates all the completed styles (if
  2095. the UITEST property is
  2096. set).
  2097. -----------------------------
  2098. Release 1.0.1707
  2099. -----------------------------
  2100. 96-05-06 johndelo Automation for Storage, Stream, SummaryInput,
  2101. SummaryOutput is now complete, along with help.
  2102. Dates must either be valid DOS dates (greater than
  2103. 1/1/80) or else time (fraction day: 0.0 <= date <
  2104. Input database can now be opened read-only when using
  2105. CreateOutputDatabase (bug 158).
  2106. Automation string handling will now accept MsiString
  2107. objects where the C++ interface so specifies.
  2108. 96-05-03 ivanw Radiobuttons with bitmaps are added. Also pushbutton
  2109. shaped radiobuttons are available.
  2110. To show these new options the testdb has been
  2111. expanded with several dialogs.
  2112. To see all these dialogs you have to set the property
  2113. UITEST on the command line.
  2114. If the property is not set, only two dialogs show up
  2115. in the wizard sequence.
  2116. -----------------------------
  2117. Release 1.0.1703
  2118. -----------------------------
  2119. 96-05-02 johndelo Add automation for MsiStorage and MsiStream,
  2120. MsiServices.CreateMsiStorage - see help
  2121. Fixed a number of small database storage-related
  2122. bugs.
  2123. Installs now work from .MSI databases. No Import or
  2124. Export yet--need to use CreateOutputDatabase followed
  2125. by Commit
  2126. The loader now opens the input database read-only.
  2127. 96-04-30 tracyf Fixed bugs 81, 120, 121, 128, 144, 145 (help
  2128. document bugs).
  2129. -----------------------------
  2130. Release 1.0.1630
  2131. -----------------------------
  2132. 96-04-29 johndelo Database functions Commit and Rollback are
  2133. operational,
  2134. can be called only once on a database, and no updates
  2135. afterwards. See help.
  2136. Persistent Msi Database is now implemented, extension
  2137. .MSI. More help in next release.
  2138. Binary objects from both ODBC and MSI are processed
  2139. using MsiStream objects.
  2140. Automation and help for MsiStream will not be
  2141. available until the next release.
  2142. However stream objects can be converted to string
  2143. objects (GetMsiString).
  2144. The persistent Msi storage should work on Mac if OLE
  2145. is installed, but has not been tried.
  2146. 96-04-29 davidmck Not a new item, but a discovered item.
  2147. For function names in memory information to work on
  2148. NT 3.51 you need dbi.dll on your path.
  2149. For Win95 you need mspdb40.dll on your path.
  2150. -----------------------------
  2151. Release 1.0.1625
  2152. -----------------------------
  2153. 96-04-24 chetanp fixed bug 133 in autosrv.cpp
  2154. -----------------------------
  2155. Release 1.0.1623
  2156. -----------------------------
  2157. 96-04-22 johndelo There are a number of database additions connected
  2158. with persistent storage.
  2159. They are described in the help file, and will be
  2160. mentioned here when they are operational.
  2161. The MsiTable column definitions are contained in the
  2162. system catalog as a 16-bit integer
  2163. consisting of a number of bit attributes along with
  2164. the SQL byte width. See help for CreateColumn.
  2165. The CreateColumn and GetColumnType functions now take
  2166. and return this integer.
  2167. The enumerations, icdXXX (Installer Column
  2168. Definition), are in the typelib, replacing itdXXX and itcXXX
  2169. The GetColumnKind has be removes, subsumed by
  2170. GetColumnType.
  2171. The MsiCursor method SetFilter has been made into a
  2172. read/write property: Filter.
  2173. More enumerated states can be returned from
  2174. FindTable, itsEnum. See help or typelib
  2175. The MsiDatabase property UpdateState reports the
  2176. persistent state of the database.
  2177. 96-04-19 johndelo Database low-level column type idtInteger has been
  2178. replaced with
  2179. idtLong (32-bit) and idtShort (16-bit). For a SHORT
  2180. time, idtIntegers is still defined
  2181. to idtLong until the non-services code is updated.
  2182. idtLong should be used for temp. columns,
  2183. itdShort should be used, where possible, for
  2184. persistent columns.
  2185. -----------------------------
  2186. Release 1.0.1616
  2187. -----------------------------
  2188. 96-04-15 johndelo A new argument has been added to CreateDatabase,
  2189. readOnly, a boolean which indicates
  2190. if the database should be opened read-only (True) or
  2191. read-write (False). This will eventually
  2192. be the default mode during an install, as a separate
  2193. output database is created.
  2194. Rollback method has been added to MsiDatabase,
  2195. which will backout any changes made
  2196. to the database. This is to be called before exit
  2197. when a fatal error occurs. See help.
  2198. 96-04-11 davidmck Added support for logging all memory allocations.
  2199. Set the environment variable DEBUGMEM on windows or add
  2200. the short resource named DEBUGMEM to the launcher on
  2201. the Mac.
  2202. DEBUGMEM is a set of bit flags. 0x2 tells it to log
  2203. allocations.
  2204. -----------------------------
  2205. Release 1.0.1609
  2206. -----------------------------
  2207. 96-04-08 ivanw The error handling has changed in the handler. Lower
  2208. level functions return
  2209. an error record, instead of posting the error
  2210. themselves and returning a Bool.
  2211. In the new scheme only methods in the handler class
  2212. post error messages.
  2213. Some functions, like WinMessage and Accelerate return
  2214. some information
  2215. in the error record, that is not a true error. In
  2216. the normal use of these
  2217. functions, these messages used as return codes. If
  2218. the functions are
  2219. called directly from automation, these error records
  2220. should translate into
  2221. meaningful messages about what the function
  2222. accomplished.
  2223. 96-04-06 davidmck Added MsiAuto.ShowAsserts method which can turn on
  2224. and off asserts in the services and engine modules
  2225. currently.
  2226. I'll add the Handler later.
  2227. -----------------------------
  2228. Release 1.0.1602
  2229. -----------------------------
  2230. 96-03-29 tracyf Mac UI improvements: Group Box control now
  2231. implemented, and RadioButton groups now have a group frame;
  2232. Bitmap controls are now implemented; fixed tabbing
  2233. problems; implemented transparent text for static text
  2234. controls; fixed problems with dialog window heights,
  2235. and positioning of PushButtons.
  2236. -----------------------------
  2237. Release 1.0.1528
  2238. -----------------------------
  2239. 96-03-27 tracyf A Mac MessageBox function has been implemented,
  2240. which takes the exact same parameters as the Win version.
  2241. The first immediate benefit of this is that asserts
  2242. (which use MessageBox) are now fully functional for
  2243. Mac.
  2244. 96-03-27 tracyf Mac UI controls for the new Handler DLL are now
  2245. available! The following controls are functional:
  2246. - Static text
  2247. - Edit text
  2248. - Pushbuttons
  2249. - Radio buttons (minus the frame border, which will
  2250. come later)
  2251. - check boxes
  2252. The UI database tables for Mac and Win are
  2253. identical, so the same tables can be used for both without
  2254. modification.
  2255. 96-03-26 johndelo CONVENTION: All directory paths end with a directory
  2256. separator,
  2257. both the result of function calls and properties set
  2258. by SetPlatformProperties.
  2259. At directory resolution time, any directory
  2260. properties will be fixed up as needed.
  2261. 96-03-25 ivanw the new UI becomes the default. If you need the old
  2262. one for some reason you can reach it by using
  2263. HANDLER=msictl(D).dll
  2264. 96-03-25 johndelo A log option is now available to dump all of the
  2265. property values at the end of the log.
  2266. Include the letter 'p' in the value for LOGMODE
  2267. property. See help for LOGMODE.
  2268. The Condition table is now processed by the
  2269. CostILnitialize action.
  2270. The Selection table is now resolved for Install Level
  2271. only by the CostFinalize action.
  2272. In the testdb database, setting the NOJAN, NOFEB,
  2273. NOMAR, NOAPR properties
  2274. will turn off the corresponding file from being
  2275. copied.
  2276. -----------------------------
  2277. Release 1.0.1521
  2278. -----------------------------
  2279. 96-03-20 chetanp CMsiView class handles queries on local tables
  2280. CMsiODBCView class handles mixed queries (ODBC +
  2281. local) tables.
  2282. -----------------------------
  2283. Release 1.0.1519
  2284. -----------------------------
  2285. 96-03-17 johndelo Msi.Table.NextNode method has been removed. An
  2286. argument has been added
  2287. to MsiTable.CreateCursor: Boolean, True to create a
  2288. tree-walking cursor,
  2289. False to create a normal sequential row cursor. See
  2290. Help file.
  2291. A catalog table with column definitions has been
  2292. implemented. An argument has
  2293. been added to GetCatalogTable: 0 = tables, 1 =
  2294. columns. See Help.
  2295. -----------------------------
  2296. Release 1.0.1514
  2297. -----------------------------
  2298. 96-03-12 davidmck Overloaded new and delete in the Engine DLL.
  2299. 96-03-12 davidmck Added support for finding the function names from an
  2300. address and offset.
  2301. Currently this is a windows only feature.
  2302. -----------------------------
  2303. Release 1.0.1512
  2304. -----------------------------
  2305. 96-03-11 johndelo Add MsiDatabase.CreateTempTableName, which creates a
  2306. unique name for temporary table.
  2307. MsiData object has two properties: StringValue and
  2308. IntegerValue, the first previously had
  2309. conflicting definitions of Value and TextValue
  2310. -----------------------------
  2311. Release 1.0.1507
  2312. -----------------------------
  2313. 96-03-06 johndelo All automation objects now have a set of common
  2314. methods that allow querying of the underying
  2315. COM intefaces, see Help. This is particularly
  2316. helpful when retrieving objects
  2317. from databases and records. New automation objects
  2318. can be obtained which
  2319. represent the derived object types. The properties,
  2320. HasInterface(iid) and RefCount,
  2321. and the method, GetInterface(iid), are not in the
  2322. type library as I can't figure out
  2323. how to do inheritance of a dispinterface.
  2324. 96-03-06 johndelo Registration for LEGO builds has been fixed. Both
  2325. LEGO and DEBUG builds
  2326. register under a 2nd ProgId and ClassId. In addition
  2327. to Msi.Automation,
  2328. they also register under Msi.AutoDebug or
  2329. Msi.AutoLego. By registering the
  2330. ship version last (all register as Msi.Automation),
  2331. all three builds can be
  2332. run simultaneously. The default DLL names used now
  2333. support LEGO.
  2334. The non-UI tables have been updated to match the spec
  2335. in the help file.
  2336. Some of the UI tables have been changed to the new
  2337. format; the Control
  2338. and Dialog tables have been renamed, as the new
  2339. tables will be quite different.
  2340. 96-03-05 johndelo MsiRecord automation of Value has been changed to
  2341. conform with MsiCursor
  2342. and to support the various data types. See Help.
  2343. Separate properties for
  2344. StringData, IntegerData, and ObjectData.
  2345. MsiCopy and IMsiCopy have been changed to MsiFileCopy
  2346. and IMsiFileCopy.
  2347. MsiData objects are now supported and documented.
  2348. -----------------------------
  2349. Release 1.0.1429
  2350. -----------------------------
  2351. 96-02-28 tracyf - Fixed bugs 84 & 91 (involving working around a
  2352. Windows 95 bug
  2353. in GetDiskFreeSpace).
  2354. - Fixed up several memory leaks in the path, auto,
  2355. and services objects.
  2356. - Implemented CMsiPath::CheckLanguageIDs (Mac)
  2357. -----------------------------
  2358. Release 1.0.1427
  2359. -----------------------------
  2360. 96-02-26 johndelo There is a new MsiDirectoryManager implmentation --
  2361. see help file.
  2362. The old Destination table is replaced by a simpler
  2363. Directory table.
  2364. Logging has been fixed. Minor bugs in database fixed.
  2365. 96-02-26 davidmck Asserts now have three buttons -
  2366. Abort - Break to debugger
  2367. Retry - Continue
  2368. Ignore - Turn off all further asserts in this module.
  2369. 96-02-26 davidmck Checked in more memory debugging features. We now
  2370. bring up assert dialogs with information about memory
  2371. leaks.
  2372. This information is also written to the log file if
  2373. logging is turned on.
  2374. Currently only the String object is hooked up to
  2375. AllocObject which provides us with greater debugging
  2376. information. I'll be turning on more objects as time
  2377. progresses.
  2378. 96-02-22 tracyf More MsiPath interface functions have been
  2379. implemented:
  2380. - GetFileAttribute (Mac)
  2381. - SetFileAttribute (Mac)
  2382. - FileWritable (Mac)
  2383. The help file has been updated for all of these.
  2384. In addition, full Mac path
  2385. and filename validation has been implemented (as soon
  2386. as possible, I'm
  2387. going to update the doc for CreatePath to reflect Win
  2388. and Mac path/file
  2389. syntax restrictions).
  2390. Tests for all these functions have been added to
  2391. MsiPath.bas.
  2392. -----------------------------
  2393. Release 1.0.1422
  2394. -----------------------------
  2395. 96-02-21 johndelo The makefile and make.bat now can make LEGO builds.
  2396. May not yet be in release procedure.
  2397. Property names have been justified with the Help
  2398. file. Not many are implemented yet.
  2399. Several database bugs fixed and closed.
  2400. New objects associated with engine:
  2401. MsiSelectionManager and MsiDirectoryManager.
  2402. Note the in the testdb.mdb, normal UI may be disabled
  2403. with QUIET=1.
  2404. -----------------------------
  2405. Release 1.0.1420
  2406. -----------------------------
  2407. 96-02-19 tracyf Implemented (or fixed a broken implementation of)
  2408. the following MsiPath functions:
  2409. - Writable (Win & Mac)
  2410. - Exists (Mac)
  2411. - Remove (Win and Mac)
  2412. - FileExists (Win and Mac)
  2413. - FileSize (Mac)
  2414. - RemoveFile (Mac)
  2415. The documentation (help file) has been updated for
  2416. all these functions.
  2417. Test script: MsiPath.bas
  2418. 96-02-19 johndelo More operators have been added to EvaluateCondition.
  2419. See Help. Evaluate.BAS has been updated.
  2420. The expEnum has been changed to iecEnum, consistent
  2421. with other exported enums.
  2422. 96-02-15 ivanw Changed the return type of MsiRecord::Set* from
  2423. HRESULT to Bool.
  2424. -----------------------------
  2425. Release 1.0.1415
  2426. -----------------------------
  2427. 96-02-14 johndelo Implemented EvaluateCondition in services. See Help
  2428. file for details.
  2429. First test script: Evaluate.BAS in Darwin\test. Still
  2430. more test cases to check.
  2431. 96-02-14 ivanw Added the option of building the (still untested)
  2432. new UI. The default is
  2433. still the old one.
  2434. Replaced the control.h file by handler.h (the new UI
  2435. definitions).
  2436. Modified the engine so it compiles with the new
  2437. header file.
  2438. Added the automation for the new UI.
  2439. 96-02-14 tracyf Implemented Mac version of GetFileVersionString:
  2440. Documentation: Help file
  2441. Automation script: VerStrM.bas (Mac), VerStrW.bas
  2442. (Win)
  2443. -----------------------------
  2444. Release 1.0.1413
  2445. -----------------------------
  2446. 96-02-13 tracyf Implemented the Mac version of CheckFileVersion:
  2447. Documentation: the updated help file
  2448. Automation file: \darwin\test\FileVerM.bas
  2449. -----------------------------
  2450. Release 1.0.1413
  2451. -----------------------------
  2452. 96-02-12 johndelo Command line help has been changed to show property
  2453. names with descriptions.
  2454. Old ACME command option letters are maintained for
  2455. backward compatibility.
  2456. See Help topic on Command Line Options.
  2457. Launcher properties and help descriptions can both be
  2458. set with the
  2459. LOADPROP.EXE tool. See Help topic for info.
  2460. Logging has been implemented in the engine. See Help
  2461. topics:
  2462. LOGFILE and LOGMODE properties.
  2463. The engine sequencer, Sequence, is now only to be
  2464. called by the top
  2465. leve actions, see Help topic. The DoAction command
  2466. is what is used
  2467. by the loader or automation. The 'Install' action is
  2468. the normal top level action.
  2469. The Action table has been modified slightly, see
  2470. Action table Help,
  2471. especially about termination action sequence
  2472. Properties have been added and many have been
  2473. documented. The list
  2474. of which ones are NOT implemeted yet is forthcoming.
  2475. Some small bugs in the MsiTable implementation have
  2476. been fixed, which
  2477. would occasionally cause Asserts and missed records.
  2478. 96-02-10 davidmck Hooked up CMsiMalloc to CMsiServices. You will now
  2479. get asserts when leaving unfreed memory blocks
  2480. -----------------------------
  2481. Release 1.0.1408
  2482. -----------------------------
  2483. 96-02-07 johndelo The low-level database engine, MsiTable and
  2484. MsiCursor is now operational
  2485. and the documentation has been completed. The tree
  2486. functionality and
  2487. persistent storage is not implemented (for Milestone
  2488. 2). A very preliminary
  2489. test script DBTABLE.BAS is checked into Darwin\Test.
  2490. The function
  2491. CreateRows has been eliminate, and its arguments
  2492. integrated into the
  2493. LoadTable and CreateTable calls. The names
  2494. Get/PutObject and
  2495. Get/PutData have been changed to avoid conflicts with
  2496. macros defined
  2497. by the Win API headers. The VBA wrappers did not need
  2498. to change.
  2499. 96-02-06 tracyf Three new interface functions have been implemented:
  2500. - MsiPath::CheckLanguageIDs
  2501. - MsiPath::GetLangIDStringFromFile
  2502. - MsiServices::GetLangNamesFromLangIDString
  2503. Documentation: the updated help file
  2504. Automation file: \darwin\test\language.bas
  2505. -----------------------------
  2506. Release 1.0.1406
  2507. -----------------------------
  2508. 96-02-05 johndelo Reorganized help .RTF files a bit, adding
  2509. ACTIONS.RTF, and OBJECTS.RTF
  2510. (objects other than Services, Database, and Path).
  2511. Many help topics are added,
  2512. including Dev topics such as how to automate and
  2513. provide help to C++ methods
  2514. and Help file syntax. Most methods are doc'd, but
  2515. many in Services are incomplete.
  2516. The database class now makes the system catalog
  2517. accessible as an
  2518. MsiTable object, with the method GetCatalogTable.
  2519. Most MsiTable and
  2520. MsiCursor is functional and ready for test
  2521. development (but not quite ready
  2522. for bugging). Note the the OpenViewSQL method is now
  2523. gone (OpenView
  2524. now takes the SQL string).
  2525. 96-02-01 johndelo The table "ViewQuery" has been removed from the
  2526. database. The SQL
  2527. queries are now the responsibilities of the actions
  2528. and controls and have
  2529. been moved into the beginning of the appropriate
  2530. source files. The old
  2531. database method OpenViewSQL will be renamed OpenView
  2532. and the
  2533. previous functionality of opening a view by name is
  2534. now gone. The VBA
  2535. automation method OpenView already requires a SQL
  2536. string.
  2537. The ODBC libraries are now dynamically loaded on
  2538. demand. Thus ODBC
  2539. support is no longer required to use or test the Msi
  2540. database functionality.
  2541. The ugly error code offsets have been removed. All
  2542. Darwin error codes
  2543. are in the range 1000 to 1999. 2000-2999 are
  2544. reserved for debug messages.
  2545. -----------------------------
  2546. Release 1.0.1401
  2547. -----------------------------
  2548. 96-01-31 johndelo The database type for the MsiServices funciton
  2549. CreateDatabase has been
  2550. changed from a string to an enum, idbEnum. The enum
  2551. values are in the
  2552. type library. Check msiauto.hlp for documentation.
  2553. The low-level database code, classes IMsiTable and
  2554. IMsiCursor is in place
  2555. but not fully operational as yet. Check the help for
  2556. documentation.
  2557. -----------------------------
  2558. Release 1.0.1330
  2559. -----------------------------
  2560. 96-01-29 tracyf Two new MsiPath functions have been implemented:
  2561. CheckFileVersion, and GetFileVersionString. See
  2562. the updated help file for documentation.
  2563. -----------------------------
  2564. Release 1.0.1325
  2565. -----------------------------
  2566. 96-01-23 tracyf Fixed bug 64 (several problems related to calling
  2567. services.CreatePath, path.CreateCopier, and
  2568. copier.CopyTo via automation).
  2569. -----------------------------
  2570. Release 1.0.1318
  2571. -----------------------------
  2572. 96-01-17 johndelo Help file now has a version that shows under the
  2573. Help Menu/Version.
  2574. Ivan added the UI database table definitions.
  2575. A first pass at the list of properties was added, but
  2576. few topics as of yet.
  2577. You will need to have MSIAUTO.CNT in the same
  2578. directory as MSIAUTO.HLP
  2579. the first time you run help in order to get the
  2580. book-tree view.
  2581. 96-01-16 johndelo IMsiControl and MsiControl have been renamed to
  2582. IMsiHandler and MsiHandler.
  2583. This was necessary to use the old name as the base
  2584. for UI controls.
  2585. Note that the automation method is now
  2586. The name of the UI DLL won't change until the new
  2587. implementation is build.
  2588. Help strings for VBA browsing have been added for
  2589. some classes.
  2590. Note that the type library GUID and name have
  2591. changed: now "Installer".
  2592. Enum values have been added to the type library,
  2593. under "Constant".
  2594. These can be directly pasted into and used within the
  2595. VB code.
  2596. Only a few have been added so far... more to come.
  2597. The argument names for VBA have been changed to start
  2598. with lower case,
  2599. consistent with Excel. The use of them is still case
  2600. insensitive.
  2601. A help file is now build for Darwin, MSIAUTO.HLP.
  2602. This file currently describes
  2603. the methods as exposed to VBA. A C++ version will be
  2604. conditionally built later.
  2605. Only the auto and the database classes are doc'd yet,
  2606. more coming soon.
  2607. The database table descriptions, except UI, are
  2608. mostly there.
  2609. This help file can be run from the VBA browser "?"
  2610. button, or WINHLP32.
  2611. 96-01-16 tracyf Fixed bugs: 45,47,52,57
  2612. more fixes dealing with Path object functionality.
  2613. -----------------------------
  2614. Release 1.0.1309
  2615. -----------------------------
  2616. 96-01-08 tracyf Fixed bugs: 42, 43, 49, 53, 54, 55, 56, 60
  2617. All dealing with Path object functionality.
  2618. 96-01-05 chetanp Added ProcessIniFile support for add/add if absent/
  2619. delete/ appendtag/ deletetag
  2620. to Services.
  2621. Transfered UpdateResource from Services to Path
  2622. object
  2623. 96-01-04 johndelo Missing automation wrappers and ODL have been
  2624. implemented, as response to a series of bugs.
  2625. The IMsiRecord object is no longer limited to 32
  2626. fields, but by the amount of contiguous memory that can
  2627. be obtained.
  2628. Howerver, using more than 32 fields in a record is
  2629. not anticipated in Darwin.
  2630. Provision is also made to pass objects in records,
  2631. but the objects that can be passed are not yet
  2632. available for testing.
  2633. -----------------------------
  2634. Release 1.0.1228
  2635. -----------------------------
  2636. -----------------------------
  2637. Release 1.0.1207
  2638. -----------------------------
  2639. 95-12-06 ivanw DialogControl table is eliminated. Controls are not
  2640. reuseable anymore.
  2641. All info from DialogControl is migrated to Control.
  2642. The CopyGauge flicker problem has been fixed.
  2643. 95-12-05 ivanw
  2644. -----------------------------
  2645. Release 1.0.1205
  2646. -----------------------------
  2647. 95-11-30 tracyf I've checked a bunch of new code into the Controll
  2648. DLL source, which brings the Mac Darwin user interface
  2649. up to an approximate par with the Win Darwin UI.
  2650. This will allow us to author fully interactive Mac
  2651. setups, and should hold us during the time that Ivan's UI
  2652. redesign is taking place.
  2653. What works:
  2654. - modal and modeless dialog windows
  2655. - pushbuttons
  2656. - sequence buttons
  2657. - radio buttons, radio button groups
  2658. - checkboxes
  2659. - static text fields
  2660. - edit text fields
  2661. - action text fields
  2662. - action data fields
  2663. - copy gauge
  2664. - most control properties
  2665. What doesn't work
  2666. - List, combo boxes (don't even try it!)
  2667. - bitmaps (bitmap controls can be authored, but an
  2668. empty frame is displayed)
  2669. - tree control (it'll be a while before we have this
  2670. for either Mac or Win)
  2671. - some control properties don't get set or read
  2672. I've also checked a new set of Arcade sample
  2673. install tables, with a demo UI authored in.
  2674. -----------------------------
  2675. Release 1.0.1116
  2676. -----------------------------
  2677. 95-11-14 davidmck We should now copy the regauto.exe and msi.tlb to
  2678. the release server for releases.