Číst v angličtině

Sdílet prostřednictvím


Ukládání profilů

[Funkce přidružená k této stránce, Windows Media Format 11 SDK, je starší funkce. Bylo nahrazeno zdrojovým čtečkou a výstupním zapisovačem . Zdrojový čtečka a výstupní zapisovač jsou optimalizované pro Windows 10 a Windows 11. Microsoft důrazně doporučuje, aby nový kód používal Čtečka zdrojů a Zapisovač výstupu místo Windows Media Format 11 SDK, pokud je to možné. Microsoft navrhuje, aby se stávající kód, který používá starší rozhraní API, přepsal, aby se nová rozhraní API používala, pokud je to možné.]

Pomocí metody IWMProfileManager::SaveProfile metodu můžete uložit obsah objektu profilu do řetězce formátovaného pomocí XML. Nejsou k dispozici žádné metody pro uložení řetězce profilu do souboru; Můžete použít rutiny vstupně-výstupních operací souborů podle vašeho výběru.

Poznámka

Nikdy byste neměli měnit řetězec profilu zapsaný do souboru. Všechny změny, které chcete provést v profilu, by se měly provádět programově. Změna hodnot v souboru .prx může způsobit nepředvídatelné výsledky.

 

Následující příklad je funkce pro uložení profilu do souboru pomocí standardních vstupně-výstupních operací ve stylu C. Chcete-li zkompilovat aplikaci, která používá tento příklad, musíte do projektu zahrnout stdio.h.

HRESULT ProfileToFile(IWMProfileManager* pProfileMgr, 
                      IWMProfile* pProfile)
{
    HRESULT hr = S_OK;

    FILE*   pFile;
    
    WCHAR*  pwszProfileString = NULL;
    DWORD   cchProfileString = 0;

    // Save the profile to a string.
    // First, retrieve the size of the string required.
    hr = pProfileMgr->SaveProfile(pProfile, 
                                  NULL, 
                                  &cchProfileString);
    if(FAILED(hr))
    {
        printf("Could not get the profile string size.");
        return hr;
    }

    // Allocate memory to hold the string.
    pwszProfileString = new WCHAR[cchProfileString];

    if(pwszProfileString == NULL)
    {
        printf("Could not allocate memory for the profile string.");
        return E_OUTOFMEMORY;
    }

    // Retrieve the string.
    hr = pProfileMgr->SaveProfile(pProfile, 
                                  pwszProfileString, 
                                  &cchProfileString);
    if(FAILED(hr))
    {
        printf("Could not save the profile string.");
        return hr;
    }

    // Create the output file.
    pFile = fopen("MyProfile.prx", "w");

    // Write the profile string to the file.
    fprintf(pFile, "%S\n", pwszProfileString);

    // Close the file.
    fclose(pFile);

    delete[] pwszProfileString;

    return S_OK;
}

práce s profily