-1

我正在创建一个显示视频的程序,因为我使用的是 Delphi 和 directshow。我需要选择视频输入格式(NTSC、PAL、SECAM)。有一个对话框可让您进行此选择,但我不知道如何使用 delphi 或 c+ 和 directshow 显示它。显示让您选择模拟视频标准的对话框的过程是什么?

谢谢!

4

1 回答 1

1
function DisplayPropertyFrame(Filter: IBaseFilter; Handle: THandle): HResult;
var
  PropertyPages: ISpecifyPropertyPages;
  Pages: CAUUID;
  FilterInfo: TFilterInfo;
  pfilterUnk: IUnknown;
begin
  Result := E_FAIL;

  if Filter = NIL then EXIT;

  Result := Filter.QueryInterface(ISpecifyPropertyPages, PropertyPages);

  if (SUCCEEDED(Result)) then
  begin
    Filter.QueryFilterInfo(FilterInfo);
    Filter.QueryInterface(IUnknown, pfilterUnk);

    PropertyPages.GetPages(Pages);
    PropertyPages := NIL;

    OleCreatePropertyFrame(
       Handle,                 
       0,
       0,                   
       FilterInfo.achName,     
       1,                      
       @pfilterUnk,            
       Pages.cElems,           
       Pages.pElems,           
       0,                      
       0,
       NIL                  
    );

    pfilterUnk := NIL;
    FilterInfo.pGraph := NIL;
    CoTaskMemFree(Pages.pElems);
  end;
end;

function DisplayVideoCaptureDeviceProperty( Handle: THandle): HResult;
begin
  Result := DisplayPropertyFrame(VideoCaptureFilter, Handle);
end;
于 2013-07-11T22:23:37.033 回答