Microsoft DirectX 9.0 |
The WDM Video Capture filter exposes three interfaces for controlling a camcorder.
IAMExtDevice | The base interface for external device control. |
IAMExtTransport | Controls the VCR functions. |
IAMTimecodeReader | Reads timecode from the device. |
Note To use these interfaces with the MSDV camcorder driver, include the header file XPrtDefs.h in your project.
After you select a capture device and create an instance of the capture filter, query the filter for these interfaces. The following example declares a custom structure that holds the interface pointers, along with Boolean values that specify the availability of each interface:
struct _MyDevCap
{
IAMExtDevice *pDevice;
IAMExtTransport *pTransport;
IAMTimecodeReader *pTimecode;
BOOL bHasDevice;
BOOL bHasTransport;
BOOL bHasTimecode;
} MyDevCap;
HRESULT hr;
IBaseFilter *pDVCam; // Pointer to the capture filter.
// Create an instance of the capture filter (not shown).
hr = pDVCam->QueryInterface(IID_IAMExtDevice, (void **)&MyDevCap.pDevice);
MyDevCap.bHasDevice = (SUCCEEDED(hr));
hr = pDVCam->QueryInterface(IID_IAMExtTransport, (void **)&MyDevCap.pTransport);
MyDevCap.bHasTransport = (SUCCEEDED(hr));
hr = pDVCam->QueryInterface(IID_IAMTimecodeReader, (void **)&MyDevCap.pTimecode);
MyDevCap.bHasTimecode = (SUCCEEDED(hr));