5746 lines
293 KiB
Plaintext
5746 lines
293 KiB
Plaintext
|
||
|
||
Darwin Setup Development Notes for Testing Releases
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3702
|
||
-----------------------------
|
||
|
||
97-12-31 johndelo Unicode builds are now functional. A known problem is
|
||
that the rich text edit control does not format.
|
||
It is important at this point that the database
|
||
functions work win Unicode to facilitate localization.
|
||
|
||
97-12-29 bench added support for applying a patch to an advertised-
|
||
but-not-installed product. In this case we simply
|
||
register the patch for future use without installing
|
||
anything. When the product is finally installed, it
|
||
will be patched at the same time.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3630
|
||
-----------------------------
|
||
|
||
97-12-29 davidmck Added DllGetVersion call to msi.dll. Standard for
|
||
system dlls.
|
||
|
||
97-12-29 davidmck Checked in the delay-load linker from OTOOLS9. We
|
||
now delay loading of User and GDI.
|
||
|
||
97-12-28 malcolmh Added ixoMediaSourceListPublish. Removed
|
||
media-related arguments to ixoSourceListPublish. We now register
|
||
all volume labels and disk prompts for a product,
|
||
not just Disk 1's. We also now register the relative
|
||
path to the MSI on the CD.
|
||
|
||
97-12-26 malcolmh Source Management: Added the ability to have a
|
||
package located at an arbitrary location on a CD, not just
|
||
at the root. Added a parameter to the
|
||
IxoSourceListPublish op to support this. Bumped the script version.
|
||
Added registration of a relative path as the
|
||
default value under the Media sourcelist key.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3626
|
||
-----------------------------
|
||
|
||
97-12-23 tracyf Fixed bug 3520. As noted in the bug resolution, the
|
||
fix required the removal of the up-front directory
|
||
writability checks that were being performed during
|
||
the CostFinalize action. See also related bugs 817,
|
||
1162, and 1824.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3623
|
||
-----------------------------
|
||
|
||
97-12-22 malcolmh Almost all of the sourcelist spec is now
|
||
implemented. Product level source management works except nested
|
||
installs and URL sources.
|
||
|
||
97-12-22 malcolmh The IxoSourcesListPublish opcode now has 3
|
||
arguments: a media label and disk prompt have been added. The
|
||
script version has been bumped to 4 as a result of
|
||
this change.
|
||
|
||
97-12-22 malcolmh Fixed bug 3106. We now support inserting temporary
|
||
rows via SQL, using the syntax: INSERT INTO {table}
|
||
({column-list}) VALUES ({constant-list}) [TEMPORARY].
|
||
|
||
97-12-19 malcolmh Fixed bug 3714. We now handle UNICODE messaging through
|
||
external UI handlers correctly.
|
||
|
||
97-12-19 malcolmh Fixed bug 3674. We now correctly rollback product
|
||
and user registration and unregistration.
|
||
|
||
DEV: The conman's RegisterProduct,
|
||
UnregisterProduct, and RegisterUser functions have moved into
|
||
execute.
|
||
|
||
TEST: MsiConfigurationManager and MsiServer no longer
|
||
have the RegisterProduct, UnregisterProduct, and
|
||
RegisterUser methods.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3619
|
||
-----------------------------
|
||
|
||
97-12-18 johndelo ODBC database access has been removed from MSI.
|
||
Eventually a tool will be finished to import/export
|
||
from ODBC databases (including Access .MDB files).
|
||
Only MSI databases are supported by the installer now.
|
||
No external API changes, but internal automation has
|
||
deleted the database type argument (for a short time
|
||
the old 3-argument CreateDatabase calls will be supported).
|
||
|
||
97-12-18 johndelo Localizable columns are now indicated in the database
|
||
schema internally with the icdLocalizable bit, and in the
|
||
.idt files with "L" or "l", rather then "S" or "s".
|
||
Schema, Template, Testdb, Simple, Minimum, OdbcTest are updated.
|
||
Other databases need to updated to be compatible with the
|
||
localization tools.
|
||
|
||
97-12-18 johndelo Merge and Transform schema comparison checks have been
|
||
relaxed to ignore differences in the localization bit
|
||
(S vs. L) and SQL column width specifications, i.e. S32.
|
||
|
||
97-12-18 malcolmh Checked in msidiff.cpp. This tool compares msi
|
||
packages and tells you whether they're the same. It sets
|
||
an errorlevel of 0 if they're the same, 1 if they're
|
||
different, and >1 on error. This tool is not currently
|
||
dropped but can be made by using the MSIDIFF target.
|
||
|
||
97-12-17 malcolmh Fixed bug 3642. We now reject invalid modes to
|
||
MsiProvideComponent.
|
||
|
||
97-12-17 malcolmh Fixed bug 3630. This was a bug in MsiEnumClientsW.
|
||
|
||
97-12-17 malcolmh Fixed bug 2224 (again). We now support leaving off the
|
||
".msi" extension when launching an install. If we can't
|
||
find the path you specify then we'll tack on ".msi" for
|
||
you if you don't specify your own extension.
|
||
|
||
97-12-17 malcolmh Fixed bugs 3684, 3698: Changes in transform
|
||
generation:
|
||
|
||
1) If you attempt to generate a transform between
|
||
databases that are the same you'll get an error
|
||
(ERROR_NO_DATA from the API or a Darwin error from the
|
||
automation layer).
|
||
2) If you encounter an error during transform
|
||
generation the transform file is not written.
|
||
3) MsiDatabase.GenerateTransform's storage object can
|
||
now be Nothing. If you pass in Nothing then we'll
|
||
simply compare the databases, returning when the first
|
||
difference is found. Return values are as described
|
||
in 1), above.
|
||
4) MsiDatabaseGenerateTransform can now take a NULL
|
||
or empty string for its file parameter. This has the
|
||
same effect as passing in Nothing as described in 3),
|
||
above.
|
||
|
||
97-12-17 bench Fixed bug 3683. We no longer format property values with
|
||
FormatText before writing them to the log in the property
|
||
dump, since the code doesn't format the values of a property
|
||
before using it.
|
||
|
||
97-12-17 malcolmh Fixed bug 3498. We now support language neutral in
|
||
the Template summary info property. Specifying 0 or no
|
||
language indicates that a package is
|
||
language-neutral. A language-neutral package will run on any
|
||
language and we won't apply any language transforms. Note
|
||
that languages are now separated by commas. (see below
|
||
for details on the Template summary info property
|
||
format).
|
||
|
||
97-12-17 malcolmh Fixed bug 3561. We now validate the platform
|
||
specified in the summary info. This required the following
|
||
changes:
|
||
|
||
1) A new ieiEnum return from Engine.Initialize has
|
||
been added: ieiPlatformUnsupported. This caused some
|
||
ieiEnum values to change.
|
||
|
||
2) The syntax of the Template summary info property
|
||
has changed. The new syntax is: [platform
|
||
property][,platform property][,...];[language id][,language
|
||
id][,...].
|
||
|
||
Some examples of different platform designations:
|
||
|
||
Alpha,Intel;1033
|
||
Intel,Alpha;1033
|
||
Alpha;1033
|
||
Intel;1033
|
||
;1033
|
||
|
||
3) Specifying no platform implies that the package
|
||
is platform-independent, and we'll allow it to be run
|
||
on any platform. Otherwise, if the current platform
|
||
doesn't match one of the platforms you specify then
|
||
we'll return ieiPlatformUnsupported and refuse to run
|
||
the package.
|
||
|
||
4) A new external error code,
|
||
ERROR_INSTALL_PLATFORM_UNSUPPORTED, has been added.
|
||
|
||
97-12-17 davidmck Added version checking to instmsi and created
|
||
copymsi which does not do version checking.
|
||
We version check just msi.dll and if instmsi has a
|
||
newer one, we copy over msi.dll, msiexec.exe and
|
||
msihnd.dll.
|
||
If any of those three are in use, we schedule them
|
||
all for replace on reboot.
|
||
Also added a timebomb to instmsi.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3616
|
||
-----------------------------
|
||
|
||
97-12-15 johndelo Fixed conditional expression evaluator to correctly
|
||
processs feature and components states. They were using
|
||
internal state values rather than those published in
|
||
the doc and MSI.H, and were failing on removed components.
|
||
|
||
97-12-15 johndelo Nested installs are now functional, according to the
|
||
Custom Action spec. Reboot handling may be incomplete for
|
||
child installs, and progress info is not display correctly.
|
||
Nested installs sequenced between InstallValidate and
|
||
ExecuteFinalize will be merged into the parent's script.
|
||
|
||
97-12-15 chetanp Provided the ability for sharing advertisement
|
||
information for the Extensions, ClassIds, ProgIds,
|
||
TypeLibs, Published Components (and Shortcuts) amongst
|
||
products. This is needed because there are several
|
||
components (building blocks like VBA) that are shipped with
|
||
the several products which may individually advertise
|
||
this information. Here we allow the advertisement to
|
||
be around till the very last product chooses to
|
||
unadvertise it. This is achieved this sharing of
|
||
advertisement information via Darwin Descriptor lists. This
|
||
is simply a MULTI_SZ list of Darwin Descriptors.
|
||
For a feature of a product that serves as a server
|
||
for an advertised entity (like Extension, ClassId,
|
||
....) we follow the following rules:
|
||
1. Whenever the feature is advertised, installed or
|
||
reinstalled, its Darwin Descriptor is (placed at)/
|
||
(moved to) the beginning of the list.
|
||
2. Whenever the feature is uninstalled its Darwin
|
||
Descriptor is removed from the list.
|
||
3. The entire advertised Class/ Extension/ ProgID/
|
||
MIME/ TypeLibrary/ Published Components information is
|
||
removed only when the last Darwin Descriptor in the
|
||
associated list goes away.
|
||
4. The MSI APIs that deal with Darwin Descriptors
|
||
(MsiProvideComponentFromDescriptor and
|
||
MsiProvideQualifiedComponent) will use only the first Darwin
|
||
Descriptor in the list.
|
||
|
||
Support for sharing shortcuts has not been
|
||
implemented due to certain limitations with the amount of
|
||
information we can store within the path field of
|
||
shortcuts.
|
||
|
||
|
||
97-12-15 chetanp changed ProcessFileFromData function to call
|
||
RemoveFile on uninstall. This fixes the icons not being
|
||
removed issue.
|
||
|
||
97-12-15 chetanp Changed opcodes ixo -ComponentPublish,
|
||
ComponentUnpublish, RegClassInfoRegister, RegClassInfoUnregister,
|
||
RegExtensionInfoRegister, RegExtensionInfoUnregister,
|
||
ShortcutCreate, TypeLibraryRegister,
|
||
TypeLibraryUnregister to take a Feature, Component rather than a
|
||
Darwin Descriptor so as to compose the DD on the execute
|
||
side.
|
||
|
||
97-12-12 malcolmh Fixed bugs 3617, 3592. Incorrect resolution of
|
||
SOURCEDIR when running from media.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3612
|
||
-----------------------------
|
||
|
||
97-12-10 johndelo Opcodes: added Parent as first arg for ProductRegister and
|
||
ProductUnregister. Replaced unused opcode Secuity with
|
||
ProductRestore, used to restore product info following a
|
||
nested install. Nested installs are not fully operational yet.
|
||
|
||
97-12-10 bench Patching: added ability for patches to remove obsolete patches
|
||
that they "contain." Updated the Engine code that handles
|
||
patch application. Also updated the MsiPat tool to stuff a list
|
||
of old patch codes into the patch package to enable this
|
||
functionality. See MsiPat.hlp for more info.
|
||
|
||
97-12-10 malcolmh Removed ixoProductRegisterControlPanelInfo and
|
||
ixoProductUnregisterControlPanelInfo. This is now done by
|
||
ixoProductRegister/Unregister. Added 3 more icmrpf
|
||
values to Conman::RegisterProduct's ProductInfo
|
||
argument to support this.
|
||
|
||
97-12-10 malcolmh Bumped script version to 3 as a result of removing control
|
||
panel opcodes. New scripts are not compatible with the old ones.
|
||
|
||
97-12-10 davidmck Added EncodeString() that takes const ICHAR * since
|
||
we did not need an MsiString& and this was causing
|
||
some routines to create a unnecessary object.
|
||
|
||
97-12-10 davidmck Added /Y and /Z for selfreg and selfunreg to
|
||
msiexec. Format is /Y dll_to_register.
|
||
|
||
97-12-10 malcolmh Added ixoSourceListUnpublish operation. This removes
|
||
information registered by ixoSourceListPublish.
|
||
|
||
97-12-10 bench Fixed bugs 2470 and 3587. 2470: we now handle cases where the process
|
||
holding a file is explorer.exe and we have the full path and not just the
|
||
file name. Previously we were just comparing the name to "explorer" and
|
||
not catching this case, where we shouldn't put up the FilesInUse dialog.
|
||
3587: Re-allow the calling of Engine.ExecuteRecord(ixoActionStart,...) for
|
||
testing purposes.
|
||
|
||
97-12-09 bench Fixed bug 3583. The change was made to require passing
|
||
ACTION=[Admin|Advertise] on the command line when calling either of those
|
||
actions, rather than not passing that property and just calling DoAction(Action)
|
||
after Engine.Initialize. However, certain apis like MsiAdvertiseProduct were
|
||
not doing this so they needed to be fixes as well. The fix was to have all
|
||
apis calling either action to pass the ACTION property on the command line
|
||
to Engine.Initialize.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3609
|
||
-----------------------------
|
||
|
||
97-12-07 malcolmh Fixed bug 3443. We now correctly apply a list of transforms
|
||
specified at advertise time.
|
||
|
||
97-12-07 malcolmh Changed behavior of MsiDirectoryManager.GetSourcePath and
|
||
MsiGetSourcePath. The directory key may now be either a key
|
||
in the Directory column for any folder or the DefaultDir
|
||
value for a root folder. The latter allows passing either
|
||
the target or source property name to obtain the source path
|
||
for a folder. For example, you can call now
|
||
GetSourcePath("SOURCEDIR") to get SOURCEDIR's path.
|
||
|
||
97-12-07 malcolmh Fixed bugs 3363, 3364. Removed obsolete iei* value:
|
||
ieiUpgradeInstaller, ieiServerInaccessible,
|
||
ieiConfigDatabaseError.
|
||
|
||
97-12-07 malcolmh We now write a network source list to
|
||
HCKR\Installer\Product\{PCODE}\SourceList\Net. See the
|
||
SourceList spec for details.
|
||
|
||
97-12-07 malcolmh Changed HCKR\Installer\Product\{PCODE}\SourceList\Package
|
||
registry value to "PackageName".
|
||
|
||
97-12-07 malcolmh Changed HCKR\Installer\Product\{PCODE}\SourceList\LastUsedNet
|
||
registry value to "LastUsedSource".
|
||
|
||
97-12-07 malcolmh Costing of registry values that contain paths referencing
|
||
the install source has become a bit less granual. We
|
||
want to avoid resolving the source until as late as possible
|
||
and doing exact costing for these values requires us to
|
||
know the source up front.
|
||
|
||
97-12-07 malcolmh Added the SOURCELIST property. This is used to specify a list
|
||
of alternative sources for a product.
|
||
|
||
97-12-07 malcolmh We now defer resolving SOURCEDIR until it is necessary.
|
||
For example, during a "Remove All" operation we don't
|
||
ever need the source and therefore don't resolve SOURCEDIR.
|
||
|
||
When a source path is requested we'll resolve the source
|
||
and process the Directory table to create the source paths.
|
||
|
||
The Browse Dialog currently forces an early source resolution.
|
||
In the future it will not.
|
||
|
||
Events that can trigger source resolution include:
|
||
- The user chooses to install file from the source.
|
||
- The local cached package is missing so we need to
|
||
fetch a new one from the source.
|
||
|
||
The current implementation doesn't do much resolving, as it
|
||
still only uses the LastUsedSource. In the next few days
|
||
the final implementation will be done and the source resolution
|
||
will include scouting through the sources to find a good one,
|
||
possibly prompting the user for a source if necessary.
|
||
|
||
DEV: As a consequence of this change SOURCEDIR should
|
||
now be accessed through Engine::GetSourcePath.
|
||
|
||
97-12-07 malcolmh Setting SOURCEDIR on the command-line now has no
|
||
effect. Packages must be at the root of the source.
|
||
|
||
97-12-07 malcolmh Removed the SourcePath argument from ixoProductInfo.
|
||
The argument is no longer necessary as the last used
|
||
source is now registered by ixoSourceListPublish.
|
||
|
||
97-12-07 malcolmh Added ixoSourceListPublish opcode. As its name
|
||
indicates, this opcode publishes the product's list of
|
||
possible sources.
|
||
|
||
97-12-07 bench Changed the way the iefAdmin and iefAdvertise Engine
|
||
mode bits are set. Previously, these were set in
|
||
the ADMIN and ADVERTISE actions. As these bits are
|
||
needed in Engine.Initialize for patch handling and
|
||
proper detection of maintenance mode, they are now set in
|
||
Engine.Initialize by checking the value of the ACTION
|
||
property passed in the command line. The ACTION and
|
||
ADVERTISE actions now return iesNoAction if they are
|
||
called when the appropriate mode bits are not set.
|
||
In short, to run in either Admin or Advertise mode,
|
||
the ACTION property must be set on the command line
|
||
passed to Engine.Initialize.
|
||
|
||
97-12-07 bench Checked in version 1.5.104 of mspatch.dll and
|
||
mspatch.lib for alpha and x86. This new drop contains a
|
||
fix for a bug that prevented patching bound files.
|
||
|
||
97-12-06 bench Removed the file
|
||
\\united\darwin\darwin.rel\[build]\[platform]\samples\testdb\instmsi.exe. This was a
|
||
remnant of the launcher days when this file was
|
||
required to sit next to the launcher. Whoever needs to
|
||
install testdb from this point can get Darwin from one of
|
||
the main folders.
|
||
|
||
97-12-06 bench Added two new databases to the \\united\darwin drop.
|
||
This first is in the tools folder. The second is in
|
||
the samples folder.
|
||
|
||
minumum.msi - contains the minimum number of tables,
|
||
plus an InstallSequence table with all
|
||
built-in actions. The purpose of this
|
||
database is to prove (and test) that a
|
||
small set of tables are required in any
|
||
database.
|
||
|
||
simple.msi - contains only tables necessary to provide
|
||
simple UI and install a single file. This
|
||
database is also used by a custom action of
|
||
TestDb for a nested install.
|
||
|
||
97-12-06 bench Bumped the script version to 2 as a result of adding
|
||
new opcodes. Old scripts are not compatible with
|
||
the new Darwin.
|
||
|
||
97-12-06 bench The first phase of Darwin patching support is implemented.
|
||
All documentation is pending.
|
||
|
||
1. Support for patch packages. Patch packages are storage
|
||
files like install packages, but contain only transforms
|
||
and cab files, and information about what products they
|
||
may be applied to. Patch packages have .msp extensions,
|
||
their own OLE storage ids, an association with MsiExec /b and
|
||
their own shell verb menus. "Opening" a patch package
|
||
calls MsiExec /b with the path of the patch.
|
||
|
||
2. The MsiPat.dll tool may be used to create patch packages.
|
||
See help for CreatePatchPackage and
|
||
CreatePatchPackageFromImages.
|
||
|
||
2. Added the MsiExec /b option, which calls MsiApplyPatch with the
|
||
path of a patch package.
|
||
|
||
3. Added the MsiApplyPatch api. The API takes the full path
|
||
of a patch package and applies the patch to all advertised
|
||
products the package designates as valid targets. This
|
||
is accomplished by setting the PATCH property on the command
|
||
line passed to Engine.Initialize.
|
||
|
||
4. Added support for the PATCH property in the Engine. This
|
||
property defines the path of a new patch package to be applied
|
||
to the product. Engine.Initialize applies all valid transforms
|
||
from the package as well as transforms from previously applied
|
||
packages.
|
||
|
||
5. The PublishProduct and UnpublishProduct actions handle the
|
||
registration and unregistration of patch packages, and the
|
||
caching of new patch packages to the %windows%\msi folder.
|
||
The PublishProduct detects if a new patch has been
|
||
applied and dispatches the ixoPatchRegister and
|
||
ixoPatchCache operations for it. The UnpublishProduct action
|
||
automatically unregisters all patches currently applied to the
|
||
product.
|
||
|
||
6. Added the ixoPatchRegister and ixoPatchUnregister operations,
|
||
which register and unregister patch packages for a product.
|
||
Each patch is registered under
|
||
|
||
HKCR\Installer\Patchs\{patch guid}
|
||
|
||
which contains the SourceList for the patch. Each product
|
||
registers the patches applied to it under
|
||
|
||
HKCR\Installer\Products\{product code}\Patches
|
||
|
||
which contains an ordered list of the patches (in the order
|
||
the patches are to be applied) and the list of transforms
|
||
from the patch that may be applied to the particular product.
|
||
|
||
7. Added the ixoPatchCache operation, which moves a patch package
|
||
from a temporary location (like "Temporary Internet Files") to the
|
||
%windows%\msi folder. This op also registers the path of the
|
||
cached package under the key
|
||
|
||
HKLM\SW\MSFT\Windows\CurrentVersion\Installer\Patches\{patch code}
|
||
|
||
8. Added the Patch and PatchPackage tables. The Patch table defines
|
||
the various file patches belonging to all patch packages applied
|
||
to the product. The PatchPackage table defines all Patch packages
|
||
currently applied to the product. These tables will only be added
|
||
to a database by patch transforms.
|
||
|
||
9. Added the private APIs MsiEnumPatches and MsiGetPatchInfo. The first
|
||
enumerates all patches currently applied to a given product. The
|
||
second queries for various properties of an applied patch.
|
||
|
||
Major remaining items for patching: patch resiliency, patches that change
|
||
the product code, patches with cabinets outside the package, PatchValidate
|
||
action, removal of old patches when a new patch overrides them, digital
|
||
signatures for patch packages, admin install patching and RFS component
|
||
handling.
|
||
|
||
97-12-06 malcolmh A number of fixes have been made to transform
|
||
generation, transform application, the database, and
|
||
msitran to correct problems related to exceeding the 64K
|
||
string limit. (see bug 3537 for full details).
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3605
|
||
-----------------------------
|
||
|
||
97-12-05 chetanp the szQualifier arg in MsiEnumComponentQualifiers is
|
||
now mandatory (cannot be null).
|
||
|
||
97-12-05 davidmck Made DllMain the entry point for msi.dll. This
|
||
removes the standard clibrary initialization from the
|
||
loading of msi.dll. We now rely on internal functions to
|
||
do some of what the standard clibrary did for us.
|
||
Most notably - FIsdigit for isdigit, strtol for atol
|
||
or atoi, PchMbsStr for mbsstr.
|
||
|
||
97-12-05 davidmck Removed DCT_FLOAT support for JPEG pictures. The
|
||
routines were never called anyway (we use Slow Integer
|
||
versions currently) and this saves us code size and
|
||
standard c library calls.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3605
|
||
-----------------------------
|
||
|
||
97-12-05 johndelo Implemented MsiSetExternalUI - with message filter.
|
||
Order of message processing is as follows:
|
||
If an external message handler is supplied
|
||
AND the message mask bit for the message is TRUE,
|
||
the message is sent to the external UI handler.
|
||
If the handler returns other than imsNone, then
|
||
UI handling is complete. If it returns imsNone, then
|
||
normal UI handling proceeds as if external not called.
|
||
If UI mode is None (quiet), no further UI is done.
|
||
If UI mode is Reduced or Basic, MSI handler DLL is called.
|
||
If UI mode is Basic, the internal message handler is called.
|
||
None of this affects logging or dialog handling.
|
||
|
||
97-12-05 chetanp Added support for machine assignment - bug 2304
|
||
|
||
Affects
|
||
1. Where we write OLE and Darwin goop.
|
||
2. Where we cache the icons and the transforms.
|
||
3. Where we create the shortcuts.
|
||
4. Where we write the HKCR entries from the Registry table
|
||
|
||
97-12-05 chetanp 3. Darwin packages can be assigned to machines or
|
||
to users. The decision is made during deployment when
|
||
calling the new MsiAdvertiseScript API.
|
||
The old MsiProcessAdvertiseScript API will call into
|
||
the new MsiAdvertiseScript API with
|
||
SCRIPTFLAGS_MACHINEASSIGN bit set. This is for the older NT5 Beta1
|
||
builds that did not "truly" support user assignments.
|
||
|
||
97-12-05 chetanp 4. Changed MsiAdvertiseProduct API in order to
|
||
support machine and user assignments for the stand-alone
|
||
scenario
|
||
|
||
97-12-05 chetanp 5. There are two distinct flags /am and /au to
|
||
msiexec.exe on the command line to trigger machine or
|
||
user assignment respectively ( /a with no modifier
|
||
will initiate a per machine assignment).
|
||
|
||
97-12-05 chetanp 6. Changed the MSI API to first attempt to read its
|
||
configuration data from under
|
||
HKU\\<sid>_Merged_Classes and if that fails then from under HKCR.
|
||
|
||
97-12-05 chetanp 7. Changed Darwin Descriptor types in the Registry
|
||
from REG_SZ to REG_MULTI_SZ for the coming Darwin
|
||
Descriptor Lists support - bug 2213.
|
||
|
||
97-12-04 malcolmh Fixed bug 3545. We now delete the cached database on
|
||
uninstall.
|
||
|
||
97-12-04 malcolmh Fixed bug 3547. Msiexec /i works again.
|
||
|
||
97-12-03 MattWe MsiSpy: So far, updated all but Japanese (unused)
|
||
x86 international DLLs. Updated german alpha DLL.
|
||
Waiting on arabic.
|
||
|
||
97-12-03 MattWe MsiSpy:
|
||
Icons: Added 32x32 variants of all icons
|
||
Added absentcomponent icon for future use
|
||
Advertising: added advertise on feature level,
|
||
from JBelt.
|
||
Removed usage of MsiLocateComponent
|
||
|
||
97-12-03 davidmck Removed the static constructors and destructors.
|
||
Constructors needed either code to change or MichMarc's
|
||
PreExec tool to be run on the objs.
|
||
Destructors required code changes. As part of this I
|
||
changed the CActionEntry class and moved the built-in
|
||
actions to a table. This table needs to be kept in
|
||
order. A check is run in the debug version to assure
|
||
this.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3528
|
||
-----------------------------
|
||
|
||
97-11-26 davidmck Added code to instmsi that binds the darwin exes and
|
||
dlls that we install. Improves loading performance
|
||
of msi.dll.
|
||
|
||
97-11-26 bench Fixed bug 3456. In basic UI when an error message
|
||
(MessageBox) is displayed, the progress dialog is
|
||
disabled, meaning you cannot select it or click the
|
||
cancel button.
|
||
|
||
97-11-25 malcolmh The way we validate spaces and periods in paths has
|
||
changed slightly. We now mimic the Explorer,
|
||
following these rules:
|
||
|
||
For a path segment:
|
||
1) Leading spaces are removed
|
||
2) Trailing spaces and periods are removed
|
||
3) Leading periods are an error
|
||
|
||
Note that the removal of spaces and periods
|
||
operates like this: Remove the leading/trailing character.
|
||
Now, take the new path and validate it using the
|
||
rules.
|
||
|
||
Some examples (where _ represents a space):
|
||
|
||
Before * After
|
||
-----------------
|
||
C:\..Foo * Error
|
||
C:\Foo.. * C:\Foo
|
||
C:\__Foo * C:\Foo
|
||
C:\.Foo. * Error
|
||
C:\.. * Error
|
||
C:\Foo__. * C:\Foo
|
||
C:\Foo._._ * C:\Foo
|
||
|
||
Among other things, this affects both the "New Folder"
|
||
button in the Browse Dialog and the PathEdit control.
|
||
|
||
97-11-25 davidmck Implemented the Office memory manager. This should
|
||
give us more control over our allocations. More
|
||
cleanup is probably needed to remove some features we do
|
||
not need.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3525
|
||
-----------------------------
|
||
|
||
97-11-24 MattWe Engine: removed dependency on InstallSequence,
|
||
AdvtSequence, and AdminSequence. Minimum.msi no longer
|
||
has these tables.
|
||
|
||
97-11-21 malcolmh Fixed bug 2224. We now support leaving off the
|
||
".msi" extension when launching an install. If we can't
|
||
find the path you specify then we'll tack on ".msi" for
|
||
you if you don't specify your own extension.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3521
|
||
-----------------------------
|
||
|
||
97-11-21 chetanp added ixoProgressTick operation to "fill in" gaps
|
||
for the progress bar.
|
||
|
||
97-11-21 chetanp changed the system files refcounting mechanism to
|
||
use the increment/ decrement registry value operation -
|
||
so that the entire read registry value and
|
||
increment/ decrement is atomic.
|
||
|
||
97-11-21 chetanp added increment regvalue and decrement regvalue
|
||
operations. If one specifies "#+" for a registry value,
|
||
Darwin increments the existing integer registry value.
|
||
If the value is not an integer or absent, we set it
|
||
to 1. Similarly if one specifies "#-" for a registry
|
||
value, Darwin decrements the existing integer
|
||
registry value. If the value is not an integer or reaches
|
||
0, we remove the registry value.
|
||
|
||
97-11-20 johndelo The ODBC support is working. What is missing the the
|
||
changing of the directories to reflect where an older
|
||
version of a driver lives, and the unregistration of
|
||
existing drivers before upgrading to a newer version.
|
||
Rollback of the ODBC-managed registration is not yet
|
||
supported. I will be checking in an ODBC MSI package
|
||
shortly that installs all Office97 ODBC components.
|
||
|
||
97-11-20 johndelo The stand-alone script executor, RunScrpt.EXE is now
|
||
built and delivered. A variety of useful scripts are
|
||
checked into DARWIN\src\tools\script. They generally
|
||
have a Help sub that can also be invoked with "?".
|
||
The validation functions are also supplied as in the
|
||
single line format for use within the CustomAction table.
|
||
Other functions list scripts or show MSI registration.
|
||
|
||
97-11-20 tracyf Costing performance has been SIGNIFICANTLY improved,
|
||
through optimizations in both MsiEngine, and in
|
||
MsiHandler.
|
||
|
||
First, at maintenance mode time, directory
|
||
resolution has been altered significantly to avoid
|
||
excessive "Writable" and costing checks.
|
||
|
||
Second, the internal costing code itself was optimized.
|
||
|
||
Third, when the full or reduced UI is present (i.e.
|
||
running with MsiHandler), all up-front costing is
|
||
now done in the background, allowing the first wizard
|
||
sequence dialog to pop up quickly. If the user manages to
|
||
navigate to the feature selection dialog before costing
|
||
is complete, and selects a feature, the string that
|
||
normally displays the feature cost is replaced with a
|
||
new string from the UIText table, "SelCostPending"
|
||
(which in TestDB says "Compiling cost for this
|
||
feature"). If running with the basic UI, up-front
|
||
costing is not needed at all, and is no longer done
|
||
(a final full costing pass is still done at
|
||
InstallValidate time, regardless of UI).
|
||
|
||
97-11-20 tracyf RemoveFiles action now supports "RemoveFilesOfType"
|
||
functionality. Specifically, the FileName field of
|
||
the RemoveFile table now supports * and ? wildcards,
|
||
allowing deletion of all files that match the
|
||
specification (such as *.doc, d*, etc). The RemoveFiles
|
||
table also has a new integer "InstallMode" column,
|
||
allowing specification of when to perform the deletion (1:
|
||
at install time, 2: at remove time, 3: at either
|
||
time). If the column is not present, the InstallMode
|
||
value defaults to 1 (at install time).
|
||
|
||
97-11-20 bench fixed bugs 2497 and 3219. We now log when an action
|
||
starts and when it ends. These messages are Info
|
||
messages so the "i" logmode is required. The two
|
||
messages are 15 and 16 in the error table.
|
||
|
||
97-11-20 MattWe Security: Updated CreateFolder, AddRegistry, and
|
||
InstallFile actions to use security from the
|
||
LockPermissions table. Rollback and the additional actions
|
||
specified for lockpermissions are holding pending
|
||
finishing touches/test plan.
|
||
|
||
97-11-20 MattWe Services: Added ServiceInstall action. Added
|
||
classification of errors for ServiceControl. (Better
|
||
resolution of fatal versus ignorable errors.) Also
|
||
added rollback to DeleteService.
|
||
|
||
97-11-20 MattWe Schema: Added optional ServiceInstall table. Describes a
|
||
service to be added to an NT system. Note that this is
|
||
basically the registration, it requires a file, and
|
||
can be supported via the registry table for
|
||
additional parameters.
|
||
|
||
Schema: Added optional LockPermissions table. Describes
|
||
permissions to be set via actions on various other
|
||
tables. (registry, file, CreateFolder, et cetera.)
|
||
|
||
97-11-20 MattWe MsiVolume: Added FileAttributes property, with
|
||
attendant automation. Allows determination of useful
|
||
things like whether the volume supports ACLs.
|
||
|
||
97-11-20 MattWe Engine: Added value to ComponentID for temporary
|
||
costing components. This allows us to make the
|
||
ComponentId column in the schema non-nullable. (As it
|
||
should be.)
|
||
|
||
97-11-20 malcolmh Fixed Handler bugs 2594, 3011, 3012, 3415, 3446 and
|
||
Path bug 3240.
|
||
|
||
97-11-19 CHETANP Changed the dwReserved parameter of
|
||
MsiProvideComponent and MsiProvideQualifiedCompoent to the
|
||
installation mode. This can be either INSTALLMODE_DEFAULT (the
|
||
original behavior), INSTALLMODE_EXISTING (provide the
|
||
path, only if feature is installed and valid, else
|
||
return ERROR_FILE_NOT_FOUND) or a combination of the
|
||
REINSTALLMODE flags (trigger a reinstall using this
|
||
and then return the path).
|
||
|
||
97-11-19 CHETANP We now refcount EVERY file for a component that is
|
||
installed to the system folder. At the time of
|
||
install, we increment the refcount for each of the files. At
|
||
the time of uninstall we recrement the refcount for
|
||
each of the files. If ANY of the files have a
|
||
refcount greater than 0, the entire component is not
|
||
uninstalled.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3518
|
||
-----------------------------
|
||
|
||
97-11-17 johndelo MsiOpenPackage supports a database handle in place of
|
||
the path, as well as InstallProduct, e.g. "#123".
|
||
After MsiOpenPackage, you can set properties and
|
||
call actions (built-in or custom) and sequences.
|
||
|
||
97-11-17 johndelo The stand-alone script executor, RunScrpt.EXE is not
|
||
part of the normal build, but may be built using
|
||
"make debug runscrpt". It has command-line help.
|
||
Several useful VBScript files have been checked in,
|
||
DARWIN\src\tools\script\*.vbs , which will display
|
||
various MSI information about products and scripts,
|
||
will run custom actions and installs, etc. To find
|
||
out what functions are available in each, use the
|
||
command "RunScrpt {scriptfile} ?" (calls Sub Help).
|
||
|
||
97-11-17 johndelo The internal functions EnumerateScript & OpcodeName
|
||
have been removed, along with the MsiExec -L option.
|
||
The functionality is now only available through the
|
||
API functions MsiOpenDatabase, MsiDatabaseOpenView,
|
||
which will accept a script file and return fetched
|
||
records, complete with format strings. See the script
|
||
function ListScript(script) in ShowMsi.vbs for usage.
|
||
|
||
97-11-17 bench Added the CreatePatchPackageFromImages method to
|
||
msipat.dll. See help for more info.
|
||
|
||
97-11-16 bench Added WindowsVolume property, which is the path of
|
||
the volume the Windows folder resides on. Like all
|
||
path properties, this path always ends with a
|
||
backslash. This can be used to set the default install point
|
||
if the author want the install to be on this volume,
|
||
since ROOTDRIVE will not necessarily be set to this
|
||
volume.
|
||
|
||
|
||
97-11-16 bench Added script versioning. Darwin now maintains 3
|
||
script version values: the current script version, which
|
||
is written to each generated script file (install or
|
||
rollback) in the ixoHeader opcode, and the minimum
|
||
and maximum script versions that are supported. If an
|
||
attempt is made to run a script whose version is not
|
||
supported, an error will occur.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3514
|
||
-----------------------------
|
||
|
||
97-11-13 darwindev Considerable progress made in reducing the amount of
|
||
required empty tables. DARWIN\data\minimum contains
|
||
to current minimum required with a full sequence table.
|
||
Goal is to only require tables that are actually used.
|
||
|
||
97-11-13 johndelo Added a SEQUENCE action, that simply calls the engine
|
||
Sequence method with the value of the SEQUENCE property,
|
||
which MUST be the case-sensitive table name of a sequence
|
||
table. This is only intended for use by authoring tools
|
||
to be able to run custom sequences of actions for tasks
|
||
such as validation, builds, imports, etc.
|
||
|
||
97-11-13 johndelo Added the ability to launch an install or any other
|
||
public action from an open database handle, using
|
||
MsiInstallProduct. The database handle must be passed
|
||
as the package path using the string value of the
|
||
integer database handle prefixed with a pound sign '#',
|
||
i.e. "#27". This is intended only for use during
|
||
authoring sessions, to allow the install to be tested,
|
||
and to support running custom sequences, such as validation.
|
||
Currently, the summary properties are required to be
|
||
set as in a normal install, but this may be relaxed in
|
||
future builds if the action is not "Install".
|
||
|
||
97-11-13 chetanp added support for Registry key (+ value) to be the
|
||
Key Paths of components. The Component.KeyPath may now
|
||
null (denoting that the Component.Directory_ be used
|
||
as the key path) or be either a key into the File
|
||
table or into the Registry table (governed by the
|
||
irsRegistryKeyPath bit of the Component.RunFromSource
|
||
column).
|
||
|
||
97-11-12 tracyf A new "unified" progress bar scheme has been
|
||
implemented (i.e. a single, weighted, progress bar across
|
||
all actions). Also, we've now got a "time remaining"
|
||
indicator, which typically gets displayed just below
|
||
the progress bar. IMPORTANT: database authoring
|
||
changes are required to take advantage of this new
|
||
functionality (without the changes, progress bars will go
|
||
dead, but the install should otherwise behave
|
||
normally). A description of the new scheme, and the
|
||
authoring changes required, is posted at
|
||
\\jdelo3\MsiDoc\Progress.doc.
|
||
|
||
97-11-12 tracyf Support for advancing the progress bar either forward or
|
||
backward is now built into the Handler and the basic UI
|
||
(simpler, and necessary so that the "time remaining"
|
||
feature still works properly when advancing backward).
|
||
|
||
97-11-12 tracyf The IMsiEngine interface now supports an ActionProgress
|
||
function, which is a simplified replacement for the
|
||
Message(imtProgress, ...) calls that were being made by
|
||
actions that run before InstallValidate. These actions don't
|
||
report actual progress (since there can be no meaningful
|
||
progress bar before script execution time), so they now just
|
||
call ActionProgress to keep the Cancel button alive.
|
||
|
||
97-11-11 malcolmh The DATABASE property is now private. It's now
|
||
Database. This property can therefore no longer be set on
|
||
the command line.
|
||
|
||
97-11-11 malcolmh Added the GetName property to the MsiStorage object.
|
||
Regression of the "delete on release" functionality
|
||
is advised, as the code that does the deleting at
|
||
release time was changed to take advantage of this new
|
||
property.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3511
|
||
-----------------------------
|
||
|
||
97-11-10 chetanp added component thrashing. If there is a different
|
||
component (id) installed in the same location with the
|
||
key file matching the key file of our component,
|
||
then we forcefully install all the files of our
|
||
component (disregarding the file versions) and mark the other
|
||
component as absent.
|
||
|
||
97-11-10 chetanp changed InstallFiles action such that we do not
|
||
compute files in use, unless we have full UI. Needed to
|
||
add a new "read-only" UILevel property.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3507
|
||
-----------------------------
|
||
|
||
97-11-07 davidmck Added version numbering to instmsi.exe.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3507
|
||
-----------------------------
|
||
|
||
97-11-06 malcolmh In the IxoDatabaseCache opcode the database is now
|
||
specified as a full path instead of a folder and file.
|
||
|
||
97-11-06 malcolmh We now drop cabinets when we cache packages in the
|
||
MSI directory. If we need the cabinets again we'll
|
||
look for them on the source.
|
||
|
||
97-11-06 johndelo ODBC tables, actions, opcodes added, not implemented yet.
|
||
|
||
97-11-06 johndelo When exporting MSI tables that have extended (>127)
|
||
characters, the codepage will be stored in the .idt file.
|
||
If the database codepage is not set, the current
|
||
codepage will be used. When importing tables with a
|
||
codepage specified, the database will be set to that
|
||
codepage. Full details in codepage.doc. (\\jdelo3\msidoc)
|
||
|
||
97-11-06 davidmck We now link with the libcmtl objects rather than the
|
||
lib itself in the ship build. This should keep us
|
||
from accidentally adding std clib dependancies. Use
|
||
extlib.bat in \darwin\tools to create the objects when
|
||
we take a new lib.
|
||
|
||
97-11-06 bench "Directory Aliasing": added the feature to allow a
|
||
path in the Directory table to resolve to its parent's
|
||
path. Previously each record was required to have a
|
||
valid sub-directory which was appended to the
|
||
parent's path. Now, the DefaultDir value may be a '.',
|
||
which indicates that it resolves to its parent's path.
|
||
This allows a path to be set to a directory like
|
||
SystemFolder by default but also be changed by AppSearch.
|
||
|
||
97-11-06 bench Fixed bug 3228. This caused a slight change in the
|
||
behaviour of the DirectoryManager. Previously when a
|
||
path was changed with SetTargetPath (as is done with
|
||
the browse dialog) all other paths objects whose
|
||
paths were either equal to or children of the path being
|
||
changed would also be changed. Now, this criteria
|
||
must be met AND the path must be a child in the
|
||
Directory table of the path being changed.
|
||
|
||
97-11-06 malcolmh I've added a new Control Event, "DoAction". This
|
||
control event is intended to be used to invoke custom
|
||
actions. For example, you could have a button on a
|
||
dialog that, when clicked, invoked a custom action that
|
||
emptied the recycle bin.
|
||
|
||
97-11-06 davidmck Changed ship build to use LIBCMTL.LIB, the lego
|
||
version of the c-runtimes. This should not affect the
|
||
build since the symbols in this lib will be stipped by
|
||
the linker.
|
||
|
||
97-11-06 davidmck Removed the use of malloc from the jpeg routines. We
|
||
now use the darwin memory allocator
|
||
Changed the debug memory manager to use a hash table
|
||
rather than a single linked list for keeping track of
|
||
allocated memory. Should only affect debug.
|
||
|
||
97-11-05 malcolmh Msiinfo has been updated to handle validating the
|
||
strings pools of databases that have 64K+ unique
|
||
strings. It also now prints the codepage of the string
|
||
pool.
|
||
|
||
97-11-05 malcolmh Fixed bugs 3312, 3326. 1) In engine::initialize we
|
||
now verify that the database storage file has the MSI
|
||
database storage ID. 2) Views now supports joining
|
||
long & short columns.
|
||
|
||
97-11-04 johndelo Note: database schema will be changing to specify the
|
||
icdLocalizable attribute, changing column specifications
|
||
from 'S' to 'L' where appropriate. Make preparations now.
|
||
|
||
97-11-04 johndelo Expanded string pool implemented. When the number of
|
||
unique strings exceeds 64K, 3-byte indices will be used
|
||
in the persistent table streams only, allowing up to
|
||
16 million unique strings. Of course, these larger
|
||
databases are not readable on older MSI versions.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3504
|
||
-----------------------------
|
||
|
||
97-11-03 bench Added MsiSpy directory to the \\united\darwin drop
|
||
under Samples. This addition should be propogated to
|
||
\\united\darrel.
|
||
|
||
97-11-03 malcolmh Made two changes to MsiPath.SubFolders. 1) It now
|
||
excludes the recycle bin. 2) It takes an optional
|
||
parameter that can be used to exclude hidden sub folders.
|
||
|
||
97-11-02 johndelo Column attribute letter 'L' added: localizable string.
|
||
Returned by MsiGetColumnInfo, used by Export/Import.
|
||
Currently in column catalog as bit 9 (512), but may
|
||
change to return string when querying column catalog.
|
||
|
||
97-10-31 malcolmh Fixed bug 3034. We now support the LOCALIZABLE SQL
|
||
keyword to indicate that a column is localizable.
|
||
|
||
97-10-31 chetanp SharedDLL refcounts for component keypaths are now
|
||
being incremented once for each Darwin-installed
|
||
product.
|
||
|
||
97-10-31 chetanp put a check in to assert and fail during component
|
||
registration/unregistration if the key path of the
|
||
component is a file that does not belong to that
|
||
component.
|
||
|
||
97-10-29 johndelo Fixed OLE registration problems on original Windows95.
|
||
OLEAUT32.DLL doesn't support current typelib format or
|
||
UnRegisterTypeLib, so typelib is ignored on Windows95.
|
||
Programs that can use the typelib also require OLEAUT32.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3431
|
||
-----------------------------
|
||
|
||
97-10-31 chetanp fixed external shared dll count bug 3148.
|
||
|
||
97-10-30 malcolmh Fixed bug 2506. We no longer allow creation of a
|
||
column named "_RowState" via SQL.
|
||
|
||
97-10-30 malcolmh The BindImage table is no longer required. A missing BindImage
|
||
table now behaves just as an empty one did in the
|
||
past.
|
||
|
||
97-10-30 malcolmh The Icon table is no longer required. A missing Icon
|
||
table now behaves just as an empty one did in the
|
||
past.
|
||
|
||
97-10-30 malcolmh Fixed bug 3286 and 3288. These were both SQL
|
||
problems. IS NOT NULL didn't work and using the <> operator
|
||
in an expression with a string literal didn't work.
|
||
|
||
97-10-30 chetanp Added PuyblishComponent.AppData column for author to
|
||
specify application specific data associated with
|
||
Qualified Components. See help on PublishComponent
|
||
table and MsiEnumComponentQualifiers for more.
|
||
|
||
97-10-30 chetanp Added Class.Argument column so that authors can
|
||
provide arguments to LocalServers when invoked by OLE.
|
||
Made changes to the RegisterClassInfo and
|
||
UnregisterClassInfo action. See help on Class table for more.
|
||
|
||
97-10-30 chetanp Changed MsProvideQualifiedComponent to account for
|
||
optional ApplicationData that may follow the Darwin
|
||
Descriptor. See doc on PublishComponent table for
|
||
more.
|
||
|
||
97-10-30 chetanp Added functionality to MsiEnumComponentQualifiers to
|
||
return back ApplicationData. See doc on
|
||
PublishComponent table and MsiEnumComponentQualifiers for more.
|
||
|
||
97-10-30 MattWe Fixed the UNICODE version of FailAssertMsg(char*) to
|
||
truncate asserts, rather than allocating memory.
|
||
(Fixes the problem of an assert because you ran out of
|
||
memory then trying to allocate more memory...)
|
||
|
||
97-10-30 bench MsiPatch: support for retaining/ignoring bytes in
|
||
CreatePatch() is now supported. See help for more
|
||
info.
|
||
|
||
97-10-29 malcolmh Fixed bug 3110. Generating tranforms with binary
|
||
streams should work now.
|
||
|
||
97-10-29 MattWe Fixed AssertSz variants to no longer allocate
|
||
memory. They'll now truncate at the maximum length of the
|
||
internal buffer. (512 bytes ansi/512 characters
|
||
UNICODE) Also fixed a #define that forced a cast on
|
||
AssertSz that hid the UNICODE variant.
|
||
|
||
97-10-28 bench Added ServicePackLevel property which is set to the
|
||
numeric service pack level if a service pack is
|
||
installed.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3428
|
||
-----------------------------
|
||
|
||
97-10-27 johndelo Provided mechanism to reset a stream in a record field..
|
||
Calling MsiRecordSetStream(hRecord, iField, 0) on a
|
||
field actually containing a stream will reset the
|
||
stream to the beginning. If the field does not contain
|
||
a stream, it will fail. Feature request - Bug 1380.
|
||
|
||
97-10-27 malcolmh Added a CopyTo method to the Storage object. This
|
||
method wraps the IStorage::CopyTo method which allows
|
||
you to copy one storage to another, while excluding
|
||
certain streams and substorages.
|
||
|
||
97-10-27 bench Fixed bug 2934. The problem was that
|
||
MsiString.Compare(iscWithin...) was returning the number of bytes
|
||
into the string the sub-string started, rather than
|
||
the number of characters. All other MsiStrings deal
|
||
with characters, so this caused problems when this
|
||
value was passed to other MsiString functions. This is
|
||
very low-level code but should only effect DBCS string
|
||
handling.
|
||
|
||
97-10-26 bench Added AdminUser property, set in
|
||
Service.SetPlatformProperties, which is set if the user has
|
||
Administrator priveleges. By convention, this property is always
|
||
set on Win95.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3421
|
||
-----------------------------
|
||
|
||
97-10-21 chetanp Component Manager change -we now prevent a
|
||
Component, which is in the Absent state from going into the
|
||
Absent state (we make it go to the null state).
|
||
|
||
97-10-21 MattWe MsiSpy: updated all the installation databases to
|
||
get the correct column type definitions, and added
|
||
empty blank tables from schema so that the ISVs can
|
||
immediately start populating these. (Chetan fixed the
|
||
column names last night, but we missed the definitions
|
||
themselves for nullable/size/type)
|
||
You should now be able to merge these databases into
|
||
schema, and they pass validation without any errors/
|
||
warnings.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3421
|
||
-----------------------------
|
||
|
||
97-10-20 chetanp the ixoComponentRegisterClient and the
|
||
ixoUnregisterComponentClient operations are obsolete.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3420
|
||
-----------------------------
|
||
|
||
97-10-19 johndelo Changes made to Database Import/Export per 9/25/97 e-mail.
|
||
Binary streams are exported into a subdirectory named the
|
||
same as the base file name supplied for the table. (no extension)
|
||
Subdirectories are created only when necessary to hold streams.
|
||
The files in the subdirectory will be named the same as the
|
||
primary key value for the row containing the stream column.
|
||
If there is no dot in the name, the extension .ibd is appended.
|
||
Thus if you use the file name as the table key value, it will
|
||
be preserved on Import/Export and uniqueness will be enforced.
|
||
Current database exports can be converted by simply moving the
|
||
.ibd files into the proper subdirectory, typically "Binary".
|
||
|
||
The MsiDb tool has be updated to preserve the table names by
|
||
default in the *.idt archive files. If this is not acceptable,
|
||
there is and option, "-s", that truncates export names to 8.3
|
||
with possible collisions resulting in loss of data. Stream
|
||
names are determined by primary key value and aren't truncated.
|
||
|
||
97-10-19 johndelo Internal API for IMsiServices::CreateDatabase changed
|
||
to take an idoEnum instead of a Bool for open mode.
|
||
This enum is now the same in both automation objects,
|
||
and matches the external API as well. It is now passed
|
||
through intact, enabling all open modes to function.
|
||
|
||
97-10-19 johndelo Custom action support is now complete, supporting all
|
||
modes as described in customtb.doc currently on:
|
||
\\jdelo3\darwin\doc\ or \\xlweb\darwindoc\.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3417
|
||
-----------------------------
|
||
|
||
97-10-17 chetanp Advertisement Changes -
|
||
We have added a new ProgId table to allow for
|
||
multiple progids for a given CLSID and to be able to
|
||
associate an icon with an extension which has a progid but
|
||
no corr. CLSID. Also several column names have been
|
||
rectified to adhere to naming conventions see bug
|
||
3161.
|
||
|
||
97-10-17 chetanp Component Management changes -
|
||
Prior to this build component with the same
|
||
Component ID used to be redirected to the same physical
|
||
location for a local installation.
|
||
Hence there could not be more than one local
|
||
instalation on a machine.
|
||
The component detection mechanism (for
|
||
MsiLocateComponent) was allowed to return ANY of several
|
||
installations of a component (even if not installed by the
|
||
requesting product).
|
||
The new logic is that a product do not use a
|
||
locally installed component that it has not installed. Also
|
||
we do not share sources. A locally installed
|
||
component is shared by virtue of 2 products wanting to
|
||
install the component in the same physical location. A the
|
||
physical files of a locally installed component are
|
||
removed when the last client of *that* install
|
||
location uninstalls the component. A component is removed
|
||
(the rest of the stuff - registry entries,...) when
|
||
the last client of the component uninstalls the
|
||
component. Hence we have a new iisFileAbsent state within
|
||
the Selection Manager that allows us to uninstall files
|
||
but not uninstall the component.
|
||
|
||
|
||
97-10-17 tracyf Fixed bug 2975, modifying the Selection Manager
|
||
initialization process so that the installed states of
|
||
features and components are resolved BEFORE the
|
||
conditions specified in the Component Condition column, and
|
||
in the Condition table, are resolved. This allows
|
||
conditional expressions to make use of the current
|
||
installed states of features and components.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3417
|
||
-----------------------------
|
||
|
||
97-10-17 johndelo MsiDatabaseGenerateTransform and
|
||
IMsiDatabase::GenerateTransform arguments swapped to match doc
|
||
and usage requirements. The current database (new) is compared
|
||
to the base database (old). MsiTran command-line args
|
||
unchanged. MsiTran gives formatted error messages now.
|
||
|
||
97-10-16 tracyf Modified the Selection Manager so that if a parent feature
|
||
is changed to the advertised state, and has one or more
|
||
children that are authored as non-advertisable, the child
|
||
feature(s) will be set to the absent state. (Before, the
|
||
child feature's state would not change, potentially
|
||
leaving it in the uncomfortable position of being
|
||
installed while the parent is not installed (only
|
||
advertised).
|
||
|
||
Also fixed a problem in which a parent set to the
|
||
advertised state was inadvertently being changed to the
|
||
absent state if any child was changed to the absent state.
|
||
|
||
97-10-16 bench bug 3132: renamed the "Enable" rollback registry
|
||
value to "Disable". If this value exists with any data,
|
||
rollback is disabled.
|
||
|
||
97-10-16 bench Bumped the database version to .21 to coincide with
|
||
the schema changes.
|
||
|
||
97-10-16 bench Changed the interpretation of the Shortcut.WkDir
|
||
column. It is no longer a foriegn key to the Directory
|
||
table, it is simply the name of a property defining
|
||
the working directory (which could be the name of a
|
||
directory in the Directory table)
|
||
|
||
97-10-16 bench Made the following table and column names:
|
||
|
||
FileSignature --> Signature
|
||
Shortcut.IconLocation --> Shortcut.Icon_
|
||
Shortcut.WkDir_ --> Shortcut.WkDir
|
||
ListView.Image --> ListView.Binary_
|
||
Icon.IconName --> Icon.Name
|
||
Icon.IconData --> Icon.Data
|
||
|
||
97-10-16 bench Removed all help topics for Tables and Actions from
|
||
msiauto.hlp. Jumps that reference those topics have
|
||
been updated to reference msi.hlp.
|
||
|
||
97-10-15 johndelo AutoApi is now merged into Msi.Dll, most of the size
|
||
increase being the typelib. AutoApi is still built
|
||
separately for a while (who ever registers last wins).
|
||
|
||
97-10-15 johndelo Shortcuts will be written to the new CLSID-based format
|
||
if the IE4.01 or greater shell is detected.
|
||
|
||
97-10-15 MattWe Added ServiceControl table, and three new actions to go
|
||
with it: StartService, StopService, and DeleteService
|
||
Updated testdb to copy a couple of new files (see
|
||
my first entry today,) and a set of Services sub-features
|
||
(with related components.) Right now, this just
|
||
copies the files over. Until InstallService is ready,
|
||
see me for how to set up a test for these NT only actions.
|
||
|
||
97-10-15 MattWe Added ClearReg to files built on darwin.rel, and updated
|
||
copybld to place clearreg in %TOOLSRELDIR%
|
||
|
||
TESTERS: please drop TOOLS\clearreg.exe to darrel.
|
||
|
||
97-10-15 malcolmh Fixed bug 3143: Crash in MsiInstallProduct.
|
||
|
||
97-10-15 MattWe Added darwin\data\test\Services,
|
||
darwin\data\test\Services\simple.exe and client.exe.
|
||
This is a simple Service for testing the new services
|
||
actions. To use, run "simple.exe -install" (or testdb
|
||
will install it automatically when I finish InstallService,)
|
||
and then run client.exe to make sure it started
|
||
successfully. You can remove the service via testdb,
|
||
or run "simple -remove"
|
||
|
||
TESTERS: these files should be added to the drop of
|
||
testdb.
|
||
|
||
97-10-15 tracyf Added another level of caching to the process of creating
|
||
MsiVolume objects. Bottom line: the number of
|
||
WNetAddConnection calls Darwin needs to make when
|
||
reading/writing network shares is greatly reduced,
|
||
speeding up the initialization and file copying processes.
|
||
|
||
97-10-15 tracyf Fixed bugs 2447, 3125, and 3129, all dealing with the fact
|
||
that Darwin's WNetCancelConnection calls were failing,
|
||
particularly on Win95. This was leading to errors involving
|
||
"Too many net connections" .
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3414
|
||
-----------------------------
|
||
|
||
97-10-14 chetanp fixed self reg bug 3139.
|
||
we were failing on n/w files. we always impersonate
|
||
for self reg now.
|
||
may not run on tied down systems. if we do not
|
||
impersonate certain selfreg's fail
|
||
as they themselves try to access the file system from
|
||
within the call ifthe selfreg file is on the
|
||
network,
|
||
this does not work.
|
||
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3414
|
||
-----------------------------
|
||
|
||
97-10-13 malcolmh We now use SEH (C exceptions) instead of C++
|
||
exceptions. This elminates the code bloat of C++ exceptions
|
||
while still providing us with the functionality we
|
||
need.
|
||
|
||
97-10-13 johndelo Most database and engine API set the last error record,
|
||
for use by MsiGetLastErrorRecord. The cached record will
|
||
be cleared after this call or a successfule API call.
|
||
Functions that set error records denoted in MsiQuery.h.
|
||
|
||
97-10-13 johndelo MsiFormatRecord will now support a null install handle,
|
||
in which case only the record parameters are formatted.
|
||
The API automation uses this to support MsiRecord.FormatText.
|
||
|
||
97-10-13 bench Changed return of MsiFilePatch.CanPatchFile from a
|
||
BOOL to an icpEnum. See help for more info.
|
||
|
||
97-10-12 johndelo Custom action support is now fully implemented according
|
||
to the 10/12 design spec, except for scripting support.
|
||
Additional test cases have been added to testdb.msi,
|
||
but deferred execution and rollback have not been tested.
|
||
|
||
97-10-12 johndelo API changes as follows:
|
||
MsiGetFeatureValidStates now returns bit flags, not enum
|
||
MsiGetLastErrorRecord added
|
||
MsiVerifyDiskSpace added, simply calls engine function
|
||
MsiGetComponentPath added, MsiLocateComponent replacement
|
||
(product code not used yet, until component detect updated)
|
||
|
||
97-10-10 malcolmh Fixed bugs 3318, 2449, 2450, 2451, 2730, 2446, 2334.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3410
|
||
-----------------------------
|
||
|
||
97-10-10 chetanp Added support for the Advertise state for individual
|
||
features in Darwin.
|
||
This has affected the Selection Manager as well as
|
||
the Handler code.
|
||
It has also affected the Advertisement code
|
||
(shortcuts, Class, Extension,
|
||
TypeLib, MIME).
|
||
|
||
97-10-10 bench Moved all files not dependent on the build of Darwin
|
||
(DEBUG/SHIP/LEGO/...) to a folder called COMMON in
|
||
the \\united\darwin drop. These files are:
|
||
|
||
msi.h
|
||
msiquery.h
|
||
msi.lib
|
||
msierror.msg
|
||
mspatch.dll
|
||
cabinet.dll
|
||
imagehlp.dll
|
||
|
||
When riched20.dll is dropped it will also fall into
|
||
this folder.
|
||
|
||
97-10-10 bench Added the file mspatch.dll which is used by Darwin
|
||
and the MsiPatch tool to create and apply patches.
|
||
This file is dropped to the COMMON folder and is
|
||
installed by instmsi.exe. It is required for the MsiPatch
|
||
object to run and for Darwin to perform any patching
|
||
operations.
|
||
|
||
97-10-10 bench INSTALLFILES: fix bug 3104, caused by the addition
|
||
of compressed file copies during a "non-cabinet"
|
||
install. This required re-writing much of the code that
|
||
deals with source media and cabinets in the
|
||
ixoChangeMedia and ixoFileCopy operations (outside of the
|
||
MsiFileCopy object). This code should be fully tested for
|
||
regression, with an emphasis on cabinets, split
|
||
files, mixed compressed/uncompressed files, and missing
|
||
media.
|
||
|
||
97-10-10 bench Patching: The MsiFilePatch object (built into
|
||
Darwin) is ready for testing. See MsiAuto.hlp for more
|
||
info.
|
||
|
||
97-10-10 bench Patching: The MsiPatch tool (msipat.dll) is ready
|
||
for testing. See msipat.hlp for more info.
|
||
|
||
97-10-10 bench ixoChangeMedia: minor change: the cabinet path is
|
||
now required to be a full path when the cabinet is a
|
||
file and not in a stream of the package. Previously it
|
||
was possible to use a file name relative to the path
|
||
set by ixoSetSourceFolder. No more.
|
||
|
||
97-10-10 bench MsiPath.TempFileName: added an optional flag. True
|
||
to return only the file name, false to return the
|
||
full path. See help for more info.
|
||
|
||
97-10-09 davidmck Changed how we read in bitmaps to be more efficient.
|
||
We now read them in a block rather than in chunks.
|
||
|
||
97-10-09 chetanp Fixed Darwin view object such that the temporary
|
||
tables created by it do not appear in the catalog
|
||
tables.
|
||
Now Scopes need not have special logic to skip the
|
||
temporary tables when displaying to the user in the
|
||
Table view.
|
||
|
||
97-10-09 tracyf Fixed a problem that was affecting Office's oprep:
|
||
MsiPath was trying to add a net connection each time
|
||
a path object was created using a UNC path, which
|
||
would eventually lead to an "extended" network error
|
||
(too many net connections).
|
||
|
||
97-10-09 malcolmh Fixed bugs 3113, 1585. Eliminate const IMsiString&
|
||
problems. Do a shell notify when we register or
|
||
unregister the .MSI extension.
|
||
|
||
97-10-09 davidmck Added Imagehlp.dll to instmsi. We now pull
|
||
cabinet.dll from the tools directory rather than the common
|
||
directory.
|
||
|
||
97-10-09 davidmck Added extra stack backtracing to our memory logging.
|
||
Also made it so we actually log to the debug log if
|
||
darwin logging is off.
|
||
|
||
97-10-08 malcolmh Added exception handling to the server's RunScript
|
||
Function. When an exception occurs in the server you
|
||
should be greeted by a dialog with relevant
|
||
information, including the function and offset into that
|
||
function where the exception occurred. This code is debug
|
||
only.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3407
|
||
-----------------------------
|
||
|
||
97-10-06 johndelo Darwin is now built with VC5. The PDB format for VC5
|
||
has changed and is incompatible with VC 4.2 debugger.
|
||
All tools needed to build are now under DARWIN\tools.
|
||
|
||
97-10-06 davidmck Removed internal imagehlp code for symbols. We now
|
||
always use imagehlp.dll for resolving function names.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3403
|
||
-----------------------------
|
||
|
||
97-10-02 johndelo Darwin now builds with VC5 and runs, but we have not
|
||
updated the build yet. All the tools required have
|
||
been checked into the project, including the new SLM
|
||
that supports long file names. I'm aiming for the
|
||
next release after this one for the switchover.
|
||
|
||
97-10-02 davidmck Added support in instmsi for replacing the cabinet
|
||
file while it's in use. Not a big deal for the cabinet
|
||
file, but probably will be important for
|
||
riched20.dll which I'm adding later.
|
||
Changed instmsi to not use Windows apis
|
||
VerInstallFile and VerFindFile so the in use handling would work.
|
||
Added version checking to instmsi.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3330
|
||
-----------------------------
|
||
|
||
97-09-29 johndelo Tables exported with extended characters will be
|
||
typed with the codepage of the database, or system
|
||
codepage if database codepage not set. When importing, the
|
||
database codepage will be set to the first
|
||
non-neutral table imported. For details, see design spec
|
||
codepage.doc.
|
||
|
||
97-09-29 malcolmh Fixed bug 3046 -- processing of /Q option to
|
||
msiexec.
|
||
|
||
97-09-29 MattWe Disabled building of gen, util, acme2msi, and the
|
||
repackager.
|
||
TESTING: this will result in not dropping several
|
||
files anymore. I'll send mail with the full list.
|
||
|
||
97-09-29 tracyf Fixed up the ValidateTargetPaths routine (internal
|
||
to MsiEngine) to execute significantly faster.
|
||
Previously, this routine was responsible for about 85% of
|
||
the time spent in executing the CostFinalize action.
|
||
Now, it's only 10%, and CostFinalize executes about 6
|
||
times faster than before. Look for more costing
|
||
optimizations coming soon.
|
||
|
||
97-09-29 tracyf Added support for the ADDDEFAULT install property.
|
||
This property has long existed, but if assigned a
|
||
value, it would previously always install the specified
|
||
feature in the iisLocal state. Now, the specified
|
||
feature(s) will be installed in the authored state (as
|
||
determined by the RunFromSource column of the Feature
|
||
table).
|
||
|
||
97-09-25 chetanp Added reg_multi_sz support to the IMsiString
|
||
classes.
|
||
|
||
Added support to IMsiEngine::FormatText to support
|
||
the sequence [~] which stands for the null character.
|
||
|
||
IMsiRegKey::RemoveValue interface changed - now
|
||
also takes the value - for reg_multi_sz
|
||
|
||
Added reg_multi_Sz support to the IMsiRegKey object
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3325
|
||
-----------------------------
|
||
|
||
97-09-25 tracyf Fixed a bug in MsiPath which was blocking testing -
|
||
MsiPath was rejecting any UNC path that included a
|
||
trailing backslash.
|
||
|
||
97-09-25 tracyf Fixed code in path.cpp that was breaking UNICODE
|
||
builds.
|
||
|
||
97-09-25 tracyf Added an extra parameter to CreateFilePath - in
|
||
addition to accepting a full path to a file and returning
|
||
a path object, it now returns the filename portion
|
||
to the caller. To allow this routine to be fully
|
||
automated, a RipFileNameFromPath automation wrapper has
|
||
been added to MsiServices; internally, this wrapper
|
||
calls CreateFilePath, and just returns the filename
|
||
string.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3324
|
||
-----------------------------
|
||
|
||
97-09-24 tracyf Support for non-NT networking protocols has been
|
||
added to MsiPath. This required the eradication of code
|
||
in MsiPath which was trying to separate incoming
|
||
paths into a volume part and a directory part. We now
|
||
call the system (which in turn calls the installed
|
||
network provider) to split and validate volume
|
||
specifications. This required a lot of change in the way that
|
||
MsiPath connects to remote volumes (for instance,
|
||
for NetWare shares, we now prompt for the user name and
|
||
password when necessary).
|
||
|
||
97-09-24 tracyf Fixed bugs 2747 and 2748 (involving updating the
|
||
documentation for IxoFileCopy and IxoChangeMedia).
|
||
These were blocking bugs for testing.
|
||
|
||
97-09-24 tracyf Changed the GetDriveTypeFromPath method. It is now
|
||
called GetImpersonationFromPath, and now returns a
|
||
Bool. It was only being used to determine whether
|
||
impersonation was necessary based on a path, this being
|
||
done by checking whether the returned drive type was
|
||
'Network'. GetImpersonationFromPath now returns fTrue
|
||
if the drive type is either 'Network', or 'Unknown'.
|
||
|
||
97-09-24 tracyf Added a CreateFilePath method to the IMsiServices
|
||
interface. This allows a path object to be created
|
||
with a full path to a file (the file part is stripped
|
||
off by the method before creating the path object).
|
||
|
||
97-09-24 tracyf Internally, the MsiPath object now stores only
|
||
relative path information (it no longer keeps the volume
|
||
information as part of the path). This was necessary to
|
||
avoid parsing off the volume part at various times, which
|
||
leads to problems when dealing with non-NT network protocols.
|
||
(As an aside, making this change got rid of 5K worth of
|
||
code!). There should be no externally visible effect
|
||
(i.e. interfaces such as GetPath and GetFullFilePath
|
||
still return the full path, including volume information,
|
||
making use of the internal volume object).
|
||
|
||
97-09-23 bench Added the ability to install compressed files from a
|
||
cabinet not located in the source tree for the
|
||
package, both during a "compressed" or "uncompressed"
|
||
install. This will be useful for patches that want to
|
||
add files to an install. This required the following
|
||
changes:
|
||
|
||
1.) Added the Media.Source column, which defines
|
||
the folder containing the cabinet referenced by that
|
||
record. This column is essentially optional as the
|
||
code works file without it. If either the column is
|
||
missing or the field is blank, SOURCEDIR is used.
|
||
|
||
2.) Added the iffCompressed bit (16384) to the
|
||
possible bits in the File.Attributes column. This bit
|
||
means that the file is compressed regardless of the
|
||
value of the MSI Source Type suminfo property. This is
|
||
the opposite of the iffNoncompressed bit which says
|
||
the file is non-compressed regardless of the source
|
||
type.
|
||
|
||
3.) Modified ixoChangeMedia to accept a full or
|
||
relative path to the cabinet file. If the path is
|
||
relative, it is relative to the folder set by
|
||
ixoSetSourceFolder.
|
||
|
||
See help for more info.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3323
|
||
-----------------------------
|
||
|
||
97-09-22 johndelo Custom action support for DLLs, EXEs, and property &
|
||
directory assigsnment has been completed. All modes
|
||
are functional, sync & async, Custom actions crashes
|
||
are recoverable. Debug breakpoints may be set with
|
||
the environment variable "MsiBreak=YourActionName". A
|
||
debug break will occur just ahead of the call into
|
||
that action. Samples have been added to testdb.msi; the
|
||
property TESTACTION must be set to the appropriate
|
||
type number to fire the action. New custom action doc
|
||
is available separately.
|
||
|
||
97-09-18 johndelo Enhanced custom action support.
|
||
A couple of simple lines of code allowed us to implement a new
|
||
type of custom action: icaTextData = 3. If icaProperty is also
|
||
set (48) = 51, then FormatText is called on the Target string
|
||
and the result set into the property specified in Source.
|
||
Samples are in the testdb CustomAction table, example:
|
||
Custom051 51 USERNAME [LogonUser] on[ComputerName]
|
||
These actions are called by placing their name in the appropriate
|
||
place in the sequence table, such as just ahead of custom actions
|
||
that you want to pass properties to. Note that you can use a
|
||
conditional expression in the sequence entry, and you can
|
||
invent new property names. Of course this mechansim can be
|
||
used to conditionally set any property to a formatted text string.
|
||
|
||
If you use icaTextData with icaDirectory (32) = 35, then you
|
||
can conditionally set a directory path to a formatted text string.
|
||
For instance, you can insert the user's logon name into a
|
||
directory path. The example in testdb:
|
||
Custom035 35 MonthDir [Test][LogonUser]\Months
|
||
Note that this action must be called after CostFinalize,
|
||
as that is where the directories are initialized. If you wanted
|
||
to conditionalize a setting only for Alpha then put "Alpha" in
|
||
the Condtion column; likewise you could test for platform,
|
||
version, installed products, whatever.
|
||
|
||
To help debug custom actions, a debug break can be forced
|
||
immediately ahead of the call to the custom action, by
|
||
setting the environment variable "MsiBreak" to the name of
|
||
the custom actions (case-sensitive). Works in SHIP or DEBUG.
|
||
|
||
97-09-17 davidmck Removed our usage of fdi.lib for decompression.
|
||
We now use cabinet.dll. Added cabinet.dll to the
|
||
instmsi cabpack.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3316
|
||
-----------------------------
|
||
|
||
97-09-15 johndelo Bug 2658, where on NT5 with MSI on server failed
|
||
when accessing table stream for InstallSequence, Assert
|
||
replaced with FatalError report and exit. Problem
|
||
still exists in remote file mapping.
|
||
|
||
97-09-15 johndelo Date and Time properties now work, which update
|
||
their internal data whenever the string value is
|
||
requested. These are now used in the Log header/trailer, and
|
||
Time is put into the ActionStart template for
|
||
performance measurements. These templates are in the Error
|
||
table, built with each build, but which must be
|
||
inserted into older databases. The old printf format will
|
||
be supported for a few builds.
|
||
|
||
97-09-15 bench Fixed bug 2629, which was a problem with FormatText.
|
||
In the process of doing so, both Engine.FormatText
|
||
and Record.FormatText have been essentially
|
||
re-written to share all common code. These functions should
|
||
be thoroughly tested to make sure they work correctly.
|
||
|
||
97-09-12 johndelo MSI base DLLs have been rebased to avoid collisions
|
||
upon load. Non-core system DLLs are now late-bound:
|
||
OLE32, OLEAUT32, COMCTL32, SHELL32, MPR. There could
|
||
be some glitches, but Asserts will be displayed on any
|
||
bind errors in DEBUG.
|
||
|
||
97-09-12 ivanw Added a new control type: Line. This is simply a
|
||
line, as the name suggests, used as a visual separator
|
||
on a dialog.
|
||
|
||
97-09-11 malcolmh Bug 2938. msiexec's /F option has been updated to support the
|
||
following:
|
||
|
||
/F[r]|[o]|e]|[d]|[c]|[a]|[m]|[u]|[s] <package>|<product code>
|
||
|
||
... where the letters are a reinstall mode.
|
||
|
||
New support: allow specific reinstallmode. Not
|
||
specifying a reinstall mode does the same as before..
|
||
i.e. a default set of reinstall modes.
|
||
|
||
TEST
|
||
~~~~
|
||
Command-line parsing changed to support this option
|
||
so testing around command-line options is advised. If
|
||
you use the debugmon utility (or something similar)
|
||
you'll be able to see exactly what msiexec thinks the
|
||
command-line options are and what properties are
|
||
getting passed to Darwin, thus negating the need for you
|
||
to actually verify that Darwin did the correct
|
||
reinstall.
|
||
|
||
|
||
|
||
97-09-10 ivanw Bug 2248: The engine calls the "Browse" dialog (this
|
||
is a hardwired name) when the target directory is
|
||
not writeable. To catch if the user cancels the engine
|
||
sets a property called "BaseBrowse" that changes the
|
||
behavior of the Cancel button on the Browse dialog.
|
||
This way the same dialog can be used in more than one
|
||
place.
|
||
|
||
97-09-10 tracyf Support for cabinets stored as resources has been
|
||
removed (since launchers are no longer supported). As
|
||
a side effect, the CreateCopier function no longer
|
||
takes an HINSTANCE argument, and the Media table no
|
||
longer accepts the "@cabinet" syntax.
|
||
|
||
97-09-10 tracyf Fixed several bugs in MsiPath dealing with DBCS
|
||
characters in path names. See bug 1237 for details.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3310
|
||
-----------------------------
|
||
|
||
97-09-09 ivanw At this point the UI supports all the international
|
||
issues that I know of to the degree that I could test.
|
||
This is limited by the fact that other parts
|
||
of Darwin still have unresolved issues with DBCS and
|
||
codepages. There is some caveat for the UI too: only the
|
||
Edit and the PathEdit controls support fully all the
|
||
weirdnesses of different writing systems. Other
|
||
controls have limited support (this is a limitation of
|
||
the system), for example comboboxes do not handle all
|
||
the issues correctly if the input contains a mixture
|
||
of characters from different writing systems. The
|
||
MaskedEdit control (used for the PID) is strictly ANSI,
|
||
this control does not support entering characters from
|
||
other writing systems. When testing these issues,
|
||
please keep in mind that one needs the correct (and
|
||
different) RichEd20.dll versions for BiDi and
|
||
Far-Eastern systems. To test the BiDi issues one has to set the
|
||
three BiDi control stylebits and the three BiDi
|
||
dialog stylebits to have the expected behavior.
|
||
|
||
97-09-09 ivanw There are massive changes in the behavior and
|
||
implementation of the Browse dialog. There is a new
|
||
controlevent: DirectoryListIgnoreChange published by (you
|
||
guessed correctly!) the DirectoryList control. The
|
||
DirectoryCombo control typically subscribes to this one.
|
||
There is a new control attribute: IgnoreChange. If
|
||
this attribute is turned on the control does not redraw
|
||
on the property changed message. This was needed to
|
||
implement the new behavior. The most visible change
|
||
is that just highlighting a folder in the listview
|
||
changes the path, but does not change the folder shown
|
||
in the combobox. On the other hand double clicking on
|
||
an already selected folder will change the the
|
||
combobox but will not change the path. We also got away
|
||
with the confusing Open button on the dialog. Also
|
||
given up on the idea of splitting the path into two parts
|
||
and displaying them separately. We also removed the
|
||
constraint that the previous specification enforced
|
||
that a user is not allowed to select the root of a
|
||
volume. All these changes mean that one has to re-author
|
||
the browse dialogs in existing databases. The best
|
||
bet is probably to copy the dialog from the Testdb.
|
||
|
||
97-09-09 ivanw The DirectoryComboPath and the DirectoryListPath
|
||
control events have been removed.
|
||
|
||
97-09-09 MattWe MsiSpy: updated copybld to move DEBUG MsiSpy into
|
||
the Tools\DEBUG, and added the SHIP in the Tools.
|
||
Added a third file SpyENU.dll to the list. This does
|
||
NOT go to \\united\darrel yet. See T-GuhanS for drops.
|
||
(There's an installer, and a bunch of localized
|
||
files that we haven't decided to drop yet.)
|
||
|
||
97-09-09 malcolmh Fixed bug 2620:
|
||
|
||
Cleaned up the impersonation code.
|
||
|
||
TEST:
|
||
~~~~
|
||
All impersonation code is affected. Also affected is
|
||
getting the user-profile directory from within the
|
||
service.
|
||
|
||
The following automation interfaces changed:
|
||
|
||
Removed completely:
|
||
MsiServices.AttachClient,
|
||
|
||
Removed token parameter:
|
||
MsiConfigurationManager.ValidatePackage
|
||
MsiServer.ValidatePackage
|
||
MsiConfigurationManager.RunScript
|
||
MsiServer.RunScript
|
||
MsiConfigurationManager.InstallFinalize
|
||
MsiServer.InstallFinalize
|
||
|
||
DEV:
|
||
~~~
|
||
As we've found the holy grail, CoImpersonateClient,
|
||
we no longer pass the client token around. Thus the
|
||
elimination of Attach/DetachClient. All
|
||
impersonation calls are now routed through
|
||
Start/StopImpersonating in vertrust.cpp. Also,
|
||
GetUserSID and GetUserToken should now be used in lieu
|
||
of opening the thread token yourself.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3309
|
||
-----------------------------
|
||
|
||
97-09-08 ivanw As part of reworking the Browse dialog, removed the
|
||
SplitPath control style.
|
||
|
||
97-09-08 malcolmh Fixed bug 2712. MsiMerg now persists the errors
|
||
table.
|
||
|
||
97-09-08 bench Changed the meaning of the imtCommonData message
|
||
passed to Engine.Message and Handler.Message.
|
||
Previously, the parameters of this message were [1]: language
|
||
id, [2]: dialog caption. Now the parameters are [1]:
|
||
message type, [2,3,...]: arguments. This change was
|
||
made to add a new type of message to show or hide
|
||
the cancel button on the basic UI and to make the
|
||
message more extensible. See help for more info.
|
||
|
||
97-09-08 bench MsiTran.exe: Added ability to specify error
|
||
conditions to suppress when creating or applying transform.
|
||
See help (or command line help) for more info.
|
||
|
||
97-09-08 bench Transforms: the iteUpdNonExistingRow constant has
|
||
been added. This is used to suppress the error that
|
||
occurs when a transform attempts to update a
|
||
non-existing row.
|
||
|
||
97-09-08 bench Transforms: The meanings of the bit flag used when
|
||
creating and applying transforms has changed.
|
||
Previously, setting the bit for a particular error condition
|
||
would force an error to occur when the condition was
|
||
true. Now, all errors are on by default and the bit
|
||
must be set to suppress an error. See help for
|
||
Transform apis for more info.
|
||
|
||
97-09-05 johndelo MsiApi.Hlp not built, content migrated to Msi.Hlp
|
||
|
||
97-09-05 johndelo Added arguments for future use for the following API
|
||
functions, all in Msi.H, non-functional at this time.
|
||
MsiSetExternalUI: add message filter
|
||
MsiProvideComponent: add reserved DWORD
|
||
MsiQualifiedComponent: add reserved DWORD
|
||
MsiEnumComponentQualifiers: add return for description
|
||
|
||
97-09-04 ivanw Removed the NewFolder and Browse dialog style bits.
|
||
These bits were never used on Windows.
|
||
|
||
97-09-04 ivanw Bug 2065: We want to be able to hide the cancel
|
||
button on the minimal UI by sending some message. To
|
||
accomplish this we changed the imtCommonData message type
|
||
to imtControl. It has three subtypes at this point:
|
||
icmtLangId, icmtCaption, icmtCancelShow.
|
||
|
||
97-09-04 chetanp fixed darwin bug 2811, addign SHChangeNotify() calls
|
||
whenever we create/delete shell shortcuts/ folders.
|
||
rcollie has reported hitting this bug on random
|
||
occasions. We need to make sure it is not occuring now.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3303
|
||
-----------------------------
|
||
|
||
97-09-02 ivanw The SelectionTree control behaves differently if a
|
||
screen reader is detected on the system. In this case
|
||
the popup menues are not userdrawy (contain no icons)
|
||
in order to better support the screen reader. Also
|
||
the main view of the SelectionTree is different in
|
||
this case. Since the screen readers can't handle the
|
||
icons that convey important information in the tree, if
|
||
we find a screen reader we modify the text displayed
|
||
in the tree, so it gives the same information in text
|
||
format that is normally conveyed by the icons. To
|
||
test these changes, one has to run the dll both on
|
||
systems with and without screen readers installed.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3302
|
||
-----------------------------
|
||
|
||
97-08-29 chetanp PISearch (product inventory search) is dropped from
|
||
Darwin.
|
||
|
||
97-08-28 chetanp fixed beta1 bug 2780. We now have a modified SQL
|
||
syntax that allows us to hold and free tables (LockTable
|
||
and UnlockTable) using SQL.
|
||
The syntax supported is -
|
||
|
||
CREATE TABLE <tablename> (<columns info>) [HOLD]
|
||
ALTER TABLE <tablename> ADD <columns info> [HOLD]
|
||
ALTER TABLE <tablename> HOLD
|
||
ALTER TABLE <tablename> FREE
|
||
|
||
|
||
|
||
|
||
97-08-28 bench *RELEASE*: added msitool.hlp and msitool.cnt to the
|
||
DOC folder in the \\united\darwin drop. These files
|
||
need to be released.
|
||
|
||
97-08-28 bench Fixed extensions of many files created during an
|
||
install (but not part of the install). Cached databases
|
||
have a .msi extension, rollback scripts have a .rbs
|
||
extension and rollback files have a .rbf extension.
|
||
Files to be moved on reboot and install script files
|
||
still have .tmp extensions.
|
||
|
||
97-08-28 bench MsiPath: Updated TempFileName to accept an optional
|
||
prefix and/or extension for the name of the created
|
||
file. See help for more info.
|
||
|
||
97-08-28 bench MsiPath: Updated SetFileAttribute and
|
||
GetFileAttribute to act on the directory represented by the MsiPath
|
||
object if the supplied file name is null.
|
||
|
||
97-08-27 ivanw To support some the accessibility tools better we
|
||
have to make a few slight changes to the UI tables in
|
||
the database. If you fail to make these changes in
|
||
your existing database, it won't break anything, but the
|
||
screen reader won't pick up all the information. The
|
||
first change involves the Control_First column of
|
||
the dialog table. This one describes what control has
|
||
the focus when the dialog is created. For certain
|
||
controls that normally don't have a description of their
|
||
own, the screen reader tries to find the text control
|
||
immediately preceding this control and use that text
|
||
as the description of the control. Unfortunately the
|
||
screen reader does not realize that the tab order of
|
||
the controls forms a cycle, i.e. the last one in
|
||
Z-order preceds the first one. To work around this we
|
||
have to make sure that if there is a text describing an
|
||
Edit, PathEdit, Combo, DirectoryCombo or Listbox
|
||
control, this text comes in Z-order right before the
|
||
control. What this means in practice is that if you have
|
||
one if these controls as having the focus first, you
|
||
should enter instead the corresponding text control
|
||
in the Control_First field. Since a static text can't
|
||
take the focus, your edit (or PathEdit, etc) control
|
||
will have the focus, but the screen reader will be
|
||
able to pick up the right text. The other change
|
||
involves the Text field in the Control table. For the
|
||
VolumeCost, ListView, DirectoryList and SelectionTree
|
||
controls this field is currently empty. I suggest that
|
||
you enter some text there that describes the function
|
||
of the given control. This string will be never seen
|
||
by most users, but it will be used by the screen
|
||
reader to describe the control for a vision impaired
|
||
user.
|
||
|
||
97-08-26 malcolmh Fixed bugs 2577, 2434, 2435, 2437, 2440, 2442, 2714,
|
||
2715, 2452, 2540, 2263, 2165
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3225
|
||
-----------------------------
|
||
|
||
97-08-22 chetanp fixed bug 2699. MsiAP should now be working with
|
||
transforms being passed in as well.
|
||
|
||
97-08-20 ivanw Put in some hacks so the Edit, PathEdit and
|
||
ScrollableText controls don't fail even if the riched20.dll
|
||
is missing.
|
||
|
||
97-08-20 ivanw Changed the Edit and PathEdit controls. To support
|
||
BiDi and FE systems better these controls now use the
|
||
"RichEdit20W" control type instead of the "Edit"
|
||
type. This should mean no visible difference on an
|
||
English system. Since the core of the control has changed
|
||
it has to be tested again, to make sure that it still
|
||
works correctly. We won't be able to test the BiDi
|
||
and FE functionality untill we get the latest and
|
||
greatest version of the RichEd20.dll that supports those
|
||
languages.
|
||
|
||
97-08-20 ivanw The Handler now requires the riched20.dll to be
|
||
installed on the system. This dll will be installed with
|
||
Darwin as the part of the service pack. This DLL is
|
||
present on NT4. If you don't have it on your Win95
|
||
machine, probably you can just copy it from your NT
|
||
machine. As soon as I get the latest version (that
|
||
handles BiDi and FarEast correctly) from the RichEdit group
|
||
I will check it in with Darwin.
|
||
|
||
97-08-19 malcolmh Fixed bug 2654. On a locked-down system we were
|
||
failing to delete the InProgress key. We now impersonate
|
||
correctly and therefore can delete the key.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3218
|
||
-----------------------------
|
||
|
||
97-08-14 bench fixed bug 2680 by making all self-reg errors of the
|
||
abort/retry/ignore variety.
|
||
|
||
97-08-13 bench fixed bug 2657, the AV in CODBCDatabase. See the
|
||
bug for more details.
|
||
|
||
97-08-13 malcolmh Fixed bug 2166 -- display help when invalid args are
|
||
passed to msiexec
|
||
|
||
|
||
97-08-12 mattwe Repack wiz: added alpha support to internal installer.
|
||
(also added to Beta1 tree.)
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3212
|
||
-----------------------------
|
||
|
||
97-08-11 ivanw Implemented the ability to change the font on any
|
||
control. We can change the type face, the size and the
|
||
style (bold, italic, etc) for all controls. The font
|
||
color information is used only for static text
|
||
controls. For all other controls the color information is
|
||
ignored. To see this in action check out the regular
|
||
first install wizard sequence in testdb. For some
|
||
wilder examples try testdb with the UITEST property set.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3208
|
||
-----------------------------
|
||
|
||
97-08-07 johndelo MsiTool.mak has been moved to DARWIN\src\tools, to
|
||
simplify building tools and customs actions for the
|
||
ISV release, and has been fixed to work with multiple
|
||
CPPs and long file paths. All tools have been updated,
|
||
and the samples fixed where broken. ISV release is
|
||
on \\tcoweb\isvkit. Help for tools is now build as
|
||
MsiTool.hlp. MsiSpy is now built (DEBUG only) - try it.
|
||
|
||
97-08-07 MattWe Testing: From now on, any reference you can find to
|
||
"Darwin" should probably be a bug.
|
||
|
||
97-08-07 MattWe Databases: Removed all Darwin and internal contact
|
||
information references.
|
||
|
||
97-08-06 malcolmh All table schema were changed to correctly identify
|
||
nullable columns as such. Nullable columns have an
|
||
upper-case type-identifier letter in the .idt files.
|
||
|
||
97-08-06 MattWe Repackaging wizard: Added
|
||
darwin\src\tools\repack\support\repackdb\*.idt to
|
||
build the final golden beta repackwiz template database.
|
||
make <version> win repackdb builds from these IDTs,
|
||
totally ignoring template/schema.
|
||
|
||
!!ANYONE MAKING CHANGES TO SCHEMA or TEMPLATE OTHER THAN
|
||
NULLABLE COLUMNS FOR BETA1 SHOULD CONTACT MATTWE!!
|
||
|
||
97-08-06 bench Made these changes to the file set installed by
|
||
instmsi: removed msiauto.dll, msiauto.hlp and
|
||
msiauto.cnt. Added msi.hlp and msi.cnt.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3205
|
||
-----------------------------
|
||
|
||
97-08-05 bench Fixed relnotes tool to handle cookie locks on the
|
||
project. Updated the build script to handle cookie
|
||
locks when dealing with relnotes.txt and to eliminate
|
||
the merge conflicts.
|
||
|
||
|
||
97-08-04 malcolmh We are now using CoImpersonateClient to impersonate instead
|
||
of ImpersonateLoggedOnUser. CoImpersonateClient does
|
||
the right thing in all cases.
|
||
|
||
97-08-04 malcolmh We reverted to using HKEY_CLASSES_ROOT for OLE and Darwin goop.
|
||
Anything you're used to seeing in HKCU\Software\Classes will
|
||
now appear in HKEY_CLASSES_ROOT. This change was required
|
||
by NT for their Beta 1.
|
||
|
||
97-08-04 johndelo MsiExecuteRecord has been removed from the external
|
||
APIs--dangerous and unsupportable. MsiFormatRecord
|
||
has been added. MsiOpenDatabase will now accept an
|
||
output database path (old client code will still work
|
||
without change). See MSIQUERY.H or AUTOAPI.HLP for
|
||
details. MsiGetProperty and MsiSetProperty work with the
|
||
UIPreview object/handle (no other engine methods do,
|
||
however).
|
||
|
||
97-08-01 mattwe Repack installer updated for the files moved all over the place.
|
||
#2556
|
||
|
||
97-08-01 johndelo Non-ship components and tools have been renamed to have the
|
||
same names as ship components and tools. This facilitates
|
||
debugging with applications and the OS, which bind to Msi.DLL.
|
||
SHIP, DEBUG, and LEGO are now built in different directories,
|
||
under DARWIN\build, but are delivered and released to the same
|
||
structure as before. Tools are built both SHIP and DEBUG, but
|
||
only SHIP tools are released, except for repackager and the API
|
||
automation, which have their DEBUG build in a DEBUG subdirectory.
|
||
|
||
The old MSI.HLP that we build has been renamed MSIAPI.HLP to avoid
|
||
conflict with the MSI.HLP that DOC drops to us. MSIAPI.HLP contains
|
||
describes the automation layer (autoapi.dll) that sits on top of
|
||
the MSI API functions and currently contains details that are not
|
||
yet integrated into MSI.HLP. Eventually MSIAPI.HLP will get merged
|
||
into MSI.HLP and will be removed.
|
||
|
||
97-08-01 t-caroln MsiVal.exe -- fixed bugs 2177 and 2510 for
|
||
validating InstallSequence and Required values. These
|
||
validations can be turned off by using msival.exe {database}
|
||
-OFF. These validations require the _Required,
|
||
_InstallValidate, and _Sequence tables. Information on
|
||
how this is validated is in msiauto.hlp under TOOLS
|
||
and Validation and in the msival.cpp file in
|
||
%DARWIN%\src\tools.
|
||
|
||
97-07-31 bench Here is the summary of changes that have been made to the
|
||
drops on \\united\darwin.
|
||
|
||
These files have been moved and/or renamed:
|
||
|
||
[all files in DEBUG and LEGO folders renamed to match files in SHIP folder]
|
||
TOOLS\msigend.* -> TOOLS\DEBUG\msigen.*
|
||
TOOLS\msiutild.* -> TOOLS\DEBUG\msiutil.*
|
||
TOOLS\msipatd.* -> TOOLS\DEBUG\msipat.*
|
||
TOOLS\msilocd.* -> TOOLS\DEBUG\msiloc.*
|
||
TOOLS\autoapid.* -> TOOLS\DEBUG\autoapi.*
|
||
TOOLS\rpkwizd.exe -> TOOLS\DEBUG\rpkwiz.exe
|
||
|
||
These files have been added (not sure why these weren't being dropped before):
|
||
|
||
TOOLS\msimerg.exe
|
||
TOOLS\msimerg.map
|
||
TOOLS\msimerg.pdb
|
||
TOOLS\msiinfo.exe
|
||
TOOLS\msiinfo.map
|
||
TOOLS\msiinfo.pdb
|
||
|
||
The files have been removed:
|
||
|
||
TOOLS\regmsid.*
|
||
TOOLS\regmsil.*
|
||
TOOLS\msitable.*
|
||
TOOLS\msidbd.*
|
||
TOOLS\msivald.*
|
||
TOOLS\msitrand.*
|
||
TOOLS\msimergd.*
|
||
TOOLS\suminfo.*
|
||
TOOLS\msiinfod.*
|
||
|
||
The moved files should move to identical locations in the
|
||
\\united\darrel release. All of the appropriate (.exe,.pdb) added
|
||
files need to be propagated to the \\united\darrel release.
|
||
|
||
97-07-28 t-caroln Enabled/fixed UNICODE compilation of tools -->
|
||
msimerg.exe, msidb.exe, msitran.exe, msival.exe, and
|
||
msiinfo.exe
|
||
|
||
97-07-25 MattWe MsiGen: #2439. Fixed additional problems with
|
||
rolling all the profiles into a single one. (Legacy
|
||
installs tend to install to the user, Default User, and
|
||
All Users. We have to smack them all into one, as well
|
||
as the registry keys and shortcuts.)
|
||
|
||
(The above note didn't seem to check in previously. Don't
|
||
quite know why.)
|
||
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3125
|
||
-----------------------------
|
||
|
||
97-07-24 johndelo The MsiSetLogMode function (which was
|
||
non-functional) has been replaced with EnableLog, which takes three
|
||
parameters: logmode, logfile, append. See Msi.H or
|
||
autoapi.hlp for details. This function and
|
||
SetInternalUI will be use for subsequent engine creation calls
|
||
in the current process.
|
||
|
||
97-07-24 malcolmh Log modes are now defined in msi.w.
|
||
|
||
97-07-24 malcolmh Changes that affect MsiSetInternalUI and MsiSetExternal UI:
|
||
|
||
- Both of these APIs now return the old value upon success.
|
||
- Added 2 new INSTALLUILEVEL enums for the API:
|
||
INSTALLUILEVEL_DEFAULT and INSTALLUI_LEVEL_NOCHANGE.
|
||
|
||
The default UI level means that we will choose internally
|
||
(within the API) what level to use. Currently we choose
|
||
Basic in all cases except when MsiOpenPackage/OpenProduct
|
||
is called. In this case we choose no UI.
|
||
|
||
INSTALLUILEVEL_NOCHANGE, when passed in to the API means
|
||
that we don't change the current UI level. When returned
|
||
from the API it means that the UI level was not changed
|
||
because an invalid UI level was specified.
|
||
|
||
- The HWND parameter of MsiSetInternalUI was made to be a
|
||
pointer. If this pointer is NULL then the HWND is not
|
||
changed. If the pointer is not null then the HWND is
|
||
changed and the old HWND is returned through the pointer.
|
||
|
||
97-07-24 t-caroln Fixed bug 2308, Validate on Delete. It does limited
|
||
validation to notify one if the row that you intend
|
||
to delete is pointed to by some other row in the same
|
||
(or other table). It does not cover embedded
|
||
strings with properties resolving to the row (this was
|
||
punted) and it does not cover a delimited list of table
|
||
possibilities (punted as well). If a row to be
|
||
deleted is referenced explicitly elsewhere (check KeyTable
|
||
column of _Validation table) then the error for the
|
||
primary key field(s) of the row to be deleted is
|
||
MSIDBERROR_REQUIRED (iveRequired).
|
||
|
||
97-07-24 MattWe MsiGen: 2439 -- picks up shortcuts from All Users,
|
||
2482 -- missed letting deferred registry keys fall
|
||
back to the registry as part of our "re-register
|
||
everything" strategy, and changed the repackager not to
|
||
advertise shortcuts in the StartupFolder.
|
||
|
||
97-07-23 johndelo MsiViewModify return value ERROR_INVALID_DATA is
|
||
used when a validate request fails, and indicates that
|
||
errors can be access with MsiViewGetError.
|
||
MsiViewGetError does not return anything for other errors.
|
||
|
||
97-07-22 chetanp change to MsiProcessAdvertiseScript. See bug 2444.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3122
|
||
-----------------------------
|
||
|
||
97-07-21 johndelo The Msi API automation layer now has its own help,
|
||
built as part of MSI.HLP for now. All but 12 engine
|
||
functions are rough-documented, and enumerations have
|
||
been added.
|
||
|
||
97-07-21 malcolmh Bug 1804, the blocking Memphis bug, has been fixed.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3118
|
||
-----------------------------
|
||
|
||
97-07-17 johndelo Handle argument removed from MsiCreateRecord,
|
||
allowing it to be automated. MsiRecordClearData and
|
||
MsiViewGetColumnInfo added and automated.
|
||
|
||
97-07-17 MattWe MsiGen: bug #2373. Fixed a problem generating the
|
||
unique property table names for targets of shortcuts
|
||
outside our install.
|
||
|
||
97-07-17 malcolmh Attempted a fix to the "Service did not respond in a
|
||
timely fashion" bug.
|
||
|
||
97-07-17 malcolmh Fixed a bug in msiinfo's string pool validation. It
|
||
shouldn't crash any more.
|
||
|
||
97-07-16 t-caroln Validation -- fixed bug 2380 where the msival.exe
|
||
tool encountered an error during validation of the
|
||
Office 9 database. Fixed the SQL query statement that
|
||
was erroring.
|
||
|
||
97-07-15 MattWe RepackWiz: did a secondary code review on
|
||
A-BILLHU's code, and added asserts on Set/GetStrings, and
|
||
wrapped APIs that returned error records. We were
|
||
getting memory leaks whenever we had an error, and the
|
||
message wasn't being displayed. That's fixed now. Also
|
||
fixed a minor icon problem, bug #2104
|
||
|
||
97-07-15 swalker added 2 new tools to the project: DlgPrev and
|
||
DlgBrows. DlgPrev is a tool for previewing
|
||
all the dialogs and billboards defined in an msi
|
||
database. DlgBrows is similar, but lays the
|
||
dialogs out in a tree control, so each dialog has as
|
||
its children any controls that do a spawndialog
|
||
or newdialog event. This lets you see how the
|
||
dialogs are connected, as well as previewing them.
|
||
The exe's should be in %darwin%\tools\, and the
|
||
source can be found in %darwin%\tools\src\.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3115
|
||
-----------------------------
|
||
|
||
97-07-14 t-caroln Fixed bug 2343. The fix for this bug was adding a
|
||
new column to the _Validation table called 'Localize'.
|
||
This column is non-nullable and an integer column.
|
||
A zero stands for 'not localize', one stands for
|
||
'string table localize', two is reserved for future use,
|
||
and three stands for 'UI related localize'. All
|
||
primary key columns should be set to zero. Validation
|
||
will check for this condition. However, this column
|
||
is optional. If your _Validation table does not
|
||
contain this column, then validation will skip validating
|
||
it. This column will be used by the custom parser
|
||
Espresso people.
|
||
|
||
97-07-14 MattWe MsiGen: Bug fixes 2311(Updates for 0.20 schema
|
||
change, and added population for new Class.VIProgId,)
|
||
#2239: re-fix for REG_DWORD population of the registry
|
||
table, and as close to a fix as we're going to get for
|
||
2216. We've got apps registering typelibs by hand,
|
||
and fool the repackager into dropping keys that we
|
||
assume are registered by a typelib.
|
||
|
||
97-07-14 bench fixed bug 2280. As a result, rollback is no longer
|
||
performed for changes made by advertisement
|
||
(MsiProcessAdvertiseScript). Since an arbitrary HKEY is
|
||
passed in to Darwin, there is no way of knowing where reg
|
||
values are being written, so the changes being made
|
||
can not be rolled back.
|
||
|
||
97-07-14 t-caroln As part of the fix for bug 2155 dealing with the
|
||
automation API, the MsiViewGetError api now returns two
|
||
more enums --> MSIDBERROR_MOREDATA and
|
||
MSIDBERROR_INVALIDARG. Also, the MSIDBERROR enums have been
|
||
re-ordered with the upcoming bump in the database version.
|
||
|
||
97-07-14 bench The .pdb files have been re-added to the SHIP and
|
||
PROFILE drops on \\united\darwin. These files need to
|
||
be released to \\united\darrel. This was done upon
|
||
request from Office.
|
||
|
||
97-07-14 t-caroln Fixed bug 2289 dealing with transforms (only occured
|
||
in the ship version).
|
||
|
||
97-07-14 chetanp the shortcut, progman, registry, removeregistry,
|
||
inifile, removeinifile tables have changed to
|
||
incorporate a separate identifier key column for the
|
||
"localisable keys" problem.
|
||
the shortcut.shortcut column is now called
|
||
shortcut.name.
|
||
the class table has a new VIProgID column for version
|
||
independent prog id..
|
||
|
||
97-07-11 MattWe Repack: Added src\tools\repack\readme.txt to the
|
||
darwin source tree. This is our installation/run
|
||
"readme" file. It's primarily owned by JeffLar. Updated
|
||
copybld to copy to %TOOLSRELDIR%\Repack.txt.
|
||
TESTERS: THIS FILE SHOULD BE DROPPED TO tools\Repack.txt.
|
||
It is the same file for all processors and builds.
|
||
It has no version.
|
||
|
||
97-07-11 bench Added the ROLLBACKTEST property. When set, this
|
||
property forces rollback to be performed at the end of
|
||
an install. This is debug-Darwin only.
|
||
|
||
97-07-11 MattWe MsiGen: NOW bug #2288 fixed. Removed the SOURCEDIR
|
||
entry from the property table. For cabinet
|
||
installs, this probably should have been ignored anyway.
|
||
Worked fine on several machines, pukes on Rob's.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3111
|
||
-----------------------------
|
||
|
||
97-07-10 t-caroln Validation -- fixed bug 2286 to prevent validation
|
||
of temporary columns (as these would always fail
|
||
validation since they wouldn't have entries in the
|
||
_Validation table). If the column type happens to be
|
||
temporary, validation simply returns no error (for that
|
||
field, or in a record, the field would remain null).
|
||
|
||
97-07-10 t-caroln Fixed bugs 2283 and 2284. 2283 dealt with
|
||
MsiRecordGetString not returning a string even if the field is
|
||
of type integer (the documentation says it will
|
||
convert the int to string). Fixed it so that it now will
|
||
return the string or integer converted to the
|
||
string. If the field is a stream field, it is an invalid
|
||
data type. Added the MsiDatabaseIsTablePersistent
|
||
api. It returns an MSICONDITION enum that describes the
|
||
state of a table passed as a parameter
|
||
(MSICONDITION_ERROR = invalid handle or invalid parameter,
|
||
MSICONDITION_NONE = unknown table, MSICONDITION_FALSE =
|
||
temporary table, MSICONDITION_TRUE = persistent table).
|
||
|
||
97-07-10 MattWe MsiGen: Bugs# 2274 (Added directory remappings for
|
||
all system properties for logged on user, because
|
||
sysdiff /m doesn't remap registry entries, just files),
|
||
2239 (sysdiff spec changed), 2229 (removed SOURCEDIR
|
||
from directory table), 2212 (for zero length binary
|
||
blobs, now put nothing in value, instead of "#x"),
|
||
2170 (removed assert), 2261 (removed even more
|
||
informational, but non critical, asserts), 2218 (fixed an
|
||
extension table population side effect bug)
|
||
|
||
97-07-10 bench Patching is back! Added the CreatePatch and
|
||
ApplyPatch methods to the MsiPatch tool (contained in
|
||
msipat.dll). ApplyPatch will eventually move into Darwin.
|
||
These methods use the SmartPatch technology. See
|
||
msipat.hlp for more info.
|
||
|
||
97-07-10 ivanw The following three controlevent have been removed: (as I
|
||
mentioned in my 6/24 e-mail) SetPath, CheckPath and
|
||
CheckExistingPath. To replace these in your database use
|
||
SetTargetPath, CheckTargetPath or CheckExistingPath
|
||
respectively; followed by an EndDialog Return event.
|
||
Make sure you set the correct order for these two
|
||
events.
|
||
|
||
97-07-09 ivanw Bug #2219. Reworked how the validation of a control
|
||
locks a dialog from being closed. As part of this
|
||
change, the IMsiEvent::ReadyToChangeFocus() and the
|
||
IMsiControl::ReadyToLoseFocus() methods have been
|
||
eliminated. Added a new dialog attribute: Locked.
|
||
|
||
97-07-09 bench Fixed bug 2254. Prior to this fix, Darwin would
|
||
only prompt for reboot if a file was scheduled to
|
||
replace another file on reboot. However, on NT when
|
||
rollback is enabled there is never a need to schedule a
|
||
rename on reboot because an in-use file can be moved.
|
||
Thus, when a file was copied and the existing file was
|
||
in use the existing file was moved and reboot wasn't
|
||
prompted for. While reboot is not necessary in this
|
||
case to get the installed file to the correct spot,
|
||
it is necessary to get whatever is holding the old
|
||
file to hold the new one instead. In short, we now
|
||
detect when a file is in use and prompt for reboot even
|
||
though no renames are required.
|
||
|
||
97-07-09 t-caroln Validation -- fixed bug 1706 dealing with file
|
||
versions. the Version category is only used in the
|
||
File.Version column. It now does an extra check. If a
|
||
Version is authored (meaning 1.2.3.4), then a language
|
||
is required in the language column. If the file
|
||
doesn't have a language associated with it, then it is
|
||
considered language neutral and the author will put a
|
||
zero in the language column. The following are
|
||
examples of valid/invalid version - language pairs in the
|
||
file table:
|
||
|
||
1.2.3.4 0 // valid, version + language
|
||
1.2.3.4 (NULL) // invalid, version but no language
|
||
(NULL) 1033 // valid, language but no version (i.e. typelibs)
|
||
Testdb (NULL) // valid, companion file but no language
|
||
Testdb 1033 // valid, companion file and language
|
||
|
||
97-07-09 t-caroln Transforms -- fixed bugs 2131, 2083, and 2084.
|
||
These were re-activated because transforming wasn't
|
||
working correctly when adding additional columns or
|
||
additional tables to database already containing more than
|
||
one table.
|
||
|
||
97-07-09 bench The msi.hlp and msi.cnt in the \\united\darwin drop
|
||
are now being copied from \\oceania\hlp\msi. The
|
||
msiauto.hlp and msiauto.cnt files continue to be built
|
||
and copied from the build machine.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3108
|
||
-----------------------------
|
||
|
||
97-07-08 chetanp We now place the shortcut and cached transforms into
|
||
the "%userprofile%\msi folder in place of the
|
||
"%userprofile%\applications and %userprofile%\cache
|
||
folders.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3108
|
||
-----------------------------
|
||
|
||
97-07-07 malcolmh Added an option to msiinfo to validate string pools.
|
||
Use msiinfo(d) database.msi /D to verify that the
|
||
string reference coutns are correct. The string pool
|
||
will be displayed along with any errors.
|
||
|
||
97-07-07 t-caroln MsiTran(d).exe -- fixed bug 2231 so that it doesn't
|
||
crash whe not having arguments (meaning just typing
|
||
msitran(d).exe won't cause a crash).
|
||
|
||
97-07-07 bench Release process: removed the .pdb files from the
|
||
SHIP and PROFILE folders of the drop. (they were never
|
||
being dropped for PROFILE builds)
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3104
|
||
-----------------------------
|
||
|
||
97-07-03 t-caroln Fixed bug 1864 -- not finding missing columns during
|
||
validation. this is done in the msival(d).exe tool
|
||
now (none of the missing column code is inside
|
||
Darwin). The missing columns validation is based off of
|
||
the _Validation table, meaning the _Validation table is
|
||
considered to have an entry for every single column
|
||
in the database. If one adds a table/column, one has
|
||
to add the corresponding entry to the _Validation
|
||
table. If one deletes an optional column (it would be
|
||
better to leave it there and have null data), then
|
||
he/she would have to remove the corresponding entry
|
||
from the _Validation table.
|
||
|
||
97-07-02 bench Modified Services.CreateFileStream and CreateStorage
|
||
to impersonate if necessary before accessing the
|
||
given file. If running as a service and accessing a
|
||
network location, impersonation is performed. Removed
|
||
the code to do impersonation from the execution
|
||
operations that call these methods.
|
||
|
||
97-07-02 t-caroln Fixed bug 1178 dealing with checking the string
|
||
lengths against the lengths set in the column
|
||
definitions. If the length is zero, then the string can be
|
||
infinitely long. If it is nonzero, then the character
|
||
count must be less than the length. If this fails, the
|
||
error enum iveStringOverflow is set. The
|
||
MsiViewGetErrorAPI would return MSIDBERROR_STRINGOVERFLOW.
|
||
|
||
97-07-02 bench Added the profile build to the \\united\darwin drop.
|
||
The profile build is located in the PROFILE folder
|
||
beside SHIP, DEBUG, etc.. This folder is dropped in
|
||
the x86 folder only. The files contained in this
|
||
folder are identical in name and number to those in the
|
||
SHIP folder. The appropriate files need to be
|
||
released.
|
||
|
||
97-07-01 ivanw Updated the IceCap files to version 3.51. Wrote a
|
||
short document under doc/icecap/start to help the first
|
||
time users of the profiler. Updated the batch file
|
||
to reflect changes in our code.
|
||
|
||
97-07-01 t-caroln Transforms -- fixed bug 2084 dealing with
|
||
application of a tranform that creates a new table. this bug
|
||
had been fixed, but that was only if the new table
|
||
that was added had only one column. the fix now allows
|
||
the new table to contain more than one column.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3101
|
||
-----------------------------
|
||
|
||
97-06-30 t-caroln Fixed bug 2162 for msialter. Also commented out the
|
||
Validation and msidbval targets in the makefile (for
|
||
building the validation dll and msidbval.exe).
|
||
|
||
97-06-30 t-caroln Validation -- Fixed bugs 1551 and 1743. This
|
||
required adding two new validation categories --> Cabinet
|
||
and Shortcut. Shortcut is used in the Target column
|
||
of the Shortcut table. If the string does not contain
|
||
any brackets (meaning properties], then it is
|
||
validated as a valid identifier that is a foreign key into
|
||
the feature table. Else it is validated as a
|
||
KeyFormatted string. For cabinet, it is used in the Cabinet
|
||
column of the media table. If it is preceded by a #
|
||
or @ sign, then it must contain a valid filename
|
||
afterwards (which is the name of the cabinet).
|
||
|
||
97-06-29 t-caroln Fixed bugs 2138, 2139, and 2140 dealing with the
|
||
database query external API's.
|
||
|
||
97-06-27 t-caroln Updated help for transform error conditions when
|
||
calling SetTransform (as iteNone, iteAddExistingTable,
|
||
iteAddExistingRow, iteDelExistingRow, and
|
||
iteDelNonExistingTable now work) and added a reference to the
|
||
MsiMerg(d).exe tool under the TOOLS section.
|
||
|
||
97-06-27 t-caroln Fixed bugs 2131, 2132, and 2131 dealing with
|
||
transforms. Due to the fix for bug 2079, the msitran(d).exe
|
||
tool had to be updated to take into account the
|
||
output of all integers as longs. The fix for 2079 also
|
||
caused the assert in bug 2133 as it also didn't take
|
||
into account that the column def in the transform file
|
||
was now a long instead of a short. Bug 2132 dealt
|
||
with error conditions when setting a transform. It
|
||
wasn't ignoring the error if we told it too by
|
||
specifying iteNone as the error condition.
|
||
|
||
97-06-27 t-caroln Fixed bugs 2134 and 2135 with the MsiOpenDatabase
|
||
API. It now checks to ensure that the handle is not
|
||
zero and that the database path string pointer is not
|
||
zero.
|
||
|
||
97-06-27 t-caroln Makefile -- added target for msimerge to build the
|
||
console merge tool app. This tool is msimerg(d).exe.
|
||
MsiMergd.exe should be released to TOOLS.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3027
|
||
-----------------------------
|
||
|
||
97-06-26 t-caroln Helpfile -- Updated transform section of help and
|
||
the GenerateTransform and SetTransform methods of the
|
||
database. Also added help on the MsiTran(d).exe tool
|
||
which uses the external API to apply or generate a
|
||
transform and which can be used to view a transform.
|
||
|
||
97-06-26 t-caroln Makefile -- add msitran target to build the
|
||
MsiTran(d).exe tool. This tool uses the external API and has
|
||
options for applying a transform, generating a
|
||
transform, and viewing a transform. Use msitran(d).exe /?
|
||
for the option requirements. Both msitran.exe and
|
||
msitrand.exe need to be released to the TOOLS
|
||
directory.
|
||
|
||
97-06-26 t-caroln Changed the CMsiDatabase::SaveToStorage,
|
||
CMsiDatabase::DropTable, CMsiDatabase::ImportTable, and
|
||
CMsiDatabase::LoadFromStorage methods. In SaveToStorage, if
|
||
there are no rows in the table, then we do not create
|
||
the empty stream. (However, the table is still
|
||
there, it's just in the table and column catalog). This
|
||
shrinks the size of the databases. The other methods
|
||
had to be changed to account for the fact that the
|
||
stream may or may not be there (depending on whether
|
||
or not the table has any rows).
|
||
|
||
|
||
97-06-26 t-caroln In order to fix bug 2084, other changes in the
|
||
database had to be made. During a transforming, if we
|
||
have to add a column to the column catalog, we mask off
|
||
the persistent bit (and then put it back when
|
||
CreateColumnsFromCatalog is called). This allows for the
|
||
correct calculation of cbFileWidth so that we don't
|
||
take into account the new columns (which would mess up
|
||
the reading of the stream during
|
||
CMsiDatabase::LoadFromStorage.) The count of the persistent count
|
||
includes all of the columns (even the new ones), but the
|
||
loaded column count is for those columns that were not
|
||
recently added during transforming. So, instead of
|
||
looping until the persistent count of columns,
|
||
LoadFromStorage loops through the loaded column count so it
|
||
reads correctly from the stream. This required adding
|
||
a new inline method to the CCatalogTables class so
|
||
that it sets the loaded column count member variable
|
||
and then calls the CMsiTable::LoadFromStorage method.
|
||
The new method in CCatalogTable is LoadData.
|
||
|
||
97-06-26 t-caroln Fixed bugs 2079 (again) and 2084 for transforming.
|
||
Because want to preserve the iMsiNullIntegerValue,
|
||
all integers are output as longs (even if the column
|
||
def is short). This ensures that if a column is
|
||
supposed to be null, it will become null during the
|
||
application of the transform. To fix the add a new table
|
||
bug (2084), made changes to transforming. Now when
|
||
calling ApplyTransform, we immediately transform the
|
||
table and column catalogs as well as transform any table
|
||
loaded in memory. All other tables that require
|
||
transforming are marked as needing a transform and will
|
||
be transformed when loaded or the database is
|
||
committed.
|
||
|
||
97-06-26 MattWe MsiSpy: Added "spy" option to make (e.g. make debug
|
||
win spy). Builds t-guhans' tool for viewing
|
||
installed products on your machine, or for opening a
|
||
database, and finding out how much of it was installed.
|
||
Sources: darwin/src/tools/msispy. Builds
|
||
msispyu(d).dll and msispy(d).exe. This is not currently being
|
||
built on the build machine but may be added later.
|
||
|
||
97-06-25 bench Changed makefile so that install*.exe is no longer
|
||
built with MAKE WIN DEBUG. It can still be built with
|
||
MAKE WIN DEBUG INSTALL
|
||
|
||
97-06-25 malcolmh Fix bug 2073. PackageName value is now correct
|
||
during floppy installs.
|
||
|
||
97-06-25 malcolmh Fixed bug 1506. We now use HKEY_USERS\SID instead of
|
||
HKEY_CURRENT_USER in the Installer API.
|
||
|
||
97-06-25 malcolmh Fixed bug 2071. We now always use the specified
|
||
package for Admin installs instead of looking in the
|
||
registry.
|
||
|
||
97-06-25 Tracyf As part of the fix for bugs 1862 and 1863, Darwin
|
||
now stores the full UNC path (if applicable) as the
|
||
keypath when registering components. Note that for Beta
|
||
1, this is done only for Microsoft network
|
||
connections (i.e. for server connections to Novell, Banyan,
|
||
etc. we still store drive letter paths). Another side
|
||
effect of the fix is that the MsiPath interface now
|
||
sports a new method: GetFullUNCFilePath.
|
||
|
||
97-06-25 chetanp added code to create a temporary "reverse" script
|
||
for product unadvertisement
|
||
(MsiProcessAdvertiseScript). Previously we were calling ExecuteRecord on the
|
||
individual records of the script for undoing it. Now we
|
||
put the reverse records in a temp script and call
|
||
RunScript on it. This is necessary for rollback.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3025
|
||
-----------------------------
|
||
|
||
97-06-25 mattwe RepackWiz: removed msiauto(d) from repkinst.bat
|
||
(Bug #2097)
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3025
|
||
-----------------------------
|
||
|
||
97-06-24 t-caroln Fixed bugs 2079 and 2083 dealing with transforms.
|
||
The iMsiNullInteger value was not handled correctly if
|
||
the column was of short integer type. To correct
|
||
this, if iMsiNullInteger is returned, then 0xFFFF is
|
||
written to the transform stream and checked for when
|
||
reading back from the transform stream. Also, when
|
||
adding a column to an existing table, GenerateTransform
|
||
now generates the correct transform file, with the
|
||
column listed in the column catalog and any values for
|
||
the new columns listed as updates for that particular
|
||
table stream.
|
||
|
||
|
||
97-06-24 ivanw Added three new control events: SetTargetPath,
|
||
CheckTargetPath and CheckExistiingTargetPath. These three
|
||
will replace the existion SetPath, CheckPath and
|
||
CheckExistingPath control events. The old ones do what
|
||
their names suggest plus they do what EndDialog Return
|
||
would do. The new ones do just what the name says,
|
||
and you have to add a separate EndDialog or SpawnDialog
|
||
or some other event to do the transitioning. This
|
||
way the functionalities are clearer and we also provide
|
||
greater flexibility. (the old ones worked properly
|
||
only on a child window) Temporarily both the old and
|
||
new events are supported. Within a week the old events
|
||
will be removed. To prepare for this, in the
|
||
Controlevent table you have to remove the old events by two
|
||
lines, the first one is the appropriate new event,
|
||
the second line is a EndDialog Return. For an example
|
||
check out the Testdb.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3024
|
||
-----------------------------
|
||
|
||
97-06-23 malcolmh Fixed bugs 1862, 1884, 1974, 1977. We have a
|
||
temporary (until Beta 2) to allow the conman's
|
||
LocateComponent to return the actual install state of the 'active'
|
||
component. Beta 2 will provide a real solution with
|
||
the complete implementation of the sourcelist spec
|
||
and the resolution of our component management
|
||
strategy.
|
||
|
||
97-06-23 malcolmh Fixed bug 1797.
|
||
|
||
97-06-23 bench Bug 2027: Fixed the path object to accepts paths of
|
||
the form c:\subdir\\\\subdir2\\\subdir3. When the
|
||
path object gets a path of this form, the path is
|
||
"normalized" to remove any extraneous backslashes. This
|
||
effects the CreatePath and AppendPiece functions.
|
||
|
||
97-06-21 mattwe MsiGen: Bug #2055 -- Added functionality to
|
||
repackage shortcuts to directories, both advertised,
|
||
unadvertised, and files/directories not in our installs via
|
||
properties.
|
||
|
||
97-06-20 mattwe _assert.h: Changed implementation of FailAssertSz
|
||
to use MsiString. It didn't check the length of an
|
||
incoming message, and its template form of ("assert in
|
||
file: <foo>") could have overflowed the buffer
|
||
itself with a very long source file name. Consequently,
|
||
it trashed memory. Now it works for arbitrarily long
|
||
messages. Bugs: #2055, 2058
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3020
|
||
-----------------------------
|
||
|
||
97-06-20 mattwe MsiGen: Bugs 1796 - increased internal buffer size
|
||
for lines from INF, as well as added line truncation
|
||
ability. Bug 1897: Trivial fix to add another "flag"
|
||
value indicating binary values from the INF. New
|
||
sysdiff apparently uses a new value to mark them. Bug
|
||
#2047 -- caught invalid or previously unknown GUIDs
|
||
during a repackage. (later keys like FILETYPE
|
||
referred to GUIDs that weren't registered under a CLSID
|
||
entry.)
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3020
|
||
-----------------------------
|
||
|
||
|
||
97-06-19 malcolmh Clearreg has been updated to reflect new registry layout.
|
||
|
||
97-06-19 malcolmh Updated ixoProductRegister and Conman::RegisterProduct
|
||
to include the new bunch of data required by the
|
||
registry spec.
|
||
|
||
*WARNING*: This will break all old install scripts.
|
||
|
||
97-06-19 malcolmh Added option /T to msiexec to support uninstall
|
||
via a product code. This was required to support
|
||
the logo requirement for a command-line that
|
||
will uninstall a product.
|
||
|
||
97-06-19 malcolmh Fixed bug 1908. We now cache the product database
|
||
in %WINDOWS%\MSI. An operation, ixoDatabaseCache,
|
||
has been added to perform this operation. It
|
||
caches the database and registers the location
|
||
in HKLM\SW\MS\Windows\CurrentVersion\Uninstall\LocalPackage.
|
||
The cached database is costed.
|
||
|
||
When we cache the database we drop any cabinet streams
|
||
it contains. This currently results in no reduction in
|
||
size of the database, but by Beta 2 it will. You can
|
||
for now use dfview to verify that the cabinet streams are
|
||
gone.
|
||
|
||
The database is removed when the product is unregistered.
|
||
|
||
So, this might beg the question, "How do we determine the
|
||
source of an installation?" Here's the short answer:
|
||
|
||
1) If the app has not been advertised or installed:
|
||
|
||
- If SOURCEDIR is specified on the command-line
|
||
then it is used as the source
|
||
|
||
- Otherwise, we assume that database is in the root
|
||
of the source
|
||
|
||
2) If the app has been advertised:
|
||
|
||
- We used the advertised source source location.
|
||
|
||
3) If the app has been installed
|
||
|
||
- We use the source location that was used at first-run.
|
||
- If the first-run source is unavailable then we use
|
||
SOURCEDIR if it is specified
|
||
- Otherwise, we can't access the source so we can only
|
||
do configuration that doesn't require hitting the source
|
||
|
||
Check out HKCU\SW\Classes\Installer\...
|
||
Products\{ProductCode}\SourceList
|
||
|
||
to see which source (LastUsedNet value) and Package
|
||
(PackageName value) was advertised (or placed at
|
||
install-time if there was no explicit advertisement)
|
||
|
||
|
||
97-06-19 malcolmh Fixed bug 1907. Changed the locations of almost all of
|
||
Darwin's reg keys. See the Registry spec
|
||
(http://office/web/specs/tco/darwinregistry.html) for
|
||
most of the details (full details are forthcoming).
|
||
|
||
Two sets of changes were made. First, we changed where
|
||
we write OLE registration goop at advertise time. This
|
||
now goes into HKCU\Software\Classes as opposed
|
||
to HKCR. We write Darwin's advertised information to
|
||
HKCU\Software\Classes\Installer.
|
||
|
||
Second, we've moved our local machine keys. We have
|
||
many keys under HKLM\SW\MS\Windows\CurrentVersion\Uninstall.
|
||
Logo requirements state that we must put a bunch of
|
||
values, and we don't want to needlessly duplicate them. We
|
||
have some keys under HKLM\SW\MS\Windows\CurrentVersion\Installer
|
||
as well.
|
||
|
||
97-06-19 mattwe MsiGen: Bug# 2022, and partial implementation of
|
||
Work Item #1608 (icon executables) #1608 needs to be
|
||
enabled by work in RepackUI, and needs additional
|
||
work to draw icons from executables associated with
|
||
extensions. Known bugs: Darwin Costing bug #2036
|
||
|
||
97-06-19 mattwe Rungen: Added support to use icon templates. Needs
|
||
same work done on RepackWiz
|
||
|
||
97-06-19 mattwe Repack: Added NOUI property to the repack template
|
||
|
||
97-06-19 mattwe MsiGen: updated for CreatePath API change
|
||
|
||
97-06-19 mattwe RepackUI: updated for CreatePath API change
|
||
|
||
97-06-19 mattwe Repack: added rpkicon to copybld, shove, and
|
||
repkinst
|
||
|
||
97-06-19 mattwe Repack: Added file rpkicon.exe to <platform>\Tools.
|
||
It must be dropped. It's the same file for all
|
||
platforms, and is a resource only executable.
|
||
|
||
97-06-19 mattwe Util: updated for new path object. Should build
|
||
now
|
||
|
||
97-06-19 bench Enhanced the /q option of msiexec to specify any of
|
||
the four UI levels: Full, Reduced, Basic or None.
|
||
The syntax is /q [f|r|b|n]. Only the first letter of
|
||
the option is examined. /q by itself still means
|
||
quiet mode.
|
||
|
||
97-06-19 bench Added the NOUI property, which caps the UI level for
|
||
the package at Basic. In other words, if Full or
|
||
Reduced UI levels are requested, Basic is used. This
|
||
property can be set in the property table or on the
|
||
command line.
|
||
|
||
97-06-19 bench Removed support for the UI property, which didn't
|
||
make sense as a property anyway.
|
||
|
||
97-06-19 bench We are no longer dropping the following files to
|
||
\\united\darwin:
|
||
|
||
TOOLS\Repack (the entire folder)
|
||
TOOLS\Debug (the entire folder)
|
||
TOOLS\Ship (the entire folder)
|
||
TOOLS\rungen.exe
|
||
TOOLS\install.h
|
||
TOOLS\launchrc.h
|
||
TOOLS\install.ico
|
||
|
||
In addition, we are now dropping the Alpha versions of
|
||
sysdiff.exe and makecab.exe. (The Intel versions were
|
||
previously being dropped to the Alpha folder). The
|
||
makecab.exe in the TOOLS folder needs to be released
|
||
if it isn't already.
|
||
|
||
97-06-18 malcolmh Fix bug 2006 -- unhelpful error message from msiexec
|
||
/unreg. Fix service to not accept the STOP message
|
||
during installations.
|
||
|
||
97-06-18 bench No longer dropping install*.* to \\united\darwin, as
|
||
launchers are no longer supported.
|
||
|
||
97-06-18 bench Added two new methods to MsiServices:
|
||
ExtractFileName and ValidateFileName. ExtractFileName accepts a
|
||
"short|long" pair of file names and a flag indicating
|
||
which name to extract, then returns the extracted
|
||
name. The extracted name is validated for proper syntax.
|
||
ValidateFileName validates a file name for either
|
||
short on long file name syntax.
|
||
|
||
97-06-18 bench Added the SupportsLFN method the MsiPath. This
|
||
allows one to call directly on the Path object without
|
||
first getting its Volume object and calling on that.
|
||
|
||
97-06-18 bench Path object: The path object no longer handles
|
||
extracting short or long file names from "short|long"
|
||
pairs. Specifically, CreatePath no longer takes the
|
||
fSuppressLFN flag and paths no longer accept file names
|
||
of the syntax "short|long." As a result of these
|
||
changes, we correctly handle existing paths with long
|
||
names even though we may be using the short names from
|
||
the File and Directory tables. This fixed bugs 1336,
|
||
1809 and 1881.
|
||
|
||
97-06-17 malcolmh Fixed bug 1970, keeping open frequently used reg
|
||
keys in Installer API
|
||
|
||
97-06-17 malcolmh Fixed bug 1341. We now copy the product database to the
|
||
TEMP folder if it resided on a floppy or other removable
|
||
media. The internal SOURCEDIR property is set to point to
|
||
the folder containing the database before it moved. The
|
||
copying of the database is done in Engine::Initialize,
|
||
just before the database is opened. Deleting the temp
|
||
copy is done in Engine::Terminate, just after the
|
||
database is closed.
|
||
|
||
For example, installing from a:\testdb.msi will result in
|
||
the database being copied to the TEMP folder, the internal
|
||
DATABASE property being set to C:\TEMP\tmpname.msi, and
|
||
the internal SOURCEDIR property being set to A:\.
|
||
|
||
*WARNING* -->
|
||
|
||
The SOURCEDIR should not be authored into any database.
|
||
This will confuse us and lead to incorrect behavior.
|
||
|
||
97-06-17 malcolmh Fixed bugs 1982, 1987.
|
||
|
||
97-06-17 malcolmh Fixed bug 1231 -- Conman::RegisterProduct writes
|
||
empty registry values correctly now
|
||
|
||
97-06-17 malcolmh Fix bug 1969: CMsiExecute::CopyFile now handles
|
||
rollback correctly.
|
||
|
||
97-06-17 malcolmh Removed launcher support from the engine and
|
||
Installer API. Packages must now be used. This fixes bug
|
||
1797.
|
||
|
||
97-06-17 ivanw Bug 1880. On the browse dialog now we correctly
|
||
disable the new folder button if the current folder is
|
||
not writable. Also now we select different default
|
||
folder names on volumes that support long file names and
|
||
on those that do not support.
|
||
|
||
97-06-17 ivanw Bug 1964. Moved and modified the code that sets the
|
||
initial values for the username and company
|
||
properties. Before these were set in the RegisterUser action,
|
||
which is far too late. Now these properties are set in
|
||
Engine::Initialize. Removed the USERNAME property from
|
||
the property table.
|
||
|
||
97-06-17 t-caroln Msidb(d).exe -- fixed bug #1973. When the
|
||
MsiOpenDatabase API calls the GetDatabaseType function, it
|
||
would just pass in the database name (which may not
|
||
always be a full path). So, the CreateFile call would
|
||
try to open up the access database from the
|
||
executable's directory. The fix was to prepend the current
|
||
directory to the database name before calling the externa
|
||
api to open the database.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3017
|
||
-----------------------------
|
||
|
||
97-06-17 malcolmh Updated clearreg. The old parameters have been replaced
|
||
in favor of the following (from clearreg /?):
|
||
|
||
Syntax: clearreg [L|A]
|
||
Clears reg keys used by Darwin. Specify 'L' for local
|
||
machine keys and 'A' for advertised keys. If neither is
|
||
specified then both will be cleared.
|
||
|
||
Local keys cleared:
|
||
|
||
HKLM\Software\Installer
|
||
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
|
||
HKLM\Software\Microsoft\Windows\CurrentVersion\SharedDLLs
|
||
(only those values that match keypaths of components in
|
||
HKLM\Software\Installer\Components are cleared)
|
||
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
|
||
(only those keys that match product codes in
|
||
HKLM or HKCR \Software\Installer\Products are cleared)
|
||
|
||
Advertised keys cleared:
|
||
|
||
HKCR\Software\Installer
|
||
|
||
97-06-16 t-caroln Bug 1960 -- CMsiDatabase::Commit requires creating a
|
||
separate catalog cursor on the table catalog (since
|
||
it could be updated). This new cursor does not have
|
||
write access however, so I had to change it so that
|
||
it does. The current fix is temporary until the
|
||
states are completed. However, the current fix enables
|
||
the continued testing of transforms.
|
||
|
||
97-06-16 t-caroln Each of these files needs to be released to \TOOLs
|
||
in the \\united\darrel drop. MsiDbD.exe, MsiDbd.pdb,
|
||
MsiDbd.map, MsiDb.exe, MsiDb.pdb, MsiDb.map,
|
||
MsiVald.exe, MsiVald.pdb, MsiVald.map, MsiVal.exe,
|
||
MsiVal,pdb, MsiVal.map. Also, the smoke test should no longer
|
||
check for msidbval.exe and msival(d).dll as these
|
||
files are no longer released.
|
||
|
||
97-06-16 t-caroln Makefile -- Validation now done with msival(d).exe
|
||
instead of msidbval.exe.
|
||
|
||
|
||
97-06-16 t-caroln Bug 1894. Since rollbacked, began fixing again.
|
||
This time with the primary key columns only. So, now
|
||
the primary key columns use the lower case letter to
|
||
denote non-nullable columns. These check-ins were
|
||
also tested with the repackager.
|
||
|
||
97-06-16 t-caroln Msidb(d).exe -- Bug 1946. Made merge errors fatal
|
||
during the build process. Note, some merge erros may
|
||
not be listed in the _MergeErrors table if the errors
|
||
happen to be due to differences in the table schema
|
||
definitions.
|
||
|
||
97-06-16 mattwe MsiGen: Bug #1815 Working on generating the right
|
||
components for extensions and classes
|
||
|
||
97-06-15 MattWe Rolled Carolyn's changes of 6-11 to the individual
|
||
tables back. Broke the repackager terribly, as we
|
||
populate our rows a few columns at a time. Pushed to
|
||
Beta 2.
|
||
|
||
97-06-13 MattWe MsiGen: Bug fixes #1356, #1822, #1878
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3013
|
||
-----------------------------
|
||
|
||
97-06-11 bench Bug 1905: Changed to Intel property to be defined as the
|
||
processor level, e.g. 4, 5, 6 ... rather than the
|
||
processor type, e.g. 486, 586. This was done because the
|
||
system no longer supports providing the processor type
|
||
for all processors in the future, where it does
|
||
provide the processor level.
|
||
|
||
97-06-11 t-caroln All tables -- bug 1894 fix. Any column that is not
|
||
nullable must use a lower case letter in the .idt
|
||
file when defining the column definition. Nullable
|
||
columns use an upper-case letter. Changed all tables to
|
||
conform to the standard (that's listed in the help
|
||
file for the definition of the archive files) and
|
||
updated the _Validtion table to match the table
|
||
definitions.
|
||
|
||
97-06-10 bench Modified the way we set the ROOTDRIVE property,
|
||
which defines the default location of any install. In
|
||
Admin mode, we set ROOTDRIVE to the first writable
|
||
mapped network drive found. In non-admin mode, we set
|
||
ROOTDRIVE to the fixed writable drive with the most
|
||
free disk space. Previously, we weren't taking
|
||
writability into account when setting this property.
|
||
|
||
97-06-10 t-caroln MsiDb(d).exe -- bug 1902. Fixed so that can run
|
||
MsiDb(d) -c and then run in interactive mode to create a
|
||
new database. Previously would create the database
|
||
but would not allow import of tables.
|
||
|
||
97-06-10 t-caroln Helpfile -- Added help for building the databases.
|
||
It's under Development Topics/Building the Databases.
|
||
|
||
97-06-10 t-caroln Bug fixes 1890, 1891, and 1892. Changed the calls
|
||
to the obsolete View functions to use the
|
||
CMsiView::Modify function with the appropriate enum
|
||
|
||
97-06-10 t-caroln MsiInfo(d).exe -- added it to TOOLS in the release.
|
||
Do not release externally yet.
|
||
|
||
97-06-10 t-caroln MsiInfo(d).exe -- Bug 1886. Made it possible to set
|
||
summary information stream properties by using
|
||
switches on a command line. See the help file topic
|
||
Tools/SummaryInfo for more details. This tool also
|
||
displays the summary information of the database. To
|
||
display, use MsiInfo(d) {database}. To set summary
|
||
information properties, use MsiInfo(d) {database}
|
||
{option}{data}..... If not data is specifiec for an option,
|
||
that summary information property is removed. This
|
||
tool uses the external API.
|
||
|
||
97-06-10 t-caroln MsiDb(d).exe -- Bug 1885. Made it possible in quiet
|
||
mode to open a database stored in the 'My Documents'
|
||
folder by changing the command line parsing routine
|
||
to look for quotation marks and allow spaces. So,
|
||
can export or import to a database or folder if for
|
||
example for a database, you would use -d "c:\my
|
||
documents\testdb.msi".
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3010
|
||
-----------------------------
|
||
|
||
97-06-09 malcolmh Bug 1758 has been fixed. You should see no more
|
||
error messages that look like "1: 1304 2: 5 3: foo.txt"
|
||
All error messages should be fully resolved to
|
||
human-readable text.
|
||
|
||
97-06-06 ivanw Performed some cleanup in our databases. Removed the
|
||
files representing empty tables in template, testdb and
|
||
testcab. Removed duplicate information from the
|
||
tables. Removed unused binary files, and moved the used
|
||
ones to the directories where they are actually used.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3006
|
||
-----------------------------
|
||
|
||
97-06-05 chetanp bumped up database version to 0.19 due to table
|
||
changes
|
||
|
||
97-06-05 chetanp shifted BindImage function from IMsiServices to
|
||
IMsiPath object.
|
||
|
||
changed ProgMan.WkDir to ProgMan.WkDir_.
|
||
|
||
changed Shortcut.WkDir to Shortcut.WkDir_.
|
||
|
||
97-06-05 t-caroln MsiDb(d).exe -- Exporting from a read-only database
|
||
can only be done in interactive mode. (left this out
|
||
in previous note)
|
||
|
||
97-06-05 t-caroln Bug fix 1850 -- assert in shared.cpp due to usage of
|
||
now obsolete CMsiView::Insert function. Changed to
|
||
use CMsiView::Modify with the irmInsert enum.
|
||
|
||
97-06-05 t-caroln Msidb(d).exe -- Fixed bugs 1846, 1847, 1848. should
|
||
now be able to round trip with access->msi and
|
||
msi->access (plus the memory leak when exporting from
|
||
access which is already documented and a not fix). Should
|
||
also be able to open a read-only database and export
|
||
from it. Can also create an access database now
|
||
(provided the name of the database you give has the .mdb
|
||
extension).
|
||
|
||
97-06-05 ivanw Bug fix 1813. Added Order primary key column to the Combobox,
|
||
Listbox, Listview and Radiobutton tables. Removed the optional
|
||
Ordering columns from the first three tables and the Value_Next
|
||
column from the Radiobutton table. Removed the
|
||
ItemsNext control attribute.
|
||
|
||
97-06-05 MattWe MsiGen: bug fixes #1745, 1764, 1768, 1811.
|
||
|
||
97-06-05 t-caroln Msi.Hlp -- bug 1823. Add more information so that
|
||
the database API's (in msiquery.h) have similar help
|
||
information as their corresponding methods in the
|
||
automation help file.
|
||
|
||
97-06-05 t-caroln Validation -- bug 1801. . and .. and multiple dots
|
||
not excepted in filename/folder names. Now validate
|
||
that. Ensures that short filenames/folder names only
|
||
contain at most one period and that long filenames
|
||
can contain multiple dots, but at least one other valid
|
||
character besides a dot. Hence ........ is invalid,
|
||
but .......s is valid.
|
||
|
||
97-06-04 Tracyf Costing code for Registry, IniFile, Class, MIME, and
|
||
Redirection tables has been enabled and debugged
|
||
(see bug 978).
|
||
|
||
97-06-04 ivanw Removed support for the old format of the
|
||
ControlEvent table where the Ordering column is missing. This
|
||
format change happened last year, so everybody had
|
||
ample time to update the tables.
|
||
|
||
97-06-04 ivanw Removed code that supported the old form of
|
||
RadioButton table with the Help column missing. This format
|
||
change happened over half a year ago, so hopefully
|
||
there are no such old tables lying around.
|
||
|
||
97-06-04 ivanw Bugs 1729, 1747. Modified the Admin wizard sequence
|
||
in the template database. Removed three obsolete
|
||
dialogs related to advertising. Added a browse dialog for
|
||
the install point. The browse dialog is not
|
||
functional yet, it needs some code in a couple of actions,
|
||
that will set the path to a reasonable default value.
|
||
|
||
97-06-03 t-caroln Makefile -- added target for MsiDb.exe and
|
||
MsiValx.exe. You can build either ship or debug of these.
|
||
MsiDb(d).exe was formerly apitable.exe and
|
||
MsiValx(d).exe was formerly apidbval.exe. Had to add the x to
|
||
msival since the msival.dll creates similar files and
|
||
wanted to distinguish between the two.
|
||
|
||
97-06-03 t-caroln Makefile -- fix bug 1566. The problem was msitable
|
||
was being built debug or ship, but whatever version
|
||
was clobbered during the make process. Msitable.exe
|
||
is now built debug only. We now use msidb(d).exe
|
||
during the make process for building the databases.
|
||
MsiDb(d).exe was formerly apitable.exe. It is msitable,
|
||
but it uses the external apis. Since this gets
|
||
labeled as debug or ship, it is always built correctly.
|
||
|
||
97-06-03 t-caroln Validation -- fixed bug 1793 for duplicatekey check
|
||
for new rows. Will now complete the check, as before
|
||
it was exiting prematurely.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.3003
|
||
-----------------------------
|
||
|
||
97-06-02 t-caroln MsiQuery API -- fix bug 1716 where MsiOpenDatabase
|
||
could only open idbMsi or idbCreate. Implemented
|
||
function GetDatabaseType which it calls to determine
|
||
whether the database is idbMsi, idbAccess, idbODBC, or
|
||
idbSQLServer.
|
||
|
||
97-06-02 t-caroln MsiQuery API-- fixed bug 1756 dealing with the
|
||
MsiRecordGetString API. When calling the FillBuffer
|
||
function it attempted to dereference a null pointer in
|
||
some cases. Fixed so that it doesn't attempt to deref a
|
||
null pointer and releases the string properly.
|
||
|
||
|
||
97-06-02 t-caroln Validation -- fixed bug 1741. Exception caused by
|
||
SourceDirectory table in a repackaged database.
|
||
changed so that if it is the sourcedirectory table, it
|
||
uses the sourceDirectory table's name for the columns
|
||
that it looks for. Bug also related to attempt to
|
||
derefernce a null pointer in other section of code.
|
||
Fixed that as well.
|
||
|
||
97-06-02 MattWe Repack: Bug #1764: Changed Repackager to read a
|
||
hex value from the registry for a Typelib LCID. (Was
|
||
reading it as a decimal, and so the value got
|
||
corrupted.)
|
||
|
||
97-05-30 t-caroln ApiTable.exe -- Fixed bugs #1713, 1714.
|
||
ApiTable.exe is the msitable tool that uses the external api.
|
||
It works exactly like msitable and also allows the -t
|
||
option for applying transforms (similar to the -m
|
||
option for merging databases). The -t option is only
|
||
permitted in command line mode. Currently ApiTable.exe
|
||
only works on creating new databases or opening msi
|
||
databases due to a bug in MsiOpenDatabase which
|
||
doesn't check the type and assumes msi.
|
||
|
||
97-05-30 t-caroln ApiDbVal -- fixed bug #1712. Now the error strings
|
||
can be localized as they are now resources in a
|
||
string table instead of hard coded in the .cpp file.
|
||
|
||
97-05-30 t-caroln Msiquery.cpp -- Fixed bugs #1696 and #1697 where
|
||
services was being leaked. Now there is no longer a
|
||
memory leak when using the MsiDatabaseGenerateTransform
|
||
and MsiDatabaseApplyTransform APIs.
|
||
|
||
|
||
97-05-30 t-caroln Makefile -- added target apitable to build
|
||
apitable.exe. It uses the tools' makefile.
|
||
|
||
|
||
97-05-30 bench Added the file animate.avi to the TOOLS folder in
|
||
the drop. This file needs to be released.
|
||
|
||
97-05-30 ivanw (bug 1331) Added a Cancel button to the basic UI. Changed the
|
||
functions in the engine that interact with the basic
|
||
UI so they take notice when the button is pressed.
|
||
Just as with the regular UI, after hitting the Cancel we
|
||
are at the mercy of the running action. If it is
|
||
considerate, it will stop in the middle. If the action
|
||
ignores the cancel message the action can finish its
|
||
business but the Sequence will prevent any further
|
||
actions from starting. For this reason it is important that
|
||
all actions check the return value when they call Message!
|
||
|
||
97-05-30 malcolmh Resolved bugs 1590,1695,1690,1685,1694. Most code in
|
||
Darwin no longer requires the DLLs to be registered.
|
||
Only the server needs to be registered (msiexec
|
||
/regserver). We should no longer be using
|
||
CoCreateInstance to obtain objects from the kernel. Rather, we
|
||
should load the class factory directly from the DLL and
|
||
use it.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2930
|
||
-----------------------------
|
||
|
||
97-05-29 bench Fixed bugs 1656, 1663, 1664, 1672 and 1674, all
|
||
related to the path object incorrectly handling errors
|
||
when reading from a file that is held by another
|
||
process with exclusive access (i.e. no sharing whatsoever).
|
||
These fixes in the path object will allow costing
|
||
and file copy/removal to handle these cases
|
||
appropriately (thereby fixing bugs 1488 and 1489).
|
||
|
||
97-05-29 mattwe MsiGen: (bug #1608) Abandoned creating ICO files
|
||
for shortcut targets, and now starting to use EXEs.
|
||
Right now, they all use advt.exe, located in
|
||
src\tools\repack\support. Further work being done to use the
|
||
individual icons used up from the target apps.
|
||
|
||
97-05-29 malcolmh Resolved bugs 1496, 1511, 1548, 1562, 1572, 1578,
|
||
1579, 1589, 1592, 1595, 1597, 1598, 1626, 1631, 1637,
|
||
1639, 1659. The API's basic UI now uses the same basic
|
||
UI that the engine uses. This mainly affects
|
||
MsiProcessAdvertiseScript, which previously only displayed
|
||
messageboxes.
|
||
|
||
97-05-28 t-caroln apidbval is now a target in the makefile to build
|
||
apidbval.exe which is the database validation tool that
|
||
uses the external api and the validation code in
|
||
services. Fixed bug #1644 so that apidbval reports the
|
||
errors that are reported by msidbval. Apidbval will
|
||
eventually replace msidbval, but for now both
|
||
executables and both the core and msival(*).dll validation
|
||
code will be maintained.
|
||
|
||
97-05-28 johndelo MsiInfo.exe is now built by the makefile (not
|
||
delivered yet). It is a replacement for suminfo.exe that
|
||
uses the external MSI API, and will eventually allow
|
||
setting of summary information property values.
|
||
|
||
97-05-27 bench Fixed bugs 1576 and 1624, dealing with Admin
|
||
installs. To fix 1576, we always set properties for folders
|
||
in the directory table, whereas before we didn't set
|
||
these properties during an admin install. Code
|
||
existed that depended on those properties being set even
|
||
in admin mode. 1624 was fixed by updating the
|
||
AdminInstallFinalize action. This action now copies only
|
||
the database to the admin image, even if a launcher is
|
||
used. An error occurs if an admin install is
|
||
attempted with a launcher containing the database in a
|
||
resource, so don't do it.
|
||
|
||
97-05-27 johndelo The following are no longer built as part of the
|
||
standard build and release: msinst.h msinst.lib,
|
||
msieng*.dll msisrv*.dll. The DLLs can still be build using
|
||
the target names: engine and services. This support
|
||
will eventually be dropped. The makefile is now using
|
||
precompiled headers for much faster builds. This
|
||
requires that common.h comes before any defines,
|
||
definitions, or other includes in the source files.
|
||
|
||
97-05-27 t-caroln Implemented apidbval.exe. Currently the way to
|
||
build it is to run nmake -f apidbval.cpp from the
|
||
%Darwin%\src\tools directory. This executable validates a
|
||
msi database. It uses the external apis instead of
|
||
the validation dll.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2922
|
||
-----------------------------
|
||
|
||
97-05-22 bench Now dropping msierror.msg to \\united\darwin in the
|
||
SHIP, SHIPSYM, DEBUG and LEGO folders. These files
|
||
need to be released.
|
||
|
||
97-05-22 Mattwe MsiGen: Gave names to anonymous persistent columns.
|
||
(necessitated by midnight changes in database.cpp.)
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2922
|
||
-----------------------------
|
||
|
||
97-05-21 bench Removed the ixoFileMove operation, as identical
|
||
functionality exists in ixoFileCopy using the
|
||
icmRemoveSource install mode bit.
|
||
|
||
97-05-21 malcolmh Made change to the API to fall back to using the
|
||
InProgress key if we can't find source information in
|
||
the standard location. I.E. if we're given a product
|
||
code but the product's not yet advertised we'll look in
|
||
the inprogress key to see whether the key matches
|
||
the in progress key. If it does then we use the
|
||
database listed under the in-progress key. This makes
|
||
suspend, resume, and reboot functional.
|
||
|
||
97-05-21 johndelo MsiDatabase.Persist(idpEnum) and the C API
|
||
MsiDatabasePersist(enum) are now OBSOLETE, replaced by
|
||
MsiDatabase.Commit() and MsiDatabaseCommit(), with no
|
||
arguments. Rollback of uncommitted persistent data is
|
||
implicitly performed when the database is closed. Commit
|
||
may be called multiple times. The old functions will
|
||
be supported (commit only) for a couple releases.
|
||
|
||
97-05-21 Mattwe MsiGen: added 16 bit contexts to class table. Also
|
||
bug fixes.
|
||
|
||
97-05-21 johndelo MsiDatabase.GetPrimaryKeys(szTable) is now
|
||
implemented for all databases and is supported in the C API as
|
||
MsiDatabaseGetPrimaryKeys, which returns a record
|
||
corresponding to the primary key columns.
|
||
|
||
97-05-21 Mattwe Validation: changed MIME primary key from
|
||
identifier to text. "foo/bar" is the typical MIME entry, but
|
||
that doesn't fit for identifiers.
|
||
|
||
97-05-21 bench Added the UpdateStared property, which is set when
|
||
we are in resume mode, or in InstallValidate. When
|
||
this property is set, it means that we have updated the
|
||
system in some way and there is something to
|
||
rollback. In testdb, this property determines whether we
|
||
ask the user to rollback in the final dialogs.
|
||
|
||
97-05-21 malcolmh Added a field to ixProductInfo record and changed
|
||
one. See helpfile for the new list of fields.
|
||
|
||
97-05-21 malcolmh Command-line options to msiexec no longer need to be
|
||
specified in a particular order.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2921
|
||
-----------------------------
|
||
|
||
97-05-21 Tracyf As part of fixing bug 1544, the RunFromSource
|
||
column of the Feature table has been changed to be
|
||
non-nullable (a value is now required in this field).
|
||
|
||
97-05-21 bench Fixed ResolveFolderProperty again. This time, if we
|
||
can't find the path of the database, as is the case
|
||
when the database is located in the launcher, we use
|
||
the path of the launcher.
|
||
|
||
97-05-21 malcolmh Clearreg now also clears any SharedDLL entries in
|
||
|
||
HKLM\Software\Microsoft\Windows\CurrentVersion\SharedDLLs
|
||
that match components in HKLM\Software\Installer\Components.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2921
|
||
-----------------------------
|
||
|
||
97-05-21 johndelo MsiDatabase.Persist(idpCommit) will leave the database in a
|
||
writable state, as opposed to the previous behavior where it
|
||
put the database into a read-only state. Commit may be called
|
||
multiple times. Explicit Rollback is no longer supported
|
||
(there was no way to implement it without potential corruption
|
||
of the database). However, as today, Rollback is implicitly
|
||
called when the database object is destructed, which will
|
||
rollback updates back to the last Commit. MsiDatabase.GetUpdateState
|
||
will no longer return idsCommit or idsRollback.
|
||
|
||
97-05-21 johndelo MsiCursor: The iraReadOnly row attribute is removed, and the
|
||
iraUserInfo attribute is non-persistent. There are no persistent
|
||
row attributes--too risky to change the file format.
|
||
|
||
97-05-21 johndelo With a database opened read-only (like a normal install),
|
||
no persistent updates are allowed, i.e. no Insert into persistent
|
||
tables, and Update of temporary columns only. There is a new function
|
||
MsiCursor:InsertTemporary, which will insert a temporary row
|
||
into a persistent table. MsiView.Modify has a corresponding
|
||
option, ivmTemporary. Of course, an Insert can always be
|
||
be performed on a temporary table. Update of persistent data
|
||
in a read-only database was accidentally supported, and some
|
||
code may have taken advantage of it, but it causes database
|
||
corruption as the updated string pool cannot be kept in sync
|
||
with the persistent data on persistent file. In the engine,
|
||
SetProperty/GetProperty works on a private temporary table
|
||
maintained by the engine, that is initially populated with the
|
||
Property table data. This was also required to prevent the
|
||
authoring environment from putting working property settings,
|
||
like platform properties, into the ship Property table. Cursors
|
||
obtained for the database catalog tables are not updatable,
|
||
even for temporary columns and rows in order to preserve
|
||
database integrity, however the UserInfo row attribute may be set.
|
||
|
||
97-05-21 chetanp Added optional CompLocator table for Appsearch
|
||
Added optional Cost column to TypeLib table
|
||
|
||
97-05-21 Tracyf Support for decompressing files from a cabinet
|
||
stored as a stream in an .MSI database is now implemented.
|
||
The MsiAlter tool can be used to cram a cabinet file
|
||
into the database. In the Media table, the
|
||
"Cabinet" column should contain the name of the stream
|
||
containing the cabinet, preceded by a pound sign ("#").
|
||
|
||
97-05-21 Tracyf The IMsiServices.CreateCopier function now takes a
|
||
new argument (required to enable support for reading
|
||
from a cabinet stored in a stream).
|
||
|
||
97-05-21 Tracyf Fixed a bug in InstallFiles, involving split files.
|
||
Before the fix, if the last file in the File table
|
||
to actually be copied is split across two or more
|
||
disks, the second half of the file (or the last
|
||
two-thirds, or whatever) would never be decompressed, because
|
||
the required final ixoChangeMedia operation(s) were
|
||
not being put into the script.
|
||
|
||
97-05-21 Tracyf The InstallFiles action (in concert with the
|
||
ixoFileCopy and ixoChangeMedia operations) has been upgraded
|
||
so that it will no longer prompt for disks that
|
||
don't contain files that actually need to be copied. For
|
||
instance, suppose a user installs a product that
|
||
uses 30 floppy disks, and suspends the install after
|
||
copying from the first 20 disks. Without this fix, when
|
||
the user resumes the install later, InstallFiles
|
||
would prompt the user for every one of the first 20
|
||
disks again, even though we most likely don't need to
|
||
copy any files from any of them.
|
||
|
||
97-05-21 Tracyf All file copy/move actions now take into account the
|
||
backup files created for rollback when determining
|
||
disk cost.
|
||
|
||
97-05-21 Tracyf Costing for the WriteIniFile action has been
|
||
implemented.
|
||
|
||
97-05-21 Tracyf Costing for shortcuts has been implemented. Because
|
||
ofthe overloaded nature of the "Target" column in
|
||
the Shortcut table, the coding and testing requirements
|
||
for determining shortcut costs are rather extensive.
|
||
More thorough documentation for shortcuts and
|
||
shortcut costing will be forthcoming as soon as possible.
|
||
|
||
97-05-20 bench Fixed the Engine.ResolveFolderProperty method to
|
||
resolve relative to the folder containing the database
|
||
rather than the launcher. As such, SOURCEDIR, if it
|
||
isn't set, is set to the folder containing the
|
||
database.
|
||
|
||
97-05-20 ivanw Implemented preview for dialogs and billboards.
|
||
Added the Preview dialog attribute. Added the
|
||
BillboardName control attribute. Modified several control types,
|
||
so they don't touch their properties in preview
|
||
mode.
|
||
|
||
|
||
97-05-20 t-caroln MsiQuery API -- updated MsiViewModify to use the
|
||
validation enums. Also implemented MsiViewGetError for
|
||
obtaining errors from validation. The
|
||
MsiViewGetError API excepts a buffer, and buffer size to put the
|
||
column name and returns a MSIDBERROR enum depending on
|
||
the error/no error.
|
||
|
||
97-05-20 t-caroln CMsiView -- Added GetError method for obtaining
|
||
Validation errors. Returns the enum value and the name
|
||
of the string. In the automation layer, it returns a
|
||
BSTR with the following syntax - ColumnName, Error.
|
||
|
||
97-05-20 t-caroln Implemented validation part of the view object.
|
||
It's in the Modify method and there are three new enums
|
||
-- irmValidate (for fetched record), irmValidateNew
|
||
(for new record) and irmValidateField (for field
|
||
validation of fetched or new)
|
||
|
||
97-05-20 malcolmh Add a "/O" option to msiexec to allow a
|
||
property=value string to be specified when doing an install. If
|
||
there are spaces in this string it must be placed
|
||
withing quotation marks.
|
||
|
||
97-05-20 Mattwe MsiGen: Fixed minor bugs, and one access violation
|
||
caused by adding doing a MsiString foo("blah");
|
||
foo+= 'x'; Fixed by doing foo += MsiChar('x'); Oddly,
|
||
the code has worked fine for a week's worth of
|
||
releases...
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2920
|
||
-----------------------------
|
||
|
||
97-05-20 bench Added the Resume and Preselected properties. The
|
||
Resume property is set when we are resuming a suspended
|
||
install. The Preselected property is set when any
|
||
of the feature/component/file selection properties
|
||
(ADDLOCAL, ADDSOURCE, etc...) are set. These properties
|
||
are used to supress certain dialogs in the wizard
|
||
sequence as appropriate.
|
||
|
||
97-05-20 bench Resume mode: Upon error or user cancellation, we
|
||
now allow the option of rolling back or suspending the
|
||
install. The same mechanism is used to recover from
|
||
a crash or a pulled plug. Upon resuming a suspended
|
||
install, the same selections made originally by the
|
||
user are used again, and the UI to change selections is
|
||
supressed.
|
||
|
||
97-05-20 bench ConfigMgr/Server: Added three methods to facilitate
|
||
suspend/resume. The ConMan.InstallInitialize method
|
||
is called to mark an install as in progress, and lock
|
||
out the server to other installs belonging to
|
||
different products. This method creates the
|
||
HKLM\...\Installer\InProgress key, which contains information
|
||
necessary to resume the install at a later time. While
|
||
this key is set, no other installs may run. This means
|
||
both calls to InstallInitialize and RunScript will
|
||
fail for installs for products other than the product
|
||
marked as in-progress. The ConMan.InstallFinalize
|
||
method is used to mark an install as complete, and
|
||
handle the rollback if need be. If an install is
|
||
suspended, the InProgress key is not removed. When the
|
||
install is resumed, the information necessary to carry on
|
||
is obtained through the
|
||
ConMan.GetInProgressInstallInfo method.
|
||
Currently, GetInProgressInstallInfo is called in Engine.Initialize.
|
||
InstallInitialize is called in the InstallValidate action.
|
||
InstallFinalize is called in Engine.Terminate.
|
||
Complete documentation for all of these methods is forthcoming.
|
||
|
||
97-05-20 malcolmh Added Repair, Install to Network, and Uninstall
|
||
verbs. Removed Advertise verb.
|
||
|
||
97-05-19 ivanw The main wizard sequence in Template now has 6
|
||
versions depending on the Installed, Resume and
|
||
Preselected properties.
|
||
|
||
|
||
97-05-19 Mattwe MsiUtil: Added CreateStreamFromFile (with
|
||
automation.) Takes a file name, and a stream name, and copies
|
||
the file into the current database's main storage.
|
||
|
||
97-05-19 Mattwe RunGen: Added support for creating launchers or msi
|
||
packages. (radio button)
|
||
|
||
97-05-19 Mattwe Release: Diamond.exe is no longer released.
|
||
MakeCab.EXE is dropped instead, to the same place.
|
||
|
||
97-05-19 t-caroln MAKEFILE -- added testcabdb target for building a
|
||
database that uses cabinet files. The database is
|
||
built using the merge, but it's files reside in the
|
||
%DARWN%\data\testdb.cab directory. It also uses msialter
|
||
to add the msproj1.cab file as a stream in the
|
||
database storage.
|
||
|
||
97-05-19 t-caroln msialter.exe -- Cabinet implementation. No more
|
||
property file. To add a cabinet, use msialter
|
||
{database} {cabinet}. The cabinet will be stored as its base
|
||
name., i.e. msproj1.cab if the cabinet was
|
||
c:\darwin\data\project\msiproj1.cab
|
||
|
||
|
||
97-05-19 Mattwe DoAcme1: Added the repackUI build.
|
||
|
||
97-05-19 Mattwe Repack: RPKWIZ.EXE should be released in the
|
||
<PLATFORM>\Tools directory. This is a-billhu's repackaging
|
||
wizard UI. Also, the repackUI build option will
|
||
build the repack template DB, and the rest of Darwin if
|
||
needel. On a clean build machine, repackui should
|
||
build everything you need.
|
||
|
||
97-05-19 Mattwe MsiGen: (apparently this didn't get added last
|
||
week.) Added Icon table population for shortcuts and
|
||
classes. MsiGen should now be code complete.
|
||
|
||
97-05-19 Mattwe Repack: added makefile for a-billhu's repackaging
|
||
wizard UI. Updated main Darwin makefile with
|
||
"repackui" option, which will also rebuild gen and util if
|
||
necessary. Made minor code changes to get the UI to
|
||
compile with OTOOLs.
|
||
|
||
97-05-19 t-caroln Added validation code to cursor implementation. Now
|
||
part of Cursor.Validate, however msidbval.exe still
|
||
uses the validation dll. Will be converted to use
|
||
external api once finalize how to expose the cursor
|
||
through the modify method of the view object and the
|
||
MsiViewModify API.
|
||
|
||
|
||
97-05-19 t-caroln msialter.exe -- since doing away with launcher,
|
||
update of launcher resources now requires the -l option.
|
||
So, to update launcher resources, use msialter -l
|
||
{launcher} {propfile}. Update msialter to now permit
|
||
stuffing cabinet files into a database. Use msialter
|
||
{database} {propfile}. In propfile, use
|
||
CABINET={cabinet file} syntax. The cabinet will be stored in the
|
||
database storage as it's base name. So, for the
|
||
c:\temp\msproj1.cab file, it will be seen in the
|
||
database as msproj1.cab.
|
||
|
||
|
||
97-05-19 ivanw Added Rollback/Resume choice to UserExit and
|
||
FatalError dialogs.
|
||
|
||
97-05-19 ivanw Handler::DoAction with an argument of "!" sets the
|
||
Preview mode. In preview mode putting up a new dialog
|
||
or calling DoAction with "" removes the existing
|
||
dialogs.
|
||
|
||
97-05-18 ivanw Modified Clearred to remove the
|
||
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce tree. To do this,
|
||
use the ALL option.
|
||
|
||
97-05-18 malcolmh As far as I am aware, *all* problems with server
|
||
unregistration have been fixed. The server should only
|
||
refuse to die within 6 minutes of a client crashing.
|
||
Please let me know if you find otherwise.
|
||
|
||
97-05-18 malcolmh Darwin shell data (associations and verbs) is now
|
||
unregistered when the server is unregistered.
|
||
|
||
97-05-18 malcolmh Checked in CLEARREG to allow clearing of
|
||
HKCR\Software\Installer and HKCU\Software\Installer. This will
|
||
be updated to delete our new regkeys when we start
|
||
using them.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2916
|
||
-----------------------------
|
||
|
||
97-05-16 johndelo The system error codes returned from the public
|
||
APIs, as defined in msi.h and misquery.h have been
|
||
cleaned up and extended. Some of the messages supplied for
|
||
the error codes were inappropriate for our use. The
|
||
new message fragment, MsiError.mc, needs to be merged
|
||
into NT5 winerror.mc.
|
||
|
||
97-05-16 johndelo The engine initialization error messages have been
|
||
removed from the launcher. Since the MSI errors are
|
||
now being integrated into the OS, the messages for
|
||
those error are available via the system API:
|
||
FormatMessage. The engine now uses this instead of looking up
|
||
strings in the launcher. For use with systems without
|
||
the latest NT5 builds, a message file is now built,
|
||
MsiError.msg, which is installed along with the other
|
||
MSI components. Messages will be obtained from that
|
||
if not found in the system. (This message DLL will not
|
||
be needed as part of NT5).
|
||
|
||
97-05-15 malcolmh The MsiAdvertiseProduct API now has two additional
|
||
parameters to specify transforms and language.
|
||
|
||
97-05-15 malcolmh The MsiInstallProductAPI now takes a package path
|
||
instead of a module handle. This package path may be
|
||
a path to either a database or a launcher.
|
||
|
||
97-05-15 malcolmh We now register associations to allow installation by
|
||
double-clicking on an MSI database. Also, the Install
|
||
and Advertise verb are available by right-clicking
|
||
on an MSI database. The registered verbs use msiexec(d)
|
||
to do their jobs.
|
||
|
||
These associations and verbs are
|
||
registered when /regserver is run of msiexec(d), or
|
||
they can be registered independently of registering
|
||
the server by using msiexec(d)'s /D option.
|
||
|
||
These associations are registered under HCKR\.msi and
|
||
HKCR\Msi.Package
|
||
|
||
97-05-15 malcolmh Msiexec supports some new command-line options:
|
||
|
||
/P installs a product given its database.
|
||
/D registers the .MSI shell association and verbs
|
||
/A advertises a product given its database.
|
||
/Q suppresses all UI -- this option must be specified first
|
||
|
||
97-05-15 malcolmh Msiexec now returns and displays standard system messages.
|
||
|
||
97-05-15 malcolmh Added two APIs for future source list management:
|
||
MsiModifySourceList and MsiEnumSourceList. These
|
||
are not yet implemented but are in msi.w/msi.h
|
||
|
||
97-05-15 Mattwe MsiGen: added pulling up of Icons. Verrry
|
||
complicated. Can write back out to ICO files, or to memory
|
||
suitable for putting into an allocated stream.
|
||
|
||
97-05-15 ivanw Removed the Explorer Engine mode bit and added the
|
||
Reboot and RebootNow bits. Added the ForceReboot and
|
||
ScheduleReboot actions. Added a Reboot method to the
|
||
Server. Added the REBOOT property. Added code to the
|
||
Engine, so if an action returns Suspend, it means that
|
||
a reboot is needed. Added the new actions to the
|
||
Testdb. These can be turned on by setting the
|
||
FORCEREBOOT or SCHEDULEREBOOT properties.
|
||
|
||
|
||
97-05-14 bench Shell folder properties: When setting shell folder
|
||
properties, if the SHGetSpecialFolderLocation API
|
||
fails (which may be because the folder doesn't exist), we
|
||
check the registry for the path. The result of this
|
||
is that we set the properties for folders that are
|
||
registered but don't exist, where we didn't before.
|
||
|
||
97-05-14 t-caroln Makefile -- testdb.mdb now built by exporting the
|
||
testdb.msi tables to a temporary directory and then
|
||
importing into an access database. The temp directory
|
||
is cleaned up before and after.
|
||
|
||
97-05-13 bench Added db2db.bat to drop in Tools folder. db2db is a
|
||
tools to convert between .msi and .mdb databases.
|
||
This file needs to be released.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2913
|
||
-----------------------------
|
||
|
||
97-05-12 johndelo The public APIs for access by custom actions and tools
|
||
have now been defined and implemented. The source to the
|
||
header file is MsiQuery.w, but the actual header is built
|
||
and delivered as MsiQuery.h. Both Ansi and Unicode versions
|
||
of all functions are implemented with the exception of the
|
||
UI Dialog preview functions. Although help for these API
|
||
functions is not available yet, they are essentially the
|
||
same as the corresponding automation functions, with the
|
||
objects replaced by corresponding handles. There are
|
||
extensive comments in the header file, which when used with
|
||
the automation help topics, should permit testing to proceed.
|
||
The launcher and tools are in the process of being converted
|
||
to use these API functions, rather than be dependent upon
|
||
the internal header files.
|
||
|
||
97-05-12 johndelo Future alert: Error returns for the external installer API
|
||
functions will be modified slightly, as some of the seemingly
|
||
appropriate error macros had quite misleading explanations.
|
||
|
||
97-05-12 t-caroln added TOOLS\schema.msi to the drop. This file needs
|
||
to be released.
|
||
|
||
97-05-07 t-caroln Makefile -- Building of databases using -m option of
|
||
mistable. Schema.msi is the base. Template.msi
|
||
inherits from schema.msi. Testdb.msi inherits from
|
||
template.msi. Repack.msi inherits from template.msi.
|
||
Template.msi contains the basic UI and sequence
|
||
actions. Whatever UI is common to template and testdb lies
|
||
in template's directory. This will prevent having to
|
||
maintain duplicate copies of files. After building,
|
||
one needs to check that the _MergeErrors table was
|
||
not created. This table means that there were merge
|
||
conflicts encountered during the building of the
|
||
database and they should be investigated.
|
||
|
||
97-05-07 t-caroln Added a new directory/database -- schema.msi. This
|
||
database contains all of the tables to illustrate the
|
||
schema. The only non-empty table is the
|
||
_Validation table. It can be built separately using the
|
||
schemadb target. This database forms part of the new
|
||
inheritance process for building the databases.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2907
|
||
-----------------------------
|
||
|
||
97-05-06 ivanw The validation of the path on a Browse dialog has
|
||
been moved from the individual controls to
|
||
controlevents. As part of this change the DoNotCallManager and
|
||
the ExistingOnly control style bits have been
|
||
eliminated and the SetPath, CheckPath and CheckExistingPath
|
||
controlevents have been added.
|
||
|
||
97-05-06 ivanw Rolled back the last two changes to makefile. testdb
|
||
is built in the old way again. We had to do this
|
||
because make was building a corrupt testdb.
|
||
|
||
97-05-06 t-caroln MergeDatabase method -- the optional table parameter
|
||
can have other columns in it, but those other
|
||
columns must be nullabe as if merge conflicts are
|
||
encountered, updating the table will fail with non-nullable
|
||
columns.
|
||
|
||
97-05-06 t-caroln Makefile/ testdb -- Testdb is now built from
|
||
%darwin%\data\testdb.tmp whose idt files are additions to
|
||
those in the %darwin%\data\template directory. The
|
||
template database is built first and then merged with
|
||
testdb. After this build, the testdb tables will be
|
||
migrated from the temp directory to the testdb
|
||
directory. Also the repackage database will be built using
|
||
the merge process. This will prevent having to keep
|
||
duplicate files in ssync, except if major table schema
|
||
changes occur.
|
||
|
||
97-05-06 t-caroln Msitable -- added -m option for merging a database.
|
||
Can have up to 10 -m's. The -m option can only be
|
||
used in non-UI mode. See help file for details.
|
||
|
||
97-05-06 bench Added the Samples folder to the drop. The first
|
||
sample install is Testdb, which is contained in the
|
||
TestDb folder beneath Samples. Testdb.msi has been moved
|
||
from Tools to Samples\Testdb.
|
||
|
||
97-05-06 mattwe Repack: Added Typelib population, and finished
|
||
preliminary pass of Verbs and Extensions. There a number
|
||
of spec/design issues that have been brought up with
|
||
Extensions, that Chetan should be solving soon...
|
||
|
||
|
||
97-05-06 tracyf The following properties are now supported: COMPADDLOCAL,
|
||
COMPADDSOURCE, FILEADDLOCAL, FILEADDSOURCE. The main result
|
||
of this is that the MsiInstallMissingComponent and
|
||
MsiInstallMissingFile APIs are now functional (since they
|
||
work by setting one of the aforementioned properties and
|
||
then calling DoAction("Install")). See the help file
|
||
for more info.
|
||
|
||
97-05-05 tracyf A new Reinstall mode is now supported: iefOverwriteEqualVersions.
|
||
The letters assigned to the various reinstall modes have also
|
||
been rearranged a bit, and the descriptions have been updated,
|
||
to make their meanings a bit more clear. See the REINSTALLMODE
|
||
topic in the help file for more info.
|
||
|
||
97-05-05 tracyf Under NT, the engine Message function now writes an entry to
|
||
the system Event Log if an error or warning is reported. To
|
||
avoid major complications, only the error code is written
|
||
(i.e. no description text is available if you double-click
|
||
the event in the Event Viewer. The "Source" name for events
|
||
generated by Darwin is "Installer".
|
||
|
||
97-05-05 bench Added the icmRemoveSource bit to the possible
|
||
install mode flags passed to IxoFileCopy. This allows
|
||
IxoFileCopy to essentially move files rather than copying
|
||
them. This functionality replaces the IxoFileMove
|
||
operation, which will be removed when it is no longer
|
||
used in the MoveFiles action.
|
||
|
||
97-05-03 t-caroln Validation: RegPath category does not allow [$abc]
|
||
and [#abc] properties. KeyFormatted allows multiple
|
||
[#abc] and [$abc] properties embedded within a
|
||
string. For any column where they are not allowed to be
|
||
embedded or multiples are not allowed, special
|
||
validation will be needed or a special category will be
|
||
needed.
|
||
|
||
97-05-03 t-caroln _Validation table: Changed Verb.Argument,
|
||
Shortcut.Arguments, RegLocator/RemoveRegistry/Registry.Name
|
||
and Registry.Value to use the KeyFormatted category
|
||
string.
|
||
|
||
97-05-03 ivanw Added one more parameter to Handler::Initialize.
|
||
This is the window handle of the main window of the
|
||
calling process. (can be null) This way when Darwin is
|
||
called from an application our windows will be properly
|
||
parented to the calling app.
|
||
|
||
97-05-02 t-caroln Msialter.Exe -- Implemented update icon part so
|
||
that one can change the icon in the launcher by using
|
||
the following syntax in the property file :
|
||
ICON=@{filename.ico} where {filename.ico} is your .ico file.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2902
|
||
-----------------------------
|
||
|
||
97-05-02 ivanw Added the JPEG code to the handler. Two new dialog
|
||
attributes are introducedL Palette and
|
||
UseCustomPalette. A new dialog style is defined: UseCustomPalette.
|
||
Added five new dialog to testdb to display the JPEG
|
||
features. Set TESTDB and from the first dialog you can
|
||
access the JPEGs. Check them out, they look cool!
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2902
|
||
-----------------------------
|
||
|
||
97-05-01 chetanp Changed PublishComponent.Index column name to
|
||
PublishComponentQualifier to match the corresponding MSI
|
||
API function. Will affect the PublishComponents and
|
||
UnpublishComponents action
|
||
|
||
97-05-01 malcolmh In Install API: Removed INSTALLUI_HANDLER from all APIs. Use
|
||
MsiSetInternalUI and MsiSetExternalUI instead.
|
||
|
||
97-05-01 malcolmh In Install API: Removed obsolete functions:
|
||
MsiQueryProductInfo, MsiLocateLanguageComponent,
|
||
MsiIsProductLauncher.
|
||
|
||
97-05-01 malcolmh In Install API: Changed all APIs that take handles to use
|
||
MSIHANDLE type.
|
||
|
||
97-05-01 malcolmh In Install API: Moved MsiCloseAllHandles and MsiCloseHandle
|
||
to msi.w from msiquery.w
|
||
|
||
97-05-01 malcolmh In Install API: Added INSTALLSTATE_INCOMPLETE identify the state
|
||
when a component/product is only partly installed because
|
||
it needs to be resumed or is in progress.
|
||
|
||
97-05-01 malcolmh In Install API: Changed REINSTALLMODE to be a bitflag. All APIs
|
||
that take a REINSTALLMODE to a DWORD.
|
||
|
||
97-05-01 malcolmh In Install API: Added MsiSetInternalUI, MsiSetExternalUI,
|
||
MsiSetLogMode, MsiQueryProductState, MsiOpenPackage,
|
||
MsiEnumComponentQualifiers.
|
||
|
||
97-05-01 malcolmh In Install API: Renamed MsiProvideComponentIndirect to
|
||
MsiProvideQualifiedComponent.
|
||
|
||
97-05-01 malcolmh In Install APIRemoved fRunWizard parameter from
|
||
MsiAdvertiseProduct.
|
||
|
||
97-05-01 chetanp Added IMsiView::Modify function. see help for more
|
||
info
|
||
|
||
97-05-01 t-caroln Validation DLL now will allow the DefaultDir column
|
||
of the Directory table to contain environment
|
||
variables. In validation, this means that for the roots, a
|
||
%identifier is valid as well as an identifer. For
|
||
non-roots, the column is validated as a filename/folder
|
||
name column.
|
||
|
||
97-05-01 t-caroln Msialter.exe now correctly dumps an Icon resource to
|
||
a .ico file when using the -f option.
|
||
|
||
97-05-01 malcolmh Modified MSIEXEC. Long filenames are now supported.
|
||
Additionally, dashes and slashes are now valid
|
||
characters in arguments, as long as their not the leading
|
||
character. That is, "msiexecd /Z 1-2-3" will be
|
||
interpreted as one switch (Z) with an argument (1-2-3), but
|
||
"msiexecd /Z -2-3" will be treated as three switched
|
||
(Z, 2, and 3). Msiexec no longer supports feature
|
||
installation. Beyond its registration and
|
||
debugging/testing features, the only supported options are /X for
|
||
remove-all and /C for configure product (i.e. go into
|
||
maintenance mode). Remove-all will be used by SMS
|
||
and Configure-product will be used by the Add/Remove
|
||
control panel. Use MSIEXEC(d) /? for a list of valid
|
||
options.
|
||
|
||
|
||
97-05-01 bench The text displayed in the UI during rollback and
|
||
rollback cleanup is now passed to the server in the
|
||
script, which is retrieved from the ActionText table of
|
||
the database. The two "actions" are Rollback and
|
||
RollbackCleanup. The new ixoRollbackInfo operation is
|
||
used to pass this information in the script. Updated
|
||
the ActionText table in testdb to reflect this.
|
||
|
||
97-05-01 t-caroln Fixed in the Validation DLL the validation of a
|
||
Registry Path. Registry paths can allow any character,
|
||
so had to change validation to allow that.
|
||
|
||
97-05-01 t-caroln Changed two entries in the _Validation table. The
|
||
IniFile.Value columns and the RemoveIniFile.Value
|
||
columns are now validated as Formatted instead of
|
||
Idenitifer. Also update the template database with these
|
||
changes.
|
||
|
||
97-05-01 bench Added TOOLS\template.msi to the drop. This file
|
||
needs to be released.
|
||
|
||
97-05-01 mattwe Makefile: added templatedb and repackdb options to
|
||
build. Builds the template.msi, and the repack
|
||
wizard template database (repack.msi). No sentinel file
|
||
for these yet, will add if needed.
|
||
|
||
|
||
97-05-01 mattwe Util: fixed update/assigns
|
||
|
||
97-05-01 mattwe Repack: updated repkinst.bat to use repack.msi from
|
||
build.
|
||
|
||
97-05-01 mattwe MsiGen: Added RemoveIniFile population. Added
|
||
RewriteString() to escape special characters that are
|
||
special to FormatText. Fixed bugs related to
|
||
Update/Insert fixes in database.
|
||
|
||
97-05-01 mattwe Repack: Added IDTs for the SourceFile and
|
||
SourceDirectory tables to src/tools/repack/support. These are
|
||
imported into the new template DB to form the
|
||
repack.msi template for the Repackaging Wizard. Still
|
||
needs validation tables.
|
||
|
||
97-05-01 mattwe Template: created darwin\data\template with a
|
||
template DB based on testdb. It should be a minimum DB
|
||
for starting new authoring, or a baseline for
|
||
autormated authoring tools (Repackaging Wizard.) All new
|
||
schema changes need to be added here as well as in
|
||
testdb.
|
||
|
||
97-04-30 johndelo MsiView.Update and MsiCursor.Update are now more
|
||
strict: Only fetched rows can be updated, and primary
|
||
key data cannot be changed (was leaving orphaned
|
||
records and tromping on duplicate keys and killing joins).
|
||
Coming soon is a new function, Replace, which will
|
||
delete the exising row and insert a new one as
|
||
necessary. Update is the only function that will allow
|
||
updating through a join. Old code that dependent upon
|
||
Update to incdiscriminantly insert new data should
|
||
probably call Assign instead. More doc is forthcoming.
|
||
|
||
97-04-30 chetanp the CustomAction table format has changed. Please
|
||
see help
|
||
|
||
97-04-30 bench Changed the name of the DOC\msierror.h file to
|
||
msierror.mc to correspond to NT's winerror.mc. Also
|
||
changed the format of this file to match winerror.mc.
|
||
This change needs to be reflected in the release.
|
||
|
||
97-04-30 ivanw Made some changes to the Browse dialog to coincide
|
||
with the bump in the database version. The
|
||
PathTailEdit control type has been renamed to PathEdit to be
|
||
more truthfull. Added two new control styles: SplitPath
|
||
and ExistingOnly. To get the same functionality as
|
||
before, one must add the SplitPath bit to the PathEdit,
|
||
DirectoryCombo and DirectoryList controls on the
|
||
browse dialog. These two bits are not fully implemented
|
||
yet, but to keep your browse dialogs running you have
|
||
to add the SplitPath bit now. Testdb has been
|
||
modified to reflect these changes.
|
||
|
||
97-04-30 chetanp Changed the RedirectComponent table to eliminate the
|
||
Language column.
|
||
Changed the PublishComponent table to change the
|
||
Language column to the Index column.
|
||
See help on these tables for more info.
|
||
|
||
97-04-30 bench Completed rollback for the RegisterFonts and
|
||
UnregisterFonts actions. All that remains are the
|
||
Register/UnregisterTypeLib actions.
|
||
|
||
97-04-30 bench Made a few changes to font registration. The C
|
||
interface to MsiServices.RegisterFont now accepts an
|
||
IMsiPath* rather than an IMsiPath&. If the pointer is
|
||
null, the file is assumed to be located in the default
|
||
system font folder. The automation interface has
|
||
been changed to accept either an empty argument or no
|
||
argument for the path, with either indicating the file
|
||
is in the font folder. Finally, if the path passed
|
||
to RegisterFont is either empty or is equivalent to
|
||
the system font folder, we only register the font file
|
||
name, rather than the full path of the font file.
|
||
|
||
97-04-29 tracyf The ReserveCost table is now available. This is an
|
||
optional table that allows authors to reserve extra
|
||
disk cost in any specified directory, attributed to a
|
||
component. See the help file for details. Note that
|
||
I've added this table to the TestDB, and authored it
|
||
to reserve some extra cost under the "Month_Mar" and
|
||
"Tools" components.
|
||
|
||
97-04-29 bench Made a few changes to rollback reg keys and backup
|
||
file locations, in accordance with the Rollback spec.
|
||
The reg value to enable or disable rollback is now
|
||
"Enable" under HKLM\Software\Installer\Rollback. (It
|
||
used to be "Mode") Note that the interpretation of
|
||
this value is scheduled to change, but hasn't yet.
|
||
Rollback scripts are now registered under the key
|
||
HKLM\Software\Installer\Rollback\Scripts. Rollback
|
||
scripts are by default created in the Config.Msi folder at
|
||
the root of the volume containing the Windows folder.
|
||
Backup files are now created in the Config.Msi
|
||
folder at the root of whatever volume the original file
|
||
was located on. Finally, the location for backup
|
||
files and rollback scripts can be configured by setting
|
||
the "BackupPath" value under
|
||
HKLM\Software\Installer\Rollback.
|
||
|
||
97-04-29 t-caroln MSIDBVAL -- fix for parsing properties to allow for
|
||
[\[] and [\}] types; fix to allow for multiple error
|
||
report; fix for CustomSource category used by the
|
||
Custom Action table.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2829
|
||
-----------------------------
|
||
|
||
97-04-28 johndelo Custom action support is implemented. See help for
|
||
details. EXE and DLL custom actions are supported,
|
||
script files are not supported yet. Custom actions are
|
||
called by putting the custom action name in the
|
||
sequence table, usually with a conditional expression. The
|
||
custom action info is in the CustomAction table, and
|
||
the code can be in the database or a separate file.
|
||
TestDb.Msi has examples of custom actions (must define
|
||
property: TESTACTION in order to enable the custom
|
||
actions).
|
||
|
||
97-04-28 ivanw To simplify support for different scripts we
|
||
eliminated the support for multiple fonts within the same
|
||
string. We can still use the same syntax to define a
|
||
text style for a given string or a default one for the
|
||
control, but the style label can appear only at the
|
||
beinning of the string. Changed testdb accoringly. Old
|
||
databases that have style specification in the
|
||
middle of the string won't brake, but the style labels
|
||
will show up as part of the string.
|
||
|
||
97-04-28 tracyf The RemoveFiles action has been modified slightly -
|
||
it now attempts its file removal action if the gating
|
||
component is set to any action state (iisLocal,
|
||
iisSource, or iisAbsent). Before, it attempted removal
|
||
only for the iisLocal or iisSource states. This was
|
||
changed because testing identified a real-world
|
||
scenario in which enabling removal during the iisAbsent
|
||
action state would solve an Office authoring problem.
|
||
|
||
97-04-28 tracyf When using properties on the command line to
|
||
configure features (i.e. ADDLOCAL, ADDSOURCE, REMOVE, OR
|
||
REINSTALL), the Selection Manager now properly sets only
|
||
the specified feature(s) for action - all other
|
||
features, including children of the specified feature(s),
|
||
are set to the NULL (no action) state. As a side
|
||
effect of this, the ProcessPropertyFeatureRequests
|
||
method had to be removed from the public
|
||
IMsiSelectionManager interface (also from automation).
|
||
|
||
97-04-28 bench Added the file repkinst.bat to the \\united\darwin
|
||
drop in Tools. This file installs the repackaging
|
||
wizard to the local machine. This file needs to be
|
||
released.
|
||
|
||
97-04-28 mattwe Repack: created repackaging wizard reference
|
||
machine installer. darwin\src\tools\repack\repkinst.bat.
|
||
Should be run on reference machine. Copies files
|
||
down, and registers darwin.
|
||
|
||
97-04-28 t-caroln Msialter.exe -- The tool now limits one to only one
|
||
database file resource per launcher. By design, all
|
||
file resources are neutral. Also, the database
|
||
property is always neutral. Only one database property
|
||
can be listed in a property file. Will be changing the
|
||
install.rc file so that the Database property is
|
||
made neutral.
|
||
|
||
97-04-28 johndelo MsiEngine.EvaluateCondition now takes a variety of
|
||
symbols besides property names: enviroment vairables
|
||
(% prefix), component installed state(? prefix),
|
||
component action state($ prefix), feature installed
|
||
state(! prefix), feature action state(& prefix). More info
|
||
in help.
|
||
|
||
97-04-28 johndelo MsiEngine.Property, IMsiEngine::Get/SetProperty now
|
||
accepts environment variables if prefixed by a
|
||
percent sign (%). The envir.variable code was consolidated
|
||
here from other places (FormatText,
|
||
EvaluateCondition) to provide a more general behavior. Environment
|
||
variable get/set is only for the current process.
|
||
|
||
97-04-25 tracyf The SetFeature member has been removed from
|
||
IMsiSelectionManager, since the existing ConfigureFeature
|
||
member already provides identical functionality. Also,
|
||
ConfigureFeature has been modified to use the same
|
||
iisEnum constants as other SelectionManager functions.
|
||
|
||
97-04-25 t-caroln Added checkdb as target for make win debug. This
|
||
target creates a sentinel file -- checkdb.snt if
|
||
testdb.msi is a valid database. Else, it outputs errors in
|
||
testdb.msi to standard out. Beware!!
|
||
|
||
97-04-25 t-caroln Added two new categories for _Validation -->
|
||
Property and CustomSource. The CustomSource category will
|
||
be used by the CustomAction table Source column. This
|
||
will occur when the CustomAction table data is
|
||
checked in. The Property category is for Property strings
|
||
that are valid identifiers but can represent an
|
||
environment variable, so a percent sign is allowed.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2825
|
||
-----------------------------
|
||
|
||
97-04-24 johndelo InstMsi.exe (and the debug version InstMsiD.exe now
|
||
install the combined Msi kernel DLL, Msi(D).dll,
|
||
instead of MsiEng.dll+MsiSrv.dll. It will not remove or
|
||
unregister to old dlls (as it knows nothing about
|
||
them). RegMsi.exe now registeres/unregisters the combined
|
||
DLL if no modules are specified, but can still act
|
||
on the old DLLs with the options S and E.
|
||
|
||
97-04-24 tracyf Fixed a problem involving cabinet files in which
|
||
more than one file is split from one disk to the next.
|
||
As a side-effect of the fix, it turns out that we no
|
||
longer need the 'split' bit set for any files in the
|
||
File table (I guess you could say that Darwin's
|
||
"intelligence" has grown such that it no longer needs to
|
||
be told which files are split. Yippee!). If that bit
|
||
is set, it will now just be passively ignored, and
|
||
I'll eventually remove reference to it from the docs.
|
||
|
||
97-04-24 bench Added the Repackaging Wizard files not already dropped to the
|
||
\\united\darwin drop. Each of these files needs to be released:
|
||
|
||
TOOLS\version.h
|
||
TOOLS\msidefs.h
|
||
TOOLS\install.h
|
||
TOOLS\launchrc.h
|
||
TOOLS\install.ico
|
||
TOOLS\SHIP\install.obj
|
||
TOOLS\DEBUG\install.obj
|
||
TOOLS\rungen.exe
|
||
TOOLS\repack.msi
|
||
TOOLS\REPACK\cvtres.err
|
||
TOOLS\REPACK\cvtres.exe
|
||
TOOLS\REPACK\gdi32.lib
|
||
TOOLS\REPACK\kernel32.lib
|
||
TOOLS\REPACK\launchrc.h
|
||
TOOLS\REPACK\libc.lib
|
||
TOOLS\REPACK\link.exe
|
||
TOOLS\REPACK\lz32.lib
|
||
TOOLS\REPACK\ole32.lib
|
||
TOOLS\REPACK\rc.exe
|
||
TOOLS\REPACK\rcdll.dll
|
||
TOOLS\REPACK\user32.lib
|
||
TOOLS\REPACK\winver.h
|
||
TOOLS\REPACK\msipdb41.dll
|
||
TOOLS\REPACK\diamond.exe
|
||
TOOLS\REPACK\vb40032.dll
|
||
|
||
97-04-24 mattwe MsiGen: bug fixes (will include bug #'s in future,)
|
||
did a bunch of code cleanup in GenerateTables (some
|
||
very wobbly conditionals from original code,) and
|
||
typelib feature work.
|
||
|
||
97-04-24 mattwe repack: added command line support to
|
||
src\tools\repack\support\tempdb.exe, so it can be used from within
|
||
the build process.
|
||
|
||
97-04-24 bench We now build and drop the ship versions of the tools
|
||
msiutil, msipat, msigen, msival and msiloc. The
|
||
.dll, .map and .pdb files need to be added to the
|
||
release, under the tools folder.
|
||
|
||
97-04-24 mattwe Addfiled MakeCab.exe to src\tools. Diamond is not
|
||
redistributable (internal technology only because of
|
||
the Quantum compression.) MakeCab is safe to release
|
||
with the repackager.
|
||
|
||
97-04-23 bench We now use the default UI to handle rollback or
|
||
rollback cleanup after an install. Previously, there was
|
||
no notification that such things were going on.
|
||
|
||
97-04-22 ivanw To keep the naming shceme consistent I changed the
|
||
name of the second column in the ControlCondition
|
||
table from Control to Control_. Since the Darwin code
|
||
does not use SQL queries on this table this change
|
||
should cause no breaks. If some tool accesses this table
|
||
through a query, the text of the query must be
|
||
modified.
|
||
|
||
97-04-22 ivanw Enhanced the FormatSize funtion in the Handler. The
|
||
words for bytes, KB, MB, GB can be localized. These
|
||
strings live in the UIText table. Also added a new
|
||
property called LeftUnit. If this property is set in the
|
||
Property table, the name of the unit goes to the
|
||
left of the number instead of the right.
|
||
|
||
97-04-22 malcolmh ** msi.lib needs to be released to Ship and ShipSym.
|
||
msid.lib needs to be released to Debug. msil.lib
|
||
needs to be released to Lego **
|
||
|
||
97-04-22 mattwe TestDb: added progress indicator for WriteIniValues
|
||
|
||
97-04-22 mattwe Repack: Modified rungen.exe UI to be side by side,
|
||
instead of single long pane. Old one wouldn't fit on low-res
|
||
monitors.
|
||
|
||
97-04-22 malcolmh A number of changes to the API have been made:
|
||
|
||
MsiIsProductLauncher has been replaced by
|
||
MsiVerifyProductLauncher.
|
||
|
||
The following API's have been added:
|
||
|
||
MsiGetFeatureInfo
|
||
MsiInstallMissingComponent
|
||
MsiInstallMissingFile
|
||
|
||
The following API's have had their return code
|
||
changed from BOOL to UINT:
|
||
|
||
MsiGetProductInfoFromScript
|
||
MsiGetProductCode
|
||
MsiGetProductProperty
|
||
MsiCloseProduct
|
||
|
||
97-04-22 malcolmh Conman::RegisterProduct has been updated to take a
|
||
cached database path, a launcher commandline, and a
|
||
launcher path.
|
||
|
||
97-04-22 malcolmh msi.h is the new API header. It replaces msinst.h.
|
||
msi.h uses more consistent error return types and
|
||
contains a revised set of ERROR_* error codes. ** msi.h
|
||
should be released to Ship, Debug, Logo, and ShipSym
|
||
**
|
||
|
||
97-04-22 malcolmh The API help now has its own helpfile, msi.hlp. API
|
||
help has been removed from msiauto.hlp. ** Two new
|
||
files need to be dropped: doc\msi.hlp and doc\msi.cnt
|
||
**
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2822
|
||
-----------------------------
|
||
|
||
97-04-21 johndelo RegMsi tool now recognizes K option for Msi kernel
|
||
(Msi.DLL, MsiD.DLL), but does not register the new DLL
|
||
by default, YET.
|
||
|
||
97-04-21 mattwe MsiGen: removed date writing for file version
|
||
column
|
||
|
||
97-04-21 bench Added rollback for the WriteIniValues and
|
||
RemoveIniValues actions.
|
||
|
||
97-04-21 bench Added a new file to the release, called MSIERROR.H,
|
||
in the tradition of WINERROR.H. Created a perl
|
||
script, genmsier.prl, to %darwin%\tools, which creates
|
||
this file from msinst.h. MSIERROR.H is copied to the
|
||
DOC folder on the release point.
|
||
|
||
97-04-21 t-caroln Updated msialter.exe to display the resources in an
|
||
executable. The -f option will also output file
|
||
resources to a file in the current directory. Added a -r
|
||
option to remove all resources in the launcher and
|
||
then add the new resources in the property file.
|
||
|
||
97-04-21 t-caroln Added new API GetErrorMessage to Validation object
|
||
to return the message that maps to the error enum
|
||
value. "" is returned for an invalid enum.
|
||
|
||
97-04-21 t-caroln Removed -d option from msidbval.exe. Now to
|
||
validate a database, use msidbval {database}. Also changed
|
||
msidbval to output an error message instead of the
|
||
integer value.
|
||
|
||
97-04-21 tracyf The AddFixedCost method of the SelectionManager is
|
||
obsolete and has been removed from IMsiSelectionManager,
|
||
and from the automation interface. I don't think anyone
|
||
was ever using this, but I'm noting it here just in case.
|
||
|
||
97-04-21 chetanp Added Create Table and Alter Table query support.
|
||
See help on MsiDatabase::OpenView function for more
|
||
info.
|
||
|
||
97-04-21 tracyf The new Darwin spec covering the rules for
|
||
overwriting versioned and unversioned files has been
|
||
implemented. You can find the "official" spec at
|
||
http://officeweb/specs, but the new rules are summarized under
|
||
the help topic for the CheckFileVersion function (part
|
||
of IMsiPath). To this end, the CheckFileVersion
|
||
function itself has changed - it now requires an
|
||
additional string parameter specifying language, and the
|
||
icfvEnum declarations have changed.
|
||
|
||
97-04-21 tracyf In accordance with the new Darwin versioning spec,
|
||
the Version column of the File table no longer accepts
|
||
# directives (#ALWAYS, #NEVER, etc) or dates. This
|
||
column now must be either a valid version string, blank
|
||
(i.e. the file is unversioned), or a companion file reference.
|
||
The validation table in TestDB has been updated to reflect these
|
||
new restrictions.
|
||
|
||
97-04-20 johndelo The launcher now looks for the new combined Darwin
|
||
DLL, Msi(D).dll, and not finding that, it temporarily
|
||
looks for MsiEng(d).dll to maintain compatibility for
|
||
a while. Both DLLs should run equivalently, however
|
||
custom actions bind only to the new one.
|
||
|
||
97-04-18 johndelo Moved relnotes through 1996 to relnot96.txt, to
|
||
shorten file, because it gets mailed and heavily
|
||
duplicated.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2818
|
||
-----------------------------
|
||
|
||
97-04-17 johndelo Error code names have changed for the external API,
|
||
in msinst.h, to use system errors and our new system
|
||
error codes. The old codes are temporarily mapped to
|
||
the new ones for a few builds. ERROR_SUCCESS, 0, has
|
||
not changed.
|
||
|
||
97-04-17 johndelo The combined engine+services DLL, Msi.DLL (MsiD.DLL)
|
||
is now made as part of the normal build, along with
|
||
the import library Msi..lib. The separate DLLs will
|
||
still be released for a while, and the lauchers in
|
||
this release, and the Darwin installer, still use the
|
||
old DLLs.
|
||
|
||
97-04-17 t-caroln Aimdbval.exe is now msidbval.exe. Help file has
|
||
been changed to show this.
|
||
|
||
97-04-17 t-caroln Loadprop.exe has changed to msialter.exe. I have
|
||
also updated the help file for this. MsiAlter.exe
|
||
loads both properties and resources into the launcher.
|
||
It still does not work on Win95 yet. See help file
|
||
for details on property file format.
|
||
|
||
97-04-17 chetanp Exposed _Tables and _Columns through the query
|
||
interface. The catalog tables are now being created with
|
||
named columns and hence can be queried for their
|
||
content. Added help on the same.
|
||
|
||
97-04-16 johndelo The Darwin installer name has changed from
|
||
AimInst.EXE to InstMsi.EXE. The external database and custom
|
||
access header is now MsiQuery.h. The combined
|
||
engine+services is Msi.DLL (not built by default yet - target
|
||
name: msidll). Error codes for external API are
|
||
changing - in msinst.h.
|
||
|
||
97-04-16 ivanw Made some internal modifications to the controls on
|
||
the Browse dialog in order to minimize the number of
|
||
(costly) calls to SetTargetPath. To accomplish this I
|
||
had to add the DoNotCallManager stylebit to the
|
||
DirectoryCombo control type. This stylebit applied before
|
||
only to PathTailEdit and DirectoryList controls.
|
||
|
||
97-04-16 ivanw Implemented the MsiCollectUserInfo API and action.
|
||
Removed PID validtation from the InstallValidate
|
||
action. Modified RegisterUserInfo so it registers the user
|
||
only if there is a valid PID. Added the needed
|
||
dialogs to testdb (starting with FirstRun).
|
||
|
||
97-04-16 chetanp The query engine now recognises the catalog tables -
|
||
"_Tables and "_Columns". However all the columns for
|
||
these tables are unnamed as yet hence only SELECT *
|
||
will work for now. Columns that need to be exposed
|
||
externally will be named and documented soon.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2815
|
||
-----------------------------
|
||
|
||
97-04-14 tracyf The following new actions are now supported:
|
||
MoveFiles, DuplicateFiles, and RemoveDuplicateFiles. See
|
||
the helpfile and TestDB.msi for more info (and note the
|
||
required sequencing for these actions).
|
||
|
||
97-04-14 tracyf The Component_Parent column has been removed from
|
||
the definition of the Component table. The _Validation
|
||
table has been updated to flag an error in the
|
||
aimdbval.exe tool if the Component table still has this
|
||
column. In addition, a runtime "invalid table" error
|
||
will occur if the installer is run with this column
|
||
defined.
|
||
|
||
97-04-14 bench We now rollback automatically after an error or
|
||
cancellation. The rollback or cleanup of rollback files
|
||
is invoked by Engine.Terminate. The user is not yet
|
||
given the option of not rolling back or resuming the
|
||
installation later.
|
||
|
||
97-04-14 bench Defined a new reg value that sets the level of
|
||
rollback. This value is "Mode" under
|
||
HKLM\Software\Installer\Rollback. If this value is set to "", no backup
|
||
files or rollback scripts are created. If the value
|
||
is a number > 0, rollback files are created and not
|
||
removed after the install. In all other cases, the
|
||
default behaviour occurs, which is to allow for
|
||
rollback during an install but remove rollback files after
|
||
the install is successfully completed.
|
||
|
||
97-04-14 bench Added an argument to Engine.Terminate. This arg is
|
||
an iesEnum that is passed to the server for use in
|
||
rollback handling. This behaviour (along with all
|
||
things rollback) will be documented shortly. This
|
||
argument is currently not required in automation to
|
||
allow testing to update its tests, but will be made
|
||
required for the 2822 release.
|
||
|
||
97-04-14 bench Completed rollback for product/feature/component
|
||
registration and advertisement (except for type
|
||
libraries).
|
||
|
||
97-04-11 chetanp Added authoring (and testing) help for Advertisement
|
||
and Darwin Components. Please refer to help under
|
||
Authoring in the Darwin help file.
|
||
|
||
97-04-11 mattwe Repack wiz:
|
||
Lots of tweaks to improve reliability for relocation,
|
||
and recovery from "invalid" OEM images. (some files
|
||
not installed locally, et cetera)
|
||
|
||
Cleaned out MSCREATE.DIR from file table.
|
||
Removed sub-components entirely, in preparation for
|
||
Tracy's check-in.
|
||
|
||
Added mechanism to initialize a cache of enums->column
|
||
names->real columns in cursors to fix dependencies on
|
||
column orders
|
||
|
||
Begun typelib table population
|
||
|
||
97-04-11 t-caroln Added a new target to the makefile. Typing make win
|
||
debug checkdb will automatically build the
|
||
validation DLL, aimdbval.exe, and testdb.msi and validate it.
|
||
If the database is valid, it will create a sentinel
|
||
file checkdb.snt. This will be added to the
|
||
automatic build process once testdb.msi is valid.
|
||
|
||
97-04-11 t-caroln Edited aimdbval and validation tools so that they
|
||
don't require that darwin DLLs be registered. They now
|
||
instead use LoadLibrary instead of the OLE calls.
|
||
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2811
|
||
-----------------------------
|
||
|
||
97-04-10 johndelo Engine now loads services DLL directly, and server
|
||
loads engine DLL directly, instead of using OLE.
|
||
Handler still uses OLE, will be fixed in next build. Use
|
||
UI=B to avoid the need to register DLLs.
|
||
|
||
97-04-10 johndelo Custom action and authoring tools API checked into
|
||
DARWIN\INC as AimQuery.w. Would appreciate any review
|
||
comments before implementation and release. No help
|
||
yet.
|
||
|
||
97-04-10 malcolmh Added MsiIsProductLauncher API. See helpfile for
|
||
details.
|
||
|
||
97-04-10 malcolmh Added server/conman.Rollback method. See the
|
||
helpfile for more details.
|
||
|
||
97-04-10 malcolmh Removed configuration manager methods that were
|
||
obsoleted by the Installer API. These include:
|
||
|
||
UserInfo
|
||
Products
|
||
ConfigureComponent
|
||
Components
|
||
ComponentClients
|
||
ConfigureFeature
|
||
QueryFeature
|
||
|
||
|
||
97-04-10 chetanp Bumped up the database version due to change in
|
||
advertise strategy.
|
||
|
||
97-04-10 t-caroln Added the aimdbval.exe tool to the release process.
|
||
Also added a help topic for it under the Tools
|
||
section [where MsiTable and LoadProp.exe] reside. Set up
|
||
the validation tool module to catch missing data in
|
||
the _Validation table even if the table does not
|
||
contain data.
|
||
|
||
97-04-09 chetanp added seuperseded components info to be passed in to
|
||
unregistercomponent. This will enable to
|
||
imsiconfigurationmanager::unregistercomponent function to remove
|
||
the redirection to itself from the superseded
|
||
components.
|
||
|
||
97-04-09 t-caroln Created an AIM database validation console app. It
|
||
resides in the %DARWIN%\x86 directory. This tool
|
||
will validate a database using the Validation DLL. To
|
||
run, be sure to have the Darwin DLL's registered,
|
||
including the Validation DLL (msival*.DLL) and type
|
||
aimdbval -d {database}. This will display the results on
|
||
the screen.
|
||
|
||
97-04-09 t-caroln Added a new string category for the validation tool.
|
||
It's the RegPath category and it's for validating
|
||
registry paths. This is used in the Registry,
|
||
RemoveRegistry, and RegLocator tables.
|
||
|
||
97-04-09 chetanp changed advertisement to fit final strategy.
|
||
added publishcomponent table and publishcomponent
|
||
handling to handle cross-product component
|
||
advertisement.
|
||
added handling for "treat As"ed components
|
||
|
||
97-04-08 malcolmh The "Launcher" property is now set in
|
||
CMsiEngine::CreateProductInfoRec if it wasn't already set. Also, if
|
||
the property wasn't set initially then the instance
|
||
handle given to Engine::Initialize is used to
|
||
determine the module path. Previously NULL was passed to
|
||
GetModuleFileName to determine this path.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2808
|
||
-----------------------------
|
||
|
||
97-04-05 bench Added automation support for the MsiExecute object.
|
||
See help for more info.
|
||
|
||
97-04-05 bench Made some changes to Engine.Sequence. Previously,
|
||
each call of Sequence would attempt to call
|
||
ExecuteFinalize (to execute an install script) if it handn't
|
||
been called yet and display the final dialog. Now,
|
||
only the first (or outermost) call of Sequence does
|
||
this. This way, if we actually call Sequence from within
|
||
Sequence (by placing a top-level action in the
|
||
sequence table, for example), we only call ExecuteFinalize
|
||
and display the final dialog at the end of the install, as
|
||
is the correct behaviour. With this change and
|
||
others, there are no restrictions to the ordering of
|
||
actions in the sequence table as there were before,
|
||
execpt those inherent in the actions (such as having to call
|
||
InstallFiles after DirectoryInitialize).
|
||
|
||
97-04-05 bench Made changes to the way the SCRIPTFILE property is
|
||
used. Previously, if this property wasn't set, we
|
||
would execute directly if in standalone mode and with a
|
||
script if in client-server mode. If this property was
|
||
set, we would create the script but execute it only
|
||
in client-server mode. Also, if an install actually
|
||
used more than one script, only the second was saved.
|
||
Now, our mode of execution is governed completely by
|
||
the EXECUTEMODE property. We use the SCRIPTFILE
|
||
property to write a script that is saved after the
|
||
install and contains all operations used in the install,
|
||
not just those in the last script. See help for more
|
||
info.
|
||
|
||
97-04-05 bench Added the EXECUTEMODE property, which can have
|
||
values NONE,DIRECT or SCRIPT. This defines if and how we
|
||
execute operations to update the system. See help
|
||
for more info.
|
||
|
||
97-04-04 malcolmh Added 3 conman methods to support rollback script
|
||
registration: RegisterRollbackScript,
|
||
UnregisterRollbackScript, and RollbackScripts. See the help file for
|
||
complete details.
|
||
|
||
97-04-04 t-caroln Validation tool now records errors found in the
|
||
_Validation table in the _Invalid table that it creates.
|
||
These errors include finding a column that is not
|
||
listed in the table, having the value of the MaxValue
|
||
col less than the MinValue col, having a category
|
||
string that is not allowed for the particular data or is
|
||
not listed, and for having a KeyTable link to a table
|
||
that could not be loaded. This last error could be
|
||
because the table is not in the database.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2804
|
||
-----------------------------
|
||
|
||
97-04-03 t-caroln Fixed localization tool to work with rtf syntax and
|
||
to correctly update dialog and control attributes.
|
||
|
||
97-04-03 t-caroln Validation tool now validates tables and databases.
|
||
Also has an updated help file.
|
||
Added RedirectComponent table to _Validation table.
|
||
|
||
97-04-03 chetanp removed the extra ProductKey from several ixo
|
||
operations beacuse of it being passed in the ixoProductInfo
|
||
operation.
|
||
|
||
97-04-03 chetanp Added RedirectComponent table to Darwin
|
||
|
||
|
||
97-04-01 johndelo The launcher may have a property "INSTALLER" which
|
||
specifies either a relative or absolute path to a
|
||
Darwin installer, i.e. AimInst.exe. This will be called
|
||
if the launcher can't find the Darwin API DLL or if
|
||
Darwin indicates that a newer version is needed. You
|
||
can call the Darwin installer, AimInst(D).exe,
|
||
directly, which will simply blast its files into your system
|
||
directory.
|
||
|
||
97-04-01 johndelo The Darwin installation code is now contained in
|
||
IExpress packages, names AimInst.exe, AimInstD.exe, and
|
||
AimInstL.exe. These are self-extracting executables
|
||
that install Darwin components into the system
|
||
directory. Currently they install automation and help;
|
||
these will later be moved to a separate tool installer.
|
||
To build these installers, specify aiminst as the
|
||
target, i.e. "make win debug aiminst". The ALPHA IExpress
|
||
files are checked in, but untested. The prompt
|
||
dialogs will be probably be removed in the future. Files
|
||
that are replaced are unregistered first.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2801
|
||
-----------------------------
|
||
|
||
97-03-31 t-caroln Fixed validation tool to correctly validate the
|
||
fields. It should now validate all fields and foreign
|
||
keys correctly.
|
||
|
||
97-03-31 t-caroln Fixed the localization tool to work with the new
|
||
Control and Dialog attributes format.
|
||
The tool now updates the control and dialog tables,
|
||
including tab order. However, it
|
||
incorrectly updates the radiobutton table and tab
|
||
order. Am working on a fix for that.
|
||
|
||
97-03-31 ivanw Implemented default text style for the text control.
|
||
{&style} at the start of the text string sets a
|
||
default style for the control. For more help see the page
|
||
on text controls. Modified testdb such that the text
|
||
controls on the Error and Selection dialogs use this
|
||
feature.
|
||
|
||
97-03-31 johndelo The DATABASE property cannot be set on the launcher
|
||
command line, as all the APIs assume that it is a
|
||
launcher property. This will be fixed when we store the
|
||
command line as part of the product state.
|
||
|
||
97-03-31 johndelo The launcher, INSTALL(D).EXE, no longer depends on
|
||
Darwin headers; rather, it calls through an added API:
|
||
MsiInstallProduct. A Unicode launcher can be built
|
||
by specifying the target "instalw" to make.
|
||
|
||
97-03-28 ivanw Removed the Help column from the Dialog table. Also
|
||
removed the Help attribute of the Dialog object. As a
|
||
result the new build will work with both new and old
|
||
databases but old builds of the Handler.dll won't
|
||
work with the new database.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2728
|
||
-----------------------------
|
||
|
||
97-03-27 bench Rollback of the InstallFiles and RemoveFiles actions
|
||
is implemented. Note that the Configuration Manager
|
||
rollback is not yet implemented, so after a rollback,
|
||
the state of the Config Manager may not correspond
|
||
to the files on the system.
|
||
|
||
97-03-27 t-caroln The validation tool is now a part of the release
|
||
process. This tool is for validation
|
||
of a database. It can validate a field, row, table,
|
||
or database. This tool is similar
|
||
to the localization tool in that it has its own help
|
||
file. The tool also requires that
|
||
the database contain the _Validation table. The tool
|
||
compiles, but has not
|
||
been tested very well. An error table -- _Invalid
|
||
table is created during validation
|
||
of a table or database. In validation of a field or
|
||
row, the errors are stored in an
|
||
array that can be accessed with one of the tool's
|
||
member functions. The tool
|
||
should help eliminate authoring errors.
|
||
|
||
97-03-27 johndelo Product properties that must be authored into the
|
||
Propery table have been defined in engine.h and
|
||
documented in Property help. Note that many of them are now
|
||
REQUIRED. Unused definitions and code has been
|
||
removed to avoid confusion.
|
||
|
||
97-03-27 chetanp Changed ADVT and UNADVT actions to ADVERTISE and
|
||
UNADVERTISE actions resp
|
||
Added DefInprocHandler column to Class table.
|
||
Sequenced ADVERTISE and UNADVERTISE action through
|
||
InstallSequence table
|
||
|
||
97-03-25 mattwe MsiGen: fixed the Class contexts per Chetan's Friday
|
||
design.
|
||
(Context column a primary key.) Haven't switched to
|
||
his current
|
||
design that the Context column is now a string. (He
|
||
hasn't checked
|
||
it in yet.)
|
||
|
||
Populated part of Verb, and most of Extensions.
|
||
Shortcuts in progress.
|
||
Wouldn't normally check-in, but this is to release
|
||
partial work to
|
||
testing.
|
||
|
||
97-03-25 tracyf The IMsiVolume FreeSpaceK and TotalSpaceK functions
|
||
have been changed to FreeSpace and TotalSpace,
|
||
respectively. These functions now return 512 byte
|
||
multiples, instead of 1024 byte multiples as before.
|
||
|
||
97-03-25 ivanw Added a new dialog style bit: TrackDiskSpace. If
|
||
this bit is set, the dialog periodically calls the
|
||
SelectionManager to check if we are out of disk space.
|
||
This way we can catch if the user switched to an other
|
||
application and changed the available disk space while
|
||
Darwin is running.
|
||
|
||
97-03-25 chetanp implemented "permanant" components. If a component
|
||
is installed locally, and its key file has the
|
||
"permanant" bit on in the Attributes column of the File
|
||
table, then we make the system a client of the component,
|
||
thereby preventing its uninstall.
|
||
|
||
97-03-25 t-caroln Added a new column to the _Validation table. It is
|
||
the KeyColumn column and is used
|
||
in conjunction with the KeyTable column. The
|
||
KeyColumn column tells which column the
|
||
data is a foreign key to in the KeyTable column.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2725
|
||
-----------------------------
|
||
|
||
97-03-24 johndelo Help and automation is now available for
|
||
Storage::Class property. The CLSID associated with the storage
|
||
is used to identify the contents of a storage object.
|
||
|
||
97-03-21 tracyf Two new actions are now supported: MoveFiles and
|
||
UnmoveFiles, complete with lots o' documentation in the
|
||
help file. I also checked in changes in TestDB to
|
||
make use of these new actions, but you won't see much
|
||
difference unless you place a few appropriate files to
|
||
be moved into particular source directories on your
|
||
local machine. I leave it as an exercise for the
|
||
reader to figure out what files to put where, in case
|
||
you want to see file movement in action.
|
||
|
||
97-03-21 ivanw Checked in the new control and dialog style bits.
|
||
Modified testdb to reflect the new changes. Also added
|
||
the new values to the help pages of the individual
|
||
control styles.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2721
|
||
-----------------------------
|
||
|
||
97-03-20 chetanp Added support for sharing Darwin components.
|
||
|
||
97-03-20 ivanw Checked in a VB script under
|
||
darwin\tools\stylecon.xls that can convert the control and dialog stylebits
|
||
of an existing database to the new values. The new
|
||
stylebits will take effect with the 3/25 build.
|
||
|
||
97-03-19 davidmck Checked in build 600 of the diamond decompression
|
||
libraries. These support LZX decompression.
|
||
|
||
97-03-19 ivanw Per Paul's request the automation wrapper for
|
||
Dialog.WindowShow has been renamed to Dialog.Visible. It is
|
||
a write only property.
|
||
|
||
97-03-19 malcolmh Removed GenerateProductKey from conman API and fixed
|
||
all references to it. The product code is now
|
||
authored in the property table.
|
||
|
||
Updated transform validation to use new product
|
||
code.
|
||
|
||
97-03-19 mattwe MsiGen: populated MIME table from registry keys
|
||
MsiGen: populated most of Class table from registry keys
|
||
waiting on ChetanP to finalize design
|
||
|
||
97-03-18 johndelo The Darwin-private properties have been removed from
|
||
the SummaryInformation stream (by request of
|
||
Office). Most of these were not being used anymore, as the
|
||
user info is now accessed via the MSI API functions.
|
||
|
||
97-03-18 johndelo Some Darwin GUIDs have been changed to remove
|
||
collisions, mostly automation GUIDS. To avoid orphaned reg
|
||
entires, you need to unregister all current Darwin
|
||
components before building or installing the new ones.
|
||
|
||
97-03-18 ivanw Removed the ValidateUserInfo action. Part of it
|
||
became obsolete because of the ValidateProductID method,
|
||
the rest has been moved into the RegisterUserInfo
|
||
action.
|
||
|
||
97-03-18 bench The behavior of MsiPath.Remove has changed slightly.
|
||
Now, if the directory is empty but still cannot be
|
||
deleted for any reason, an error is generated.
|
||
Previously, no error was generated for read-only
|
||
directories or sharing violations.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2718
|
||
-----------------------------
|
||
|
||
97-03-17 ivanw Implemented the MaskedEdit control type. Created a
|
||
ValidatePID controlevent. Added a ValidatePID method
|
||
to the Engine. Added a dialog to testdb to demonstrate
|
||
all the above.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2714
|
||
-----------------------------
|
||
|
||
97-03-13 t-caroln Checked in the _Validation table to the
|
||
darwin\data\testdb. This is a new table that will not be
|
||
shipped.
|
||
It is for authoring purposes and will be used by the
|
||
Validation API. Help on this table has been added to
|
||
|
||
the database tables help topic. Look under database
|
||
tables and then Validation to get to the help file
|
||
page. This table will have to be updated as not all
|
||
data is correct, but it is a workable schema for now.
|
||
|
||
97-03-13 johndelo New APIs have been added to the end of MSINST.H.
|
||
These will support functionality required by
|
||
applications and system, but are not implemented as yet.
|
||
|
||
97-03-13 johndelo Access97 can now be used to edit Darwin databases,
|
||
and can handle large text fields. MsiTable can now create
|
||
new Access databases as well as Msi databases, using the
|
||
-c option. MsiTable /? for its help screen.
|
||
|
||
There are two mechanism for dealing with large text fields:
|
||
1. Text fields can be specified with widths from 1 to
|
||
255 (S1 to S255 in the .idt header). Any text field
|
||
written to an Access table that overflows this limit
|
||
will be written to the _Overflow table, indexed by a
|
||
numeric key. In its place will be place the index
|
||
number preceeded by two plus signs. On access of the
|
||
text data, the indirection will be performed and the
|
||
long data will be returned. This will catch any text
|
||
data that overflows the column specifications. The
|
||
overflow table entries will not be removed if the related
|
||
data value is deleted or changed, but of course will
|
||
go away when importing to a created database.
|
||
2. The above should not normally happen. Text widths
|
||
should be carefully chosen to limit the text where
|
||
that is appropriate. For columns that are >255,
|
||
essentially unbounded, use S0 for the column specifications,
|
||
and a Memo field will be created which appears
|
||
within Access just like a normal text field. There is very
|
||
little overhead in doing this, the only
|
||
disadvantages being the inablility to sort by or search in these
|
||
fields. I have changed the Control.Text column to be
|
||
S0, and Import, Export, and Install all work fine
|
||
from and .MDB database.
|
||
|
||
The ODBC support now only works with the current Office97 or
|
||
Access97 Jet drivers. It no longer works with Access95.
|
||
|
||
Access fails to return the nullable state of a
|
||
column and no workaround can be found. For now, when
|
||
exporting from Access, primary key columns are set
|
||
non-nullable, and all other are set to what Access reports
|
||
(which is always nullable). The new _Validation table
|
||
contains the correct nullable state.
|
||
|
||
97-03-13 malcolmh MsiEnumComponents, MsiEnumFeatures, and
|
||
MsiEnumClients are implemented. See the help file for details.
|
||
|
||
97-03-13 tracyf Feature management in the SelectionManager has been
|
||
fixed up, in concert with the changes made by Ivan in
|
||
the UI. The major change is that when a feature,
|
||
whose parent is turned off, is turned on, the
|
||
SelectionManager now turns on all parents up the tree.
|
||
Special care is taken to ensure that only the selected
|
||
child feature is activated when the parent(s) are turned
|
||
on.
|
||
|
||
97-03-13 malcolmh Added basic Installer Services API tests to
|
||
%DARWIN%\test\apitest. Use MAKE ANSI or MAKE UNICODE in that
|
||
directory to build either APITESTA or APITESTW. Use
|
||
/? on either of these EXEs for help. Note that by
|
||
default C:\darwin\build\x86\msiengd.dll is tested. This
|
||
can be overridden in the makefile or on the
|
||
command-line to APITEST?.
|
||
|
||
97-03-13 mattwe MsiGen: major check-in. The database is now
|
||
relocatible, (properties are substituted for
|
||
hard coded paths, this also involved making
|
||
all primary keys for directory entries
|
||
lower-case) and I've started playing catch
|
||
up to all the new advertisement tables (MIME,
|
||
Extension, et cetera) and the new columns in
|
||
the old.
|
||
|
||
Also fixed bugs in AlanR's code, including an
|
||
extraneous cursor->Next() in MakeDirPathTab,
|
||
also gave this temporary table an optional
|
||
persistent flag for debugging purposes.
|
||
|
||
Updated the hungarian in several places, making
|
||
the variable naming more consistent, and added
|
||
comments to several functions.
|
||
|
||
Per our spec, MsiGen now only really works for
|
||
sysdiff conversion on a machine that nearly
|
||
matches the "reference" machine on which
|
||
the $OEM$ image was created. See me if you
|
||
want to learn about Win32 remote debugging.
|
||
|
||
97-03-11 ivanw Changed several aspects of the behaviour of the
|
||
SelectionTree control. When a parent is deselected, the
|
||
children are not hidden. Changed the icons. When a
|
||
child of an unselected parent is turned on, the parents
|
||
are repainted. We know distinguish between CD and
|
||
network installs. To do this I had to change the set of
|
||
strings in the UIText table used by the control.
|
||
|
||
97-03-11 ivanw Added a new controlevent: SelectionPathOn. Using
|
||
this we can hide the text on the selection dialog, when
|
||
there is no user configurable path. See testdb for an
|
||
example of the use of this event.
|
||
|
||
97-03-11 bench Updated the ixoFileCopy, ixoFileRemove,
|
||
ixoShortcutCreate, ixoShortcutRemove and ixoIniWriteRemoveValue
|
||
operations to register created folders when writing to
|
||
a folder. Also, these operations now attempt to
|
||
remove any registered folders when removing files. We
|
||
should no longer be leaving any folders around that we
|
||
created after we uninstall. See help for more info.
|
||
|
||
97-03-11 bench Added the CreateFolders and RemoveFolders actions
|
||
and the CreateFolder table. See the help for more
|
||
info.
|
||
|
||
97-03-11 bench MsiPath.EnsureExists now returns the number of
|
||
folders it actually created. See help for more info.
|
||
|
||
97-03-11 bench The MsiFileCopy.CopyTo and MsiServices.WriteIniFile
|
||
methods now fail if the target directory they are
|
||
writing to does not exist.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2711
|
||
-----------------------------
|
||
|
||
97-03-10 malcolmh Changed Conman::RegisterFolder interface. Added
|
||
Conman::IsFolderRemovable. See help file for details.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2710
|
||
-----------------------------
|
||
|
||
|
||
97-03-07 bench Added the ValueExists method to the MsiRegKey
|
||
object. See help for more info.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2707
|
||
-----------------------------
|
||
|
||
97-03-06 chetanp added data to the advertise tables. TO DO - add a
|
||
real OLE server for test purposes
|
||
|
||
97-03-06 chetanp Added unadvertise stuff. Currently punted to
|
||
unadvertise after a remove all.
|
||
|
||
97-03-06 ivanw Checked in the new version of the profiler (IceCAP
|
||
3.5). Added some files needed and modified the
|
||
makefile to build the profiler build correctly. Also
|
||
checked in the documentation for the new IceCAP under
|
||
darwin\doc\icecap.
|
||
|
||
97-03-06 tracyf Reinstall checksum verification has been
|
||
implemented, which involves a new IMsiPath function
|
||
(GetFileChecksum, which is broken up into two automation
|
||
interfaces - ComputeFileChecksum, and
|
||
GetFileOriginalChecksum). Also, files in the File Table have a new
|
||
'ValidChecksum' attribute bit. See the relevant new help
|
||
topics for more info.
|
||
|
||
97-03-05 bench Added the Seek method to the MsiStream object. See
|
||
help for more info.
|
||
|
||
97-03-04 tracyf A new "coding conventions and code review
|
||
guidelines" topic has been checked into the helpfile. You'll
|
||
find it under the "Development Topics" section in the
|
||
contents.
|
||
|
||
97-03-04 bench Added the ixoProductInfo operation, which should
|
||
always be the second operation in a script file.
|
||
Removed the ProductKey argument of ixoProductRegister and
|
||
all arguments of ixoAdvertiseProduct.
|
||
|
||
97-03-04 chetanp ProcessComponents is now a mandatory action required
|
||
for the
|
||
registration of components with the configuration
|
||
manager. Help
|
||
needs to be put in.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2704
|
||
-----------------------------
|
||
|
||
97-03-04 chetanp Bumped up engine version because of new tables and
|
||
Component table change.
|
||
Need to fix databases and bump up their versions to
|
||
.15
|
||
|
||
97-03-04 chetanp Changed tables Component, Typelib - see help file
|
||
Added tables Class, Icon, Extension, Verb, MIME, AdvtSequence for
|
||
advertisement
|
||
|
||
97-02-28 johndelo Slight changes to script format to accomodate larger
|
||
number of arguments. The encoding of integers and
|
||
strings are unchanged. See help file for details.
|
||
|
||
97-02-28 ivanw Added a new, optional table: the CheckBox table. This
|
||
table defines the value the property is set to if the
|
||
checkbox is turned on. Added a ReinstallMode dialog to
|
||
the maintanence mode wizard sequence to demonstrate
|
||
the use of these new features.
|
||
|
||
97-02-28 ivanw From now on the argument of a control event in the ControlEvent
|
||
table can be any expression that can be evaluated by
|
||
Engine::FormatText. To facilitate this change a
|
||
number of methods in the Event class were changed, they take
|
||
IMsiString& as an argument instead of an MsiStringId.
|
||
Also the ArgumentInt and ArgumentString dialog
|
||
attributes are replaced by the Argument attribute, that
|
||
returns the string representation of the argument for
|
||
the action that terminates the dialog.
|
||
|
||
97-02-28 bench A rollback script is created each time a script is
|
||
run, which occurs during an install in client-server
|
||
mode. The rollback scripts are put in the MSI
|
||
directory and are named RBS*.tmp. The rollback scripts may
|
||
be run with msiexecd /i. Currently, the
|
||
WriteRegistryValues and RemoveRegistryValues actions can be
|
||
rolled back (with the exception of deleting entire reg
|
||
keys).
|
||
|
||
97-02-28 bench Removed the ixoRegOpenRootKey operation. Now, the
|
||
parameters to ixoRegOpenKey specify both the root and
|
||
the key to open. Removed the arguments to
|
||
ixoRegCreateKey and ixoRegRemoveKey. These ops act on the key
|
||
set by ixoRegOpenKey.
|
||
|
||
97-02-28 chetanp The maintenance mode database is now not created. We
|
||
now store the
|
||
product installation info in the registry.
|
||
|
||
Also the first cut of the advertisement info that
|
||
Darwin provides is in.
|
||
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2628
|
||
-----------------------------
|
||
|
||
97-02-26 malcolmh The MsiQueryFeatureState is now implemented. It's
|
||
part of the Installer Service API.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2626
|
||
-----------------------------
|
||
|
||
97-02-25 ivanw The Scrollable Text control has been completed, so
|
||
it reads the text to be displayed from the text field
|
||
of the Control table, instead of using a hard coded
|
||
license agreement text. The text must be in RTF.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2625
|
||
-----------------------------
|
||
|
||
97-02-21 malcolmh MsiQueryProductInfo and MsiGetUserInfo are now
|
||
implemented. These are both part of the Installer Service
|
||
API. To use this, or any other of the API functions,
|
||
#include <msinst.h> and link to msinst.lib.
|
||
Msieng(d).dll contains the implementation of the API.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2621
|
||
-----------------------------
|
||
|
||
|
||
97-02-19 tracyf The InstallFiles action (and ixoFileCopy execution
|
||
action) has been modified so that verification of file
|
||
versions is performed again at actual script
|
||
execution time (it's still also done up front for costing
|
||
purposes). This involves a lot of internal changes in
|
||
the InstallFiles action, especially in conjunction
|
||
with CompanionFile functionality (a new
|
||
ixoSetCompanionParent execution action has been created), so this is
|
||
a heads-up to testing.
|
||
|
||
97-02-19 tracyf Feature Reinstall is now implemented. This involves
|
||
two new properties, "REINSTALL" and
|
||
"REINSTALLMODE", as well as new SelectionManager methods:
|
||
ConfigureFeature, SetReinstallMode, and
|
||
ProcessPropertyFeatureRequests. These new properties and methods are
|
||
documented in the help file, and I've also added a new
|
||
authoring topic: "Reinstalling and Removing Features",
|
||
which you'll find under the main "Authoring" topic in
|
||
the Contents. The only caveat: all of the reinstall
|
||
modes listed in the "REINSTALLMODE" property topic
|
||
are implemented, except for "c" (checksum
|
||
verification). I'll get that one done soon.
|
||
|
||
97-02-19 tracyf For consistency, the USESOURCE and ADD property
|
||
names have been changed to ADDSOURCE and ADDLOCAL,
|
||
respectively.
|
||
|
||
97-02-18 ivanw Added ReinstallMode control event, that calls the
|
||
SetReinstallMode method of the SelectionManager.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2614
|
||
-----------------------------
|
||
|
||
97-02-12 t-caroln Fixed GenerateTransform and SetTransform to comply
|
||
with the current database implementation. If the
|
||
naming
|
||
of binary stream should ever change again, it must
|
||
also
|
||
change in the CompareRows function of the database
|
||
where the transform computes the stream name.
|
||
|
||
97-02-11 t-caroln GenerateTransform now handles the possibility of
|
||
null streams. Stream data
|
||
is written out differently to the transform file as
|
||
well. A zero is recorded if
|
||
the stream is NULL while a one is recorded if the
|
||
stream is not null. The actual
|
||
stream exists elsewhere in the transform stream
|
||
storage.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2611
|
||
-----------------------------
|
||
|
||
97-02-10 chetanp added type library registration functionality look
|
||
for the help on the
|
||
RegisterTypeLibraries and UnregisterTypeLibraries
|
||
actions and
|
||
the TypeLib table.
|
||
|
||
97-02-10 davidmck Moved the debug log file from the root of the c
|
||
drive into the \windows\msi directory and had its name
|
||
created using GetTempFilename() so that multiple
|
||
instances can create their own files.
|
||
|
||
|
||
97-02-07 ivanw The Value and Text fields of the RadioButton,
|
||
Listbox, Combobox and ListView tables may now contain any
|
||
expression that FormatText can handle. For example, on
|
||
selecting a radiobutton we can set a property to an
|
||
expression that depends on the current value of some
|
||
other property. The same change was made to the
|
||
argument of the [Property] control event in the
|
||
ControlEvent table. Added a couple of dialogs to testdb to
|
||
demonstrate this new feature.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2607
|
||
-----------------------------
|
||
|
||
97-02-06 ivanw Added four new control events: AddLocal, AddSource,
|
||
Remove and Reinstall. Also added a reinstall option
|
||
and a new dialog to testdb.
|
||
|
||
97-02-06 bench The following folder properties are no longer being set by
|
||
MsiServices.SetPlatformProperties:
|
||
|
||
CommonDesktopFolder
|
||
CommonProgramMenuFolder
|
||
CommonStartMenuFolder
|
||
CommonStartupFolder
|
||
|
||
Instead, the DesktopFolder, ProgramMenuFolder, StartMenuFolder
|
||
and StartupFolder properties are set to folders in the "All Users"
|
||
profile if such a profile exists and the ALLUSERS property is set.
|
||
Otherwise, these properties are set to folders in the user's
|
||
personal profile.
|
||
|
||
MsiServices.SetPlatformProperties accepts a boolean argument: True
|
||
to set the above properties to the "All Users" folders, false to do
|
||
otherwise.
|
||
|
||
97-02-04 t-caroln The MergeDatabase method has been implemented. It
|
||
is a method of the
|
||
database object. The help file has also been updated
|
||
with this
|
||
information, including required arguments.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2604
|
||
-----------------------------
|
||
|
||
97-02-03 t-caroln Changed naming of streams. Stream names now follow format
|
||
table.key1.key2 etc. Any old database tables must be
|
||
rebuilt to account for the name changes.
|
||
|
||
97-02-03 chetanp Added support for SELECT * queries.
|
||
|
||
97-02-03 chetanp Any Delete* actions in the installs.idt table should
|
||
now be renamed to
|
||
Remove*. Contrary to previous comment, we are NOT
|
||
bumping the
|
||
engine version since this is a database content
|
||
change and NOT a
|
||
structure change.
|
||
|
||
97-02-03 ivanw Removed the Install control event. The selection
|
||
manager sets a property called OutOfDiskSpace if some
|
||
volume is out of disk space. The UI can branch
|
||
depending on this property. See testdb for an example how to
|
||
use this new mechanism.
|
||
|
||
97-02-03 tracyf The SelectionManager now maintains an
|
||
"OutOfDiskSpace" property, which has a value of TRUE if at any time
|
||
any volume has insufficient disk space for the
|
||
features currently selected. Authors can now use this
|
||
property to decide whether to allow transitions between
|
||
dialogs if a disk space problem exists. The TestDB
|
||
will be modified to demonstate this usage.
|
||
|
||
97-02-03 chetanp changed all Delete* action names to Remove* for
|
||
consistency. However
|
||
we decided to let the complementary actions have any
|
||
one of the forms -
|
||
Install*, Add* or Create*
|
||
to indicate the exact nature of interaction with the
|
||
user m/c.
|
||
NOTE: This change makes services and engine incompaible
|
||
with previous databases. But another change has already
|
||
caused this to happen for the next build. So am not
|
||
bumping up the ref count.
|
||
|
||
97-01-31 tracyf A 'Vital' attribute bit has been added for files in
|
||
the File Table. This bit allows the author to
|
||
specify whether an error preventing the file from being
|
||
installed can be ignored or not. See the File Table
|
||
help topic for more info.
|
||
|
||
97-01-31 bench Exposed the ExecuteRecord method of the Engine.
|
||
This can be used to execute the server operations.
|
||
Also, the opcodes have been exposed in the typelib. The
|
||
operations are documented in the help under
|
||
"Operation as an Install Server." Unless otherwise noted, all
|
||
operations should be fully testable.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2530
|
||
-----------------------------
|
||
|
||
97-01-29 tracyf The concept of allowing a child Feature to follow
|
||
the RunFromSource status of its parent has been
|
||
restored (this capability was unintentionally lost when the
|
||
transition from Selections to Features/Components was
|
||
implemented. See the Feature Database Table topic
|
||
in the helpfile for more info.
|
||
|
||
97-01-29 johndelo Sequence table alert: The desciption column for the
|
||
sequence tables has been removed, replaced by the
|
||
ActionText table, which includes Description and
|
||
Template columns.
|
||
For several releases the old format will be supported
|
||
until the doc and existing databases have been
|
||
updated.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2529
|
||
-----------------------------
|
||
|
||
97-01-28 bench MsiPatch: GenerateAcmePatchInformation method
|
||
added. See help for more info.
|
||
|
||
97-01-28 ivanw Modified the selection tree control, to use the
|
||
GetFeatureValidState. Only the valid choices show up in
|
||
the popup menues.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2528
|
||
-----------------------------
|
||
|
||
97-01-27 ivanw Added a new dialog attribute and style bit:
|
||
KeepModeless. If this is set, the existing modeless dialogs
|
||
are not destroyed when the new dialog is created. A
|
||
typical use of this bit would be for the FilesInUse
|
||
dialog.
|
||
|
||
97-01-27 johndelo The value of the ACTION property is now
|
||
case-insensitive. This is the top-level action performed by the
|
||
engine when the launcher calls DoAction(0). Only
|
||
actions with upper-cased names can specified by the
|
||
launcher. Currently this means INSTALL, ADMIN, and PATCH,
|
||
but more will be added.
|
||
|
||
97-01-27 tracyf Added a new "GetFeatureValidStates" API to the
|
||
Selection Manager. See the helpfile for more info.
|
||
|
||
97-01-27 ivanw Changed the TextStyle table, such that the color is
|
||
described with an integer (RGB) instead of a word.
|
||
Also added some code to check if the authored text
|
||
color is too close to the dialog background. If it is,
|
||
the default text color is used.
|
||
|
||
97-01-24 johndelo ---Changes to Darwin Launcher---
|
||
Most of the guts have been removed from the launcher to make it less dependent.
|
||
When installing a new product on demand the launcher is not executed,
|
||
therefore the engine must get the properties out of the resource.
|
||
The following changes have been made:
|
||
1. The launcher startup window is gone, and nearly all of the error handling is gone.
|
||
2. The engine puts its default modeless dialog up at the start (UI needs some cleanup).
|
||
3. The temp property file passed to the engine is gone; the command line is passed instead.
|
||
4. The engine now pulls properties from the command line and launcher resources.
|
||
5. The engine processes error messages during initialization, using strings in the launcher.
|
||
6. The launcher error message strings now have MsiRecord markers, i.e. [2].
|
||
7. The launcher has a required property, MESSAGEBASE, supplying the offset into the string table.
|
||
8. The property INSTALLERFILES is used by the launcher as the list of files to install.
|
||
9. The launcher will selfreg installed DLLs, and pass -RegServer to EXEs.
|
||
10. MsiEngine.Initialize now takes a command line instead of a property file.
|
||
11. The MAC code is no longer in the launcher. It is archived in LDWINMAC.CPP.
|
||
12. A single string is now invoked for command-line help: /? or -?, not a set of resources.
|
||
13. The debug command option "??" no longer functions. Another mechanism will be implemented.
|
||
|
||
The next step will be to remove the Darwin installation code from the launcher and
|
||
put it with the components in a separate package that can be downloaded from the internet
|
||
or be placed on the CD. The INSTALLER property will specify the path to this package.
|
||
Until this happens, the ability to force install of Darwin using '@' is not available.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2524
|
||
-----------------------------
|
||
|
||
97-01-23 chetanp Added BindImage stuff to automation.
|
||
BindImage passed preliminary testing as regards a
|
||
simple file with links
|
||
only into user32.dll. Bind worked fine on both Win 95
|
||
and Win NT. The
|
||
bound file worked well in both cases on both
|
||
platforms.
|
||
|
||
|
||
97-01-23 alanr MsiGen: Added Feature and FeatureLevel properties.
|
||
|
||
97-01-23 bench MsiPatch: Patch creation has changed dramatically.
|
||
See the help file for more info. Also, the help file
|
||
should be completely up to date. If it's in the
|
||
help file, it should work. There is not yet patch
|
||
application support for these patches.
|
||
|
||
97-01-22 chetanp added BindImage table.
|
||
|
||
97-01-22 chetanp Added BindImage function to services.
|
||
Fixed conflicts with imagehlp files
|
||
|
||
97-01-21 malcolmh The behavior of the /regserver and /regservice flags
|
||
for msiexec(d) have changed.
|
||
|
||
1) /regservice is no longer a valid option
|
||
2) /regserver now does what /regservice used to do,
|
||
i.e. attempt registration as a service but fall back
|
||
to a server if that fails
|
||
3) /regnoservice registers the install server as a
|
||
server regardless of whether registration as a service
|
||
is possible
|
||
|
||
This change makes our launcher consistent in that
|
||
it can DllRegisterServer all DLLs and /regserver all
|
||
EXEs without specific knowledge of the particular DLL
|
||
or EXE.
|
||
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2521
|
||
-----------------------------
|
||
|
||
97-01-20 chetanp Added registry support for REG_EXPAND_SZ
|
||
Added support for creation and deletion of registry
|
||
keys.
|
||
Added ixoRegCreateKey, ixoRegDeleteKey opcodes in
|
||
executor
|
||
|
||
|
||
97-01-20 alanr MsiGen: Replaced ROOTDRIVE references with TARGETDIR.
|
||
|
||
97-01-17 malcolmh Added messages to the actions that occur while the
|
||
PreAction dialog is displayed. Remember that all
|
||
actions that don't call ExecuteRecord must send either
|
||
ActionData or Progress messages to the UI to keep it
|
||
awake.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2517
|
||
-----------------------------
|
||
|
||
97-01-16 chetanp added Proxy table help.
|
||
|
||
97-01-16 alanr Added Cursor.DateData automation read/write support
|
||
for long integer value columns (previously only
|
||
supported string values).
|
||
|
||
97-01-16 mattwe MsiUtil: Fixed typo in ODL
|
||
MsiUtil.BuildCompletProject ->
|
||
MsiUtil.BuildCompleteProject
|
||
Darwin Bug #734
|
||
|
||
97-01-16 davidmck Added code in engine to allow for reference
|
||
tracking. Involved moving function name code into module.h so
|
||
all could share.
|
||
|
||
97-01-15 ivanw Added the ability to change fonts, style, font size
|
||
and font color in text controls. To see this in
|
||
action run testdb with UITEST=1. For information how to
|
||
use it, see the help pages for the TextStyle table and
|
||
the Text control type.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2513
|
||
-----------------------------
|
||
|
||
97-01-09 johndelo MsiDatabase.Export will now export summary
|
||
information stream to an .idt file as if it were a table.
|
||
Import has always accepted this table which contains
|
||
pairs of integer PID with string|integer|datetime
|
||
data.
|
||
MsiTable.EXE has also been updated to show the table
|
||
in the list box and to copy it with the '*' wildcard.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2509
|
||
-----------------------------
|
||
|
||
97-01-08 ivanw When a control is activated it can set a property to
|
||
the present value of an other property (with
|
||
arbitrary number of indirections). Untill now controls could
|
||
set a property only to a constant value. If anybody
|
||
needs more complex cases (like setting a property to
|
||
some expression) let me know.
|
||
|
||
97-01-08 ivanw Added an admin install wizard sequence to testdb and
|
||
the template database.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2508
|
||
-----------------------------
|
||
|
||
97-01-07 alanr Added new Cursor.DateData automation routine for reading
|
||
date fields from tables.
|
||
|
||
97-01-07 bench Changed AdminInstallFinalize action to only copy the
|
||
necessary Msi files (not Msi*.*). The copied files
|
||
are the same that would be installed with "install
|
||
ACTION=@". The ship launcher will copy the ship
|
||
components and the debug launcher will copy the debug
|
||
components. Currently no error occurs when a file is
|
||
missing.
|
||
|
||
97-01-07 bench Added the AdminInstallFinalize action, which copies the
|
||
launcher, database and Msi* components to the location
|
||
defined by TARGETDIR.
|
||
|
||
Launcher: always copied directly to TARGETDIR
|
||
Database: if the DATABASE property is not defined in the
|
||
launcher, an error will occur. Use loadprop.exe
|
||
to add this property to the launcher.
|
||
If DATABASE is defined and is a full path,
|
||
the database is not copied to the admin point.
|
||
If DATABASE is defined and is a relative path,
|
||
the database is copied to the relative path below
|
||
TARGETDIR. Note, setting DATABASE on the command
|
||
line to the launcher has no effect on this logic,
|
||
as that only sets the property in the database and
|
||
not in the launcher's resource.
|
||
Msi* components: If the INSTALLER property is defined in
|
||
the launcher and is a full path, no components are
|
||
copied. If the INSTALLER property is not defined, the
|
||
components are assumed to be located in the same
|
||
directory as the launcher. If the INSTALLER property is
|
||
defined and is a relative path, the components are
|
||
assumed to be in that directory beneath the launcher
|
||
and are copied to that directory beneath the admin point.
|
||
Currently, all MSI* files are copied from the appropriate
|
||
directory.
|
||
|
||
I have also added this action and ExecuteFinalize to the
|
||
AdminSequence table of the testdb.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2507
|
||
-----------------------------
|
||
|
||
97-01-06 chetanp Changed Shortcut and ProgMan tables and related
|
||
actions to allow for shortcuts/progman items to files AND
|
||
folders not installed by the current product. See
|
||
help on the tables and MsiEngine::FormatText function
|
||
for more help.
|
||
|
||
97-01-06 chetanp enhanced FormatText functionality to allow for File
|
||
table and Component table keys. See
|
||
MsiEngine::FormatText help for more info.
|
||
|
||
97-01-06 tracyf InstallFiles action now performs a separate query
|
||
for Admin mode, thus copying all files in this mode.
|
||
|
||
97-01-06 bench The DirectoryManager has been updated in the
|
||
following ways. When in Admin mode, SetTargetPaths only uses
|
||
property values for the roots and not for non-root
|
||
directories. Also, SetTargetPaths does not set
|
||
properties when in Admin mode. When not in Admin mode, the
|
||
value of the ROOTDRIVE property is used to resolve
|
||
any undefined roots. In Admin mode an error still
|
||
occurs if a root is undefined.
|
||
|
||
97-01-06 bench The Directory table in the testdb has been updated to reflect the
|
||
change in philosophy regarding the root directory
|
||
names. In short this philosophy is to not use ROOTDRIVE
|
||
as a directory name and to use TARGETDIR as a
|
||
directory name.
|
||
|
||
-----------------------------
|
||
Release 0.10.00.2503
|
||
-----------------------------
|
||
|
||
97-01-02 chetanp Added support to FormatText (that expands property
|
||
strings) to handle
|
||
1. #File where File stands for a key in the File
|
||
table. The property is expanded to a full file path.
|
||
2. $Component where Component stands for a key in the
|
||
Component table. The property is expanded to a
|
||
Directory of the Component (taking into consideration
|
||
whether the Component is selected to be installed to run
|
||
from source or local).
|
||
|
||
97-01-02 chetanp Added Feature support to the Configuration Manager
|
||
|
||
97-01-02 chetanp Added registry compatibility to the configuration
|
||
manager
|
||
|
||
97-01-02 chetanp Added functionality to Darwin to manage Features
|
||
from Properties
|
||
|
||
97-01-02 chetanp Added functionality to msiexec so as to be able to
|
||
configure features/ uninstall product from command
|
||
line. Type msiexec /? for more.
|
||
|