本文整理汇总了C++中CComQIPtr::GetCount方法的典型用法代码示例。如果您正苦于以下问题:C++ CComQIPtr::GetCount方法的具体用法?C++ CComQIPtr::GetCount怎么用?C++ CComQIPtr::GetCount使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CComQIPtr
的用法示例。
在下文中一共展示了CComQIPtr::GetCount方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InitAudioSessionControlList
void AudioVolume::InitAudioSessionControlList()
{
HRESULT hr = S_OK;
if (m_spAudioSessionManager2 == NULL)
return;
CComQIPtr<IAudioSessionEnumerator> spAudioSessionEnumerator;
try
{
// Get audio session enumerator
hr = m_spAudioSessionManager2->GetSessionEnumerator(&spAudioSessionEnumerator);
if (FAILED(hr))
{
throw "Cannot get audio session enumerator!";
}
// Get audio session number
int nSessions = 0;
hr = spAudioSessionEnumerator->GetCount(&nSessions);
if (FAILED(hr))
{
throw "Cannot get audio session number!";
}
// Map indicating whether a process belongs to firefox
std::map<DWORD, DWORD> map;
if (!BuildProcesseTree(map))
{
throw "AudioVolume::GetSubProcesseMap failed!";
}
// Enumerate audio sessions
for (int i=0; i<nSessions; i++)
{
CComQIPtr<IAudioSessionControl> spAudioSessionControl;
try
{
// Get AudioSessionControl
HRESULT hr = spAudioSessionEnumerator->GetSession(i, &spAudioSessionControl);
if (FAILED(hr))
{
throw "Cannot get AudioSessionControl!";
}
AddSession(map, spAudioSessionControl);
}
catch (LPCSTR szError)
{
TRACE("[MuterWin7] AudioVolume::InitAudioSessionControlList: %s\n", szError);
}
}
}
catch (LPCSTR szError)
{
TRACE("[MuterWin7] AudioVolume::InitAudioSessionControlList: %s\n", szError);
}
SAFE_RELEASE(spAudioSessionEnumerator);
}