MsiAdvertiseProductExA function (msi.h)

The MsiAdvertiseProductEx function generates an advertise script or advertises a product to the computer. This function enables Windows Installer to write to a script the registry and shortcut information used to assign or publish a product. The script can be written to be consistent with a specified platform by using MsiAdvertiseProductEx. The MsiAdvertiseProductEx function provides the same functionality as MsiAdvertiseProduct.


UINT MsiAdvertiseProductExA(
  [in] LPCSTR szPackagePath,
  [in] LPCSTR szScriptfilePath,
  [in] LPCSTR szTransforms,
  [in] LANGID lgidLanguage,
  [in] DWORD  dwPlatform,
  [in] DWORD  dwOptions


[in] szPackagePath

The full path to the package of the product being advertised.

[in] szScriptfilePath

The full path to the script file to be created with the advertised information. To advertise the product locally to the computer, set ADVERTISEFLAGS_MACHINEASSIGN or ADVERTISEFLAGS_USERASSIGN.

Flag Meaning
Set to advertise a per-computer installation of the product available to all users.
Set to advertise a per-user installation of the product available to a particular user.

[in] szTransforms

A semicolon–delimited list of transforms to be applied. The list of transforms can be prefixed with the @ or | character to specify the secure caching of transforms. The @ prefix specifies secure-at-source transforms and the | prefix indicates secure full path–transforms. For more information, see Secured Transforms. This parameter may be null.

[in] lgidLanguage

The language to use if the source supports multiple languages.

[in] dwPlatform

Bit flags that control for which platform the installer should create the script. This parameter is ignored if szScriptfilePath is null. If dwPlatform is zero (0), then the script is created based on the current platform. This is the same functionality as MsiAdvertiseProduct. If dwPlatform is 1 or 2, the installer creates script for the specified platform.

Flag Meaning
Creates a script for the current platform.
Creates a script for the x86 platform.
Creates a script for Itanium-based systems.
Creates a script for the x64 platform.

[in] dwOptions

Bit flags that specify extra advertisement options. Nonzero value is only available in Windows Installer versions shipped with Windows Server 2003 and Windows XP with SP1 and later.

Flag Meaning
Multiple instances through product code changing transform support flag. Advertises a new instance of the product. Requires that the szTransforms parameter includes the instance transform that changes the product code. For more information, see Installing Multiple Instances of Products and Patches.

Return value

Value Meaning
The function completes successfully.
An error that relates to an action
For more information, see Error Codes.
Initialization Error
An initialization error has occurred.
This error is returned if an attempt is made to generate an advertise script on any platform other than Windows 2000 or Windows XP. Advertisement to the local computer is supported on all platforms.


Multiple instances through product code–changing transforms is only available for Windows Installer versions shipping with Windows Server 2003 and Windows XP with SP1 and later.


The msi.h header defines MsiAdvertiseProductEx as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see Conventions for Function Prototypes.


Minimum supported client Windows Installer 5.0 on Windows Server 2012, Windows 8, Windows Server 2008 R2 or Windows 7. Windows Installer 4.0 or Windows Installer 4.5 on Windows Server 2008 or Windows Vista. Windows Installer on Windows Server 2003 or Windows XP. See the Windows Installer Run-Time Requirements for information about the minimum Windows service pack that is required by a Windows Installer version.
Target Platform Windows
Header msi.h
Library Msi.lib
DLL Msi.dll

See also

Multiple-Package Installations

Not Supported in Windows Installer 2.0 and earlier