【发布时间】:2014-11-21 20:35:25
【问题描述】:
我正在尝试将 Internet Explorer 11 的扩展作为 Visual C# 中的浏览器帮助对象编写。我在 Windows 7 上使用 Visual Studio 2013。凭借这里的 zilch 经验,我遇到了一堵试图起步的砖墙。 我不确定如何为 BHO 实现接口 IObjectWithSite。我尝试了一些基本的方法来让我开始,但它不起作用......有什么想法吗?
using System;
using System.Runtime.InteropServices;
using SHDocVw;
using mshtml;
using System.Windows.Forms;
namespace IeAddOnDemo
{
[ComVisible(true),
Guid("9AB12757-BDAF-4F9A-8DE8-413C3615590C"),
ClassInterface(ClassInterfaceType.None)]
public class BHO : IObjectWithSite
{
public void SetSite(object site)
{
System.Diagnostics.Debug.WriteLine("hello");
}
public void GetSite(ref Guid guid, out IntPtr ppvSite)
{
System.Diagnostics.Debug.WriteLine("hello");
ppvSite = new IntPtr();
}
}
}
我什至无法将其写入控制台。在我注册 BHO 时,它正在被 IE 获取,它出现在“设置”菜单的“管理加载项”下。
希望通过这个 BHO,我将尝试访问 IE,然后希望操纵 DOM。这对我来说是一种陌生的做事方式(我习惯于 Eclipse RCP、Linux)所以我希望有人能指出我正确的方向!
干杯!
【问题讨论】:
-
我有哪些选择?您能为 Microsoft 平台的新手推荐任何方向吗?
-
阅读文章进行进一步讨论。 C++ 是进程内扩展最常用的实现语言。
标签: c# windows internet-explorer bho