2024年4月17日发(作者:)

COM技术是现在时下最热门的技术之一,经常被使用在网络编程中。它可以被用户Server

端,也可以被下载到用户端。下面介绍一种方法,可以在用户端打开一个HTML对话框。读

者可以通过下面的例子学习COM的使用。

在安装了IE4或IE5后,将会系统目录(windowssystem)下安装一个叫的文

件。这个动态链接库的引出函数中ShowHTMLDialog来显示一个HTML对话框。但是这个函

数需要一些COM要索。下面这个类是对整个功能的封装。(如果读者有兴趣的话,可以使

用Visual Studio 6.0中带的Depend来观察MSHTML的引入函数,其中还有模式和非模式

的区别,可以尝试使用。)

class CHtmlDialog

{

public:

void SetDlgOptions(LPCTSTR lpszOptions);

void SetSize(int x, int y);

LPCVARIANT GetReturnVariant();

CString GetReturnString();

void SetParam(LPCTSTR lpszArgs);

void SetParam(VARIANT* pvarArgs);

virtual int DoModal();

CHtmlDialog(LPCTSTR lpszURL, BOOL bRes = FALSE, CWnd* pParent = NULL);

CHtmlDialog (UINT nResID, CWnd* pParent = NULL);

CHtmlDialog ( );

virtual ~ CHtmlDialog( );

private:

inline void ResourceToURL(LPCTSTR lpszURL);

void CommonConstruct();

protected:

HWND m_hWndParent;

CString m_strOptions;

COleVariant m_varArgs, m_varReturn;

CString m_strURL;

HINSTANCE m_hInstMSHTML;

};

// CHtmlDialog类的实现文件.

CHtmlDialog :: CHtmlDialog ()

{

TRACE0("Warning: Initialization may not be done: Non Functional contructor");

}

CHtmlDialog::~ CHtmlDialog()

{