The MsiProvideQualifiedComponent function returns the full component path for a qualified component and performs any necessary installation. This function prompts for source if necessary, and increments the usage count for the feature.
Syntax
C++UINT MsiProvideQualifiedComponent(
__in LPCTSTR szComponent,
__in LPCTSTR szQualifier,
__in DWORD dwInstallMode,
__out LPTSTR lpPathBuf,
__inout DWORD *pcchPathBuf
);
Parameters
- szComponent [in]
-
Specifies the component ID for the requested component. This may not be the GUID for the component itself, but rather a server that provides the correct functionality, as in the ComponentId column of the PublishComponent table.
- szQualifier [in]
-
Specifies a qualifier into a list of advertising components (from PublishComponent Table).
- dwInstallMode [in]
-
Defines the installation mode. This parameter can be one of the following values.
Value Meaning - INSTALLMODE_DEFAULT
Provide the component and perform any installation necessary to provide the component. If the key file of a component in the requested feature, or a feature parent, is missing, reinstall the feature using MsiReinstallFeature with the following flag bits set: REINSTALLMODE_FILEMISSING, REINSTALLMODE_FILEOLDERVERSION, REINSTALLMODE_FILEVERIFY, REINSTALLMODE_MACHINEDATA, REINSTALLMODE_USERDATA, and REINSTALLMODE_SHORTCUT.
- INSTALLMODE_EXISTING
Provide the component only if the feature exists. Otherwise return ERROR_FILE_NOT_FOUND.
This mode verifies that the key file of the component exists.
- INSTALLMODE_NODETECTION
Provide the component only if the feature exists. Otherwise return ERROR_FILE_NOT_FOUND.
This mode only checks that the component is registered and does not verify that the key file of the component exists.
- combination of the REINSTALLMODE flags
Call MsiReinstallFeature to reinstall the feature using this parameter for the dwReinstallMode parameter, and then provide the component.
- INSTALLMODE_NOSOURCERESOLUTION
Provide the component only if the feature's installation state is INSTALLSTATE_LOCAL. If the feature's installation state is INSTALLSTATE_SOURCE, return ERROR_INSTALL_SOURCE_ABSENT. Otherwise, it returns ERROR_FILE_NOT_FOUND. This mode only checks that the component is registered and does not verify that the key file exists.
- lpPathBuf [out]
-
Pointer to a variable that receives the path to the component. This parameter can be null.
- pcchPathBuf [in, out]
-
Pointer to a variable that specifies the size, in characters, of the buffer pointed to by the lpPathBuf parameter. On input, this is the full size of the buffer, including a space for a terminating null character. If the buffer passed in is too small, the count returned does not include the terminating null character.
If lpPathBuf is null, pcchBuf can be null.
Return Value
Value | Meaning |
---|---|
|
The component qualifier is invalid or absent. |
|
The function completed successfully. |
|
The feature is absent or broken. This error is returned for dwInstallMode = INSTALLMODE_EXISTING. |
|
The specified component is unknown. |
|
See Error Codes. |
An error relating to initialization occurred. |
Remarks
Upon success of the MsiProvideQualifiedComponent function, the pcchPathBuf parameter contains the length of the string in lpPathBuf.
Features with components containing a corrupted file or the wrong version of a file must be explicitly reinstalled by the user or by having the application call MsiReinstallFeature.
Requirements
Version | Windows 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. |
---|---|
Header | Msi.h |
Library | Msi.lib |
DLL | Msi.dll |
Unicode and ANSI names | MsiProvideQualifiedComponentW (Unicode) and MsiProvideQualifiedComponentA (ANSI) |
See Also
- Component-Specific Functions
- Error Codes
- Displayed Error Messages
- Initialization Error
- Multiple-Package Installations
Send comments about this topic to Microsoft
Build date: 8/13/2009
© 2009 Microsoft Corporation. All rights reserved.