首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

CoInitializeSecurity有关问题

2011-12-28 
CoInitializeSecurity问题刚接管一份以前同事代码,从来没有做过com相关,对其中一些处理不甚理解,前来求教。

CoInitializeSecurity问题
刚接管一份以前同事代码,从来没有做过com相关,对其中一些处理不甚理解,前来求教。

FUN1()
{
  CoInitializeEx
  CoInitializeSecurity
  CoUninitialize
}

FUN2()
{
  CoInitializeEx
  //业务流程
  CoUninitialize
}

流程是这样的,主线程启动线程FUN1(其实是做一些初始化工作),然后结束,然后启动线程FUN2。

我的问题是,在FUN1中,CoUninitialize被调用以后,CoInitializeSecurity还有效果吗?
代码的本意肯定是FUN1中的CoInitializeSecurity设置,在启动FUN2时还有效,但按照上面的代码是否真的有效。
多谢。

[解决办法]
http://www.cnblogs.com/moonz-wu/archive/2008/09/11/1289519.html

该函数只被每个进程确切的调用一次,以显式或隐式的方式。它可以被客户端,服务器端或是两边都调用。对于非COM的应用程序不应该显式的被调用,但是对于COM应用程序该函数会隐式的从注册表读取参数来调用。如果你使用注册表设置进程级的安全然后调用CoInitializeSecurity, 那么AppID的注册表值会被忽略而使用CoInitializeSecurity值。从这段话中,我们可以知道两个信息,一,CoInitializeSecurity函数用于设置进程安全;二,只能被进程调用一次。第一点是说明用途,而第二点说明用法。很简单,只要在CoInitialize()后面调用一下就可以。但是请记住一定要用下面的方式去验证返回值:

热点排行