Partager via


MsiEnumClientsExA, fonction (msi.h)

La fonction MsiEnumClientsEx énumère les applications installées qui utilisent un composant spécifié. La fonction récupère un code de produit pour une application chaque fois qu’elle est appelée.

Windows Installer 4.5 ou version antérieure: Non pris en charge. Cette fonction est disponible à partir de Windows Installer 5.0.

Syntaxe

UINT MsiEnumClientsExA(
  [in]                LPCSTR            szComponent,
  [in, optional]      LPCSTR            szUserSid,
  [in]                DWORD             dwContext,
  [in]                DWORD             dwProductIndex,
  [out, optional]     CHAR [39]         szProductBuf,
  [out, optional]     MSIINSTALLCONTEXT *pdwInstalledContext,
  [out, optional]     LPSTR             szSid,
  [in, out, optional] LPDWORD           pcchSid
);

Paramètres

[in] szComponent

GUID du code du composant qui identifie le composant. La fonction énumère les applications qui utilisent ce composant.

[in, optional] szUserSid

Valeur de chaîne terminée par null qui contient un identificateur de sécurité (SID.) L’énumération des applications s’étend aux utilisateurs identifiés par ce SID. La chaîne SID spéciale s-1-1-0 (Tout le monde) énumère toutes les applications pour tous les utilisateurs du système. Une valeur SID autre que s-1-1-0 spécifie un SID utilisateur pour un utilisateur particulier et énumère les instances d’applications installées par l’utilisateur spécifié.

Type SID Signification
NULL
Spécifie l’utilisateur actuellement connecté.
SID utilisateur
Spécifie une énumération pour un utilisateur particulier. Un exemple de SID utilisateur est « S-1-3-64-2415071341-135809878-3127455600-2561 ».
s-1-1-0
Spécifie une énumération pour tous les utilisateurs du système.
 
Remarque La chaîne SID spéciale s-1-5-18 (Système) ne peut pas être utilisée pour énumérer les applications qui existent dans le contexte d’installation par ordinateur. La définition de la valeur SID sur s-1-5-18 retourne ERROR_INVALID_PARAMETER. Lorsque dwContext est défini sur MSIINSTALLCONTEXT_MACHINE uniquement, la valeur de szUserSid doit être NULL.
 

[in] dwContext

Indicateur qui étend l’énumération aux instances d’applications installées dans le contexte d’installation spécifié. L’énumération inclut uniquement les instances d’applications installées par les utilisateurs identifiés par szUserSid.

Il peut s’agir d’une combinaison des valeurs suivantes.

Contexte Signification
MSIINSTALLCONTEXT_USERMANAGED
1
Incluez les applications installées dans le contexte d’installation gérée par l’utilisateur.
MSIINSTALLCONTEXT_USERUNMANAGED
2
Incluez les applications installées dans le contexte d’installation non managé par utilisateur.
MSIINSTALLCONTEXT_MACHINE
4
Incluez les applications installées dans le contexte d’installation par ordinateur. Lorsque dwInstallContext est défini sur MSIINSTALLCONTEXT_MACHINE uniquement, la valeur du paramètre szUserSID doit être NULL.

[in] dwProductIndex

Spécifie l’index de l’application à récupérer. La valeur de ce paramètre doit être égale à zéro (0) dans le premier appel à la fonction. Pour chaque appel suivant, l’index doit être incrémenté de 1. L’index ne doit être incrémenté que si l’appel précédent à la fonction retourne ERROR_SUCCESS.

[out, optional] szProductBuf

Valeur de chaîne qui reçoit le code de produit de l’application. La longueur de la mémoire tampon à cet emplacement doit être suffisamment grande pour contenir une valeur de chaîne terminée par null contenant le code de produit. Les 38 premiers caractères TCHAR reçoivent le GUID du composant, et le 39e caractère reçoit un caractère NULL de fin.

[out, optional] pdwInstalledContext

Indicateur qui donne le contexte d’installation de l’application.

Il peut s’agir d’une combinaison des valeurs suivantes.

Contexte Signification
MSIINSTALLCONTEXT_USERMANAGED
1
L’application est installée dans le contexte d’installation géré par l’utilisateur.
MSIINSTALLCONTEXT_USERUNMANAGED
2
L’application est installée dans le contexte d’installation non managé par utilisateur.
MSIINSTALLCONTEXT_MACHINE
4
L’application se trouve dans le contexte d’installation par ordinateur.

[out, optional] szSid

Reçoit l’identificateur de sécurité (SID) qui identifie l’utilisateur qui a installé l’application. L’emplacement reçoit une valeur de chaîne vide si cette instance de l’application existe dans un contexte d’installation par ordinateur.

La longueur de la mémoire tampon doit être suffisamment grande pour contenir une valeur de chaîne terminée par null contenant le SID. Si la mémoire tampon est trop petite, la fonction retourne ERROR_MORE_DATA et l’emplacement vers lequel pointe pcchSid reçoit le nombre d'TCHAR dans le SID, sans inclure le caractère NULL de fin.

Si szSid est défini sur NULL et pcchSid est un pointeur valide vers un emplacement en mémoire, la fonction retourne ERROR_SUCCESS et l’emplacement reçoit le nombre de TCHAR dans le SID, sans inclure le caractère Null de fin. La fonction peut ensuite être appelée à nouveau pour récupérer la valeur, avec le szSid mémoire tampon redimensionnée suffisamment grande pour contenir *pcchSid + 1 caractères.

Type SID Signification
Chaîne vide
L’application est installée dans un contexte d’installation par ordinateur.
SID utilisateur
SID de l’utilisateur qui a installé le produit.

[in, out, optional] pcchSid

Pointeur vers un emplacement en mémoire qui contient une variable qui spécifie le nombre d'TCHAR dans le SID, sans inclure le caractère null de fin. Lorsque la fonction est retournée, cette variable est définie sur la taille du SID demandé si la fonction peut copier correctement le SID et terminer le caractère null dans l’emplacement de la mémoire tampon vers lequel pointe szSid. La taille est retournée en tant que nombre de TCHAR dans la valeur demandée, sans inclure le caractère null de fin.

Ce paramètre peut être défini sur NULL uniquement si szSid est également NULL , sinon la fonction retourne ERROR_INVALID_PARAMETER. Si szSid et pcchSid sont tous deux définis sur NULL, la fonction retourne ERROR_SUCCESS si le SID existe, sans récupérer la valeur SID.

Valeur de retour

La fonction MsiEnumClientsEx retourne l’une des valeurs suivantes.

Retourner le code Description
ERROR_ACCESS_DENIED
Les privilèges d’administrateur sont nécessaires pour énumérer les composants des applications installées par les utilisateurs autres que l’utilisateur actuel.
ERROR_BAD_CONFIGURATION
Les données de configuration sont endommagées.
ERROR_INVALID_PARAMETER
Un paramètre non valide est passé à la fonction.
ERROR_NO_MORE_ITEMS
Il n’y a plus d’applications à énumérer.
ERROR_SUCCESS
La fonction a réussi.
ERROR_MORE_DATA
La mémoire tampon fournie était trop petite pour contenir la valeur entière.
ERROR_FUNCTION_FAILED
Échec de la fonction.

Remarques

Note

L’en-tête msi.h définit MsiEnumClientsEx comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows Installer 5.0 sur Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7. Consultez la configuration requise de Windows Installer Run-Time pour plus d’informations sur le service pack Windows minimal requis par une version de Windows Installer.
plateforme cible Windows
d’en-tête msi.h
bibliothèque Msi.lib
DLL Msi.dll