• Delphi DirectShow枚举设备代码片断


    var
      CreateDevEnum:ICreateDevEnum;
      EnumMoniker:IEnumMoniker;
      Moniker:IMoniker;
      PropertyBag:IPropertyBag;
      varName:OleVariant;
      hr:HRESULT;
    const
      IID_IPropertyBag: TGUID = '{55272A00-42CB-11CE-8135-00AA004BB851}';
    begin
      hr:=CoCreateInstance(CLSID_SystemDeviceEnum,nil,CLSCTX_INPROC_SERVER,IID_ICreateDevEnum,CreateDevEnum);
      Assert(hr=NOERROR);
      hr:=CreateDevEnum.CreateClassEnumerator(AM_KSCATEGORY_CAPTURE,EnumMoniker,0);
      Assert(hr=NOERROR);
      EnumMoniker.Reset;
      while EnumMoniker.Next(1,Moniker,nil)=S_OK do
      begin
        hr:=Moniker.BindToStorage(nil,nil,IID_IPropertyBag,PropertyBag);
        if Failed(hr) then Continue;
        VariantInit(varName);
        hr:=PropertyBag.Read('FriendlyName',varName,nil);
        if Succeeded(hr) then
        begin
          ShowMessage(varName);
          VariantClear(varName); 
        end;
      end;
    end;
  • 相关阅读:
    JS高级程序设计 第三章笔记
    JS高级程序设计第二章
    JS高级程序设计 第一章读书笔记
    markdown 尝试
    实验九
    第六章总结
    实验五
    第五章总结
    实验四
    实验三
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/1300585.html
Copyright © 2020-2023  润新知