void QWmpPlaylist::mediaChangeEvent(IDispatch *dispatch) { IWMPMedia *media = 0; if (dispatch && dispatch->QueryInterface( __uuidof(IWMPMedia), reinterpret_cast<void **>(&media)) == S_OK) { VARIANT_BOOL isMember = VARIANT_FALSE; if (media->isMemberOf(m_playlist, &isMember) == S_OK && isMember) { int index = QWmpMetaData::value(media, QAutoBStr(L"PlaylistIndex")).toInt(); if (index >= 0) emit mediaChanged(index, index); } media->Release(); } }