Abrufen des Burn-Status

Im folgenden Codebeispiel werden die folgenden Dialogsteuerelemente definiert:

Steuerungs-ID BESCHREIBUNG
IDC _ BURN _ STATE Statischer Text, der den Zustand des CD-Vorgangs darstellt.
IDC _ PROGRESS Statusanzeige mit einem Bereich von 0 bis 100, der den gesamten Brandfortschritt darstellt.
_IDC-STATUSTEXT _ Statischer Text, der den Gesamtverbrandungsfortschritt als Zahl von 0 bis 100 darstellt.
VERFÜGBARE _ _ IDC-ZEIT Statischer Text, um die auf der CD verfügbare Zeit in Sekunden anzuzeigen.
FREIER _ _ IDC-SPEICHERPLATZ Statischer Text, um den freien Speicherplatz auf der CD in Bytes anzuzeigen.
IDC _ _ GESAMTSPEICHERPLATZ Statischer Text, um die Gesamtkapazität der CD in Bytes anzuzeigen.

Sie können den Fortschritt des Vorgangs zum Verwerfen überwachen, indem Sie IWMPCaku Überl::get _ burnProgress in regelmäßigen Abständen aufrufen, während die CD abgeschrieben wird. Diese Methode ruft einen Statuswert für den gesamten Vorgang ab. Der abgerufene Wert ist eine Zahl, die den Prozentsatz der abgeschlossenen Versteigerungen von 0 bis 100 darstellt.

// Update the progress bar IDC_PROGRESS
// and the corresponding text string IDC_PROGRESS_TEXT.
long lProgress = 0;
hr = m_spCdromBurn->get_burnProgress(&lProgress);
if (SUCCEEDED(hr))
{
    SendMessage(GetDlgItem(IDC_PROGRESS),
        PBM_SETPOS, lProgress, 0);
    SetDlgItemInt(IDC_PROGRESS_TEXT, lProgress);
}

Sie können den aktuellen Zustand des Vorgangs abrufen, indem Sie IWMPCaku Überl::get _ burnStateaufrufen. Diese Methode ruft eine Enumeration ab, die den aktuellen Vorgang angibt, der ausgeführt wird.

// Retrieve the burn state.
WMPBurnState wmpbs = wmpbsUnknown;
HRESULT hr = m_spCdromBurn->get_burnState(&wmpbs);

if (SUCCEEDED(hr))
{
    // Set the burn state string.
    CComBSTR bstrState;
    switch (wmpbs)
    {
        case wmpbsUnknown:
        default:
            hr = bstrState.Append("Unknown state.");
            break;
        case wmpbsBusy:
            hr = bstrState.Append("Windows Media Player is Busy.");
            break;
        case wmpbsReady:
            hr = bstrState.Append("Ready to begin burning.");
            break;
        case wmpbsWaitingForDisc:
            hr = bstrState.Append("Waiting for disc.");
            break;
        case wmpbsRefreshStatusPending:
            hr = bstrState.Append("The burn playlist has changed.");
            m_spCdromBurn->refreshStatus();
            break;
        case wmpbsPreparingToBurn:
            hr = bstrState.Append("Preparing to burn the CD.");
            break;
        case wmpbsBurning:
            hr = bstrState.Append("The CD is being burned.");
            break;
        case wmpbsStopped:
            hr = bstrState.Append("The burning operation is stopped.");
            break;
        case wmpbsErasing:
            hr = bstrState.Append("Erasing the CD.");
            break;
    }
    if (SUCCEEDED(hr))
    {
        SetDlgItemTextW(IDC_BURN_STATE, bstrState.m_str);
    }
}

Rufen Sie zum Abrufen der Anzahl von Audiodaten in Sekunden, die die CD aufnehmen kann, IWMPC csvSelect::getItemInfo mit "AvailableTime" als ersten Parameter auf. Der von dieser Funktion abgerufene Wert wird durch eine Zeichenfolge dargestellt.

// Set "AvailableTime" string
CComBSTR bstrTime;
CComBSTR bstrItem;
HRESULT hr = bstrItem.Append("AvailableTime");
if (SUCCEEDED(hr))
{
    hr = m_spCdromBurn->getItemInfo(bstrItem, &bstrTime);
}
if (SUCCEEDED(hr))
{
    hr = bstrTime.Append(" seconds");
}
if (SUCCEEDED(hr))
{
    SetDlgItemTextW(IDC_AVAILABLE_TIME, bstrTime.m_str);
}

Um die Menge des freien Speicherplatzes auf einem Datenträger abzurufen, rufen Sie IWMPC csvSelect::getItemInfo mit "FreeSpace" als ersten Parameter auf. Der von dieser Funktion abgerufene Wert ist eine Zeichenfolge, die die Anzahl der auf dem Datenträger verfügbaren freien Bytes darstellt.

// Set "FreeSpace" string
CComBSTR bstrFreeSpace;
CComBSTR bstrItem;
HRESULT hr = bstrItem.Append("FreeSpace");
if (SUCCEEDED(hr))
{
    hr = m_spCdromBurn->getItemInfo(bstrItem, &bstrFreeSpace);
}
if (SUCCEEDED(hr))
{
    hr = bstrFreeSpace.Append(" bytes");
}
if (SUCCEEDED(hr))
{
    SetDlgItemTextW(IDC_FREE_SPACE, bstrFreeSpace.m_str);
}

Um die Gesamtkapazität eines Datenträgers abzurufen, rufen Sie IWMPC csvSelect::getItemInfo mit "TotalSpace" als ersten Parameter auf. Der von dieser Funktion abgerufene Wert ist eine Zeichenfolge, die der Gesamtzahl der Bytes auf dem Datenträger entspricht.

// Set "TotalSpace" string.
CComBSTR bstrTotalSpace;
CComBSTR bstrItem;
HRESULT hr = bstrItem.Append("TotalSpace");
if (SUCCEEDED(hr))
{
    hr = m_spCdromBurn->getItemInfo(bstrItem, &bstrTotalSpace);
}
if (SUCCEEDED(hr))
{
    hr = bstrTotalSpace.Append(" bytes");
}
if (SUCCEEDED(hr))
{
    SetDlgItemTextW(IDC_TOTAL_SPACE, bstrTotalSpace.m_str);
}

Vererenden einer CD

Abrufen der Schnittstelle zum Brennen von CDs

Starten des Burn-Prozesses

Löschen einer erneut beschreibbaren CD

Abrufen des Laufwerk- und Datenträgerstatus