Question

J'essaie de créer un complément Outlook 2003 à l'aide de Visual Studio 2008 sur Windows XP SP3 et Internet Explorer 7.

Mon complément utilise une page d'accueil de dossier personnalisée, qui affiche mon formulaire personnalisé et enveloppe le contrôle de la vue Outlook.

J'obtiens une exception COM avec la description 'Exception from HRESULT: 0xXXXXXXXX' chaque fois que j'essaie de définir la propriété Folder de l'OVC. Le code d'erreur est un nombre aléatoire, chaque fois différent. Ce n'est pas le premier accès aux propriétés du contrôle, mais auparavant, les propriétés View et ViewXML étaient déjà définies. Le contrôle est marqué comme sûr pour les scripts.

J'utilise la valeur de la propriété CurrentFolder.FolderPath de l'explorateur actif, ce qui semble être une propriété correcte:

Outlook.Explorer currentExplorer = app.ActiveExplorer();
        if (currentExplorer != null)
        {
            ovcWrapper.Folder = currentExplorer.CurrentFolder.FolderPath;
        }

Ceci est en haut de la trace de la pile:

System.Runtime.InteropServices.COMException (0xXXXXXXXX): Exception from HRESULT: 0xXXXXXXXX
at Microsoft.Office.Interop.OutlookViewCtl.ViewCtlClass.set_Folder(String pVal)
at AxMicrosoft.Office.Interop.OutlookViewCtl.AxViewCtl.set_Folder(String value)..

Cela ne se produit que si le dossier est situé dans un fichier PST autre que celui par défaut. Passer à un dossier dans le fichier PST par défaut ne produira aucune exception.

Je dois souligner que tout fonctionnait bien avant mon départ en vacances :). Il semble que Windows XP ait installé des mises à jour qui ont modifié la sécurité par défaut d’Internet Explorer ou d’Outlook 2003 en mon absence.

Sur l’autre (machine virtuelle) avec Office 2007 et Internet Explorer 6, sans aucune mise à jour, tout fonctionne correctement.

Était-ce utile?

La solution

Après un moment, je découvre enfin quelle est la solution: remplacez le nom du stockage externe par quelque chose de nouveau.

Lors du démarrage de l'add-in, il charge le fichier PST non défini par défaut et modifie son nom (pas le nom du fichier pst, mais le nom du dossier racine) en "Documents".

C'est le code:

session.AddStore("C:\\test.pst"); // loads existing or creates a new one, if there is none.
storage = session.Folders.GetLast(); // grabs root folder of the new fileStorage.

if (storage.Name != storageName) // if fileStorage is brand new, it has default name.
{
      storage.Name = "Documents";
      session.RemoveStore(storage); // to apply new fileStorage name, it have to be removed and added again.
      session.AddStore(storagePath);
 }

La solution n’est plus d’utiliser le nom "Documents", mais quelque chose de nouveau. Le problème n’est pas lié à un nom spécifique.

Autres conseils

Dobri Dan, nency :)

Je ne sais pas si je peux vraiment offrir une "solution miracle". la solution étant donné les informations ici ... mais voici quelques idées / notes à essayer:

Ayant déjà travaillé avec Outlook sur quelques projets dans le passé, je peux vous dire que c’est parfois un drôle d’oiseau. il s’agit de donner / accorder l’accès à des utilisateurs / processus extérieurs. Il faut parfois que l’utilisateur confirme manuellement l’accès ou se connecte ... assurez-vous donc que vous avez bien

app.Session.Logon() 

pris soin de quelque part.

L’autre chose que je remarque est l’utilisation de app.ActiveExplorer () Assurez-vous que cette fonction renvoie exactement ce que vous pensez être; Cela prend la plus haute fenêtre sur le bureau de l'utilisateur ... ce qui est habituellement mais pas toujours la fenêtre avec laquelle vous essayez de travailler, donc il suffit de double-vérifier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top