Здравствуйте. Пишу программу по захвату видеоизображения с usb-камеры с помощью directshow. В Qt посмотрел в файлах dshow.h и проч, там объявления интерфейсов для видеозахвата полностью отсутствуют (такие как ICaptureGraphBuilder и тд и тп). Не проблема, создал свой файл, выдрал все объявления из BCB 6.0 и вставил в свой файл. Видео с камеры успешно захватывается. ПРоблема встала в следующем: на камере по умолчанию установлено очень большое разрешение (5M) что не нужно в принципе и к тому же увеличивает время дальнейшей обработки. Раньше получал настройки драйвера камеры типичным способом, описанным в msdn:
ISpecifyPropertyPages *pSpec;
CAUUID cauuid;
//pControl->Stop();
//IsRun=false;
HRESULT hr = pCap->QueryInterface(IID_ISpecifyPropertyPages,
(void **)&pSpec);
if(hr == S_OK)
{
hr = pSpec->GetPages(&cauuid);
hr = OleCreatePropertyFrame(DialogOwner, 30, 30, NULL, 1,
(IUnknown **)&pCap, cauuid.cElems,
(GUID *)cauuid.pElems, 0, 0, NULL);
CoTaskMemFree(cauuid.pElems);
pSpec->Release();
}
Проблема в том, что
undefined reference to `IID_ISpecifyPropertyPages'
При этом если на этом типе щёлкнуть то qt переходит в заинклюденый файл olectl.h и там он объявлен как extern const GUID IID_ISpecifyPropertyPages;
Как с этим бороться, а то чёто ничё не получается и в голову не приходит.
P.S. цитата из msdn:
IID_ISpecifyPropertyPages is defined as B196B28B-BAB4-101A-B69C-00AA00341D07
но чё с этим делать я тоже не знаю.