ATL下面想动态创建一个ActiveX,主要代码如下:
HRESULT hr;
RECT rc;
GetClientRect(&rc);
LPOLESTR pstrbrowserid;
StringFromCLSID(IID_ICortona, &pstrbrowserid);
CComBSTR bstrbrowser(pstrbrowserid);
CoTaskMemFree(pstrbrowserid);
HWND hwnd;
hwnd = m_axNestedControl.Create(m_hWnd, rc, 0, WS_CHILD | WS_VISIBLE);
hr = m_axNestedControl.CreateControlEx((LPCOLESTR)bstrbrowser, NULL, NULL, reinterpret_cast <IUnknown**>(&m_pICortona));
调试到这里来时hr显示“没有注册类别”,可我明明已经注册了这个ActiveX啊,GUID也没错,会是什么问题呢?
我把StringFromCLSID换成了StringFromIID,结果还是一样,hr显示“没有注册类别”,还有别的什么问题吗?
已经说了,要用CLSID,不能用IID