Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita da Lettore di Origine e Writer Sink. Il Source Reader e il Sink Writer sono stati ottimizzati per Windows 10 e Windows 11. Microsoft raccomanda vivamente che, quando possibile, per il nuovo codice si usino Source Reader e Sink Writer invece di Windows Media Format 11 SDK. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
Molte delle sezioni esplicative di questo SDK includono esempi di codice. Gli esempi vengono scritti per essere il più chiaro e conciso possibile. Quando si leggono gli esempi, è necessario conoscere le convenzioni seguenti.
Si presuppone che tutti gli esempi includano windows.h e wmsdk.h. Tutti gli altri file di intestazione obbligatori sono indicati nel testo esplicativo.
Il controllo degli errori è stato limitato all'interruzione della funzione se si verifica un errore. In un'applicazione è necessario verificare la presenza di codici di errore specifici e fornire una segnalazione degli errori.
Quando si controllano i valori restituiti da metodi o funzioni che restituiscono un valore HRESULT, è consigliabile utilizzare la macro FAILED per determinare se il valore restituito indica un errore.
HRESULT hr; hr = SomeFunction(); if (FAILED(hr)) { // Check for specific error values. }Molti degli esempi in questa documentazione usano una macro denominata GOTO_EXIT_IF_FAILED, definita nel codice seguente.
#ifndef GOTO_EXIT_IF_FAILED #define GOTO_EXIT_IF_FAILED(hr) if(FAILED(hr)) goto Exit; #endifQueste funzioni di esempio hanno un tag denominato "Exit:", dopo il quale vengono rilasciate tutte le interfacce e la memoria allocata nella funzione e il codice di errore, se presente, viene restituito.
Le interfacce e la memoria vengono rilasciate negli esempi di codice usando macro denominate SAFE_RELEASE e SAFE_ARRAY_DELETE. Queste macro sono definite nel codice seguente:
#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; \ } #endifSpesso, è necessario includere la logica di un esempio in un altro esempio perché l'esempio sia significativo. In questi casi viene incluso un commento TODO, con un riferimento all'esempio di codice appropriato.
Per semplificare la lettura del codice, nessuna delle funzioni di esempio in questa documentazione convalida i parametri di input. Se si copia una di queste funzioni nel codice, è necessario convalidare tutti i parametri di input.
Argomenti correlati