Ouvrir des éditeurs standard

Lorsque vous ouvrez un éditeur standard, vous laissez l’IDE déterminer un éditeur standard pour un type de fichier désigné, au lieu de spécifier un éditeur spécifique au projet pour le fichier.

Effectuez la procédure suivante pour implémenter la OpenItem méthode. Cela ouvre un fichier projet dans un éditeur standard.

Pour implémenter la méthode OpenItem avec un éditeur standard

  1. Appel IVsRunningDocumentTable (RDT_EditLock) pour déterminer si le fichier objet de données de document est déjà ouvert.

  2. Si le fichier est déjà ouvert, ressurvrez le fichier en appelant la IsDocumentOpen méthode, en spécifiant une valeur pour IDO_ActivateIfOpen le grfIDO paramètre.

    Si le fichier est ouvert et que le document appartient à un projet différent du projet appelant, votre projet reçoit un avertissement indiquant que l’éditeur ouvert provient d’un autre projet. La fenêtre de fichier est ensuite exposée.

  3. Si le document n’est pas ouvert ou non dans la table de documents en cours d’exécution, appelez la OpenStandardEditor méthode (OSE_ChooseBestStdEditor) pour ouvrir un éditeur standard pour le fichier.

    Lorsque vous appelez la méthode, l’IDE effectue les tâches suivantes :

    1. L’IDE analyse les sous-clés Editors/{guidEditorType}/Extensions dans le Registre pour déterminer quel éditeur peut ouvrir le fichier et a la priorité la plus élevée pour ce faire.

    2. Une fois que l’IDE a déterminé quel éditeur peut ouvrir le fichier, l’IDE appelle CreateEditorInstance. L’implémentation de cette méthode de l’éditeur retourne des informations requises pour que l’IDE appelle CreateDocumentWindow et sitee le document nouvellement ouvert.

    3. Enfin, l’IDE charge le document à l’aide de l’interface de persistance habituelle, telle que IVsPersistDocData2.

    4. Si l’IDE a déterminé précédemment que l’élément de hiérarchie ou de hiérarchie est disponible, la méthode appelle GetItemContext l’IDE sur le projet pour obtenir un pointeur de contexte IServiceProvider au niveau du projet à transmettre avec l’appel CreateDocumentWindow de méthode.

  4. Retournez un IServiceProvider pointeur vers l’IDE lorsque l’IDE appelle GetItemContext votre projet si vous souhaitez permettre à l’éditeur d’obtenir le contexte de votre projet.

    L’exécution de cette étape permet au projet d’offrir des services supplémentaires à l’éditeur.

    Si l’objet d’affichage de document ou d’affichage de document a été correctement localisé dans un cadre de fenêtre, l’objet est initialisé avec ses données en appelant LoadDocData.