Windows 미디어 형식 SDK 코드 예제 사용
[이 페이지와 연결된 기능인 Windows Media Format 11 SDK는 레거시 기능입니다. 원본 판독기 및 싱크 작성기에 의해 대체되었습니다. 원본 판독기 및 싱크 작성기는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 소스 판독기 및 싱크 작성기를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
이 SDK의 많은 설명 섹션에는 코드 예제가 포함되어 있습니다. 예제는 가능한 한 명확하고 간결하게 작성됩니다. 예제를 읽을 때는 다음 규칙을 알고 있어야 합니다.
모든 예제는 windows.h 및 wmsdk.h를 포함하는 것으로 간주됩니다. 다른 필수 헤더 파일은 설명 텍스트에 설명되어 있습니다.
오류가 발생하는 경우 오류 검사가 함수의 중단으로 제한되었습니다. 애플리케이션에서 특정 오류 코드를 검사 일종의 오류 보고를 제공해야 합니다.
HRESULT 값을 반환하는 메서드 또는 함수에서 반환 값을 확인할 때 FAILED 매크로를 사용하여 반환 값이 실패를 나타내는지 여부를 검색해야 합니다.
HRESULT hr; hr = SomeFunction(); if (FAILED(hr)) { // Check for specific error values. }
이 설명서의 많은 예제에서는 다음 코드에 정의된 GOTO_EXIT_IF_FAILED 매크로를 사용합니다.
#ifndef GOTO_EXIT_IF_FAILED #define GOTO_EXIT_IF_FAILED(hr) if(FAILED(hr)) goto Exit; #endif
이러한 예제 함수에는 각각 "Exit:"라는 태그가 있으며, 그 후에 함수에 할당된 모든 인터페이스와 메모리가 해제되고 오류 코드(있는 경우)가 반환됩니다.
인터페이스 및 메모리는 SAFE_RELEASE 및 SAFE_ARRAY_DELETE 라는 매크로를 사용하여 코드 예제에서 릴리스됩니다. 이러한 매크로는 다음 코드에 정의되어 있습니다.
#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
예제를 의미하려면 한 예제의 논리를 다른 예제에 포함해야 하는 경우가 많습니다. 이러한 인스턴스에서는 적절한 코드 예제에 대한 참조와 함께 TODO 주석이 포함됩니다.
코드를 더 쉽게 읽을 수 있도록 이 설명서의 예제 함수 중 입력 매개 변수의 유효성을 검사하지 않습니다. 이러한 함수를 코드에 복사하는 경우 입력 매개 변수의 유효성을 검사해야 합니다.
관련 항목