2009-09-08 7 views
0

Je suis en train d'écrire un complément COM Word qui remplace les boîtes de dialogue Enregistrer & Open par les miennes.Remplacement de la boîte de dialogue Ouvrir le fichier Word dans un complément COM

Pour la boîte de dialogue de sauvegarde, je gère l'événement documentBeforeSave à partir des événements de l'application. Cela fonctionne bien.

Pour la boîte de dialogue ouverte, il n'y a pas un tel événement, donc je suis en train de gérer le onClick de l'élément de menu Ouvrir ..., annulant la gestion par défaut. Cela fonctionne bien si l'utilisateur utilise effectivement cet élément de menu, mais si l'utilisateur appuie sur CTRL-O à la place, il conserve la boîte de dialogue d'origine.

Existe-t-il un meilleur moyen de se connecter à ce dialogue? Et si ce n'est pas le cas, y a-t-il un moyen de gérer élégamment cette touche, ou devrais-je résoudre les problèmes avec les crochets du clavier?

Remarque: Le complément devrait éventuellement fonctionner sur Office 2003, 2007 et 2010, mais l'utilisation de chemins de code différents sur des cibles différentes est bien sûr parfaitement adaptée. Je suis intéressé par toutes les solutions sur n'importe quelle version.

Répondre

1

Dans Word 2007+, cela s'avère incroyablement simple à implémenter. Réorientez simplement la commande FileOpen à travers le XML ruban

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
    <commands> 
    <command idMso="FileOpen" onAction="doOpen" /> 
    </commands> 
    ... 

La méthode DoOpen a alors deux paramètres, le second étant un paramètre in/out vous permettant d'annuler l'événement.

Pour la version précédente d'Office, je n'ai jamais implémenté une solution totalement pare-balles.

Questions connexes