草庐IT

com-state

全部标签

c++ - 使用 tlb 文件的 COM 自动化

将我视为Windows环境和COM编程的新手。我必须自动化应用程序(CANoe)访问。CANoe将自己公开为COM服务器并提供CANoe.h、CANoe_i.c和CANoe.tlb文件。任何人都可以指定如何编写C++客户端,以访问应用程序的对象和功能。另外,请说明如何从C++访问tlb文件中的代码。 最佳答案 VisualStudio有很多内置支持,可以将类型库导入C++项目并使用这样定义的对象。例如,您可以使用#import指令:#import"CANoe.tlb"这将导入类型库,并将其转换为头文件和实现文件-它还会导致实现文件与

c++ - 如何在 C++ 中实现多个 COM 接口(interface)?

我正在努力理解thisexamplecode关于浏览器帮助对象。在内部,作者实现了一个公开多个接口(interface)(IObjectWithSite、IDispatch)的类。他的QueryInterface函数执行以下操作:if(riid==IID_IUnknown)*ppv=static_cast(this);elseif(riid==IID_IObjectWithSite)*ppv=static_cast(this);elseif(riid==IID_IDispatch)*ppv=static_cast(this);我了解到,从C的角度来看,接口(interface)指针只是

c# - 如何在 dot net 中使用免注册 COM dll

在我的一个项目中,我有一个使用C++DLL的C#应用程序。目前在客户端PC上,我们正在注册表中的COM组件中注册C++DLLS,以便我们在C#中使用它们。我在NET上了解到,Microsoft提供了一个RegFree解决方案,链接为http://msdn.microsoft.com/en-us/library/ms973913.aspx但是看完之后我并没有得到太多线索,因为我的应用程序架构如下所示不同我有2个C++dll让我们说CPForms.dll和Rules.dll。Rule.dll包含在CPForms.dll中我有1个C#dll假设使用CPForms.DLL的ConsumeFor

.net - COM 互操作 : indexed property signature issues

我正在开发一个项目,该项目是对一个相当大的经典ASP项目的.NET扩展,使用了大量C++COM对象,这些对象一直存在于我们的代码库中。不幸的是,C++端有很多hack-ish代码,我担心我没有足够的经验来解决我遇到的问题。简而言之,我可以实例化有问题的COM对象,VisualStudio告诉我应该能够调用它的“方法”(在引号中,因为它们实际上作为参数化属性公开)。但是,我尝试调用的任何方法都会给我错误“索引属性‘CoreAspLib.IComUser.LoginUser’具有必须提供的非可选参数。”问题是,我使用的参数与经典ASP世界中使用的参数完全相同,甚至属性的IntelliSen

Cinemachine 5.自由观察相机(FreeLook)和状态驱动相机(State-Driven)

自由观察相机(FreeLook)创建FreeLook相机,并设置Follow和LookAt,场景中会出现三个圆和一条弧线,这是用来控制摄像机的移动轨道,上下移动鼠标摄像机只能在上下两个圆之间移动。TopRig,MiddleRig,BottomRig分别对应上面三个圆,可以分别调整高度,半径。在不同的高度也可以对相机进行更精细化的设置。Lens用于调整视野范围,勾选CommonLens表示相机在不同高度Lens参数一样,取消勾选就可以对不同高度的Lens参数进行调整。XAxis和YAxis表示横向纵向的位置,YAxisRecentering表示用户移动相机停止后,会缓慢的回归到中间那个圆的位置。

c++ - 我们应该将 COM 中的 BSTR 类型视为值还是引用?

从ATLInternals一书中,我知道BSTR不同于OLECHAR*,BSTR有CComBSTR和CString。根据MSDNAllocatingandReleasingMemoryforaBSTR,我知道调用者/被调用者的内存管理责任。从MSDN中获取这一行,HRESULTCMyWebBrowser::put_StatusText(BSTRbstr)我仍然不知道如何在我的实现中正确处理bstr。因为我仍然有一个关于BSTR的基本问题——我们应该将bstr视为一个值(如int)还是一个引用(如int*),至少在COM接口(interface)边界上。我想在我的实现中尽快将BSTR转换

c# - COM 基本链接

伙计们,你能给我提供学习基本COM的教程链接或.pdf吗?。我用谷歌搜索它..我仍然推荐stackoverflow的答案所以请通过我..谢谢 最佳答案 这是我的一些比较好的书签:Wikipedia-ComponentObjectModelIntroductiontoCOM-WhatItIsandHowtoUseIt.IntroductiontoCOMPartII-BehindtheScenesofaCOMServerFinallyUnderstandingCOMAfterChangingaLightBulbIntroductiont

c++ - COM 初始化和在 Win32 C++ DLL 中的使用

我正在编写一个使用COM查询WMI的Win32C++DLL。如何以编程方式确定COM是否已初始化?谢谢。 最佳答案 MarkRansom是对的直接、干净和简单的解决方案是要求调用者对COM进行初始化。丑陋的骇客您可以尝试第一次调用-可能是CoCreateInstance,如果它返回CO_E_NOTINITIALIZED,请自己运行CoInitialize(在这种情况下不要忘记取消初始化)但是,从DLL将CoInitialize“注入(inject)”到调用者线程中仍然存在问题。所以有一个清洁溶液让DLL创建一个工作线程(这意味着DL

c++ - 我如何使用 _com_ptr_t?

假设我有一个拥有D3DDevice的类:classThing{public:Thing(){D3D11CreateDevice(...,&device,...);}~Thing(){device->Release();}private:ID3D11Device*device;};据我所知,我可以使用_com_ptr_t来确保删除对象,而不必在析构函数中显式调用Release()。但问题是我无法找出模板的正确语法。我几乎找不到关于_com_ptr_t的任何信息,我能找到的最接近答案的是this(Japanese)one.按照那里的语法,我得到了一堆编译器错误:private://ID3D

应用程序崩溃抛出了拒绝权限的例外:阅读com.android.providers.media.mediaprovider

我正在开发一个需要读取和写入外部存储的应用程序的应用程序。我已经在清单文件以及我的Java活动文件中编写所有权限permissiondenial:readingcom.android.providers.media.MediaProvider清单文件Java文件publicclassFragment_twoextendsFragment{privateRecyclerViewrecyclerView2;privateListmodelList;privatemyAdapter2adapter;privateMenuItemmenu;publicFragment_two(){}@Override