龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

微软实时通信API多客户端通信实战(2)[图](3)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
if (FAILED(hr)) { // EnablePresence 失败 SAFE_RELEASE(pPresence); return hr; } // 设置启用标志 m_bPresenceEnabled = bEnable; // 如果禁用出席信息,则清理 // 出席信

if (FAILED(hr))
{
// EnablePresence 失败
SAFE_RELEASE(pPresence);
return hr;
}

// 设置启用标志
m_bPresenceEnabled = bEnable;

// 如果禁用出席信息,则清理
// 出席信息数据
if (!bEnable)
{
// 清理好友
IRTCEnumBuddies * pEnumBuddy = NULL;
IRTCBuddy * pBuddy = NULL;

if (FAILED(hr))
{
// 枚举好友失败
SAFE_RELEASE(pPresence);
return hr;
}

// 枚举用户的好友列表。
hr = pPresence->EnumerateBuddies(&pEnumBuddy);

if (FAILED(hr))
{
// 枚举好友失败
SAFE_RELEASE(pPresence);
return hr;
}

while (pEnumBuddy->Next(1, &pBuddy, NULL) == S_OK)
{
pPresence->RemoveBuddy(pBuddy);

SAFE_RELEASE(pBuddy);
}

SAFE_RELEASE(pEnumBuddy);

// 清理观察程序
IRTCEnumWatchers * pEnumWatcher = NULL;
IRTCWatcher * pWatcher = NULL;

hr = pPresence->EnumerateWatchers(&pEnumWatcher);

if (FAILED(hr))
{
// 枚举观察程序失败
SAFE_RELEASE(pPresence);
return hr;
}

while (pEnumWatcher->Next(1, &pWatcher, NULL) == S_OK)
{
pPresence->RemoveWatcher(pWatcher);

SAFE_RELEASE(pWatcher);
}

SAFE_RELEASE(pEnumWatcher);
}

SAFE_RELEASE(pPresence);

return S_OK;
}

精彩图集

赞助商链接