2016-12-11 11 views
0

Я пытаюсь передать объект добавления Outlook через VSTO C# на встроенную страницу html в Internet explorer. Тем не менее, кажется, что объект, который он неправильно передал, поскольку ActiveInspector всегда имеет значение null. Любые идеи, как это исправить. Код я используюПропустить Outlook addin через BHO на javascript

private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { 
dynamic window = d.parentWindow; 
var windowEx = (IExpando)window; 
PropertyInfo p = windowEx.AddProperty("bhoModule"); 
p.SetValue(windowEx, Globals.ThiAddin.Application, null); 
} 

Javascript, который принимает объект находится ниже

$('#showInfo-button').click(function() { 
     if (window.bhoModule != null) { 
      window.alert("ow.bhoModule != null"); 

      var objOutlook = window.bhoModule.Application; 
      if (objOutlook == null) { 
       window.alert("objOutlook is null"); 
       return; 
      } 
      var inspector = objOutlook.ActiveInspector(); <-- NULL 
      if (inspector == null) { 
       window.alert("inspector is null"); 
       return; 
      } 

      var currItem = inspector.CurrentItem; 
      if (currItem == null) { 
       window.alert("currItem is null"); 
       return; 
      } 

      var sender = currItem.Sender; 
      if (sender == null) { 
       window.alert("sender is null"); 
       return; 
      } 


      $('#from').val(sender.Name); 
      $('#email').val(sender.Address); 
      $('#subject').val(currItem.Subject); 
      $('#received').val(currItem.ReceivedTime); 
     } 
    }); 
+0

Вы работаете с элементом, отображаемым в отдельном инспекторе? Или только текущий выбранный элемент в активном проводнике? –

+0

Текущий выбранный элемент в активном проводнике. если я передаю mailitem вместо приложения, вышеуказанный код работает с незначительной модификацией – Jim

+1

Тогда вам нужно использовать Application.ActiveExplorer.Selection [1] –

ответ

1

Использование Application.ActiveExplorer.Selection.Item(1) в JavaScript.