In visual community 2015 I have a c++ project. In the cpp file top I have
#include "stdafx.h"
#include "VideoCaptureFilterSample.h"
#include "VideoCaptureFilterSampleDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
I also set when entering the project properties > VC++ Directories I added this directory in include: C:\Program Files %28x86%29\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses
The problem is when I type in my code this:
hr = CoCreateInstance(CLSID_SampleGrabber, NULL, CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&pGrabberF));
The CLSID_SampleGrabber not defined.
What I tried so far ? Downloaded directx sdk 9 and 6 and Microsoft sdk 7.1 and searched in google for qedit.h but I didn't find the file. Can't figure out how to define the CLSID_SampleGrabber
Declare it as follows:
extern "C" { extern GUID CLSID_SampleGrabber; }Then be sure to link to amstrmid.lib. You can grep the symbol out of the libs directories, in case you need others.
I didn't test this completely as I didn't have the dshow sample files handy, but when I debugged it, it had resolved to
c1f400a0-3f08-11d3-9f0b-006008039e37or something like that; you can now find a lot more about it if you google for the first part of that GUID: sometimes with magic guids all you need is a tiny hook and then you can dig up the rest easily.