代码改变世界

ActiveX控件实现相关资料

2011-07-19 23:00  Clingingboy  阅读(597)  评论(0编辑  收藏  举报

 

 

一.IObjectSafety

浏览器安全等级

http://blog.csdn.net/sstower/article/details/6586687

二.IProvideClassInfo2

Supporting IProvideClassInfo2

Many containers, such as Visual Basic and Internet Explorer, use a control's IProvideClassInfo2 interface to determine the control's event interface. When a control doesn't support IProvideClassInfo2, these containers assume that the control doesn't source events and never establish a connection point to your control. Other containers, such as test container, don't use a control's IProvideClassInfo2 interface and browse a control's type information to determine the default source interface.

ATL provides an implementation of this interface in IProvideClassInfo2Impl. To use it, derive your control class from IProvideClassInfo2Impl. The IProvideClassInfo2 interface itself derives from the IProvideClassInfo interface, so when you update your control's interface map, you need to provide entries for both interfaces.

class ATL_NO_VTABLE CBullsEye :
    public IProvideClassInfo2Impl<&CLSID_BullsEye,
    &DIID__IBullsEyeEvents,
    &LIBID_ATLInternalsLib>,
    ...
{
    ...
        BEGIN_COM_MAP(CBullsEye)
            ...
            // Support for connection points
            COM_INTERFACE_ENTRY(IConnectionPointContainer)
            COM_INTERFACE_ENTRY(IProvideClassInfo2)
            COM_INTERFACE_ENTRY(IProvideClassInfo)
        END_COM_MAP()
        ...
};
 
Reference:http://support.microsoft.com/kb/200839
 
三.