首页|操作系统|软件开发|网页制作|媒体动画|数据库|ASP教程|ASP.NET教程|PHP教程|JSP教程|XML教程|建站资料|软件学院|行业资讯|平面设计|网络安全|晒IT论坛|IT人才
  位置: 晒IT >> 软件开发 >> VC教程 >> 正文
 
 
使用directShow播放摄像头的基类
使用directShow播放摄像头的基类
 
 
// Camera.h: interface for the CCamera class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_CAMERA_H__B5ACFC9D_D275_4114_940F_213B07C494B0__INCLUDED_)
#define AFX_CAMERA_H__B5ACFC9D_D275_4114_940F_213B07C494B0__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "Dshow.h"
#include "amstream.h"
#include "Qedit.h"

class CCamera  
{
public:
    CCamera();
    virtual ~CCamera();
    int         m_iTotal;

private:
    DWORD                    m_dwRegister;
    IMoniker*                m_gVideoMoniker[3];    // This will access the actual devices
    IBaseFilter*            m_pSrc[3];
    IGraphBuilder*            m_pGraph[3];
    ICaptureGraphBuilder2*  m_pCapture[3];
    IVideoWindow*            m_pVW[3];
    IMediaControl*            m_pMc[3];
    IBaseFilter*            m_pF[3];
    ISampleGrabber*            m_pGrab[3];
    IBaseFilter*            m_pNull[3];
    HWND                    m_hCapWnd[3];

public:
    BOOL    CCameraInit();
    BOOL    CCameraBindFilter();
//    BOOL    CCameraFormat();
//    BOOL    CCameraPreviewWindow();
//    BOOL    GetPin(IBaseFilter* pFilter, PIN_DIRECTION PinDir, IPin** ppPin);
    HRESULT GetUnconnectedPin(IBaseFilter* pFilter, PIN_DIRECTION PinDir, IPin** ppPin);
    BOOL    ConnectFilters(IGraphBuilder* pGraph, IBaseFilter* pFirst, IBaseFilter* pSecond);
    HRESULT AddToRot(IUnknown* pUnkGraph, DWORD* pdwRegister);
    void    RemoveFromRot(DWORD pdwRegister);
    BOOL    CCameraGetImage(int i);
//    BOOL    CCameraSizeImage(CBmpProc* aBmpProc, CRect aRect, CString sFilePath, int nCamera);

    BOOL    CreteMultileveDir(CString strFilePath);
    void    MyFreeMediaType(AM_MEDIA_TYPE& mt);
    WCHAR*  ToWChar(char* str);
};

#endif // !defined(AFX_CAMERA_H__B5ACFC9D_D275_4114_940F_213B07C494B0__INCLUDED_)





// Camera.cpp: implementation of the CCamera class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "CameraClientOne.h"
#include "Camera.h"
#include <vfw.h>

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CCamera::CCamera()
{
    m_iTotal = 0;
    for(int i=0; i<1; i++)
        {
            m_gVideoMoniker[i] = NULL;
            m_hCapWnd[i]       = NULL;
            m_pCapture[i]      = NULL;
            m_pF[i]               = NULL;
            m_pGrab[i]           = NULL;
            m_pMc[i]           = NULL;
            m_pSrc[i]           = NULL;
            m_pVW[i]           = NULL;
            m_pNull[i]           = NULL;
  • 上一篇: Windows CE 开发初步
  • 下一篇: 没有了
  •  告诉好友  打印此文 关闭窗口 返回顶部
     
    热点文章
     
     
    推荐文章
     
     
    相关文章

    | 设为首页 | 加入收藏 | 联系我们 | 友情链接 | 诚聘英才 |
    Copyright© 2008 ShaiIT.Com .All Rights Reserved
    下载alexa工具,提升您的网站排名