以下是该方法的基本声明:
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