亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? transclientdoc.cpp

?? 《醫(yī)學(xué)圖象的遠(yuǎn)程傳輸系統(tǒng)》
?? CPP
字號(hào):
// TransClientDoc.cpp : implementation of the CTransClientDoc class
//

#include "stdafx.h"
#include "TransClient.h"

#include "TransClientDoc.h"
#include "TransClientView.h"

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

#include "TransJpegView.h"
#include "ConnectDlg.h"
#include "..\ImgDecompress\ImgDecompress.h"
#include "..\Enroll\EnrollInterface.h"

/////////////////////////////////////////////////////////////////////////////
// CTransClientDoc

IMPLEMENT_DYNCREATE(CTransClientDoc, CDocument)

BEGIN_MESSAGE_MAP(CTransClientDoc, CDocument)
	//{{AFX_MSG_MAP(CTransClientDoc)
	ON_COMMAND(IDM_SYS_CONNECT, OnConnect)
	ON_COMMAND(IDM_DB_SAVE, OnDBSave)
	ON_COMMAND(IDM_DB_STOP, OnDBStop)
	ON_COMMAND(IDM_DB_BROWSE, OnDBBrowse)
	ON_COMMAND(ID_IMGPROC, OnImgproc)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTransClientDoc construction/destruction

CTransClientDoc::CTransClientDoc()
{
	m_PatientID=-1;
	m_ImgWidth=0;
	m_ImgHeight=0;
    m_StreamSocket=new CClientStreamSocket(this);
	m_pDib=(BYTE*)::GlobalAlloc(GMEM_FIXED,MAX_BMP_SIZE);
	if (!m_pDib){
		AfxMessageBox("Error to allocate memory for pDib!",MB_ICONERROR);
	}
	m_JpegBuffer=(BYTE*)::GlobalAlloc(GMEM_FIXED,MAX_JPEG_SIZE);
	if (!m_JpegBuffer){
		AfxMessageBox("Error to allocate memory for JpegBuffer!",MB_ICONERROR);
	}
    m_Frequency[0]=m_Frequency[1]=m_Frequency[2]=m_FrameStartTime=0;
    m_Bps[0]=m_Bps[1]=m_Bps[2]=0;
}

CTransClientDoc::~CTransClientDoc()
{
	::GlobalFree(m_pDib);
	::GlobalFree(m_JpegBuffer);
	IDRelease(&m_jcprops);
}

BOOL CTransClientDoc::OnNewDocument()
{
#ifdef _DEBUG
	SetTitle(GetTitle()+"<< Debug >>");
#endif

	if (!CDocument::OnNewDocument())
		return FALSE;

	((CEditView*)m_viewList.GetHead())->SetWindowText(NULL);
	
	if (!IDInit(&m_jcprops)){
		DisplayMsg(IDGetLastError());
	}

    if (InitNetwork())
        DisplayMsg("Init network successful.");
	else
		DisplayMsg("Init network failed!");

	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CTransClientDoc serialization

void CTransClientDoc::Serialize(CArchive& ar)
{
	// CEditView contains an edit control which handles all serialization
	((CEditView*)m_viewList.GetHead())->SerializeRaw(ar);
}

/////////////////////////////////////////////////////////////////////////////
// CTransClientDoc diagnostics

#ifdef _DEBUG
void CTransClientDoc::AssertValid() const
{
	CDocument::AssertValid();
}

void CTransClientDoc::Dump(CDumpContext& dc) const
{
	CDocument::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CTransClientDoc commands

BOOL CTransClientDoc::InitNetwork()
{
    ::AfxSocketInit();
    if (!m_StreamSocket->Create(0,SOCK_STREAM,FD_CONNECT | FD_READ | FD_WRITE)){
        return FALSE;
    }
    return TRUE;
}

void CTransClientDoc::DisplayMsg(LPCTSTR Msg)
{
    for (POSITION pos=GetFirstViewPosition();pos!=NULL;){
        CView* pView=GetNextView(pos);
        CTransClientView* pClientView=DYNAMIC_DOWNCAST(CTransClientView,pView);
        if (pClientView!=NULL){
            int len = pClientView->GetWindowTextLength();
            pClientView->GetEditCtrl().SetSel(len,len);
            pClientView->GetEditCtrl().ReplaceSel(Msg);
            pClientView->GetEditCtrl().ReplaceSel("\n");
        }
    }
    SetModifiedFlag(FALSE);
}

void CTransClientDoc::ReceiveData(STREAM_DATA *Data)
{
	/*
	CString sResult;
	sResult.Format("Receive package #%d, size %d.",Data->nIndex,Data->nSize);
	DisplayMsg(sResult);
	*/
	if (Data->bEnd){//is the last package
        //calculate the bps of current frame 
        for (int i=0;i<2;i++){
            m_Bps[i+1]=m_Bps[i];
        }
        DWORD TimeTmp=GetTickCount();
        if (TimeTmp-m_FrameStartTime>0){
            m_Bps[0]=(PackageSize*Data->nIndex+Data->nSize)*1000/(TimeTmp-m_FrameStartTime);
        }
        //copy memory
		if ((PackageSize*Data->nIndex)>MAX_JPEG_SIZE || Data->nSize<0 || Data->nSize>PackageSize){
			DisplayMsg("Fatal error when combine package!");
			return;
		}
		CopyMemory(m_JpegBuffer+(PackageSize*Data->nIndex),Data->Buffer,Data->nSize);
		if (IDDecompress(&m_jcprops,m_JpegBuffer,PackageSize*Data->nIndex+Data->nSize,&m_pDib,&m_ImgWidth,&m_ImgHeight)){
			/*
			DisplayMsg("Uncompress jpeg successful.");
			*/
			if(m_PatientID>=0){
				if(ENAddImage(m_PatientID,m_JpegBuffer,PackageSize*Data->nIndex+Data->nSize)<0){
					DisplayMsg("Save image failed!");
				}
			}
		}
        else{
			DisplayMsg("Uncompress jpeg failed!");
        }
		//draw new image on the jpegview
        for (POSITION pos=GetFirstViewPosition();pos!=NULL;){
            CView* pView=GetNextView(pos);
            CTransJpegView* pJpegView=DYNAMIC_DOWNCAST(CTransJpegView,pView);
            if (pJpegView!=NULL){
                pJpegView->DrawImg();
            }
        }
	}
	else{
        //record start time for this frame
        for (int j=0;j<2;j++){
            m_Frequency[j+1]=m_Frequency[j];
        }
        if (Data->nIndex==0){
            DWORD EndTime=GetTickCount();
            m_Frequency[0]=EndTime-m_FrameStartTime;
            m_FrameStartTime=EndTime;
        }

		CopyMemory(m_JpegBuffer+(PackageSize*Data->nIndex),Data->Buffer,PackageSize);
	}

	return;
}

//open the connect dialog, and connect to the ip which user select
//2002.04.19
void CTransClientDoc::OnConnect() 
{
	CConnectDlg ConDlg;
	if (ConDlg.DoModal()==IDOK){
		m_StreamSocket->Connect(ConDlg.m_sIpAddress,LISTEN_PORT);
	}
}

void CTransClientDoc::OnDBSave() 
{
	m_PatientID=ENAddPatient();
	if(m_PatientID<0){
		DisplayMsg("Error to add new patient!");	
	}
	else{
		CString str;
		str.Format("Begin to record image for patient %d.",m_PatientID);
		DisplayMsg(str);
	}
}

void CTransClientDoc::OnDBStop() 
{
	if (m_PatientID>=0){
		DisplayMsg("Stop to record image!");
		m_PatientID=-1;
	}
}

void CTransClientDoc::OnDBBrowse() 
{
	ENBrowse();
}

void CTransClientDoc::OnImgproc() 
{
	if (m_pDib==NULL || m_ImgWidth<=0 || m_ImgHeight<=0){
		AfxMessageBox("No image to process!");
		return;
	}
	char AppFileName[MAX_PATH]="";
	if (!GetModuleFileName(AfxGetApp()->m_hInstance,AppFileName,MAX_PATH)){
		AfxMessageBox("Error when get application path!",MB_ICONERROR);
		return;
	}
	CString TmpFileName=AppFileName;
	TmpFileName+=".tmp";
	CFile f;
	f.Open(TmpFileName,CFile::modeCreate | CFile::modeWrite);
	BITMAPFILEHEADER bmfh;
	bmfh.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);
	bmfh.bfReserved1=0;
	bmfh.bfReserved2=0;
	bmfh.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+3*m_ImgWidth*m_ImgHeight;
	bmfh.bfType=(WORD)('M'<< 8)|'B';
	f.Write(&bmfh,sizeof(BITMAPFILEHEADER));
	BITMAPINFOHEADER bmih;
	bmih.biBitCount=24;
	bmih.biClrImportant=0;
	bmih.biClrUsed=0;
	bmih.biCompression=0;
	bmih.biHeight=m_ImgHeight;
	bmih.biPlanes=1;
	bmih.biSize=sizeof(BITMAPINFOHEADER);
	bmih.biSizeImage=m_ImgWidth*m_ImgHeight;
	bmih.biWidth=m_ImgWidth;
	bmih.biXPelsPerMeter=1;
	bmih.biYPelsPerMeter=1;
	f.Write(&bmih,sizeof(BITMAPINFOHEADER));
	f.WriteHuge(m_pDib,m_ImgWidth*m_ImgHeight*3);
	f.Close();
	CString ExeFileName=AppFileName;
	ExeFileName=ExeFileName.Left(ExeFileName.ReverseFind('\\')+1);
	ExeFileName+="ImgGrabProc.exe";
	if ((int)::ShellExecute(AfxGetApp()->m_pMainWnd->GetSafeHwnd(),"open",ExeFileName,"\""+TmpFileName+"\"",NULL,SW_SHOW)<=32){
		AfxMessageBox("Error when start image process application!",MB_ICONWARNING);
	}
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合视频网| 亚洲一区免费在线观看| 色哟哟在线观看一区二区三区| 日韩激情中文字幕| 亚洲欧美一区二区三区国产精品| 日韩一级精品视频在线观看| 色老头久久综合| 国产福利一区二区三区在线视频| 亚洲一区二区视频| 国产精品久久久久国产精品日日| 精品国产乱码久久久久久夜甘婷婷| 在线欧美小视频| 99久久伊人网影院| 国产精品18久久久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲乱码中文字幕综合| 国产精品久久久久久久久免费樱桃 | 性做久久久久久久久| 国产精品视频观看| 久久综合狠狠综合久久激情| 91精品国产欧美一区二区| 欧美在线色视频| 91福利国产精品| 91日韩在线专区| 99re成人精品视频| 成人激情免费视频| 成人av网站在线观看| 国产成人av网站| 国产精品99久久久久久似苏梦涵| 黑人巨大精品欧美黑白配亚洲| 日韩成人一级片| 日本在线播放一区二区三区| 天堂影院一区二区| 日日夜夜一区二区| 日韩电影免费一区| 麻豆一区二区三| 精品一区二区三区久久| 极品销魂美女一区二区三区| 精品在线你懂的| 国产在线精品一区二区三区不卡| 国产一区二区三区久久悠悠色av | 免费视频最近日韩| 轻轻草成人在线| 韩日精品视频一区| 成人免费观看视频| 91小视频在线| 欧美三级日本三级少妇99| 欧美日韩视频在线一区二区| 6080yy午夜一二三区久久| 777精品伊人久久久久大香线蕉| 欧美丰满一区二区免费视频| 欧美一区二区三级| 亚洲精品一区二区精华| 国产精品网站在线观看| 自拍偷拍亚洲激情| 午夜电影网亚洲视频| 久久成人免费网| 国产麻豆欧美日韩一区| aaa欧美日韩| 欧美日韩一区久久| 欧美成人精品3d动漫h| 26uuu欧美日本| 最新中文字幕一区二区三区 | 欧美激情一区二区三区不卡| 中文字幕亚洲电影| 天天色天天爱天天射综合| 久久精品国产亚洲aⅴ | 欧美日韩精品一区二区三区四区| 欧美一区二区在线观看| 国产亚洲精品超碰| 亚洲综合网站在线观看| 精品一区二区三区在线观看| 成人精品一区二区三区四区| 在线观看视频欧美| 欧美精品一区二区蜜臀亚洲| 中文字幕一区二区三区av| 视频在线观看一区| 国产精品77777| 欧美丝袜丝nylons| 国产色婷婷亚洲99精品小说| 亚洲国产精品人人做人人爽| 国产自产视频一区二区三区| 在线中文字幕一区| 久久久五月婷婷| 午夜一区二区三区在线观看| 国产美女精品一区二区三区| 精品视频在线免费| 中文字幕欧美区| 日本不卡一区二区三区 | 日韩三级av在线播放| 亚洲三级理论片| 国内精品写真在线观看| 欧美三级在线播放| 国产精品久久久久久久浪潮网站| 免费成人你懂的| 91高清视频在线| 国产性色一区二区| 六月婷婷色综合| 欧美日韩国产综合视频在线观看 | 日本成人在线电影网| 色综合久久天天| 久久久精品综合| 美女视频一区二区| 欧美网站大全在线观看| 《视频一区视频二区| 国产麻豆成人精品| 日韩精品一区国产麻豆| 亚洲成av人片一区二区梦乃 | 精品动漫一区二区三区在线观看| 亚洲国产一二三| 不卡一区二区中文字幕| 久久久久国产精品麻豆ai换脸| 日韩中文字幕1| 欧美色电影在线| 亚洲一区在线视频观看| 99久久精品费精品国产一区二区| 国产丝袜美腿一区二区三区| 激情综合色丁香一区二区| 91精品国产福利| 日韩二区在线观看| 欧美日韩一区二区三区四区| 亚洲综合免费观看高清完整版在线| eeuss鲁片一区二区三区在线看 | 日韩成人一级大片| 欧美三级日韩在线| 亚洲地区一二三色| 欧美色综合久久| 亚洲国产视频一区| 在线观看国产91| 亚洲一区精品在线| 欧美亚洲综合久久| 天天射综合影视| 欧美一卡在线观看| 久久精品国产精品青草| 欧美成人伊人久久综合网| 麻豆91在线观看| 久久久久国产一区二区三区四区| 国内不卡的二区三区中文字幕 | 一本高清dvd不卡在线观看 | 国产在线精品视频| 国产三级精品视频| aaa亚洲精品| 一区二区三区久久| 欧美视频在线一区| 日韩精品一卡二卡三卡四卡无卡 | 一区二区在线观看不卡| 欧美日韩国产在线播放网站| 午夜欧美视频在线观看| 欧美一二区视频| 国产乱人伦精品一区二区在线观看 | 一区在线中文字幕| 色综合久久久久综合99| 亚洲高清在线视频| 日韩免费高清视频| 国产成人精品一区二| 亚洲欧美激情插| 欧美日韩国产首页在线观看| 日韩av成人高清| 久久久精品综合| 日本道精品一区二区三区| 日日嗨av一区二区三区四区| 亚洲精品在线免费播放| 97se亚洲国产综合自在线| 亚洲永久精品国产| 精品国产欧美一区二区| 成人动漫一区二区三区| 午夜电影一区二区三区| 久久精品一区蜜桃臀影院| 91精品福利视频| 精品中文字幕一区二区| 成人免费一区二区三区在线观看| 欧美日韩成人高清| 国产成人综合在线播放| 亚洲五月六月丁香激情| 久久综合久久久久88| 一本大道久久a久久精二百| 日本午夜一本久久久综合| 最新中文字幕一区二区三区 | 日韩精品一区二区三区中文不卡| 国产成人av影院| 午夜精品久久久| 国产精品五月天| 日韩欧美亚洲国产另类| 日本韩国欧美三级| 国产一区欧美二区| 五月激情综合网| 国产精品美女久久久久aⅴ| 这里是久久伊人| 色综合天天狠狠| 国产成人亚洲综合a∨婷婷| 午夜精品久久久久久| 亚洲视频免费在线观看| 久久亚洲捆绑美女| 欧美群妇大交群的观看方式| 成人性生交大片免费看中文网站| 欧美a级一区二区| 亚洲国产精品久久久久秋霞影院| 国产欧美va欧美不卡在线 | 亚洲免费观看高清完整版在线| 精品国内二区三区|