MsiSourceListEnumSourcesA, fonction (msi.h)
La fonction MsiSourceListEnumSources énumère les sources dans la liste des sources d’un correctif ou d’un produit spécifié.
Syntaxe
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
);
Paramètres
[in] szProductCodeOrPatchCode
Guid productcode ou patch du produit ou du correctif. Utilisez une chaîne terminée par null. Si la chaîne contient plus de 39 caractères, la fonction échoue et retourne ERROR_INVALID_PARAMETER. Ce paramètre ne peut pas être NULL.
[in, optional] szUserSid
SID de chaîne qui spécifie le compte d’utilisateur qui contient le produit ou le correctif. Le SID n’est pas validé ou résolu. Un SID incorrect peut retourner ERROR_UNKNOWN_PRODUCT ou ERROR_UNKNOWN_PATCH. Lors du référencement d’un contexte de machine, szUserSID doit être NULL et dwContext doit être MSIINSTALLCONTEXT_MACHINE.
[in] dwContext
Contexte du produit ou du correctif instance. Ce paramètre peut contenir l’une des valeurs suivantes.
[in] dwOptions
La valeur dwOptions détermine l’interprétation de la valeur szProductCodeOrPatchCode et le type de sources à effacer. Ce paramètre doit être une combinaison de l’une des constantes MSISOURCETYPE_* suivantes et de l’une des constantes MSICODE_* suivantes.
[in] dwIndex
Index de la source à récupérer. Ce paramètre doit être égal à 0 (zéro) pour le premier appel à la fonction MsiSourceListEnumSources , puis incrémenté pour les appels suivants jusqu’à ce que la fonction retourne ERROR_NO_MORE_ITEMS. L’index doit être incrémenté uniquement si l’appel précédent a retourné ERROR_SUCCESS.
[in, optional] szSource
Pointeur vers une mémoire tampon qui reçoit le chemin d’accès à la source énumérée. Cette mémoire tampon doit être suffisamment grande pour contenir la valeur reçue. Si la mémoire tampon est trop petite, la fonction retourne ERROR_MORE_DATA et définit *pcchSource sur le nombre de TCHAR dans la valeur, sans inclure le caractère NULL de fin.
Si szSource est défini sur NULL et que pcchSource est défini sur un pointeur valide, la fonction retourne ERROR_SUCCESS et définit *pcchSource sur le nombre de TCHAR dans la valeur, sans inclure le caractère NULL de fin. La fonction peut ensuite être appelée à nouveau pour récupérer la valeur, avec la mémoire tampon szSource suffisamment grande pour contenir *pcchSource + 1 caractères.
Si szSource et pcchSource sont tous deux définis sur NULL, la fonction retourne ERROR_SUCCESS si la valeur existe, sans récupérer la valeur.
[in, out, optional] pcchSource
Pointeur vers une variable qui spécifie le nombre de TCHAR dans la mémoire tampon szSource . Lorsque la fonction retourne, ce paramètre est défini sur la taille de la valeur demandée, que la fonction copie ou non la valeur dans la mémoire tampon spécifiée. 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 szSource a également la valeur NULL, sinon la fonction retourne ERROR_INVALID_PARAMETER.
Valeur retournée
La fonction MsiSourceListEnumSources retourne les valeurs suivantes.
Valeur | Signification |
---|---|
|
L’utilisateur n’a pas la possibilité de lire la liste des sources spécifiée. Cela n’indique pas si un produit ou un correctif est trouvé. |
|
Les données de configuration sont endommagées. |
|
Un paramètre non valide est passé à la fonction . |
|
La mémoire tampon fournie n’est pas suffisante pour contenir les données demandées. |
|
Il n’y a plus de sources dans la liste spécifiée à énumérer. |
|
Une source est énumérée avec succès. |
|
Le correctif spécifié n’est pas installé sur l’ordinateur dans les contextes spécifiés. |
|
Le produit spécifié n’est pas installé sur l’ordinateur dans les contextes spécifiés. |
|
Défaillance interne inattendue. |
Notes
Lorsque vous effectuez plusieurs appels à MsiSourceListEnumSources pour énumérer toutes les sources d’un seul produit instance, chaque appel doit être effectué à partir du même thread.
Un administrateur peut énumérer les installations managées et non managées par utilisateur pour lui-même, les installations par ordinateur et les installations gérées par utilisateur pour n’importe quel utilisateur. Un administrateur ne peut pas énumérer les installations non managées par utilisateur pour d’autres utilisateurs. Les non-administrateurs peuvent uniquement énumérer leurs propres installations managées et non managées par utilisateur et par ordinateur.
Notes
L’en-tête msi.h définit MsiSourceListEnumSources 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. La combinaison 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.
Configuration requise
Client minimal pris en charge | Windows Installer 5.0 sur Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 sur Windows Server 2008 ou Windows Vista. Windows Installer 3.0 ou version ultérieure sur Windows Server 2003 ou Windows XP. Pour plus d’informations sur le Service Pack Windows requis par une version de Windows Installer, consultez Configuration requise pour le runtime Windows. |
Plateforme cible | Windows |
En-tête | msi.h |
Bibliothèque | Msi.lib |
DLL | Msi.dll |