Función MsiSourceListEnumSourcesA (msi.h)
La función MsiSourceListEnumSources enumera los orígenes de la lista de origen de una revisión o un producto especificados.
Sintaxis
UINT MsiSourceListEnumSourcesA(
[in] LPCSTR szProductCodeOrPatchCode,
[in, optional] LPCSTR szUserSid,
[in] MSIINSTALLCONTEXT dwContext,
[in] DWORD dwOptions,
[in] DWORD dwIndex,
[in, optional] LPSTR szSource,
[in, out, optional] LPDWORD pcchSource
);
Parámetros
[in] szProductCodeOrPatchCode
Guid de ProductCode o revisión del producto o revisión. Use una cadena terminada en null. Si la cadena tiene más de 39 caracteres, la función produce un error y devuelve ERROR_INVALID_PARAMETER. Este parámetro no puede ser NULL.
[in, optional] szUserSid
SiD de cadena que especifica la cuenta de usuario que contiene el producto o la revisión. El SID no se valida ni resuelve. Un SID incorrecto puede devolver ERROR_UNKNOWN_PRODUCT o ERROR_UNKNOWN_PATCH. Al hacer referencia a un contexto de máquina, szUserSID debe ser NULL y dwContext debe ser MSIINSTALLCONTEXT_MACHINE.
[in] dwContext
Contexto de la instancia de producto o revisión. Este parámetro puede contener uno de los siguientes valores.
[in] dwOptions
El valor dwOptions determina la interpretación del valor szProductCodeOrPatchCode y el tipo de orígenes que se van a borrar. Este parámetro debe ser una combinación de una de las siguientes constantes MSISOURCETYPE_* y una de las siguientes constantes MSICODE_*.
[in] dwIndex
Índice del origen que se va a recuperar. Este parámetro debe ser 0 (cero) para la primera llamada a la función MsiSourceListEnumSources y, a continuación, incrementarse para las llamadas posteriores hasta que la función devuelva ERROR_NO_MORE_ITEMS. El índice solo debe incrementarse si la llamada anterior devolvió ERROR_SUCCESS.
[in, optional] szSource
Puntero a un búfer que recibe la ruta de acceso al origen que se está enumerando. Este búfer debe ser lo suficientemente grande como para contener el valor recibido. Si el búfer es demasiado pequeño, la función devuelve ERROR_MORE_DATA y establece *pcchSource en el número de TCHAR en el valor, no incluido el carácter NULL de terminación.
Si szSource se establece en NULL y pcchSource se establece en un puntero válido, la función devuelve ERROR_SUCCESS y establece *pcchSource en el número de TCHAR en el valor, no incluido el carácter NULL de terminación. A continuación, se puede llamar a la función de nuevo para recuperar el valor, con el búfer szSource lo suficientemente grande como para contener *pcchSource + 1 caracteres.
Si szSource y pcchSource se establecen en NULL, la función devuelve ERROR_SUCCESS si el valor existe, sin recuperar el valor.
[in, out, optional] pcchSource
Puntero a una variable que especifica el número de TCHAR en el búfer szSource . Cuando la función devuelve, este parámetro se establece en el tamaño del valor solicitado tanto si la función copia el valor en el búfer especificado. El tamaño se devuelve como el número de TCHAR en el valor solicitado, no incluido el carácter nulo de terminación.
Este parámetro solo se puede establecer en NULL si szSource también es NULL; de lo contrario, la función devuelve ERROR_INVALID_PARAMETER.
Valor devuelto
La función MsiSourceListEnumSources devuelve los valores siguientes.
Valor | Significado |
---|---|
|
El usuario no tiene la capacidad de leer la lista de origen especificada. Esto no indica si se encuentra un producto o una revisión. |
|
Los datos de configuración están dañados. |
|
Se pasa un parámetro no válido a la función . |
|
El búfer proporcionado no es suficiente para contener los datos solicitados. |
|
No hay más orígenes en la lista especificada para enumerar. |
|
Un origen se enumera correctamente. |
|
La revisión especificada no está instalada en el equipo en los contextos especificados. |
|
El producto especificado no está instalado en el equipo en los contextos especificados. |
|
Error interno inesperado. |
Comentarios
Al realizar varias llamadas a MsiSourceListEnumSources para enumerar todos los orígenes de una sola instancia de producto, cada llamada debe realizarse desde el mismo subproceso.
Un administrador puede enumerar las instalaciones administradas y no administradas por usuario para sí mismas, las instalaciones por máquina y las instalaciones administradas por usuario para cualquier usuario. Un administrador no puede enumerar las instalaciones no administradas por usuario para otros usuarios. Los no administradores solo pueden enumerar sus propias instalaciones no administradas y administradas por usuario y por máquina.
Nota:
El encabezado msi.h define MsiSourceListEnumSources 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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.
Requisitos
Cliente mínimo compatible | Windows Installer 5.0 en Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 en Windows Server 2008 o Windows Vista. Windows Installer 3.0, o posterior, en Windows Server 2003 o Windows XP. Consulte Windows Installer para obtener información sobre el Service Pack mínimo de Windows que requiere una versión de Windows Installer. |
Plataforma de destino | Windows |
Encabezado | msi.h |
Library | Msi.lib |
Archivo DLL | Msi.dll |
Consulte también
No se admite en Windows Installer 2.0 ni en versiones anteriores