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);
}
});
Вы работаете с элементом, отображаемым в отдельном инспекторе? Или только текущий выбранный элемент в активном проводнике? –
Текущий выбранный элемент в активном проводнике. если я передаю mailitem вместо приложения, вышеуказанный код работает с незначительной модификацией – Jim
Тогда вам нужно использовать Application.ActiveExplorer.Selection [1] –