⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 waitdlg.cpp

📁 《Windows CE 权威指南》(作者:(美)CHRIS MUENCH
💻 CPP
字号:
// WaitDlg.cpp : implementation file
//

#include "stdafx.h"
#include "PCDM.h"
#include "WaitDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CWaitDlg dialog

// <BOOK_ADDON STEP7 Chapter 9.6.4> ***************************
DWORD WINAPI ThreadFunc( LPVOID lpParam ) 
{ 
CWaitDlg *pwdlg;
	pwdlg=(CWaitDlg *)lpParam;
	pwdlg->mcomTRANS->ReceiveString(&pwdlg->m_RecvString);
	pwdlg->EndDialog(0);
	return 0;
}

CWaitDlg::CWaitDlg(int IDD,BSTR bStr,CWnd* pParent /*=NULL*/)
	: CDialog(IDD, pParent)
{
	m_SendString=SysAllocString(bStr);
	m_IDD=IDD;
	//{{AFX_DATA_INIT(CWaitDlg)
	// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}
// </BOOK_ADDON STEP7 Chapter 9.6.4> ***************************


void CWaitDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CWaitDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CWaitDlg, CDialog)
	//{{AFX_MSG_MAP(CWaitDlg)
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CWaitDlg message handlers

// <BOOK_ADDON STEP7 Chapter 9.6.4> ***************************
void CWaitDlg::OnCancel() 
{
	if (m_IDD==IDD_RECVWAIT)
		mcomTRANS->CancelReceive();	// Cancels the Receive Thread
	CDialog::OnCancel();
}

BOOL CWaitDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	HRESULT hr=mcomTRANS.CreateInstance( __uuidof( PCDMTransfer ) );
	if (FAILED(hr)) mcomTRANS=NULL;

	if (m_IDD==IDD_SENDWAIT && mcomTRANS!=NULL)
		this->SetTimer(111,1000,NULL);
	else
	{
	    DWORD dwThreadId, dwThrdParam = 1; 
		HANDLE hThread; 
		hThread = CreateThread(NULL,0,                  
					     ThreadFunc,this,       
					     0,&dwThreadId);       
	   if (hThread != NULL) 
		   CloseHandle( hThread );
	}
	return TRUE;
}

void CWaitDlg::OnTimer(UINT nIDEvent) 
{
	if (nIDEvent==111)
	{
		HRESULT hr=mcomTRANS->SendString(m_SendString);
		if (hr==S_OK)
			EndDialog(0);
	}
	CDialog::OnTimer(nIDEvent);
}

// </BOOK_ADDON STEP7 Chapter 9.6.4> ***************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -