从网页上下载控件及调用手记

使用《转载: 从网页上下载控件时制作CAB包的方法》试了一下调用自定义组件,并没有成功,后来又找到了微软网站上的相关文档(链接),总算搞定了一个最简单的,在这里标记一下。

首先用VC创建一个ATL组件,实例以下方法:
STDMETHODIMP CTest::MsgBox(BSTR strMsg)
{
 USES_CONVERSION;

 MessageBox(NULL, OLE2T(strMsg), _T("What?"), MB_OK);

 return S_OK;
}

然后选择ReleaseMinSize编译模式编译成DLL,以WebObj.dll为例。

创建以下的WebObj.inf文件:
; INF file for WebObj.DLL
[version]
; version signature (same for both NT and Win95) do not remove
signature="$CHICAGO$"
AdvancedINF=2.0 

[Add.Code]
WebObj.dll=WebObj.dll

[WebObj.dll]
file-win32-x86=thiscab
clsid={62129ACE-3FDC-461E-B216-6EEC6FBA18AC}
FileVersion=1,0,0,1
RegisterServer=yes 
; end of INF file

用IExpress创建WebObj.cab包,按WebObj.dll,WebObj.inf顺序加入到cab中并输出。

将WebObj.cab和test.html拷到C:\Inetpub\wwwroot目录(前提是安装了IIS),test.html的内容:
<html>
<head>
<OBJECT classid=clsid:62129ACE-3FDC-461E-B216-6EEC6FBA18AC codebase="WebObj.cab#version=1,0,0,1" id=Test1></OBJECT>
</head>
<script>

</script>
<body>
Test web object <input type="button" value="Test" onclick="Test1.MsgBox('Hello')">
</body>
</html>

打开IE输入“http://localhost/test.html”,提示下载WebObj.cab,安装后点“Test”按钮,成功显示“Hello”提示框,完成!

Tags:

Leave a Reply


提醒: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。请务必注意user必须和评论者名相匹配(大小写一致)。