EPM(增强保护模式)中的IE BHO [英] IE BHO in EPM (Enhanced Protected Mode)

查看:168
本文介绍了EPM(增强保护模式)中的IE BHO的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在EPM打开的情况下在Win8(IE10和IE11预览)上运行IE BHO.我从MS(

I'm trying to make my IE BHO work on Win8 (IE10 and IE11 preview) with EPM turned on. I've found a few articles about the subject from MS (http://blogs.msdn.com/b/ieinternals/archive/2012/03/23/understanding-ie10-enhanced-protected-mode-network-security-addons-cookies-metro-desktop.aspx) but they still don't provide actual examples on how to make this work. I have compiled my BHO in both 32 and 64 bit, added the category (CATID_AppContainerCompatible) as stated in the article but still I don't get any web browser events from IE. Can anybody point to a more detailed example on how to make this work ?

这是我的rgs文件的样子:

Here is how my rgs file looks like:


HKCR
{
    TestBHO.TestScript.1 = s 'TestScript Class'
    {
        CLSID = s '{051FB9EC-79EA-4F8E-9EC2-F1FF4462FB09}'
    }
    TestBHO.TestScript = s 'TestScript Class'
    {
        CLSID = s '{051FB9EC-79EA-4F8E-9EC2-F1FF4462FB09}'
        CurVer = s 'TestBHO.TestScript.1'
    }
    NoRemove CLSID
    {
        ForceRemove {051FB9EC-79EA-4F8E-9EC2-F1FF4462FB09} = s 'TestScript Class'
        {
            ProgID = s 'TestBHO.TestScript.1'
            VersionIndependentProgID = s 'TestBHO.TestScript'
            ForceRemove 'Programmable'
            InprocServer32 = s '%MODULE%'
            {
                val ThreadingModel = s 'Apartment'
            }
            'TypeLib' = s '{2D9CE0FA-2040-4A24-807E-0C0BF4E9ECE7}'
            'Implemented Categories' = s ''
            {
                {59fb2056-d625-48d0-a944-1a85b5ab2640} = s ''   
                    {
                    }
            }
        }
    }
}

请注意,在IE的管理加载项"页面中,我将BHO视为已启用",并且支持32位和64位,但是DLL甚至没有加载.

Note that in IE's Manage Add-ons Page I see my BHO as Enabled and supports both 32bit and 64bit, but the DLL is not even loaded.

推荐答案

DEFINE_GUID调用只是在代码中定义了GUID值常量,实际上并没有做任何事情来将对象注册到COM组件类别(存储在COM类别中).注册表).

The DEFINE_GUID call simply defines the GUID value constant in your code, it's not actually doing anything to register your object with the COM component category (which is stored in the registry).

请参见 http://msdn.microsoft.com /en-us/library/windows/desktop/ms692551(v=vs.85).aspx http://msdn.microsoft.com/zh-CN /library/windows/desktop/ms694322(v=vs.85).aspx

您可以使用OLEView工具查看哪些对象已注册到各个类别中.

You can see which objects are registered into the various categories using the OLEView tool.

此外,请确保将BHO的DLL放置在AppContainer可读的文件夹中(例如\ Program Files \文件夹的子文件夹).如果这样做失败,则IE实例将不会在增强保护模式下加载DLL.

Also, be sure to place your BHO's DLL with an AppContainer-readable folder (e.g. a subfolder of the \Program Files\ folder). If you fail to do so, your DLL will not be loaded by the IE instance in Enhanced Protected Mode.

这篇关于EPM(增强保护模式)中的IE BHO的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆