在 MFC 中,CDHtmlDialog::SetExternalDispatch 是 CDHtmlDialog 类的一个公共方法,用于设置外部 IDispatch 接口,该接口可以用于在 HTML 对话框中调用从 C++ 代码中公开的方法。这个方法的定义如下:
void CDHtmlDialog::SetExternalDispatch(LPDISPATCH pDisp);

参数说明:

  •  pDisp: 要设置的外部 IDispatch 接口指针。


通过调用 SetExternalDispatch 方法,你可以将 C++ 中的对象或控制器的 IDispatch 接口传递给 HTML 对话框,以便在 HTML 中使用该接口调用 C++ 中公开的方法。

以下是一个简单的示例:
// 创建一个用于公开方法的自定义 Dispatch 对象
CComObject<MyDispatch>* pMyDispatch = nullptr;
CComObject<MyDispatch>::CreateInstance(&pMyDispatch);
CComPtr<IDispatch> spDispatch;
pMyDispatch->QueryInterface(IID_IDispatch, (void**)&spDispatch);

// 将外部 Dispatch 对象传递给 CDHtmlDialog
m_dlg.SetExternalDispatch(spDispatch);

这里,MyDispatch 是一个自定义的 C++ 类,它实现了 IDispatch 接口,并且其中包含了要在 HTML 中调用的方法。通过将该对象传递给 SetExternalDispatch 方法,可以在 HTML 中使用该对象调用相应的方法。


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