COleCon 使用自定义控件实现一个OLE容器来承载ActiveX控件。
要使用它,请在应用程序中包含COleCon.inc,并调用其中一个构造函数。 例如,以下代码嵌入WebBrowser控件的实例并导航到站点:
CONST IDC_WEBBROWSER = 1001
DIM pOleCon AS COleCon PTR = NEW COleCon(@pWindow, IDC_WEBBROWSER, "Shell.Explorer", _
0, 0, pWindow.ClientWidth, pWindow.ClientHeight - 20)
DIM pWb AS IWebBrowser2 PTR = cast(IWebBrowser2 PTR, pOleCon->OcxDispPtr)
IF pWb THEN
DIM vUrl AS VARIANT
vUrl.vt = VT_BSTR
vUrl.bstrVal = SysAllocString("http://www.planetsquires.com/protect/forum/index.php")
DIM hr AS HRESULT = pWb->lpvtbl->Navigate2(pWb, @vUrl, NULL, NULL, NULL, NULL)
VariantClear @vurl
END IF
它也可以用于嵌入可视化OCX,而无需首先注册它们。 例如,以下代码嵌入在旧的VB6 MSCOMCT2.OCX中实现的MonthView日历的实例。 MSCOMCT2.OCX未在我的系统中注册。
DIM wszLibName AS WSTRING * 260 = ExePath & "\MSCOMCT2.OCX"
DIM CLSID_MSComCtl2_MonthView AS CLSID = (&h232E456A, &h87C3, &h11D1, {&h8B, &hE3,&h00, &h00, &hF8, &h75, &h4D, &hA1})
DIM IID_MSComCtl2_MonthView AS CLSID = (&h232E4565, &h87C3, &h11D1, {&h8B, &hE3,&h00, &h00, &hF8, &h75, &h4D, &hA1})
DIM RTLKEY_MSCOMCT2 AS WSTRING * 260 = "651A8940-87C5-11d1-8BE3-0000F8754DA1"
DIM pOleCon AS COleCon PTR = NEW COleCon(@pWindow, 1001, wszLibName, CLSID_MSComCtl2_MonthView, _
IID_MSComCtl2_MonthView, RTLKEY_MSCOMCT2, 0, 0, pWindow.ClientWidth, pWindow.ClientHeight)
CWebBrowser类使用COleCon将Web浏览器控件嵌入到Free Basic应用程序中。