首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何注册UPnP服务

如何注册UPnP服务
EN

Stack Overflow用户
提问于 2012-07-17 18:47:44
回答 1查看 647关注 0票数 3

我有一个VisualStudio2008WindowsMobile 6 C++项目,在这里我想注册一个UPnP服务。

我正在使用WindowsCE6SDK中的Microsoft示例作为UPnP服务的实现。WINCE600\PUBLIC\SERVERS\SDK\SAMPLES\UPNP\DEVICE

不幸的是,RegisterRunningDevice调用由于错误E_HANDLE而失败。

代码语言:javascript
复制
#include "upnpdevice_i.c"
#import "upnpdevice.dll" named_guids

int main()
{
    ::CoInitializeEx( NULL, COINIT_MULTITHREADED );

    using namespace UPnPHostLib;
    IUPnPDeviceControlPtr device_ctrl( CLSID_Device );
    IUPnPRegistrarPtr registrar( CLSID_UPnPRegistrar );

    bstr_t device_descr = /* contents of the device.xml file from the sample */

    // throws a _com_error exception where hr = E_HANDLE
    bstr_t device_id = registrar->RegisterRunningDevice( device_descr, 
        device_ctrl, 
        L"foo", 
        L"/windows/upnp", 
        0 );

    /* ... */

    ::CoUninitialize();
    return 0;
}

我见过其他人在我的网络搜索中提到这个错误,但我没有看到任何结果。

  • 我已经注册了upnpdevice.dll
  • 我已经安装了“可选组件”upnpctrl、upnphost和httpd。
  • 可执行文件upnpdevice.dll、device.xml和service.xml都在/windows/upnp目录中。

有人有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-18 15:08:25

我已经解决了。问题是可选组件没有签署。当device.exe试图在引导时将它们作为流驱动程序加载时,它们被拒绝了。

-PaulH

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11528916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档