다음을 통해 공유


프로필 저장

[이 페이지와 연결된 기능인 Windows Media Format 11 SDK는 레거시 기능입니다. 원본 판독기 및 싱크 작성기에 의해 대체되었습니다. 원본 판독기 및 싱크 작성기는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 소스 판독기 및 싱크 기록기를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

IWMProfileManager::SaveProfile 메서드를 사용하여 프로필 개체의 내용을 XML 형식의 문자열에 저장할 수 있습니다. 프로필 문자열을 파일에 저장하는 메서드는 제공되지 않습니다. 원하는 파일 I/O 루틴을 사용할 수 있습니다.

참고

파일에 기록된 프로필 문자열을 변경하지 않아야 합니다. 프로필을 변경하려면 프로그래밍 방식으로 변경해야 합니다. .prx 파일의 값을 변경하면 예측할 수 없는 결과가 발생할 수 있습니다.

 

다음 예제는 표준 C 스타일 파일 I/O를 사용하여 파일에 프로필을 저장하는 함수입니다. 이 예제를 사용하는 애플리케이션을 컴파일하려면 프로젝트에 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;
}

프로필 작업