IDispatch 接口是一个用于在COM(Component Object Model)中提供对对象的成员的访问的标准接口。在这里,m_pBrowserApp 提供了与 HTML 对话框关联的浏览器应用程序的接口。
以下是一个简单的示例,演示了如何在 CDHtmlDialog 类中使用 m_pBrowserApp:
// MyHtmlDialog.h
#pragma once
#include "afxhtml.h"
class CMyHtmlDialog : public CDHtmlDialog
{
public:
enum { IDD = IDD_MYHTMLDIALOG, IDH = IDR_HTML_MYHTMLDIALOG };
CMyHtmlDialog(CWnd* pParent = nullptr);
// Dialog Data
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_MYHTMLDIALOG };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:
DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
DECLARE_DHTML_EVENT_MAP()
};
// MyHtmlDialog.cpp
#include "stdafx.h"
#include "MyHtmlDialog.h"
// CMyHtmlDialog 对话框
IMPLEMENT_DYNAMIC(CMyHtmlDialog, CDHtmlDialog)
CMyHtmlDialog::CMyHtmlDialog(CWnd* pParent /*=nullptr*/)
: CDHtmlDialog(CMyHtmlDialog::IDD, CMyHtmlDialog::IDH, pParent)
{
}
void CMyHtmlDialog::DoDataExchange(CDataExchange* pDX)
{
CDHtmlDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CMyHtmlDialog, CDHtmlDialog)
END_MESSAGE_MAP()
BEGIN_DHTML_EVENT_MAP(CMyHtmlDialog)
END_DHTML_EVENT_MAP()
BOOL CMyHtmlDialog::OnInitDialog()
{
CDHtmlDialog::OnInitDialog();
// 获取浏览器应用程序接口
m_pBrowserApp = GetHtmlDocument();
return TRUE;
}
在这个示例中,OnInitDialog 函数中使用 GetHtmlDocument 函数获取了浏览器应用程序的接口,并将其存储在 m_pBrowserApp 中。这样,您就可以使用 m_pBrowserApp 来访问 HTML 对话框中的浏览器应用程序的功能。
转载请注明出处:http://www.zyzy.cn/article/detail/17313/MFC/CDHtmlDialog