在 MFC(Microsoft Foundation Classes)中,CHtmlView::OnGetExternal 是 CHtmlView 类的一个公共方法,用于获取与 HTML 视图关联的外部对象。这个方法用于提供对外部对象的访问,使得在 HTML 页面中可以调用这些外部对象的方法或属性。

以下是该方法的基本声明:
virtual LPDISPATCH OnGetExternal();

这个方法通常会被派生类覆盖以提供特定的外部对象。外部对象可以是实现了 IDispatch 接口的 COM 对象,允许通过脚本语言(如 JavaScript)调用其方法和属性。

以下是一个简单的例子,演示了如何在派生类中覆盖 OnGetExternal 方法:
class CMyHtmlView : public CHtmlView
{
public:
    // 构造函数、析构函数等其他成员函数

protected:
    virtual LPDISPATCH OnGetExternal()
    {
        // 创建并返回自定义的外部对象
        return m_spExternalObject.GetInterfacePtr();
    }

    DECLARE_MESSAGE_MAP()

private:
    CComPtr<IDispatch> m_spExternalObject; // 自定义的外部对象
};

在这个例子中,CMyHtmlView 派生类维护了一个 COM 对象,这个对象实现了 IDispatch 接口。OnGetExternal 方法被覆盖,以返回这个自定义的外部对象。

请注意,对于实际应用,需要确保外部对象实现了期望的接口,并提供适当的方法和属性,以便 HTML 页面可以与之交互。


转载请注明出处:http://www.zyzy.cn/article/detail/18213/MFC/CHtmlView