ライブラリ ファイルとコンパイラ設定

[このページに関連付けられている機能である Windows Media Format 11 SDK は、レガシ機能です。 これは、ソース リーダーシンク ライターによって置き換えられます。 ソース リーダーシンク ライターは、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、Windows Media Format 11 SDK ではなくソース リーダーシンク ライターを使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

Windows Media Format SDK を使用してアプリケーションを開発するには、バージョン 6.0 以降Microsoft Visual C++使用する必要があります。 開発に適したプログラミング言語は C++ と C のみです。

この SDK に含まれるさまざまなヘッダー ファイルの内容を次の表に示します。

ヘッダー ファイル 説明
asferr.h ASF ファイル操作に関連するエラー コードを定義します。 このヘッダーは wmsdk.h に含まれています。
drmexternals.h デジタル著作権管理 (DRM) に使用される構造体、列挙体、および定数を定義します。 DRM を使用するアプリケーションを記述するときに、このヘッダーを含めます。
dshowasf.h Microsoft DirectShow QASF フィルターを定義します。 ASF ファイルを作成または読み取る DirectShow アプリケーションを作成するときに、このヘッダーを含めます。 詳細については、「 DirectShow と Windows Media」を参照してください。
msnetobj.h Windows Media Format SDK と共にインストールされたランタイム ライブラリの 1 つに実装される IRMGetLicense インターフェイスを定義します。
nserror.h Windows Media Technologies のエラー コードを定義します。 これらのエラー コードのサブセットのみが Windows Media Format SDK に関連します。 このヘッダーは wmsdk.h に含まれています。
wmdxva.h Windows Media ベースのコンテンツの再生に Microsoft DirectX ビデオ アクセラレーションを有効にするために必要なその他のヘッダーと定義が含まれています。 詳細については、「 DirectX ビデオ アクセラレーションの有効化」を参照してください。
wmnetsourcecreator.h ネットワーク ソース プラグインを作成するために必要な情報が含まれています。
wmsbuffer.h バッファー オブジェクトで使用されるインターフェイスを定義します。 ファイル読み取り用に独自のバッファーを作成するときに、このヘッダーを含めます。
wmsdk.h Windows Media Format SDK を使用するアプリケーションのメイン ヘッダー。 このヘッダーには定義は含まれますが、asferr.h、nserror.h、windows.h、wmsdkidl.h が含まれています。 この SDK を使用するすべてのアプリケーションにこのヘッダーを含めます。
wmsdkidl.h Windows Media Format SDK のほとんどのオブジェクトのインターフェイス、関数、構造体、列挙、および定数を定義します。 このヘッダーは wmsdk.h に含まれています。
wmsinternaladminnetsource.h ネットワーク ソース プラグインのインターフェイスを定義します。
wmsysprf.h システム プロファイルの定数を定義します。 このヘッダーは、識別子によってシステム プロファイルを読み込むアプリケーションに含めます。

Windows Media Format SDK を使用するには、コンパイラが正しく構成されている必要があります。 デバッグ モードでのビルドの構成は、リリース モードの構成とは異なります。 次の表に従って設定を構成します。 これらの設定はすべて、[プロジェクトの設定] ダイアログ ボックスで構成されます。 ダイアログ ボックスに移動するには、[プロジェクト] メニューから [設定] を選択します。

設定 デバッグ値 リリース値
(C/C++ タブ、カテゴリ = コード生成)ランタイム ライブラリを使用する マルチスレッド DLL のデバッグ マルチスレッド DLL
([リンク] タブ、カテゴリ = 全般)すべての既定のライブラリを無視する (チェック ボックス) オン オン
([リンク] タブ、カテゴリ = 全般)オブジェクト/ライブラリ モジュール Msvcrtd.lib を含め、Libc.lib やバリエーションを含まない Wmvcore.lib.Do。
Msvcrt.lib を含め、libc.lib やバリエーションを含まない Wmvcore.lib.Do。

Microsoft Visual Studio .NET を使用している場合は、次の表に示すように、設定が異なる場所に変更されています。 これらの設定はすべて、[ プロパティ ページ ] ダイアログ ボックスで構成されます。 ダイアログ ボックスにアクセスするには、ソリューション エクスプローラー ウィンドウでプロジェクトを右クリックし、コンテキスト メニューから [プロパティ] を選択します。

設定 デバッグ値 リリース値
(構成プロパティ / C/C++ / コード生成)ランタイム ライブラリ マルチスレッド デバッグ DLL (/MDd) マルチスレッド DLL (/MD)
(構成プロパティ/リンカー/入力)その他の依存関係 Msvcrtd.lib を含め、Libc.lib やバリエーションを含まない Wmvcore.lib.Do。
Msvcrt.lib を含め、libc.lib やバリエーションを含まない Wmvcore.lib.Do。
(構成プロパティ/リンカー/入力)すべての既定のライブラリを無視する はい はい

Wmvcore.dllまたはその他の DLL の読み込みを遅延させる場合は、リンク オプション /DELAYLOAD (Microsoft Visual C++ 6.0) または [Delay Loaded DLL in Microsoft Visual C++ .NET] を使用します。

さらに、Windows Media Format SDK のライブラリとヘッダーのディレクトリを含める必要があります。 Visual C++ 6.0 のディレクトリ設定を見つけるには、[ツール] メニューの [オプション] をクリックし、[ディレクトリ] タブをクリックします。Visual C++ .NET を使用する場合は、[ツール] メニューの [オプション] をクリックし、オプションの一覧で [プロジェクト/ VC++ ディレクトリ] を選択します。 次の表に示すように、ディレクトリを追加します。 Windows Media Format SDK のインストール ディレクトリを変更した場合、パスは異なります。

ディレクトリ タイプ 既定のパス
インクルード ファイル C:\WMSDK\WMFSDK11\include
ライブラリ ファイル C:\WMSDK\WMFSDK11\lib

Platform SDK を使用している場合、既定のパスは次のように表示されます。

ディレクトリ タイプ 既定のパス
インクルード ファイル C:\Program Files\Microsoft SDsK\Windows\v6.0\Include
ライブラリ ファイル C:\Program Files\Microsoft SDsK\Windows\v6.0\Lib

作成関数のいずれかを呼び出す前に、COM を Coinitialize または CoinitializeEx の呼び出しで初期化 する必要があります。 フリー スレッド モデルまたはアパートメント スレッド モデルのいずれかを使用できますが、アパートメント スレッド モデルでは、アプリケーションにスレッド処理の制限が課されます。 Microsoft コンポーネント オブジェクト モデル (COM) の詳細については、 Microsoft Web サイトの COM ページを参照してください。

メモ Digital Rights Management (DRM) によって保護されたファイルを再生または作成するアプリケーションには、Microsoft とは別に取得する必要がある個別の静的ライブラリが必要です。 詳細については、 Microsoft Web サイトの Windows メディア ライセンス フォームを参照してください。 DRM ライブラリを使用する場合は、Wmvcore.lib にリンクしないでください。

はじめに