草庐IT

CoCreateInstance

全部标签

windows - dia2dump : CoCreateInstance failed - HRESULT = 80040154

我正在尝试使用VisualStudio2017及其dia2dump在Windows7x64上转储PDB的签名.我加载了C:\ProgramFiles(x86)\MicrosoftVisualStudio\2017\Community\DIASDK\Samples\DIA2Dump\DIA2Dump.sln。构建成功:1>------RebuildAllstarted:Project:Dia2Dump,Configuration:Debugx64------1>stdafx.cpp1>regs.cpp1>PrintSymbol.cpp1>dia2dump.cpp1>GeneratingC

c++ - VSCode C/C++ Intellisense 和 Windows 特定库

我正在用C++试验一些特定于Windows的库(在我的C++代码中使用C库)。我正在尝试为CoCreateInstance()函数包含objbase.h:#include//...HRESULThr=CoCreateInstance(/*...*/);我的问题是VSCodeC/C++扩展的智能感知。代码编译正常,但智能感知在识别此函数时存在一些问题。HRESULT没有问题,但对于CoCreateInstance(),它显示"identifierisundefined"。所以我试图查看头文件本身并弄清楚,问题是,智能感知正在识别文件中的一些错误并且不让我使用该函数,因为它认为它没有正确声

windows - 神秘的 MFSourceFilter

前几天想给MediaFoundation一试。我注意到的第一件事是它不能播放MPEG2文件(至少在Windows7上不能),但是WindowsMediaPlayer12可以。因此,我运行了mftracewmplayer.exe并检查了输出。9052,2BF414:06:36.00364COle32ExportDetours::CoCreateInstance@Created{14D7A407-396B-44B3-BE85-5199A0F0F80A}MediaFoundationDShowSourceResolver(C:\Windows\SysWOW64\mfds.dll)@0984E

windows - 为 COM 接口(interface)启用编码(marshal)处理需要什么?

我有一个没有类型库的32位ATLCOM组件。它有一个类工厂,用于一个实现多个接口(interface)的给定类。当我将它用作进程内服务器时,一切正常-客户端调用CoCreateInstance(),对象被实例化,QueryInterface()检索指向所请求接口(interface)的指针。但是,当我将组件放入COM+时,我无法再实例化该类-CoCreateInstance()现在返回E_NOINTERFACE。我认为问题在于COM+无法执行编码(marshal)处理,因为缺少类型库-它不知道如何执行。我需要生成并注册一个类型库来解决这个问题还是有其他方法?

c++ - CoCreateInstance 上的 E_ACCESSDENIED,它曾经在这里工作

我有一些代码曾经可以工作,但最近停止了。它位于Adob​​eReader插件中,最新版本的Reader具有导致我出现问题的“保护模式”。我的插件可以加载我的一些正常的dll,这些dll在进程中加载​​:MyNormalLib::IMyClassPtrfoo;HRESULThr=foo.CreateInstance(__uuidof(MyNormalLib::MyClass));但是当我尝试获取指向我的服务的com指针时(在同一台机器上运行):MyOtherLib::IMyServicePtrbar;HRESULThr=bar.CreateInstance(__uuidof(MyOthe

c++ - 从 Internet Explorer 与服务交互

我试图让IE9在保护模式下运行时与COM服务(使用VisualStudio2010的向导创建)交互。如果我以管理员身份运行该服务而不是将其注册为服务,我的BHO对spUnk.CoCreateInstance的调用将返回S_OK(我正在观察AtlTrace的输出)。如果IE以管理员身份运行,BHO也能够成功调用spUnk.CoCreateInstance。但是,如果我将服务注册并作为实际服务运行并在保护模式下运行IE,spUnk.CoCreateInstance将返回0x80070005(访问被拒绝)。我知道IE至少能够找到该服务,因为如果服务未注册或已注册但通过services.msc

c++ - 使用 CoCreateInstance 时内存泄漏

我正在使用COM通过C++非托管代码初始化C#.NET类,并且即使在非常基本的程序中我也检测到内存泄漏:int_tmain(intargc,_TCHAR*argv[]){CoInitialize(NULL);ComClass::IClass1*_comClass1;HRESULThr=CoCreateInstance(__uuidof(ComClass::Class1),0,CLSCTX_INPROC_SERVER,__uuidof(ComClass::IClass1),reinterpret_cast(&_comClass1));_comClass1->Release();CoUni

c++ - 处理 CoCreateInstance 返回值

这是创建COM对象的代码示例:CComPtrpFilter;autohr=CoCreateInstance(CLSID_DMOWrapperFilter,NULL,CLSCTX_INPROC_SERVER,IID_IBaseFilter,reinterpret_cast(&pFilter));我在某处看到检查CoCreateInstance()是否成功应该如下所示:if(SUCCEEDED(hr)&&pFilter!=nullptr){//codegoeshere}如果我只检查hr会怎样?还不够吗?我还应该检查filter!=nullptr吗?//wouldthisbeenough?i

c++ - C/C++ 中的 CreateObject 等价物? (COM 互操作)

C/C++中的等价物是什么? 最佳答案 这是CoCreateInstance()功能。ItisconvenienttouseCoCreateInstancewhenyouneedtocreateonlyasingleinstanceofanobjectonthelocalmachine.Ifyouarecreatinganinstanceonremotecomputer,callCoCreateInstanceEx.Whenyouarecreatingmultipleinstances,itismoreefficienttoobta

c++ - 如何使用 CoCreateInstance() 获取 com 对象?

我已经注册了一个COM组件。我想调用它。CLSIDclsid;RIIDiid;HRESULThr=CLSIDFromProgID(OLESTR("se.mysoft"),&clsid);LPVOID*pRet;HRESULThr1=CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,iid,pRet);我可以成功获取clsid,但是我在哪里可以获取iid?我用OLEVIEWER查找界面:[odl,uuid(F3F54BC2-D6D1-4A85-B943-16287ECEA64C),helpstring("IsesoftInterface")
12