找回密码
 立即注册

QQ登录

只需一步,快速开始

iceman
社区贡献组   /  发表于:2014-4-8 09:31:00
11#
回复 9楼zztoll的帖子

当前这个问题的进展是已经提交给产品组,有进一步反馈我会回复给你,谢谢
回复 使用道具 举报
zztoll
初级会员   /  发表于:2014-4-8 10:29:00
12#
謝謝!
这个问题我已经自已查资料解决了.
正如官网回复所说,创建控件时要带上license string.
我用可带license string的函数来创建控件后,就OK了.

如果在VC中用动态方式创建控件,同样会遇到此问题,可用同样方式解决.
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-4-8 11:27:00
13#
回复 12楼zztoll的帖子

太棒了,十分感谢你反馈问题结果。
能否把这个函数完整的代码贴出来共享下?以便其他用户使用时可以参考。
回复 使用道具 举报
zztoll
初级会员   /  发表于:2014-4-8 12:09:00
14#
license string查看工具可从微软网站下载:http://support.microsoft.com/kb/151771/zh-cn
创建控件的代码如下,更详细的内容可参见我的博文:http://blog.csdn.net/zztoll/article/details/23035873

WCHAR pwchLicenseKey[] = //此处的license Key是示例,不是Spread COM的
  {
    0x0043,  0x006F,  0x0070,  0x0079,  0x0072,  0x0069,
    0x0067,  0x0068,  0x0074,  0x0020,  0x0028,  0x0063,
    0x0029,  0x0020,  0x0031,  0x0039,  0x0039,  0x0034,
    0x0020
  };

HRESULT hr;       
IDispatch* pObj;
CLSID clsid        = { 0xDE52502E, 0xF837, 0x492B, { 0xAE, 0x14, 0xA1, 0x82, 0x53, 0x1A, 0xFA, 0xF4}};
BSTR bstrLicense = ::SysAllocStringLen(pwchLicenseKey,  sizeof(pwchLicenseKey)/sizeof(WCHAR));
LPCLASSFACTORY2 pClassFactory2;
if (SUCCEEDED(hr = CoGetClassObject(clsid, CLSCTX_SERVER, NULL,        IID_IClassFactory2, (void**)&pClassFactory2)))
{
hr = pClassFactory2->CreateInstanceLic(NULL, NULL, IID_IDispatch,        bstrLicense, (void**) &pObj);
pClassFactory2->Release();
if(FAILED(hr))
  return;

wxAutomationObject *sp = new wxAutomationObject;
sp->SetDispatchPtr(pObj);
wxActiveXContainer* containter = new wxActiveXContainer(this,IID_IDispatch,pObj);
}
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-4-8 13:31:00
15#
回复 14楼zztoll的帖子

十分感谢,已经添加精华供其他用户查看。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部