我面临的问题基本上是described here,即:
CoCreateInstance
来激活我在组件中使用的界面。我看到只是将清单嵌入到我的DLL中不起作用,如链接问题中所述,我需要手动切换Activation Context。
我不明白的是 where 以及当我需要切换激活上下文时:我是否只需将CoCreateInstance
的呼叫包裹在CActCtxActivator ScopedContext
之类的内容中( *),或者我需要将所有呼叫包装到第三方组件中? (据我所知,ISOLATION_AWARE_ENABLED
应该提供帮助。)
那么,当使用免注册COM时,您需要在哪里切换Activation Context?
(*):或(**)或其他。AFX_MANAGE_STATE(AfxGetStaticModuleState());
(**):实际上,AFX_MANAGE_STATE
曾经工作,但不再是“更新”的MFC版本。见,例如, VS2012: Removed support for active contexts switching in MFC?:
我们删除了MFC的所有激活上下文支持,因为我们 ....我们使用Windows MFC本身内部隔离感知API。
//发布者:Pat Brenner,Visual C ++库开发:2013年6月5日星期三下午11:10
答案 0 :(得分:2)
考虑到第三方组件没有其他依赖项,您只需要将调用包装到CoCreateInstance
。
如果它有其他依赖项,那么您需要将调用包装到第三方组件中。