Menggunakan Contoh Kode SDK Format Media Windows

Banyak bagian penjelasan dari SDK ini termasuk contoh kode. Contoh ditulis agar sejelas mungkin dan ringkas. Saat membaca contoh, Anda harus mengetahui konvensi berikut.

  • Semua contoh diasumsikan untuk menyertakan windows.h dan wmsdk.h. File header lain yang diperlukan disebutkan dalam teks penjelasan.

  • Pemeriksaan kesalahan telah dibatasi untuk keluar dari fungsi jika terjadi kesalahan. Dalam aplikasi, Anda harus memeriksa kode kesalahan tertentu dan memberikan semacam pelaporan kesalahan.

    Saat memeriksa nilai pengembalian dari metode atau fungsi yang mengembalikan nilai HRESULT , Anda harus menggunakan makro GAGAL untuk menemukan apakah nilai yang dikembalikan menunjukkan kegagalan.

    HRESULT hr;
    hr = SomeFunction();
    if (FAILED(hr))
    {
       // Check for specific error values.
    }
    

    Banyak contoh dalam dokumentasi ini menggunakan makro bernama GOTO_EXIT_IF_FAILED, yang didefinisikan dalam kode berikut.

    #ifndef GOTO_EXIT_IF_FAILED
    #define GOTO_EXIT_IF_FAILED(hr) if(FAILED(hr)) goto Exit;
    #endif
    

    Contoh fungsi ini masing-masing memiliki tag bernama "Exit:", setelah itu semua antarmuka dan memori yang dialokasikan dalam fungsi dirilis dan kode kesalahan, jika ada, dikembalikan.

  • Antarmuka dan memori dirilis dalam contoh kode menggunakan makro bernama SAFE_RELEASE dan SAFE_ARRAY_DELETE. Makro ini ditentukan dalam kode berikut:

    #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
    
  • Seringkali, Anda harus menyertakan logika dari satu contoh dalam contoh lain agar contohnya bermakna. Dalam kasus tersebut, komentar TODO disertakan, dengan referensi ke contoh kode yang sesuai.

  • Untuk membuat kode lebih mudah dibaca, tidak ada fungsi contoh dalam dokumentasi ini yang memvalidasi parameter inputnya. Jika Anda menyalin salah satu fungsi ini ke dalam kode, Anda harus memvalidasi parameter input apa pun.

Persiapan