Microsoft DirectX 8.0

DMO 登録関数

アプリケーションは DMO 登録関数を利用して、Microsoft® DirectX® Media Object (DMO) の登録と列挙を行うことができる。これらの関数は、Dmoreg.h ファイルで宣言される。

DMORegisterDMO を登録する。
DMOUnregisterDMO の登録を解除する。
DMOEnum登録されている DMO を列挙する。
DMOGetTypesDMO の登録されているメディア タイプを取得する。
DMOGetNameDMO の登録名を取得する。

DMORegister

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 メソッドは生成可能なすべての圧縮解除タイプを返す。

DMOUnregister

DMO 登録関数

DMO の登録を解除する。

構文

HRESULT DMOUnregister(
   REFCLSID clsidDMO,
   REFGUID guidCategory
);

パラメータ

clsidDMO
DMO のクラス識別子 (CLSID)。
guidCategory
削除する DMO が属するカテゴリを指定する カテゴリ GUID。すべてのカテゴリで DMO の登録を解除するには GUID_NULL を使用する。

戻り値

HRESULT 値を返す。以下の値をとる。

S_FALSEこの CLSID は指定されたカテゴリに登録されていない。
S_OK成功。
E_INVALIDARG無効な引数。

DMOEnum

DMO 登録関数

登録されている 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 のセットを列挙する。

DMOGetTypes

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
関数がデータを格納する pInputTypesDMO_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 に設定する。

DMOGetName

DMO 登録関数

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' に設定される。