使用《转载: 从网页上下载控件时制作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: 下载