Microsoft DirectX 8.0 |
アプリケーションは DMO 登録関数を利用して、Microsoft® DirectX® Media Object (DMO) の登録と列挙を行うことができる。これらの関数は、Dmoreg.h ファイルで宣言される。
DMORegister DMO を登録する。 DMOUnregister DMO の登録を解除する。 DMOEnum 登録されている DMO を列挙する。 DMOGetTypes DMO の登録されているメディア タイプを取得する。 DMOGetName DMO の登録名を取得する。
DMO を登録する。
構文
HRESULT DMORegister( LPCWSTR szName, REFCLSID clsidDMO, REFGUID guidCategory, DWORD dwFlags, DWORD cInTypes, const DMO_PARTIAL_MEDIATYPE *pInTypes, DWORD cOutTypes, const DMO_PARTIAL_MEDIATYPE *pOutTypes );
パラメータ
- szName
- DMO のわかりやすい名前が格納された、NULL で終わる文字列。79 文字を超える名前は切り詰められることがある。
- clsidDMO
- DMO のクラス識別子 (CLSID)。
- guidCategory
- DMO のカテゴリを指定するカテゴリ GUID。
- dwFlags
- DMO_REGISTER_FLAGS 列挙の 0 個以上のフラグのビット単位の論理和。
- cInTypes
- 登録する入力メディア タイプの数。0 も指定できる。
- pInTypes
- 入力メディア タイプを指定する DMO_PARTIAL_MEDIATYPE 構造体の配列を指すポインタ。配列のサイズは cInTypes パラメータによって指定する。
- cOutTypes
- 登録する出力メディア タイプの数。
- pOutTypes
- 出力メディア タイプを指定する DMO_PARTIAL_MEDIATYPE 構造体の配列を指すポインタ。配列のサイズは cOutTypes パラメータによって指定する。0 も指定できる。
戻り値
HRESULT 値を返す。以下の値をとる。
S_OK 成功 E_FAIL 失敗 E_INVALIDARG 無効な引数
注意
この関数は、DMO に関する情報をレジストリに追加する。アプリケーションまたはソフトウェア コンポーネントは、DMOEnum 関数を呼び出すことにより、この情報を使って、使用する必要がある DMO を見つける。たとえば、ビデオ ストリームをエンコードするには、DMOCATEGORY_VIDEO_ENCODER カテゴリで、条件に一致したメディア タイプの DMO を検索する。
この関数によって登録されるメディア タイプは、DMO の検索だけを目的としている。IMediaObject::GetInputType メソッドおよび IMediaObject::GetOutputType メソッドによって返されるタイプに、必ずしも一致しない。たとえば、デコーダは、主要な入力タイプだけを登録することがある。DMO が作成され、入力タイプを設定すると、GetOutputType メソッドは生成可能なすべての圧縮解除タイプを返す。
DMO の登録を解除する。
構文
HRESULT DMOUnregister( REFCLSID clsidDMO, REFGUID guidCategory );
パラメータ
- clsidDMO
- DMO のクラス識別子 (CLSID)。
- guidCategory
- 削除する DMO が属するカテゴリを指定する カテゴリ GUID。すべてのカテゴリで DMO の登録を解除するには GUID_NULL を使用する。
戻り値
HRESULT 値を返す。以下の値をとる。
S_FALSE この CLSID は指定されたカテゴリに登録されていない。 S_OK 成功。 E_INVALIDARG 無効な引数。
登録されている DMO を列挙する。呼び出し元はカテゴリ、メディア タイプ、またはその両方を基準にして検索できる。
構文
HRESULT DMOEnum( REFGUID guidCategory, DWORD dwFlags, DWORD cInTypes, const DMO_PARTIAL_MEDIATYPE *pInTypes, DWORD cOutTypes, const DMO_PARTIAL_MEDIATYPE *pOutTypes, IEnumDMO **ppEnum );
パラメータ
- guidCategory
- 検索する DMO のカテゴリを指定する カテゴリ GUID。すべてのカテゴリを検索するには GUID_NULL を使用する。
- dwFlags
- DMO_ENUM_FLAGS 列挙の 0 個以上のフラグのビット単位の論理和。
- cInTypes
- 検索条件として使用する入力メディア タイプの数。すべての入力タイプを条件に適合させるには 0 を使用する。
- pInTypes
- 入力メディア タイプが格納された DMO_PARTIAL_MEDIATYPE 構造体の配列を指すポインタ。cInTypes パラメータで配列のサイズを指定する。
- cOutTypes
- 検索条件として使用する出力メディア タイプの数。すべての出力タイプを条件に適合させるには 0 を使用する。
- pOutTypes
- 出力メディア タイプが格納された DMO_PARTIAL_MEDIATYPE 構造体の配列を指すポインタ。cOutTypes パラメータで配列のサイズを指定する。
- ppEnum
- 列挙子の IEnumDMO インターフェイスを受け取る変数のアドレス。
戻り値
HRESULT 値を返す。以下の値をとる。
S_OK 成功 E_FAIL 失敗 E_OUTOFMEMORY メモリ不足
注意
このメソッドは、IEnumDMO インターフェイスをサポートする列挙子オブジェクトを指すポインタを返す。アプリケーションは IEnumDMO インターフェイスを使って、検索条件に適合する DMO のセットを列挙する。
DMO に対して登録されているメディア タイプを取得する。
構文
HRESULT DMOGetTypes( REFCLSID clsidDMO, unsigned long ulInputTypesRequested, unsigned long *pulInputTypesSupplied, DMO_PARTIAL_MEDIATYPE *pInputTypes, unsigned long ulOutputTypesRequested, unsigned long *pulOutputTypesSupplied, DMO_PARTIAL_MEDIATYPE *pOutputTypes );
パラメータ
- clsidDMO
- DMO のクラス識別子 (CLSID)。
- ulInputTypesRequested
- pInputTypes パラメータによって渡される配列のサイズ。
- pulInputTypesSupplied
- 関数がデータを格納する pInputTypes の DMO_PARTIAL_MEDIATYPE 構造体の数を受け取る変数を指すポインタ。
- pInputTypes
- 呼び出し元によって割り当てられた DMO_PARTIAL_MEDIATYPE 構造体の配列を指すポインタ。配列のサイズは ulInputTypesRequested パラメータによって取得される。関数は、DMO に対して登録されている入力タイプを配列に格納する。
- ulOutputTypesRequested
- pOutputTypes パラメータによって渡される配列のサイズ。
- pulOutputTypesSupplied
- 関数がデータを格納する pOutputTypes の DMO_PARTIAL_MEDIATYPE 構造体の数を受け取る変数を指すポインタ。
- pOutputTypes
- 呼び出し元によって割り当てられた DMO_PARTIAL_MEDIATYPE 構造体の配列を指すポインタ。配列のサイズは ulOutputTypesRequested パラメータによって取得される。関数は、DMO に対して登録されている DMO 出力タイプを配列に格納する。
戻り値
HRESULT 値を返す。以下の値をとる。
S_FALSE 配列が小さすぎる S_OK 成功 E_FAIL 失敗
注意
配列のいずれかが、登録されているすべてのタイプを格納するには小さすぎる場合、関数は配列にデータを格納するが、S_FALSE を返す。
DMO がメディア タイプを登録しなかった場合、関数は S_OK を返し、*pulInputTypesSupplied と *pulOutputTypesSupplied を 0 に設定する。
DMO の登録名を取得する。
構文
HRESULT DMOGetName( REFCLSID clsidDMO, WCHAR szName[] );
パラメータ
- clsidDMO
- DMO のクラス識別子 (CLSID)。
- szName
- DMO の名前を受け取る 80 個の Unicode 文字の配列。呼び出し元は配列を割り当てる必要がある。名前は NULL で終わる文字列である。
戻り値
HRESULT 値を返す。以下の値をとる。
S_FALSE この DMO に対して名前が登録されていない、または名前の長さが 0 である。 S_OK 成功。 E_FAIL 失敗。
注意
メソッドが S_FALSE を返すと、szName が '\0' に設定される。