0

メニューまたはリストを使用して、ユーザーが適切なデバイスを選択できるようにする方法を理解できませんでした。欠けているものがあります。理解できません。私の心を啓発してもらえますか?

void    fillDevices(HWND list)
{

IPropertyBag *tmpBag=NULL;
    tmpMonk->BindToStorage(0,0,IID_IPropertyBag,(void **)&tmpBag);
    VariantInit(&varName);
    //DevicePath-Description-FriendlyName
    checkIt(tmpBag->Read(L"FriendlyName",&varName,0));

// i need to fill it  with device names and be able to chose from the list 

    VariantClear(&varName);
    tmpBag->Release();

}
4

1 に答える 1

1

Windows SDK AMCap サンプルはまさにこれを行います。

// put all installed video and audio devices in the menus
//
void AddDevicesToMenu()
{
// ...
    while(hr = pEm->Next(1, &pM, &cFetched), hr==S_OK)
    {
        IPropertyBag *pBag=0;

        hr = pM->BindToStorage(0, 0, IID_IPropertyBag, (void **)&pBag);
        if(SUCCEEDED(hr))
        {
            VARIANT var;
            var.vt = VT_BSTR;
            hr = pBag->Read(L"FriendlyName", &var, NULL);
            if(hr == NOERROR)
            {
                AppendMenu(hMenuSub, MF_STRING, MENU_VDEVICE0 + uIndex,
                    var.bstrVal);
//...

Windows SDK の相対パス: \Samples\multimedia\directshow\capture\amcap

于 2012-08-22T16:37:52.747 に答える