mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5745 lines
293 KiB
5745 lines
293 KiB
|
|
|
|
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.
|
|
|