掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
サウンドデバイスの指定 (ID:100515)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
mailで送られても情報の共有にはならないので、こちらで。 教科書的(SDK的)には、エラー処理などをはしよると、 手順A (列挙部分) Dim oDevEnum As ICreateDevEnum Dim oEnum As IEnumMoniker Dim oMiniker As IMoniker Dim sName As String Dim iReturn As Long Dim pString As Long Dim oBindCtx As IBindCtx Set oDevEnum = New SystemDeviceEnum Call oDevEnum.CreateClassEnumerator _ (UUIDFromString(CLSID_AudioRendererCategory), oEnum, 0&) Set oBindCtx = CreateBindCtx(0&) iReturn = oEnum.Next(1&, oMoniker) Do While 1& = iReturn '名前を列挙する場合 pString = oMoniker.GetDisplayName(oBindCtx, Nothing) sName = SysAllocString(pString) 'ここに名前が格納される ' この辺りで配列などに名前を格納しておくなどをするコードを追加。 Call CoTaskMemFree(pString) pString = 0& Set oMoniker = Nothing iReturn = oEnum.Next(1&, oMoniker) Loop Set oBindCtx = Nothing Set oEnum = Nothing Set oDevEnum = Nothing で、フィルターの名前が列挙できますので、その後は、 手順B Monikerを保管しているのならば、 IMoniker.BindToObjectメソッドでフィルタを取得し、 それをIFilterGraph2.AddFilterで追加し、 IFilterGraph2.RenderFileでグラフを完成させる。 もしくは、手順C 名前をもとにしてVBらしく行くのならば、 FilgraphManager.RegFilterCollection.Itemメソッドでフィルタを列挙し、 IRegFilterInfo.Nameプロパティで該当する名前のフィルタを見つけ、 それに対してIRegFilterInfo.Filterメソッドでグラフに追加し、 FilgraphManager.RenderFileメソッドでグラフを完成させる。 という手順になります。 但し、A及びBでは、VB6で行う場合はタイプライブラリを作る/探すなどして それぞれの定義を使えるようにしなければなりません。そこが面倒ならば、 レジストリから情報を取得するAPI関数を幾つか用いて、 HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum\{E0F158E1-CB04-11D0-BD4E-00A0C911CE86} 以下のキーから直接情報を取得することで代用は可能です。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.