COM,关于微软SDK 中 IUPnPNAT的问题

macrosu 2007-09-12 12:25:24
我用MS UPnP SDK包做一个端口映射软件,代码如下:
问题为:
在 hr = pIUPnP->get_NATEventManager(&pIEMgr); 这一行,
hr 返回S_OK,看MS SDK上说hr 返回S_OK就表示成功,
但pIEMgr有时返回空值,用GetLastError()也返回0,没有失败的标志,最终就是端口映射有时行有时不行,都不知到为什么,问问大家,谁有此经历可以帮我解决下,谢谢。
void SomeProc()
{
HRESULT hr = S_OK;
IUPnPNAT * pIUPnP = NULL;
INATEventManager * pIEMgr = NULL;
BOOL bSucc = FALSE;
do
{
hr = CoInitializeEx(NULL,CONINIT_MULTITHREADED);
if (hr != S_OK && hr != S_FALSE)
{
break;
}
hr = CoCreateInstance(CLSID_UPnPNAT,NULL,CLSCTX_INPROC_SERVER,IID_IUPnPNAT,(LPVOID*)&pIUPnP);
if (hr != S_OK)
{
break;
}
hr = pIUPnP->get_NATEventManager(&pIEMgr);
if (hr != S_OK || !pIEMgr) //在此处出问题
{
break;
}
bSucc = TRUE;
}while(false);
if (!bSucc)
printf("Error occur ...\n");

//release some resource alloc before
//

return;
}
...全文
135 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
macrosu 2007-09-13
  • 打赏
  • 举报
回复
大虾都跑那里去了...

4,358

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧