草庐IT

INTERFACE

全部标签

windows - 如何获取已注册COM接口(interface)的IID?

我知道我可以从Classes\\CLSID\@的注册表中的COM类对象中读取CLSID.我怀疑在注册的COM接口(interface)上我可以从Classes\\IID\@读取IID或Classes\CLSID\\IID.我已阅读文章COMIDs&Registrykeysinanutshell这个问题对我来说仍然是开放的。不幸的是,我现在没有测试用例。 最佳答案 注册表并不是一种编程资源,注册表项仅在COM基础结构需要时才存在。例如,CLSID键是帮助COM找到实现服务器的可执行文件所必需的,程序员必须提供CLSIDguid。他还需

c++ - 如何为 SENS 事件注册接收器对象

我在看MSDN文档说我可以CoCreateInstanceaSENSobjectusingitsCLSID.但是,尚不清楚__uuidof(SENS)是否意味着什么——因为它只是Sensevts.h文件中的前向声明。此外,SENS类仅提供“传出”接口(interface),并被标记为“不可创建”(通过MSComViewer查看),这让我不知道如何引用SENS对象本身的实例。这与获取instanceofIShellLink的示例代码形成对比:HRESULThr;IShellLink*pISL;hr=CoCreateInstance(CLSID_ShellLink,//CLSIDofcoc

c++ - windows上 Windows 系统win32框架的替代品

我想用C++开发一个不依赖于win32库的自定义窗口系统。例如,GoogleChrome的界面与Windows自己的界面不相似。同样MPCstar和adobe产品也有自己的界面。请帮我从哪里开始这样的项目? 最佳答案 可以跨平台使用Qt或wxWidgets但我认为Qt更好。 关于c++-windows上Windows系统win32框架的替代品,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

windows - 德尔福 : Call user selection interface

我可以使用WindowsAPI调用此屏幕吗?我想使用此界面来选择具有域的正确用户。谢谢! 最佳答案 此对话框称为对象选取器对话框。您可以使用IDsObjectPicker从Delphi调用接口(interface)和InvokeDialog方法。这是一个示例,说明如何使用Delphi中的此对话框。implementation{$R*.dfm}usesActiveX;constCLSID_DsObjectPicker:TGUID='{17D6CCD8-3B7B-11D2-B9E0-00C04FD8DBF7}';IID_IDsObjec

windows - 为什么 Windows Search 会在我的 IFilter 中查询一堆奇怪的界面?

我已经将IFilter实现为nativeVC++ATL进程内COM服务器。WindowsSearch不会使用它-它会创建我的IFilter的一个实例,然后执行一系列QueryInterface()调用,具体来说:编码(marshal)IStdMarshalInfo具有{4C1E39E1-E3E3-4296-AA86-EC938D896E92}接口(interface)ID的东西和其他几个。由于我的IFilter仅实现IFilter、IPersist和IPersistFile,大多数调用返回E_NOINTERFACE,因此WindowsSearch仅释放我的对象而不执行任何操作。它为什么

windows - 如何在 Windows 7 中使用批处理脚本获取本地连接名称

我正在编写一个简单的批处理脚本来检索Windows上的所有网络接口(interface)。但我只需要本地连接名称。本地连接接口(interface)名称不是默认的。有什么方法可以使用批处理脚本仅检索本地连接名称作为字符串? 最佳答案 不完全确定你在问什么,但我想你的问题是你想获得网络接口(interface)的所有友好名称。是这样的:wmicnicwhere"netconnectionidlike'%'"getnetconnectionid返回(在我的笔记本电脑上)NetConnectionIDLocalAreaConnection

c++ - COM dll注销问题

我有一个包含许多COMdll的项目,为了满足要求,我必须注销一个COMDll,我通过调用Regsvr32-u选项来注销该dll。这个注销操作似乎删除了一个接口(interface),比如ICommon接口(interface),这使得其他COM对象不可用。此ICommon接口(interface)由所有其他COM组件实现,在未注册的COMDll的注册表脚本中,我没有看到任何删除此ICommon接口(interface)的代码表单注册表,如何删除它。如何为给定的CoClass删除接口(interface)信息,BEGIN_COM_MAP和COM_INTERFACE_ENTRY有什么作用吗

c++ - 在 C 中使用 CoGetClassObject() - 访问 COM 对象接口(interface)

有关访问应用程序接口(interface)的说明,普通C/C++无:MFCATLWTL基本上,我想使用COM对象。工作示例源代码或指南-使用(功能)COM对象,不创建COM服务器。问候 最佳答案 这是一个简单的C++示例:CoInitialize(NULL);//absolutelyessential:initializetheCOMsubsystemIMyInterface*pIFace;//createtheobjectandobtainapointertothesoughtinterfaceCoCreateInstance(C

c++ - 当一次实现多个 COM 接口(interface)时,我如何向上转换为 IUnknown?

假设我的COM对象实现了两个或多个COM接口(interface):classCMyClass:publicIPersistFile,publicIPersistStream{};在实现QueryInterface()时,我需要能够返回一个IUnknown*指针。由于两个基本接口(interface)都派生自IUnknown,因此我不能隐式地向上转换——这样的向上转换是不明确的。要显式向上转换,我需要使用以下两种方式之一:if(iid==__uuidof(IUnknown)){*ppv=static_cast(this);static_cast(this)->AddRef();retu

c++ - 中间错误 MIDL2379

我们有一个c++库,我们正在为该库自动生成COM接口(interface)。所以我自动生成了IDL文件,一切正常。但是随着时间的推移,当更多接口(interface)被添加到COM时,我们开始收到错误1>TotalFormatStringsize=693361>midl:errorMIDL2379:thecompilerreachedalimitforaformatstringrepresentation.Seedocumentationforadvice.我在VS2008和VS2010中都遇到了这个错误。谁能帮我解决这个问题。我在互联网上搜索,找不到合适的解决方案。Microsoft