Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
.gif)
| Previous | Next |
Changing Synchronization Priority
The following example code specifies a priority value for each item in the ListView control identified by IDC_PLVIEW. Items that are marked with a check mark are assigned a priority value based on their order in the list. Items that are not checked are assigned a priority value of zero.
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);
}
}
See Also
| Previous | Next |