IADSessionPtr CAddOnInterface::GetSessionFromIdentifier(/*[in]*/ BSTR sessionIdentifier)
{
IADSessionPtr pSession = NULL;
IADSessionsPtr pSessions = theApp.m_pRoot->GetSessions();
if (pSessions != NULL)
{
if (pSessions->GetCount() > 0)
{
IEnumVARIANTPtr pEnumSessions = pSessions->GetEnumerator();
ULONG fetched;
_variant_t var;
HRESULT res = pEnumSessions->Next(1, &var, &fetched);
while (SUCCEEDED(res) && fetched > 0)
{
pSession = (IADSessionPtr)var;
BSTR id = (BSTR)pSession->GetIdentifier();
if (wcscmp(id, sessionIdentifier) == 0)
return pSession;
else
res = pEnumSessions->Next(1, &var, &fetched);
}
}
pSessions = NULL;
}
return NULL;
}