2013-07-11 2 views
-1

Я создаю программу, которая отображает видео, для этого я использую Delphi и directshow. Мне нужно выбрать формат видеовхода (NTSC, PAL, SECAM). Существует диалоговое окно, позволяющее сделать этот выбор, но я не знаю, как его отображать с помощью delphi или c + и directshow. Какова процедура отображения диалогового окна, позволяющего выбрать стандарт аналогового видео?Диалог аналогового видеостандарта

Спасибо!

+0

Не могли бы вы предоставить нам скриншот? –

+0

вы найдете, как отобразить диалоговое окно конфигурации устройства ввода в исходном коде AMCAP. Http://msdn.microsoft.com/en-us/library/windows/desktop/dd373424(v=vs.85).aspx – alexbuisson

+0

David , это диалог http://www.azcendant.com/images/EasyCapProperties.jpg – Carl

ответ

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; 
Смежные вопросы