Récupération de l’interface de gravure de CD
Pour énumérer les lecteurs de CD sur l’ordinateur de l’utilisateur, utilisez l’interface IWMPCdromCollection . Vous récupérez un pointeur vers cette interface en appelant IWMPCore :: obtenir _ cdromCollection.
En utilisant les méthodes d' extraction de _ nombre et d' élément , vous pouvez effectuer une itération de la collection pour récupérer un pointeur d’interface IWMPCdrom pour chaque lecteur de CD sur l’ordinateur de l’utilisateur.
L’interface IWMPCdrom représente un lecteur de CD individuel. Avant de commencer à graver un CD, vous devez d’abord appeler QueryInterface à l’aide d’un pointeur IWMPCdrom pour récupérer un pointeur vers l’interface IWMPCdromBurn .
L’exemple de code suivant montre comment récupérer une interface pour la gravure d’un CD sur un lecteur spécifique :
HRESULT CMainDlg::GetCdromDriveCount (long &lDriveCount)
{
hr = m_spPlayer->get_cdromCollection(&m_spCdromCollection);
// Get the number of CDROM drives.
if (SUCCEEDED(hr))
{
hr = m_spCdromCollection->get_count(&lDriveCount);
}
return hr;
}
// lIndex refers to the index of the current drive,
// which must be less than the value retrieved by
// GetCdromDriveCount above.
HRESULT CMainDlg::GetCdromBurnInterface (long lIndex)
{
// Get the IWMPCdrom interface.
m_spCdrom.Release();
HRESULT hr = m_spCdromCollection->item(lIndex, &m_spCdrom);
if (SUCCEEDED(hr))
{
// Get the IWMPCdromBurn interface.
m_spCdromBurn.Release();
hr = m_spCdrom->QueryInterface(&m_spCdromBurn);
}
return hr;
}