通过 BHO 将 Outlook 插件传递给 javascript
Pass Outlook addin via BHO to javascript
我正在尝试通过 VSTO C# 将 Outlook 加载项对象传递到 Internet Explorer 中的嵌入式 html 页面。但是,似乎它没有正确传递的对象作为 ActiveInspector 始终为 null。任何想法如何解决这个问题。我使用的代码是
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);
}
});
在JavaScript中使用Application.ActiveExplorer.Selection.Item(1)
。
我正在尝试通过 VSTO C# 将 Outlook 加载项对象传递到 Internet Explorer 中的嵌入式 html 页面。但是,似乎它没有正确传递的对象作为 ActiveInspector 始终为 null。任何想法如何解决这个问题。我使用的代码是
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);
}
});
在JavaScript中使用Application.ActiveExplorer.Selection.Item(1)
。