34#ifndef DOXYGEN_SHOULD_SKIP_THIS
37#include <visp3/core/vpConfig.h>
38#if (defined(VISP_HAVE_DIRECTSHOW))
40#include <visp3/sensor/vpDirectShowDevice.h>
48bool vpDirectShowDevice::init(
const CComPtr<IMoniker> &pMoniker)
53 CComPtr<IPropertyBag> pPropBag;
54 pMoniker->BindToStorage(0, 0, IID_IPropertyBag, (
void **)(&pPropBag));
60 VariantInit(&varName);
61 VariantInit(&varDesc);
62 VariantInit(&varDevPath);
63 char tmp[FILENAME_MAX];
65 hr = pPropBag->Read(L
"FriendlyName", &varName, 0);
69 snprintf(tmp, FILENAME_MAX,
"%S", varName.bstrVal);
73 VariantClear(&varName);
75 hr = pPropBag->Read(L
"Description", &varDesc, 0);
79 snprintf(tmp, FILENAME_MAX,
"%S", varDesc.bstrVal);
83 VariantClear(&varDesc);
85 hr = pPropBag->Read(L
"DevicePath", &varDevPath, 0);
89 snprintf(tmp, FILENAME_MAX,
"%S", varDevPath.bstrVal);
93 VariantClear(&varDevPath);
104bool vpDirectShowDevice::operator==(vpDirectShowDevice &dev)
106 return name == dev.name && desc == dev.desc && devPath == dev.devPath;
109VISP_EXPORT std::ostream &operator<<(std::ostream &os, vpDirectShowDevice &dev)
111 return os << dev.name << std::endl << dev.desc << std::endl << dev.devPath;
114#elif !defined(VISP_BUILD_SHARED_LIBS)
117void dummy_vpDirectShowDevice() { }