Función MsiEnumComponentsExA (msi.h)
La función
Windows Installer 4.5 o versiones anteriores: no se admite . Esta función está disponible a partir de Windows Installer 5.0.
Sintaxis
UINT MsiEnumComponentsExA(
[in, optional] LPCSTR szUserSid,
[in] DWORD dwContext,
[in] DWORD dwIndex,
[out, optional] CHAR [39] szInstalledComponentCode,
[out, optional] MSIINSTALLCONTEXT *pdwInstalledContext,
[out, optional] LPSTR szSid,
[in, out] LPDWORD pcchSid
);
Parámetros
[in, optional] szUserSid
Cadena terminada en null que contiene un identificador de seguridad (SID). La enumeración de componentes instalados se extiende a los usuarios identificados por este SID. La cadena de SID especial s-1-1-0 (Todos) especifica una enumeración de todos los componentes instalados en todos los productos de todos los usuarios del sistema. Un valor de SID distinto de s-1-1-0 especifica un SID de usuario para un usuario determinado y restringe la enumeración a instancias de aplicaciones instaladas por el usuario especificado.
La cadena de SID especial s-1-5-18 (Sistema) no se puede usar para enumerar las aplicaciones instaladas en el contexto de instalación por máquina. Al establecer el valor del SID en s-1-5-18, se devuelve ERROR_INVALID_PARAMETER. Cuando dwContext solo se establece en MSIINSTALLCONTEXT_MACHINE, szUserSid debe ser NULL.
[in] dwContext
Marca que restringe la enumeración del componente instalado a instancias de productos instalados en el contexto de instalación especificado. La enumeración solo incluye instancias de producto instaladas por los usuarios especificados por szUserSid.
[in] dwIndex
Especifica el índice del componente que se va a recuperar. Este parámetro debe ser cero (0) para la primera llamada a función MsiEnumComponentsEx. Para cada llamada posterior, el índice debe incrementarse en 1. El índice solo debe incrementarse si la llamada anterior a la función devuelve ERROR_SUCCESS. Los componentes no están ordenados y la función puede devolverla en cualquier orden.
[out, optional] szInstalledComponentCode
Búfer de salida que recibe el GUID de código de componente para el componente instalado. La longitud del búfer debe ser lo suficientemente grande como para contener un valor de cadena terminada en NULL que contenga el código del componente. Los primeros 38 caracteres TCHAR reciben el GUID del componente y el carácter 39 recibe un carácter NULL de terminación.
[out, optional] pdwInstalledContext
Marca que proporciona el contexto de instalación a la aplicación que instaló el componente.
[out, optional] szSid
Recibe el identificador de seguridad (SID) que identifica al usuario que instaló la aplicación propietaria del componente. La ubicación recibe una cadena vacía si esta instancia de la aplicación está instalada en un contexto de instalación por máquina.
La longitud del búfer en esta ubicación debe ser lo suficientemente grande como para contener un valor de cadena terminada en NULL que contenga el SID. Si el búfer es demasiado pequeño, la función devuelve ERROR_MORE_DATA y la ubicación a la que apunta pcchSid recibe el número de TCHAR en el SID, no incluido el carácter NULL de terminación.
Si szSid se establece en NULL y pcchSid es un puntero válido a una ubicación en memoria, la función devuelve ERROR_SUCCESS y la ubicación recibe el número de TCHAR en el SID, no incluido el carácter nulo de terminación. A continuación, se puede llamar a la función de nuevo para recuperar el valor, con el búfer de szSid tamaño lo suficientemente grande como para contener *pcchSid + 1 caracteres.
Tipo de SID | Significado |
---|---|
|
La aplicación se instala en un contexto de instalación por máquina. |
|
SID para el usuario en el sistema que instaló la aplicación. |
[in, out] pcchSid
Recibe el número de TCHAR en el SID, sin incluir el carácter nulo de terminación. Cuando la función devuelve, esta variable se establece en el tamaño del SID solicitado si la función puede copiar correctamente el SID y terminar el carácter NULL en la ubicación del búfer a la que apunta szSid. El tamaño se devuelve como el número de TCHAR en el valor solicitado, sin incluir el carácter nulo de terminación.
Este parámetro se puede establecer en null solo si szSid también es NULL; de lo contrario, la función devuelve ERROR_INVALID_PARAMETER. Si szSid y pcchSid se establecen en NULL, la función devuelve ERROR_SUCCESS si el SID existe, sin recuperar el valor del SID.
Valor devuelto
La función MsiEnumProductsEx devuelve uno de los valores siguientes.
Código devuelto | Descripción |
---|---|
|
Los privilegios de administrador son necesarios para enumerar los componentes de las aplicaciones instaladas por los usuarios distintos del usuario actual. |
|
Los datos de configuración están dañados. |
|
Se pasa un parámetro no válido a la función . |
|
No hay más componentes para enumerar. |
|
La función se realizó correctamente. |
|
El búfer proporcionado era demasiado pequeño para contener todo el valor. |
|
Error en la función. |
Observaciones
Nota
El encabezado msi.h define MsiEnumComponentsEx como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows Installer 5.0 en Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Consulte Windows Installer Run-Time Requirements (Requisitos de Windows Installer) para obtener información sobre el Service Pack mínimo de Windows que requiere una versión de Windows Installer. |
de la plataforma de destino de |
Windows |
encabezado de |
msi.h |
biblioteca de |
Msi.lib |
DLL de |
Msi.dll |