CDHtmlDialog::SetExternalDispatch 是 MFC 中 CDHtmlDialog 类的一个公共方法。这个方法用于设置外部的 IDispatch 接口,以便在 HTML 页面中调用客户端(C++代码)的函数。

这个方法的语法如下:
void CDHtmlDialog::SetExternalDispatch(IDispatch *pDisp);

其中,pDisp 是一个指向 IDispatch 接口的指针,表示要设置的外部分发对象。

使用这个方法,你可以在 HTML 页面中通过 JavaScript 脚本调用与客户端 C++ 代码关联的函数。这样,你可以在 HTML 页面和 C++ 代码之间进行双向通信。

以下是一个简单的示例,演示如何在 CDHtmlDialog 类中使用 SetExternalDispatch 方法:
// 在 CDHtmlDialog 派生类的初始化函数中调用 SetExternalDispatch

BOOL YourDialog::OnInitDialog()
{
    CDHtmlDialog::OnInitDialog();

    // 获取当前文档的 IDispatch 接口
    IDispatch *pDocDisp = GetHtmlDocument();

    // 设置外部分发对象
    SetExternalDispatch(pDocDisp);

    // 其他初始化代码...

    return TRUE;
}

在上面的示例中,GetHtmlDocument 用于获取当前 HTML 文档的 IDispatch 接口,然后通过 SetExternalDispatch 方法将其设置为外部分发对象。

请注意,确保你的 C++ 函数可以通过 DISPID(Dispatch Identifier)在 HTML 页面中被调用。在 HTML 页面的脚本中,你可以使用 external 对象来访问这些函数,例如:
external.YourCppFunction(); // 调用 C++ 中的函数

这只是一个简单的介绍,具体的实现可能会根据你的需求而有所不同。


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