UPnP サービスを登録したい Windows Mobile 6 ARMV4I 用の Visual Studio 2008 C++ プロジェクトがあります。
UPnP サービスの実装として、Windows CE 6 SDK の Microsoft サンプルを使用しています。WINCE600\PUBLIC\SERVERS\SDK\SAMPLES\UPNP\DEVICE
残念ながら、RegisterRunningDevice
呼び出しはエラー E_HANDLE で失敗します。
#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;
}
Web 検索中に他の人がこのエラーを参照しているのを見たことがありますが、結果は見られませんでした。
- upnpdevice.dll を登録しました
- 「オプションの Windows Mobile サーバー コンポーネント」upnpctrl、upnphost、および httpd をインストールしました。
- 実行可能ファイル、upnpdevice.dll、device.xml、および service.xml ファイルはすべて
/windows/upnp
ディレクトリにあります。
誰か提案はありますか?