12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #ifndef __SAMPLE_GRABBER_CB__
- #define __SAMPLE_GRABBER_CB__
- #pragma once
- #include <Dshow.h>
- // 别名,为解决:无法打开包括文件:"dxtrans.h": No such file or directory
- #pragma include_alias( "dxtrans.h", "qedit.h" )
- #define __IDxtCompositor_INTERFACE_DEFINED__
- #define __IDxtAlphaSetter_INTERFACE_DEFINED__
- #define __IDxtJpeg_INTERFACE_DEFINED__
- #define __IDxtKey_INTERFACE_DEFINED__
- // VS2008以上,需要将Qedit放到本地目录;
- #if _MSC_VER > 1500
- #include "qedit.h"
- #else
- #include <Qedit.h>
- #endif
- #pragma comment(lib, "Strmiids.lib")
- extern BOOL bOneShot;//全局变量
- class CSampleGrabberCB :public ISampleGrabberCB
- {
- public:
- CSampleGrabberCB(void);
- ~CSampleGrabberCB(void);
- public:
- long lWidth;
- long lHeight;
- TCHAR m_szFileName[MAX_PATH];// 位图文件名称
- STDMETHODIMP_(ULONG) AddRef() { return 2; }
- STDMETHODIMP_(ULONG) Release() { return 1; }
- STDMETHODIMP QueryInterface(REFIID riid, void ** ppv)
- {
- if( riid == IID_ISampleGrabberCB || riid == IID_IUnknown )
- {
- *ppv = (void *)this;
- return NOERROR;
- }
- return E_NOINTERFACE;
- }
- STDMETHODIMP SampleCB( double SampleTime, IMediaSample * pSample ){
- return 0;
- }
- STDMETHODIMP BufferCB( double dblSampleTime, BYTE * pBuffer, long lBufferSize );
- BOOL SaveBitmap(BYTE * pBuffer, long lBufferSize );
- };
- extern CSampleGrabberCB mCB;
- #endif
|