comment fermer une instance de document Word? (C#)

J'ai pu voir beaucoup de très similaire fils tout autour, mais rien ne semble me donner une solution qui devrait être très basique.

À partir de mon application winforms, j'ai besoin de fermer une instance en cours d'exécution d'un document word (ouvert à partir de l'application elle-même). Quand j'ouvre le document word à partir de l'application, je garde une trace de celui-ci dans une liste. Maintenant, comment puis-je fermer le même doc?

Voici ce que j'ai essayé:

private bool CloseWord(string osPath) //here I pass the fully qualified path of the file
{
    try
    {
        Word.Application app = (Word.Application)Marshal.GetActiveObject("Word.Application");
        if (app == null)
            return true;

        foreach (Word.Document d in app.Documents)
        {
            if (d.FullName.ToLower() == osPath.ToLower())
            {
               d.What? //How to close here?
               return true;
            }
        }
        return true;
    }
    catch
    {
        return true;
    }
}

Je reçois beaucoup de méthodes de l'objet document, mais seulement un .Close() à proximité qui a des arguments comme ceci: ref object SaveChanges, ref object OriginalFormat, ref object RouteDocument dont je ne comprends pas.

Quel est le moyen idéal? Merci..

Edit:

  1. Je ne peux pas fermer la totalité de l'application Word (WinWord) que les utilisateurs peuvent avoir d'autres fichiers word ouvert.

  2. J'ai juste besoin de mettre fin à l'instance de word (quelque chose comme Process.Kill()), sans inviter l'utilisateur à enregistrer ou pas etc.

InformationsquelleAutor nawfal | 2011-09-16