Freigeben über


So ändern Sie Systemprofilversionen

[Das dieser Seite zugeordnete Feature Windows Media Format 11 SDK ist ein Legacyfeature. Es wurde von Source Reader und Sink Writer abgelöst. Source Reader und Sink Writer wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit quellleser und Senkenschreiber anstelle des Windows Media Format 11 SDK verwendet. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Jedes Mal, wenn Sie ein Profil-Manager-Objekt erstellen, analysiert es die Systemprofile. Sie können die Systemprofile mithilfe der Methoden IWMProfileManager::GetSystemProfileCount und IWMProfileManager::LoadSystemProfile durchlaufen, aber der Profil-Manager zählt und listet jeweils nur die Profile einer einzelnen Version auf. Wenn Sie diese Methode zum Suchen von Systemprofilen verwenden möchten, müssen Sie sicherstellen, dass sich der Profil-Manager mit der gewünschten Version befasst. Verwenden Sie die Methoden der IWMProfileManager2-Schnittstelle , um die vom Profil-Manager verwendete Systemprofilversion festzulegen und abzurufen.

Versionen werden mithilfe der Member des enumerationstyps WMT_VERSION angegeben. Wenn Sie die Systemprofilversion auf WMT_VER_9_0 festlegen, ist der Aufruf erfolgreich, aber die Systemprofilanzahl ist 0 (null). Dies liegt daran, dass keine vordefinierten Systemprofile die Windows Media Audio- und Video-Codecs der 9-Serie verwenden. Weitere Informationen zum Aktualisieren von Profilen zur Verwendung der neuesten Codecs finden Sie unter Wiederverwendung von Streamkonfigurationen.

Wenn Sie ein Systemprofil anhand seines GUID-Bezeichners laden, spielt es keine Rolle, welche Systemprofilversion der Profil-Manager verwendet. Weitere Informationen zum Laden von Systemprofilen finden Sie unter So laden Sie ein Systemprofil.

Der folgende Beispielcode zeigt, wie Die Systemprofilversion festgelegt und abgerufen wird. In diesem Beispiel wird printf für die Konsolenausgabe verwendet, und es muss "stdio.h" enthalten sein. Weitere Informationen zur Verwendung dieses Codes finden Sie unter Verwenden der Codebeispiele.

int main(void)
{
    HRESULT hr = S_OK;

    IWMProfileManager*  pProfileMgr  = NULL;
    IWMProfileManager2* pProfileMgr2 = NULL;

    WMT_VERSION         profileVersion;

    // Initialize COM.
    hr = CoInitialize(NULL);
    if(FAILED(hr))
    {
        printf("Could not initialize COM.");
        return 0;
    }

    // Create a profile manager object.
    hr = WMCreateProfileManager(&pProfileMgr);
    if(FAILED(hr))
    {
        printf("Could not create a profile manager object.");
        return 0;
    }

    // Get the IWMProfileManager2 interface.
    hr = pProfileMgr->QueryInterface(IID_IWMProfileManager2, 
                                     (void**) &pProfileMgr2);
    if(FAILED(hr))
    {
        printf("Could not get the IWMProfileManager2 interface.");
        SAFE_RELEASE(pProfileMgr);
        return 0;
    }

    // Release the old interface.
    SAFE_RELEASE(pProfileMgr);

    // Get the current system profile version.
    hr = pProfileMgr2->GetSystemProfileVersion(&profileVersion);
    if(FAILED(hr))
    {
        printf("Could not retrieve profile version.");
        printf("\nError code: 0x%X\n", hr);
        SAFE_RELEASE(pProfileMgr2);
        return 0;
    }
    
    // Display the current version.
    printf("Current version: ");
    switch(profileVersion)
    {
    case WMT_VER_4_0:
        printf("WMT_VER_4_0\n");
        break;
    case WMT_VER_7_0:
        printf("WMT_VER_7_0\n");
        break;
    case WMT_VER_8_0:
        printf("WMT_VER_8_0\n");
        break;
    case WMT_VER_9_0:
        printf("WMT_VER_9_0\n");
        break;
    }

    // Set the system profile version to 8.
    profileVersion = WMT_VER_8_0;

    hr = pProfileMgr2->SetSystemProfileVersion(profileVersion);
    if(FAILED(hr))
    {
        printf("Could not change profile version.");
        printf("\nError code: 0x%X\n", hr);
        SAFE_RELEASE(pProfileMgr2);
        return 0;
    }

    // Print verification.
    printf("Successfully set version to ");
    switch(profileVersion)
    {
    case WMT_VER_4_0:
        printf("WMT_VER_4_0\n");
        break;
    case WMT_VER_7_0:
        printf("WMT_VER_7_0\n");
        break;
    case WMT_VER_8_0:
        printf("WMT_VER_8_0\n");
        break;
    case WMT_VER_9_0:
        printf("WMT_VER_9_0\n");
        break;
    }

    // Clean up.
    SAFE_RELEASE(pProfileMgr2);
}

Verwenden von Systemprofilen