MsiSourceListAddSourceExA, fonction (msi.h)

La fonction MsiSourceListAddSourceEx ajoute ou réorganise l’ensemble de sources d’un correctif ou d’un produit dans un contexte spécifié. Il peut également créer une liste source pour un correctif qui n’existe pas dans le contexte spécifié.

Syntaxe

UINT MsiSourceListAddSourceExA(
  [in]           LPCSTR            szProductCodeOrPatchCode,
  [in, optional] LPCSTR            szUserSid,
  [in]           MSIINSTALLCONTEXT dwContext,
  [in]           DWORD             dwOptions,
  [in]           LPCSTR            szSource,
  [in, optional] DWORD             dwIndex
);

Paramètres

[in] szProductCodeOrPatchCode

L'ProductCode ou le GUID du correctif du produit ou du correctif. Utilisez une chaîne terminée par null. Si la chaîne est supérieure à 39 caractères, la fonction échoue et retourne ERROR_INVALID_PARAMETER. Ce paramètre ne peut pas être NULL.

[in, optional] szUserSid

Ce paramètre peut être un 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 d’ordinateur, szUserSID doit être NULL et dwContext doit être MSIINSTALLCONTEXT_MACHINE.

Type de SID Signification
NULL
NULL indique l’utilisateur actuellement connecté. Lorsque vous référencez le compte d’utilisateur actuel, szUserSID peut être NULL et dwContext peut être MSIINSTALLCONTEXT_USERMANAGED ou MSIINSTALLCONTEXT_USERUNMANAGED.
SID utilisateur
Spécifie l’énumération d’un utilisateur particulier dans le système. Un exemple de SID utilisateur est « S-1-3-64-2415071341-135809878-3127455600-2561 ».
 
Remarque La chaîne SID spéciale s-1-5-18 (système) ne peut pas être utilisée pour énumérer les produits ou correctifs installés en tant que machine. La définition de la valeur SID sur « S-1-5-18 » retourne ERROR_INVALID_PARAMETER.
 
Remarque La chaîne SID spéciale s-1-1-0 (tout le monde) ne doit pas être utilisée. La définition de la valeur SID sur « S-1-1-0 » échoue et retourne ERROR_INVALID_PARAM.
 

[in] dwContext

Ce paramètre spécifie le contexte de l’instance de produit ou de correctif. Ce paramètre peut contenir l’une des valeurs suivantes.

Type de contexte Signification
MSIINSTALLCONTEXT_USERMANAGED
L’instance de produit ou de correctif existe dans le contexte géré par l’utilisateur.
MSIINSTALLCONTEXT_USERUNMANAGED
L’instance de produit ou de correctif existe dans le contexte non managé par utilisateur.
MSIINSTALLCONTEXT_MACHINE
L’instance de produit ou de correctif existe dans le contexte par machine.

[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.

Drapeau Signification
MSISOURCETYPE_NETWORK
La source est un type de réseau.
MSISOURCETYPE_URL
La source est un type d’URL.
MSICODE_PRODUCT
szProductCodeOrPatchCode est un code de produit.
MSICODE_PATCH
szProductCodeOrPatchCode est un code de correctif.

[in] szSource

Source à ajouter ou déplacer. Ce paramètre doit contenir uniquement le chemin d’accès sans le nom de fichier. Le nom de fichier est déjà inscrit en tant que « PackageName » et peut être manipulé via MsiSourceListSetInfo. Cet argument est obligatoire.

[in, optional] dwIndex

Ce paramètre fournit le nouvel index pour la source. Toutes les sources sont indexées dans la liste source comprise entre 1 et N, où N est le nombre de sources dans la liste. Chaque source de la liste a un index unique.

Si MsiSourceListAddSourceEx est appelé avec une nouvelle source et dwIndex défini sur 0 (zéro), la nouvelle source est ajoutée à la liste existante. Si dwIndex est défini sur 0 et que la source existe déjà dans la liste, aucune mise à jour n’est effectuée sur la liste.

Si MsiSourceListAddSourceEx est appelé avec une nouvelle source et dwIndex défini sur une valeur non nulle inférieure au nombre (N), la nouvelle source est placée à l’index spécifié et les autres sources sont réindexées. Si la source existe déjà, elle est déplacée vers l’index spécifié et les autres sources sont réindexées.

Si MsiSourceListAddSourceEx est appelé avec une nouvelle source et dwIndex défini sur une valeur non nulle supérieure au nombre de sources (N), la nouvelle source est ajoutée à la liste existante. Si la source existe déjà, elle est déplacée à la fin de la liste et les autres sources sont réindexées.

Valeur de retour

La fonction MsiSourceListAddSourceEx retourne les valeurs suivantes.

Valeur Signification
ERROR_ACCESS_DENIED
L’utilisateur n’a pas la possibilité d’ajouter ou de déplacer une source. N’indique pas si le produit ou le correctif a été trouvé.
ERROR_BAD_CONFIGURATION
Les données de configuration sont endommagées.
ERROR_INSTALL_SERVICE_FAILURE
Impossible d’accéder au service Windows Installer.
ERROR_SUCCESS
La source a été insérée ou mise à jour.
ERROR_UNKNOWN_PRODUCT
Le produit spécifié est inconnu.
ERROR_UNKNOWN_PATCH
Le correctif spécifié est inconnu.
ERROR_FUNCTION_FAILED
Échec interne inattendu.

Remarques

Les administrateurs peuvent modifier l’installation d’une instance de produit ou de correctif qui existe sous le contexte de l’ordinateur ou sous leur propre contexte par utilisateur (géré ou non managé.) Ils peuvent modifier l’installation d’une instance de produit ou de correctif qui existe sous le contexte géré par l’utilisateur. Les administrateurs ne peuvent pas modifier l’installation d’un autre utilisateur d’une instance de produit ou de correctif qui existe sous ce contexte non managé par utilisateur.

Les non-administrateurs ne peuvent pas modifier l’installation d’une instance de produit ou de correctif qui existe sous le contexte par utilisateur d’un autre utilisateur (géré ou non managé.) Ils peuvent modifier l’installation d’une instance de produit ou de correctif qui existe sous leur propre contexte non managé par utilisateur. Ils peuvent modifier l’installation d’une instance de produit ou de correctif sous le contexte de l’ordinateur ou leur propre contexte géré par l’utilisateur uniquement s’ils sont activés pour rechercher une source de produit ou de correctif. Les utilisateurs peuvent être activés pour rechercher des sources en définissant une stratégie. Pour plus d’informations, consultez la DisableBrowse, AllowLockdownBrowseet stratégies d' AlwaysInstallElevated.

Note

L’en-tête msi.h définit MsiSourceListAddSourceEx 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. Windows Installer 4.0 ou Windows Installer 4.5 sur Windows Server 2008 ou Windows Vista. 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

Voir aussi

AllowLockdownBrowse

AlwaysInstallElevated

DisableBrowse

MsiSourceListSetInfo

non pris en charge dans Windows Installer 2.0 et versions antérieures

ProductCode

résilience source