Partager via


Comment : Vues d'attachement pour documenter les données

Si un point de vue du document, vous pouvez être en mesure de le joindre à un objet de données existant de document. Pour une vue d'ensemble du processus, consultez Robust Programming ci-dessous.

pour déterminer si vous pouvez joindre une vue à un objet de données existant de document

  1. Implémentez CreateEditorInstance.

  2. Dans votre implémentation d' IVsEditorFactory::CreateEditorInstance, appelle QueryInterface à l'objet de données existant de document lorsque l'IDE appelle votre implémentation d' CreateEditorInstance .

    Appeler QueryInterface vous permet d'examiner l'objet de données existant de document, qui est spécifié dans le paramètre d' punkDocDataExisting .

    Les interfaces exactes que vous devez l'interrogation, toutefois, dépend de l'éditeur qui ouvre le document, comme décrit dans l'étape 4.

  3. Si vous ne trouvez pas les interfaces appropriées sur l'objet de données existant de document, alors le code d'erreur dans votre éditeur indiquant que l'objet de données du document est incompatible avec votre éditeur.

    Dans l'implémentation de l' OpenStandardEditor, un message vous informe que le document est ouvert dans un autre éditeur et demande si vous souhaitez que le fermer.

  4. Si vous fermez le document, Visual Studio appelle votre fabrique d'éditeur pour une deuxième fois. Sur cet appel, le paramètre d' DocDataExisting est égal à la valeur NULL. Votre implémentation de fabrique d'éditeur peut ensuite ouvrir l'objet de données du document dans votre propre éditeur.

    Notes

    Pour déterminer si vous pouvez utiliser un objet de données existant de le document, vous pouvez également utiliser la connaissance privée de l'implémentation d'interface en effectuant un pointeur vers la classe réelle de Visual C++ de votre implémentation privée.Par exemple, tous les éditeurs standard implémentent IVsPersistFileFormat, qui hérite d' IPersist.Ainsi, vous pouvez appeler QueryInterface pour GetClassID, et si l'ID de classe de l'objet de données existant de document correspond à l'ID de classe de votre implémentation, vous pouvez utiliser l'objet de données du document.

Programmation fiable

Lorsque Visual Studio appelle votre implémentation de la méthode de CreateEditorInstance , il passe en arrière pointeur vers l'objet de données existant du paramètre d' punkDocDataExisting , s'il existe. Examinez l'objet de données du document retourné dans punkDocDataExisting pour déterminer si l'objet de données du document est approprié pour votre éditeur comme à noter à l'étape 4 de la procédure dans cette rubrique. Si cela est approprié, votre fabrique d'éditeur doit fournir une deuxième vue pour les données comme décrit dans plusieurs vues de prise en charge de document. Sinon, il doit afficher un message d'erreur.

Voir aussi

Concepts

plusieurs vues de prise en charge de document

Données du document et vue du document dans les éditeurs personnalisés