Frage

Ich versuche, ein Outlook 2003-Add-in mit Visual Studio 2008 unter Windows XP SP3 und Internet Explorer 7 zu machen.

Meine Add-In wird mit benutzerdefinierten Ordner Homepage, die meine benutzerdefinierte Form zeigt, die Outlook View Control wickelt.

erhalte ich COM Ausnahme mit ‚Ausnahme von HRESULT: 0xXXXXXXXX‘ Beschreibung jedes Mal, wenn ich versuche, Ordner-Eigenschaft des OVC einzustellen. Fehlercode ist eine Zufallszahl, ist jedes Mal anders. Es ist nicht der erste Zugriff auf die Steuerung der Eigenschaften, davor, Ansicht und ViewXML Eigenschaften sind bereits eingestellt. Die Steuerung wird als sicher für Scripting markiert.

Ich verwende Wert der CurrentFolder.FolderPath Eigenschaft des aktiven Forscher, die eine richtige zu sein scheint:

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

Dies ist oben auf dem Stack-Trace:

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)..

Dies geschieht nur, wenn der Ordner in Nicht-Standard-PST-Datei befindet. Ändern innerhalb Standard-PST-Datei in dem Ordner wird keine Ausnahme erzeugen.

Ich muss betonen, dass alles funktionierte gut, bevor ich auf Urlaub ging :). Es scheint, dass Windows XP einige Updates installiert, die Standardsicherheits von Internet Explorer oder Outlook geändert 2003, während ich abwesend war.

Auf der anderen (virtuelle Maschine) mit Office 2007 und Internet Explorer 6, ohne Updates, alles funktioniert gut.

War es hilfreich?

Lösung

Nach einer Weile habe ich endlich herausfinden, was die Lösung ist: a. Namen des externen Speichers auf etwas Neues ändern

Während der Inbetriebnahme des Addin, lädt es die Nicht-Standard-PST-Datei, und ändert seinen Namen (nicht den Namen der PST-Datei, sondern den Namen des Stammordners) auf „Dokumente“.

Dies ist 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);
 }

Die Lösung ist nicht ‚Dokumente‘ zu verwenden, wie ein Name mehr, sondern etwas Neues. Das Problem ist nicht im Zusammenhang mit bestimmten Namen.

Andere Tipps

Dobri Dan, NENCY :)
Ich weiß nicht, ob ich wirklich eine „Königsweg“ Lösung der hier gegebenen Informationen anbieten kann ... aber hier sind ein paar Ideen / Hinweise zum Ausprobieren:
Nachdem mit Outlook auf ein paar Projekte in der Vergangenheit gearbeitet, kann ich Ihnen sagen, dass es ein lustiger Vogel manchmal, wenn es um geben / die Gewährung des Zugangs für externe Benutzer / Prozesse kommt. Es erfordert manchmal die Benutzer manuell den Zugriff bestätigen oder einloggen ... so stellen Sie sicher, dass Sie

app.Session.Logon() 

gesorgt irgendwo
Die andere Sache, die ich bemerkt, ist die Verwendung von app.ActiveExplorer() Sie sicher, dass diese Funktion genau zurückkehrt, was Sie denken, es ist. Es nimmt die obersten Fenster auf dem Desktop des Benutzers ... das ist usualyy aber nicht immer das Fenster, das Sie versuchen, mit zu arbeiten, also nur Doppelprüf.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top