Microsoft Media Foundation では、Webカメラ(ビデオキャプチャデバイス)、マイク(オーディオキャプチャデバイス)などを扱うことができます。
PCに接続しているデバイスの情報を取得するにはMFEnumDeviceSourcesメソッドを用います。
この関数は1つの入力と2つの出力を引数に取ります、戻り値はエラーコードです。
- 入力: IMFAttributes *pAttributes
SetGUIDメソッドをを用いて、key:MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPEに
ビデオキャプチャデバイスならMF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID
オーディオキャプチャデバイスならMF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_GUIDがセットされている必要があります。 - 出力1: IMFActivate ***pppSourceActivate
IMFActivate型へのポインタの配列を受け取る。
IMFActivateはIMFAttributesの派生クラスで各種Get関数を用いることでデバイスの情報を取得することが出来る。
解放時は配列のそれぞれの要素をRelease()し、配列(の先頭アドレス)にたいして CoTaskMemFree()を実行する必要がある。 - 出力2: UINT32 *pcSourceActivate
pppSourceActivateに渡される配列の要素数