apShow.h
上传用户:maxzhb99
上传日期:2013-03-13
资源大小:48k
文件大小:2k
源码类别:

DirextX编程

开发平台:

Visual C++

  1. // apShow.h: CapShow 僋儔僗偺僀儞僞乕僼僃僀僗
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_APSHOW_H__F85DAB28_1077_4F71_9CD4_C95229E2F852__INCLUDED_)
  5. #define AFX_APSHOW_H__F85DAB28_1077_4F71_9CD4_C95229E2F852__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "BlendText.h" // Added by ClassView
  10. #include <dshow.h>
  11. #include <atlbase.h>
  12. #define SAFE_RELEASE(x) { if (x) x->Release(); x = NULL; }
  13. #define JIF(x) if (FAILED(hr=(x))) 
  14.     {Msg(TEXT("FAILED(hr=0x%x) in ") TEXT(#x) TEXT("n"), hr); return hr;}
  15. #define LIF(x) if (FAILED(hr=(x))) 
  16.     {Msg(TEXT("FAILED(hr=0x%x) in ") TEXT(#x) TEXT("n"), hr);}
  17. enum PLAYSTATE {Stopped, Paused, Running, Init};
  18. class CapShow  
  19. {
  20. public:
  21. void UpdataStr(HWND ghApp,CString str);
  22. void SetFont(HWND hwnd);
  23. void OnPaint(HWND hwnd);
  24. CBlendText m_blender;
  25. CapShow();
  26. virtual ~CapShow();
  27. HRESULT InitializeWindowlessVMR(HWND ghApp);
  28. void ResizeVideoWindow(HWND ghApp);
  29. void CloseInterfaces();
  30. HRESULT CaptureVideo(HWND ghApp);
  31. HRESULT PlayWindow(HWND ghApp);
  32. private:
  33. // DirectShow interfaces
  34. IMediaSeeking * g_pMS;
  35. PLAYSTATE g_psCurrent;
  36. IGraphBuilder * g_pGB;
  37. IVideoWindow  * g_pVW;
  38. IMediaControl * g_pMC;
  39. IMediaEventEx * g_pME;
  40. IGraphBuilder * g_pGraph;
  41. IVMRWindowlessControl * g_pWC;
  42. ICaptureGraphBuilder2 * g_pCapture;
  43. //font
  44. HFONT g_hFont;
  45. HRESULT FindCaptureDevice(IBaseFilter ** ppSrcFilter);
  46. HRESULT SetupVideoWindow(HWND ghApp);
  47. HRESULT GetInterfaces(HWND ghApp);
  48. };
  49. #endif // !defined(AFX_APSHOW_H__F85DAB28_1077_4F71_9CD4_C95229E2F852__INCLUDED_)