更改同步优先级
[与此页面关联的功能(Windows 媒体播放器 SDK)是旧版功能。 它已被 MediaPlayer 取代。 MediaPlayer 已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用 MediaPlayer 而不是 Windows 媒体播放器 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
下面的示例代码为 listView 控件中由 IDC_PLVIEW 标识的每个项指定一个优先级值。 标有检查标记的项将根据其在列表中的顺序为其分配优先级值。 未选中的项的优先级值为零。
void CSyncSettings::SetPriorities()
{
ATLASSERT(m_spPlaylist.p);
long lCount = 0;
CComBSTR bstrAttribute(g_szSyncAttributeNames[m_lCurrentPSIndex]);
long lPriorityCount = 0; // Tracks the next priority value to be assigned.
long lNewPriority = 0; // Contains the new priority value for the playlist.
HRESULT hr = m_spPlaylist->get_count(&lCount);
if(SUCCEEDED(hr) && lCount > 0)
{
HCURSOR hCursor = LoadCursor(NULL, IDC_WAIT);
HCURSOR hCursorOld = SetCursor(hCursor);
// Walk the list.
for(long i = 0; i < lCount; i++)
{
CComPtr<IWMPMedia> spMedia;
BOOL bChecked = ListView_GetCheckState(m_hPlView, i);
if(TRUE == bChecked)
{
// Assign a priority value.
lNewPriority = ++lPriorityCount;
}
else
{
// Not a sync playlist.
lNewPriority = 0;
}
// Set the attribute on the playlist.
hr = m_spPlaylist->get_item(i, &spMedia);
if(SUCCEEDED(hr))
{
WCHAR buffer[30];
_ltow(lNewPriority, buffer, 10);
CComBSTR bstrPriority(buffer);
hr = spMedia->setItemInfo(bstrAttribute, bstrPriority);
}
}
SetCursor(hCursorOld);
}
}
相关主题
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈