ICreateDevEnum::CreateClassEnumerator メソッド (strmif.h)

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

CreateClassEnumerator メソッドは、指定したデバイス カテゴリの列挙子を作成します。

構文

HRESULT CreateClassEnumerator(
  [in]  REFCLSID     clsidDeviceClass,
  [out] IEnumMoniker **ppEnumMoniker,
  [in]  DWORD        dwFlags
);

パラメーター

[in] clsidDeviceClass

デバイス カテゴリのクラス識別子 (CLSID) を指定します。 「カテゴリのフィルター」を参照してください。

[out] ppEnumMoniker

IEnumMoniker インターフェイスへのポインターを受け取ります。 呼び出し元はインターフェイスを解放する必要があります。

[in] dwFlags

0 個以上のフラグのビットごとの組み合わせ。 0 の場合、メソッドはカテゴリ内のすべてのフィルターを列挙します。 フラグが設定されている場合、列挙には、指定したフラグに一致するフィルターのみが含まれます。 次のフラグが定義されています。

フラグ 説明
CDEF_DEVMON_CMGR_DEVICE オーディオ圧縮マネージャー (ACM) またはビデオ圧縮マネージャー (VCM) を使用して、オーディオコーデックまたはビデオ コーデックを列挙します。
CDEF_DEVMON_DMO DirectX メディア オブジェクト (DMU) を列挙します。
CDEF_DEVMON_FILTER ネイティブ DirectShow フィルターを列挙します。
CDEF_DEVMON_PNP_DEVICE ハードウェア デバイスプラグ アンド プレイ列挙します。

戻り値

次のいずれかの HRESULT 値を返します。

リターン コード 説明
S_OK
正常終了しました。
E_OUTOFMEMORY
メモリが不足しています。
S_FALSE
clsidDeviceClass で指定されたカテゴリが存在しないか、空です。
E_POINTER
NULL ポインター引数。

注釈

カテゴリが存在しないか空の場合、戻り値はS_FALSEされ、 ppEnumMoniker パラメーターは NULL 値を受け取ります。 したがって、 SUCCEEDED マクロを使用する代わりに、戻り値S_OKをテストします。

C++
IEnumMoniker *pEnum = NULL;
hr = pSysDevEnum->CreateClassEnumerator(
    CLSID_VideoCompressorCategory, &pEnum, 0);
if (hr == S_OK) 
{
    // Safe to dereference pEnum.
    pEnum->Release();
}
IEnumMoniker インターフェイスを使用して、デバイス カテゴリのフィルターを表すモニカーを列挙します。 モニカーは IMoniker インターフェイスをサポートしています。 CreateClassEnumerator によって作成されたモニカーでは、IGetCapabilitiesKey インターフェイスもサポートされます。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー strmif.h (Dshow.h を含む)
Library Strmiids.lib

こちらもご覧ください

エラーコードと成功コード

ICreateDevEnum インターフェイス