Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Outlook webview中从javascript调用ActiveX方法_Javascript_C#_Html_Outlook_Activex - Fatal编程技术网

在Outlook webview中从javascript调用ActiveX方法

在Outlook webview中从javascript调用ActiveX方法,javascript,c#,html,outlook,activex,Javascript,C#,Html,Outlook,Activex,所以社区 我目前正在写一个项目,在Outlook中集成一些自定义视图和表单。 我们的想法是创建一个连接到ERP的Outlook扩展。 正如在这个示例项目()中发现的,一种技术是构建ActiveX组件并从轻量级本地html页面加载它,如下所示: <html> <body rightmargin = '0' leftmargin ='0' topmargin ='0' bottommargin = '0' onload='OnBodyLoad()'> <

所以社区

我目前正在写一个项目,在Outlook中集成一些自定义视图和表单。 我们的想法是创建一个连接到ERP的Outlook扩展。 正如在这个示例项目()中发现的,一种技术是构建ActiveX组件并从轻量级本地html页面加载它,如下所示:

<html>
    <body rightmargin = '0' leftmargin ='0' topmargin ='0' bottommargin = '0' onload='OnBodyLoad()'>
    <object classid='clsid:f746a8b6-3659-4f4c-8518-6336187854f2' ID='MyView' VIEWASTEXT width='100%' height='100%'/>
    <script>
        function OnBodyLoad() {
            try {
                var oApp = window.external.OutlookApplication;
                var view = document.getElementById('MyView');
                view.Initialize(oApp);
            }
            catch(err) {
                alert(err.description);
            }
        }
    </script>
    </body>
</html>
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.Guid("F746A8B6-3659-4F4C-8518-6336187854F2")]
public partial class MyView : UserControl
{
    public MyView()
        :base()
    {
        Application.EnableVisualStyles();
        InitializeComponent();
    }

    public String Str { get; set; }


    public void Initialize(Object app)
    {
        MessageBox.Show("Initialized");
        //MessageBox.Show(app.Version);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show(this, "It works!");
    }
}
它在RegAsm公司签字注册。 当我在IE中加载它时,它就像一个符咒。我在启动时收到消息“Initialized”,当我点击按钮1时,消息“ItWorks”也会弹出

但是(当然有一个'BUT':)当我在Outlook(文件夹属性/主页)中加载此页面时,ActiveX组件被加载并可见,但是初始化调用抛出此错误:“对象不支持此属性或方法”。单击按钮1可以工作

尝试使用javascript从Str向属性分配某些内容在Outlook中也会失败,在IE中也能正常工作

这里有没有人面临同样的问题,知道我错过了什么

多谢各位


尼古拉斯

我面临着同样的问题。我在MSDN上看到了你的另一篇文章,但答案不是我所期望的。你解决了这个问题吗?不幸的是,没有,我放弃了这个方法。这是一个遗憾,因为它非常有前途:(