在atl下做的com控件,如果在设计期控制用户对控件的使用,也就是说运行许可!我看在mfc下做的时候有一个属性可以直接选,但是好像atl下没有这项功能!那位大虾做过!给小弟一个例子!

解决方案 »

  1.   

    ActiveX 控件的授权:
    若要对 ActiveX 控件提供授权支持,COleObjectFactory 类需要提供 IClassFactory2 接口中的几个函数(IClassFactory2::RequestLicKey、IClassFactory2::GetLicInfo 和 IClassFactory2::CreateInstanceLic)的实现。当容器应用程序的开发人员请求创建控件实例时,将调用 GetLicInfo 验证控件 .LIC 文件是否存在。如果控件已授权,则可以创建该控件的实例,并将其放置在容器中。开发人员构造此容器应用程序后,将调用另一个函数(这次调用的是 RequestLicKey)。该函数将许可证密钥(一个简单的字符串)返回该容器应用程序。返回的密钥随后被嵌入到该应用程序中。
    已经找到怎么解决,正在摸索中!那位大哥做过给我指点一下,就不用小弟多走弯路了!谢谢!
      

  2.   

    VerifyUserLicense 
    该函数通过检查系统中是否存在控件许可文件,验证控件是否允许设计时使用。该函数由框架调用,作为处理 IClassFactory2::GetLicInfo 和 IClassFactory::CreateInstanceLic 的一部分。 GetLicenseKey 
    该函数从控件 DLL 请求唯一密钥。此密钥嵌入容器应用程序中,稍后将与 VerifyLicenseKey 函数一起用来创建控件实例。该函数由框架调用,作为处理 IClassFactory2::RequestLicKey 的一部分。 VerifyLicenseKey 
    该函数验证嵌入的密钥与控件的唯一密钥是否相同。这使容器得以创建控件实例供其使用。该函数由框架调用,作为处理 IClassFactory2::CreateInstanceLic 的一部分,并可以重写以提供许可证密钥的自定义验证。默认实现执行字符串比较。
      

  3.   

    这个跟用mfc和atl有什么关系。。如果mfc用向导配置就可以了,那就看一下mfc向导生成的代码。。
      

  4.   

    谢谢楼上的!看来要在atl里面手动了!哈哈!
      

  5.   

    我做了个设计时权限控制,但问题是如果ActiveX在IE中使用,似乎无法区分runtime and designtime,高手们有何想法?