コンボボックスにデバイスの列挙をしたい – プログラミング – Home

コンボボックスにデバイスの列挙をしたい
 
通知
すべてクリア

コンボボックスにデバイスの列挙をしたい


あさひ
 あさひ
(@あさひ)
ゲスト
結合: 22年前
投稿: 9
Topic starter  

Directshowを使用した、デバイスの列挙を行うためのコードを書いています。

IPropertyBag *pPropBag;
pMoniker->BindToStorage(0, 0, IID_IPropertyBag, (void **)&pPropBag);

VARIANT varName;
varName.vt = VT_BSTR;
pPropBag->Read(LFriendlyName, &varName, 0);

// コンボボックスにデバイスの名前を列挙する
m_combo1.InsertString(-1,varName.bstrVal);

SysFreeString(varName.bstrVal);
pPropBag->Release();
pMoniker->Release();

ヘルプを見ながら、上のコードを書いてみました。
コンボボックスへデバイス名を入れる場合、

m_combo1.InsertString(-1,  ?   );

今は、適当にvarName.bstrValと入れているのですが、
?の部分に何を記述すればいいのか、わかりません。
VARIANT型だから、など関係するのでしょうか?


引用解決済
トピックタグ
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

Read関数がVT_BSTR型の値を返すことが保証されているのなら、
問題ないでしょう。

確実にVT_BSTR型が返ってくる保証が無いなら、
varName.bstrValを参照する前に、
varName.vt==VT_BSTRなのか確認します。

あるいは、VariantChangeTypeを使って、
VT_BSTRに(変換可能ならば)変換することもできます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました