MsiEnumComponents Function

Windows Installer

MsiEnumComponents Function

The MsiEnumComponents function enumerates the installed components for all products. This function retrieves one component code each time it is called.

Syntax

C++UINT MsiEnumComponents(
  __in   DWORD iComponentIndex,
  __out  LPTSTR lpComponentBuf
);

Parameters

iComponentIndex [in]

Specifies the index of the component to retrieve. This parameter should be zero for the first call to the MsiEnumComponents function and then incremented for subsequent calls. Because components are not ordered, any new component has an arbitrary index. This means that the function can return components in any order.

lpComponentBuf [out]

Pointer to a buffer that receives the component code. This buffer must be 39 characters long. The first 38 characters are for the GUID, and the last character is for the terminating null character.

Return Value

Value Meaning
ERROR_BAD_CONFIGURATION

The configuration data is corrupt.

ERROR_INVALID_PARAMETER

An invalid parameter was passed to the function.

ERROR_NO_MORE_ITEMS

There are no components to return.

ERROR_NOT_ENOUGH_MEMORY

The system does not have enough memory to complete the operation. Available with Windows Server 2003.

ERROR_SUCCESS

A value was enumerated.

 

Remarks

To enumerate components, an application should initially call the MsiEnumComponents function with the iComponentIndex parameter set to zero. The application should then increment the iComponentIndex parameter and call MsiEnumComponents until there are no more components (that is, until the function returns ERROR_NO_MORE_ITEMS).

When making multiple calls to MsiEnumComponents to enumerate all of the product's components, each call should be made from the same thread.

Requirements

VersionWindows Installer 5.0 on 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, Windows XP, and Windows 2000. See the Windows Installer Run-Time Requirements for information about the minimum Windows service pack that is required by a Windows Installer version.
HeaderMsi.h
LibraryMsi.lib
DLLMsi.dll
Unicode and ANSI namesMsiEnumComponentsW (Unicode) and MsiEnumComponentsA (ANSI)

See Also

System Status Functions

Send comments about this topic to Microsoft

Build date: 8/13/2009

© 2009 Microsoft Corporation. All rights reserved.