Création d'un complément ActiveX

Vous pouvez créer vos propres éléments de menu dans les menus de PowerAMC à l'aide d'un complément ActiveX.

Remarque : Pour pouvoir utiliser votre complément, enregistrez-le dans le répertoire Add-ins situé dans le répertoire d'installation de PowerAMC et activez-le via la fenêtre Options générales de PowerAMC (voir Guide des fonctionnalités générales > L'interface de PowerAMC > Personnalisation de votre environnement de modélisation > Options générales > Gestion des compléments).

L'ActiveX doit implémenter une interface spécifique nommée IPDAddIn pour devenir un complément dans Power AMC.

Cette interface définit les méthodes suivantes :

Ces méthodes sont invoquées par PowerAMC pour dialoguer avec les menus et exécuter les commandes définies par l'ActiveX.

Méthode Initialize / Uninitialize

La méthode Initialize permet d'initialiser la communication entre PowerAMC et l'ActiveX. PowerAMC démarre la communication en fournissant à l'ActiveX un pointeur vers son objet application. L'objet application vous permet de gérer l'environnement de PowerAMC (fenêtre de résultat, modèle actif etc.), il doit être enregistré pour référence ultérieure. Le type de l'objet application est défini dans la bibliothèque de type PdCommon.

La méthode Uninitialize est utilisée pour nettoyer des références vers les objets de PowerAMC. Cette méthode est invoquée lorsque PowerAMC est fermé et doit être utilisée pour libérer toutes les variables globales.

Méthode ProvideMenuItems

La méthode ProvideMenuItems retourne un texte XML qui décrit les éléments de menu à ajouter dans les menus de PowerAMC. La méthode est invoquée chaque fois que PowerAMC a besoin d'afficher un menu.

Lorsque vous pointez sur un symbole dans le diagramme, puis cliquez le bouton droit de la souris, cette méthode est invoquée deux fois : une fois pour l'objet et une fois pour le symbole. Ainsi, vous pouvez créer une méthode qui ne sera invoquée que sur les menus contextuels graphiques.

La méthode ProvideMenuItems est invoquée une fois lors de l'initialisation de PowerAMC pour remplir les menus Import et Reverse. Aucun objet n'est placé en paramètre dans la méthode à ce moment là.

Le texte XML qui décrit un menu peut utiliser les éléments (DTD) suivants :

<!ELEMENT Menu (Command | Separator | Popup)*>
<!ELEMENT Command>
<!ATTLIST Command
	Name	CDATA	#REQUIRED
	Caption	CDATA	#REQUIRED
>
<!ELEMENT Separator>
<!ELEMENT PopUp (Command | Separator | Popup)*>
<!ATTLIST PopUp
	Caption	CDATA	#REQUIRED
>

Exemple :

ProvideMenuItems ("Object", pModel)

Il résulte le texte suivant :

<MENU>
<POPUP Caption="&Perforce">
	<COMMAND Name="CheckIn" Caption="Check &In"/>
	<SEPARATOR/>
	<COMMAND Name="CheckOut" Caption="Check &Out"/>
</POPUP>  
</MENU>

Remarque : cette syntaxe est la même que celle utilisée dans la création d'un menu à l'aide d'un fichier de ressource.

Remarque :

Vous pouvez utiliser l'interface de l'éditeur de ressources pour visualiser dans la page XML la syntaxe d'un menu que vous avez créé dans la page Menu et qui vous aidera à construire la même syntaxe XML.

Pour plus d'informations sur la personnalisation des menus à l'aide d'un fichier de ressource, voir Ajout de commandes et autres éléments dans votre menu.

Méthode IsCommandSupported

La méthode IsCommandSupported vous permet de désactiver dynamiquement les commandes définies dans un menu. La méthode doit renvoyer la valeur "true" pour activer une commande et "false" pour la désactiver.

Méthode DoCommand

La méthode DoCommand implémente l'exécution d'une commande désignée par son nom.

Exemple :

DoCommand ("Object", pModel, "CheckIn")