Type d’action personnalisée 17

Cette action personnalisée appelle une bibliothèque de liens dynamiques (DLL) écrite en C ou C++.

Source

La DLL est installée avec l’application pendant la session active. Le champ Source de la table CustomAction contient une clé de la table File. L’emplacement du code d’action personnalisée est déterminé par la résolution du chemin d’accès cible pour ce fichier ; par conséquent, cette action personnalisée doit être appelée après l’installation de ce fichier et avant sa suppression.

Valeur de Type

Incluez la valeur suivante dans la colonne Type de la table CustomAction pour spécifier le type numérique de base.

Constantes Valeur hexadécimale Decimal
msidbCustomActionTypeDll + msidbCustomActionTypeSourceFile 0x011 17

 

Cible

La DLL est appelée par le biais du point d’entrée nommé dans le champ Target de la table CustomAction, en passant un argument unique qui est le descripteur de la session d’installation active. Le nom du point d’entrée spécifié dans la table doit correspondre à celui exporté à partir de la DLL. Notez que si la fonction d’entrée n’est pas spécifiée par un fichier .DEF ou par une spécification /EXPORT: de l’éditeur de liens, le nom peut commencer par un trait de soulignement et avoir un suffixe « @4 ». La fonction appelée doit spécifier la convention d’appel __stdcall.

Options de traitement du retour

Ajoutez des bits d’indicateur facultatifs dans la colonne Type de la table CustomAction pour spécifier les options de traitement du retour. Pour obtenir une description des options et des valeurs, consultez Options de traitement du retour des actions personnalisées.

Options de planification de l’exécution

Ajoutez des bits d’indicateur facultatifs dans la colonne Type de la table CustomAction pour spécifier les options de planification de l’exécution. Ces options contrôlent les différentes exécutions des actions personnalisées. Pour obtenir une description des options, consultez Options de planification de l’exécution des actions personnalisées.

Options d’exécution dans le script

Ajoutez des bits d’indicateur facultatifs dans la colonne Type de la table CustomAction pour spécifier une option d’exécution dans le script. Ces options copient le code d’action dans le script d’exécution, de restauration ou de commit. Pour obtenir une description des options, consultez Options d’exécution dans le script des actions personnalisées.

Valeurs de retour

Consultez Valeurs de retour des actions personnalisées.

Notes

Une action personnalisée qui appelle une bibliothèque de liens dynamiques (DLL) nécessite un descripteur pour la session d’installation. S’il s’agit aussi d’une action personnalisée à exécution différée, la session peut ne plus exister au moment de l’exécution du script d’installation. Pour plus d’informations sur la façon dont une action personnalisée de ce type peut obtenir des informations de contexte, consultez Obtention d’informations de contexte pour les actions personnalisées d’exécution différée.

Les actions personnalisées s’exécutent dans un thread distinct et peuvent avoir un accès limité au système. Les actions personnalisées qui s’exécutent de manière asynchrone bloquent le thread principal à l’arrêt de la séquence actuelle ou de la session d’installation jusqu’à ce qu’elles soient retournées.

Les actions personnalisées qui référencent un fichier installé comme source, comme le type d’action personnalisée 17 (DLL), doivent respecter les restrictions de séquencement suivantes :

  • L’action personnalisée doit être séquencée après l’action CostFinalize. Cela permet à l’action personnalisée de résoudre le chemin d’accès nécessaire pour localiser la DLL.
  • Si le fichier source n’est pas déjà installé sur l’ordinateur, les actions personnalisées différées (dans le script) de ce type doivent être séquencées après l’action InstallFiles.
  • Si le fichier source n’est pas déjà installé sur l’ordinateur, les actions personnalisées non différées de ce type doivent être séquencées après l’action InstallFinalize.

Custom_Actions

Actions personnalisées d’exécution différée

Bibliothèque de liens dynamiques