Använda SDK-kodexempel för Windows Media Format
[Funktionen som är associerad med den här sidan, Windows Media Format 11 SDK, är en äldre funktion. Det har ersatts av Source Reader och Sink Writer. Source Reader och Sink Writer har optimerats för Windows 10 och Windows 11. Microsoft rekommenderar starkt att ny kod använder Source Reader och Sink Writer i stället för Windows Media Format 11 SDK, när det är möjligt. Microsoft föreslår att befintlig kod som använder äldre API:er skrivs om för att använda de nya API:erna om möjligt.]
Många av de förklarande avsnitten i denna SDK innehåller kodexempel. Exemplen skrivs för att vara så tydliga och koncisa som möjligt. När du läser exemplen bör du känna till följande konventioner.
Alla exempel antas innehålla windows.h och wmsdk.h. Alla andra nödvändiga huvudfiler nämns i den förklarande texten.
Felkontroll har begränsats till att avsluta funktionen om ett fel inträffar. I ett program bör du söka efter specifika felkoder och ange någon form av felrapportering.
När du kontrollerar returvärden från metoder eller funktioner som returnerar ett HRESULT- värde bör du använda makrot FAILED för att ta reda på om returvärdet indikerar fel.
HRESULT hr; hr = SomeFunction(); if (FAILED(hr)) { // Check for specific error values. }
Många av exemplen i den här dokumentationen använder ett makro med namnet GOTO_EXIT_IF_FAILED, som definieras i följande kod.
#ifndef GOTO_EXIT_IF_FAILED #define GOTO_EXIT_IF_FAILED(hr) if(FAILED(hr)) goto Exit; #endif
Dessa exempelfunktioner har var och en en tagg med namnet "Exit:", varefter alla gränssnitt och minne som allokeras i funktionen släpps och felkoden, om någon, returneras.
Gränssnitt och minne frigörs i kodexemplen med makron med namnet SAFE_RELEASE och SAFE_ARRAY_DELETE. Dessa makron definieras i följande kod:
#ifndef SAFE_RELEASE #define SAFE_RELEASE(x) \ if(x != NULL) \ { \ x->Release(); \ x = NULL; \ } #endif #ifndef SAFE_ARRAY_DELETE #define SAFE_ARRAY_DELETE(x) \ if(x != NULL) \ { \ delete[] x; \ x = NULL; \ } #endif
Ofta måste du inkludera logiken i ett exempel i ett annat exempel för att exemplet ska vara meningsfullt. I dessa fall ingår en TODO-kommentar, med en referens till lämpligt kodexempel.
För att göra koden enklare att läsa verifierar ingen av exempelfunktionerna i den här dokumentationen deras indataparametrar. Om du kopierar någon av dessa funktioner till koden bör du verifiera eventuella indataparametrar.
Relaterade ämnen