The Advanced INF Installer (advpack.dll) includes INF extensions that can perform tasks such as:
This document describes the syntax of Advanced INF Installer and how to perform routine tasks using these features.
AdvancedINF=2.5, "You need a newer version of advpack.dll." - Error message if setup can't find a proper version of advpack.dll to use.
'<Root Key>','<Sub Key>','<Value Name>','<Message>','<Default to use>'
Note: Single quotes should be used instead of double quotes in the above syntax so the INF stays compatible with Windows NT 4.0 INF processing.
|<Flag>||An number that determines how the value of the custom LDID is determined. This number can be constructed by summing appropriate values from the table below.|
|<LDID Value>||The LDID value to which a value is assigned. It must be an integer value of at least 49000 and less than 50000. This is to avoid other reserved LDIDs in NT.|
|<Root Key>||A root key of a registry entry. Same format as AddReg and DelReg .INF file sections.|
|<Sub Key>||A sub key of a registry entry. Same format as AddReg and DelReg .INF file sections.|
|<Value Name>||A sub key of a registry entry. Same format as AddReg and DelReg .INF file sections. The default value for a key may be specified with a null string (two double quotes).|
|<Message>||A message that may be displayed to the user.|
|<Default>||A string that is used as a default value if no LDID value can be obtained from registry entries.|
|1||Default: Make a registry sub key the value of custom LDID. Return branch name.
Set: Make registry value the value of the custom LDID. Return a value in the branch.
|2||Default: If none of the registry entries in the CustomLDIDSection exist, use
the default as the LDID value.
Set: Fail the installation if none of the registry entries exist. Upon failure, show the user the message specified on the last line of the CustomLDIDSection
|4||Default: Display a dialog box prompting the user to enter a destination
directory. Prompt the user with the message string corresponding to the registry entry
found or to the default value. Fill the edit box with either the registry value or the
Set: Do not prompt the user. Use either the registry value found or the default value as the LDID value.
|8||Default: Strip a semicolon from the end of the custom LDID value if one is
Set: Do not strip a semicolon from the LDID value.
|16||Default: Before assigning a registry value or sub key to an LDID, check to see
if the registry value is a valid directory on the user's system. |
Set: Do not check the registry value to see if it is a valid directory.
|32||Default: No effect on other flags if not set. |
Set: Has to be used in conjunction with flag2. Fails the install if any of the registry keys searched for exists. Reverses logic of flag2.
The only time that you are safe in using the contents of an LDID under NT 4.0 is when the LDID is assigned to a valid directory name. Attempting to set the LDID to a registry branch (first bit of flag = 0) will rarely produce the expected result.