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

📄 pppserverdlg.cpp

📁 服务端: 这是一个完整的基于Wince 4.1图形图象,网络通讯(C/S)模式下的商用程序源代码包.
💻 CPP
📖 第 1 页 / 共 5 页
字号:
   delete mstr;
 

   return tmpstr;

}
CString GetSoftWareRegisterCodeEx(CString serial,int no)
{
 CString sn; 
 sn=serial;

 if(sn.GetLength()<=0||sn.GetLength()%2!=0)
 {
	 return TEXT("1234567890");
 } 
 //全部为大写
 //
 sn.MakeUpper();
 //
 CString tmpstr;
 int len;
 len=sn.GetLength();
 //0,1,2,3,4,5,6,7,8,9
 //1,8,2,5,0,3,9,6,4,7
 //3,9,6,4,7,0,5,2,1,8 ex
 //TCHAR code[11]={_T('3'),_T('9'),_T('6'),_T('4'),_T('7'),
//	             _T('0'),_T('5'),_T('2'),_T('1'),_T('8'),
//				 _T('\0')
//
//				};
 //0,1,2,3,4,5,6,7,8,9 
 //3,9,6,4,7,0,5,2,1,8 ex --exe
 //密码=[各项求和后模10]+[原码]+[各项求积后模10]
  //1:0,1,2,3,4,5,6,7,8,9 ex
  //2:4,2,1,0,6,5,3,9,8,7 ex
  //3:2,3,1,0,6,5,4,9,8,7 ex
  //4:3,2,1,0,6,5,4,9,8,7 ex
  //5:7,2,1,0,5,4,3,9,8,6 ex
  //6:5,2,1,0,6,4,3,9,8,7 ex
  //7:6,2,1,0,5,4,3,9,8,7 ex
  //8:1,3,2,0,6,5,4,9,8,7 ex
  //9:8,2,1,0,5,4,3,9,7,6 ex
 //10:9,2,1,0,5,4,3,8,7,6 ex
 //11:3,9,6,4,7,0,5,2,1,8 ex--解除
 //TCHAR code[11]={_T('3'),_T('9'),_T('6'),_T('4'),_T('7'),
//	             _T('0'),_T('5'),_T('2'),_T('1'),_T('8'),
//				 _T('\0')
//
//				};
 TCHAR code[11][11]=
 {
  //1:
	 {_T('0'),_T('1'),_T('2'),_T('3'),_T('4'),_T('5'),_T('6'),_T('7'),_T('8'),_T('9'),_T('\0')},
  //2:
     {_T('4'),_T('2'),_T('1'),_T('0'),_T('6'),_T('5'),_T('3'),_T('9'),_T('8'),_T('7'),_T('\0')},
  //3:
     {_T('2'),_T('3'),_T('1'),_T('0'),_T('6'),_T('5'),_T('4'),_T('9'),_T('8'),_T('7'),_T('\0')},
  //4:
     {_T('3'),_T('2'),_T('1'),_T('0'),_T('6'),_T('5'),_T('4'),_T('9'),_T('8'),_T('7'),_T('\0')},
  //5:
     {_T('7'),_T('2'),_T('1'),_T('0'),_T('5'),_T('4'),_T('3'),_T('9'),_T('8'),_T('6'),_T('\0')},
  //6:
     {_T('5'),_T('2'),_T('1'),_T('0'),_T('6'),_T('4'),_T('3'),_T('9'),_T('8'),_T('7'),_T('\0')},
  //7:
     {_T('6'),_T('2'),_T('1'),_T('0'),_T('5'),_T('4'),_T('3'),_T('9'),_T('8'),_T('7'),_T('\0')},
  //8:
     {_T('1'),_T('3'),_T('2'),_T('0'),_T('6'),_T('5'),_T('4'),_T('9'),_T('8'),_T('7'),_T('\0')},
  //9:
     {_T('8'),_T('2'),_T('1'),_T('0'),_T('5'),_T('4'),_T('3'),_T('9'),_T('7'),_T('6'),_T('\0')},
 //10:
     {_T('9'),_T('2'),_T('1'),_T('0'),_T('5'),_T('4'),_T('3'),_T('8'),_T('7'),_T('6'),_T('\0')},
  //free:
	 {_T('3'),_T('9'),_T('6'),_T('4'),_T('7'),_T('0'),_T('5'),_T('2'),_T('1'),_T('8'),_T('\0')}
 };
 //密码=[各项求积后模10]+[原码]+[各项求和后模10]
 long he,ji;
 he=0;
 ji=1;
 TCHAR ch,ss,mm;
 TCHAR *mstr;
 ss=0;
 mm=0;
 mstr=new TCHAR[len+2+1];
 int count;
 count=0;
 for(int i=0;i<len;i++)
 {
   ch=sn.GetAt(i);
   if(ch>=_T('A')&&ch<=_T('F'))
   {
    ss=ch-_T('A');
   }
   else
   {
     ss=ch-_T('0');
   }
   //he,ji
   if(ss!=0)
   {
    he=he+ss;   
    ji=ji*ss;
   }
   //
   if(ss!=0)
   {   
    mm=code[no][ss];
    mstr[count+1]=mm;
    count++;
   }
   //.....
 }
 //he->ji
   ss=labs(he)%10;
   mm=code[no][ss];
   //mstr[0]=mm;
   mstr[count+1]=mm;
//ji->he
   ss=labs(ji)%10;
   mm=code[no][ss];
   //mstr[count+1]=mm;
   mstr[0]=mm;
//
   mstr[count+2]=_T('\0');

   //
   tmpstr=mstr;

   //
   delete mstr;
 

   return tmpstr;

}

HINSTANCE hinstance;
//for menu
HWND ghCB;
 //for status
 //HWND hStatusWindow;
 //for toolbar
 HWND hToolsWindow;
 //static UINT indicators[] =
//{
//	ID_SEPARATOR,           // status line indicator
//	ID_INDICATOR_CAPS
//};
// const DWORD dwAdornmentFlags = 0; // exit button
 //
bool m_show_demo_flag;
bool m_show_main_flag;
bool m_hotkey_flag;
bool m_demo_hotkey_flag;
WORD MY_HOTKEY;
WORD MY_DEMO_HOTKEY;



//#define ITEM_APPEND_ID 20010
//#define ITEM_INSERT_ID 20011
//#define ITEM_DELETE_ID 20012


 SYSTEM_PARAMETER m_system_para;
 //
 TCHAR tmp_type_str[4][80]={_T("Text"),_T("Picture"),_T("Animation"),_T("Video")};

 TCHAR tmp_fun_in_str[MAX_ADD_SHOWWAY][80]={
	                       _T("Random"),
	                       _T("Static"),
	                       _T("Flash"),
						   _T("Push Down"),
						   _T("Push Up"),
						   _T("Scan Down"),
						   _T("Scan Up"),
						   _T("Scan Center to UpDown"),
						   _T("Scan UpDown to Center"),						   
						   _T("Scan Right"),
						   _T("Scan Left"),
						   _T("Scan Center to LeftRight"),
						   _T("Scan LeftRigth to Center"),
						   _T("Vertical Right Blind"),
						   _T("Vertical Left Blind"),
						   _T("Horizontal Down Blind"),
						   _T("Horizontal Up Blind"),
						   _T("Scan/Corner1"),
						   _T("Scan/Corner2"),
						   _T("Scan/Corner3"),
						   _T("Scan/Corner4"),
						   //
						   _T("Push/Corner1"),
						   _T("Push/Corner2"),
						   _T("Push/Corner3"),
						   _T("Push/Corner4"),
						   _T("Rain"),
						   _T("Zoom IN"),
						   _T("Zoom OUT"),
						   _T("Push Left"),
						   _T("Push Right"),
						  // _T("Compress Left"),
						  // _T("Compress Right"),
						  // _T("Compress Up"),
						  // _T("Compress Down"),
						   _T("Half Fan"),
						   _T("Mosaic"),
						   _T("Full FAN"),
						   _T("Diamond"),
						   _T("Empty"),						  
						   _T("---------------")
                           };
TCHAR tmp_fun_out_str[MAX_ADD_SHOWWAY-1][80]={
	                        _T("Random"),
	                       _T("Static"),
	                       _T("Flash"),
						   _T("Push Down"),
						   _T("Push Up"),
						   _T("Scan Down"),
						   _T("Scan Up"),
						   _T("Scan Center to UpDown"),
						   _T("Scan UpDown to Center"),						   
						   _T("Scan Right"),
						   _T("Scan Left"),
						   _T("Scan Center to LeftRight"),
						   _T("Scan LeftRigth to Center"),
						   _T("Vertical Right Blind"),
						   _T("Vertical Left Blind"),
						   _T("Horizontal Down Blind"),
						   _T("Horizontal Up Blind"),
						   _T("Scan/Corner1"),
						   _T("Scan/Corner2"),
						   _T("Scan/Corner3"),
						   _T("Scan/Corner4"),
						   //
						   _T("Push/Corner1"),
						   _T("Push/Corner2"),
						   _T("Push/Corner3"),
						   _T("Push/Corner4"),
						   //_T("Rain"),
						   _T("Zoom IN"),
						   _T("Zoom OUT"),
						   _T("Push Left"),
						   _T("Push Right"),
						  // _T("Compress Left"),
						  // _T("Compress Right"),
						  // _T("Compress Up"),
						  // _T("Compress Down"),
						   _T("Half Fan"),
						   _T("Mosaic"),
						   _T("Full FAN"),
						   _T("Diamond"),
						   _T("Empty"),						
							_T("----------------")
							};
CPlayTableData DATA;
bool m_all_run_flag;
//UINT m_find_timer;
//DWORD m_find_count=0;
BOOL m_software_registered_flag=FALSE;
//
int m_edit_type;//-1:无效,0-Append ,1-Insert(Before),Modify:2
CPlayTableData m_cur_data;
//draw text
CList<LOGFONT,LOGFONT&> m_all_logfont;
//

int CALLBACK GetSystemAllFontname(CONST LOGFONT *lplf, 
                                 CONST TEXTMETRIC *lpntm, 
                                 DWORD nFontType, LPARAM lParam)
{
  // CList<LOGFONT,LOGFONT&> *fontlist=(CList<LOGFONT,LOGFONT&> *) lParam; ///???
   //pcombobox->AddString(lplf->lfFaceName);
   //
  // sFamilyCnt++;
   LOGFONT lg;
   lg=*lplf;
   m_all_logfont.AddTail(lg);
   
   return 1;
}
/*
	//在Wince环境中用程序创建快捷方式
	TCHAR szDistictPath[MAX_PATH];// full path of shortcut
    TCHAR szSourcePath[MAX_PATH];// full path of source file

    //_tcscpy(szDistictPath, _T("\\windows\\桌面\\PPPlayer.lnk"));
	_tcscpy(szDistictPath, _T("\\windows\\Startup\\PPPlayer.lnk"));
    _tcscpy(szSourcePath, _T("\\PPPlayer.exe"));

   if(SHCreateShortcut(szDistictPath, szSourcePath) != FALSE)
   {
	   ::MessageBox(m_hWnd, _T("Succeeded in create shortcut!"), _T(""), MB_OK|MB_APPLMODAL);
   }
   */
   /*
   注意szSourcePath 的写法,由于MSDN的疏忽,很多人会被误导以为直接写路径就行了,
   实际上,当源路径含有空格的时候,必须在路径两端再次用双引号括起来,
   否则建立的快捷方式将是不可执行的损坏格式。 双引号" "在程序中表现为 \" \" 
   */


//watchdog
void OutRegisterFun(DWORD addr,DWORD value)
{
	PHYSICAL_ADDRESS io;
	io.LowPart=addr;
	io.HighPart=0;
	DWORD *ptr;
	ptr=(DWORD *)MmMapIoSpace(io,4,FALSE);
   	WRITE_REGISTER_ULONG(ptr,value);
}

ULONG InRegisterFun(DWORD addr)
{
    PHYSICAL_ADDRESS io;
	io.LowPart=addr;
	io.HighPart=0;
	DWORD *ptr;
	ptr=(DWORD *)MmMapIoSpace(io,4,FALSE);
    return(READ_REGISTER_ULONG(ptr));
}
//
BOOL  m_sendfile_ready_flag=FALSE;
TCHAR m_savefilename[256];

SENDFILEHEAD m_filehead;

//char Buffer[4096];
char Buffer[SOCKETBUFFSIZE];
//
//CString	m_savepathname;
//该变量为系统保存数据的根目录video
//注意:1.文本文件保存在text目录下
//      2.图片文件(bmp,jpg,gif) 保存在pic目录下
//      3.GIF动画文件(*.gif)  保存在ani目录下
//      4.视频文件(*.wmv,*.mpg(mpg-1),*.asf等)保存在video目录下
//VC++只提供了删除一个空目录的函数,而在实际应用中往往希望删除其下有很多子目录与文件的目录。
//为了实现这一功能,我编写了DeleteDirectory 函数,它可以实现这一功能。 
//
//函数原型:BOOL DeleteDirectory(char *DirName); 
//返回值:成功删除时返回TRUE,否则返回FALSE 
//参数DirName为要删除的目录名,必须为绝对路径名,如“c:\\temp"。 
/*
//函数定义如下: 
BOOL DeleteDirectory(LPCTSTR DirName)
{
	CFileFind tempFind;//声明一个CFileFind类变量,以用来搜索

	TCHAR tempFileFind[256];//用于定义搜索格式
	_strintf(tempFileFind,_T("%s\\*.*"),DirName);//匹配格式为*.*,即该目录下的所有文件 

	BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);//查找第一个文件

	while(IsFinded)
	{   //递归搜索其他的文件 
		IsFinded=(BOOL)tempFind.FindNextFile();
		if(!tempFind.IsDots())//如果不是"."目录
		{
			char foundFileName[256];
			strcpy(foundFileName,tempFind.GetFileName().GetBuffer(256));
			if(tempFind.IsDirectory())//如果是目录,则递归地调用
			{
				TCHAR tempDir[256];
				_stprintf(tempDir,_T("%s\\%s"),DirName,foundFileName);
				DeleteDirectory(tempDir);
			}
			else//如果是文件则直接删除之
			{
				TCHAR tempFileName[256];
				_stprintf(tempFileName,_T("%s\\%s"),DirName,foundFileName);
				DeleteFile(tempFileName);
			}
		}
	}
	tempFind.Close();
	//删除目录
	if(!RemoveDirectory(DirName))
	{
		//MessageBox(0,"删除目录失败!","警告信息",MB_OK);
		return FALSE;
	}
	return TRUE;
}*/
//函数定义如下: 
BOOL DeleteDirectory(LPCTSTR DirName)
{
     HANDLE hSearch;
	 WIN32_FIND_DATA FileData;
//	 TCHAR szNewPath[MAX_PATH];
	 BOOL bFinished=FALSE;

	TCHAR tempFileFind[256];//用于定义搜索格式
	_stprintf(tempFileFind,TEXT("%s\\*.*"),DirName);//匹配格式为*.*,即该目录下的所有文件 

	hSearch =FindFirstFile(tempFileFind,&FileData);//查找第一个文件
	if(hSearch==INVALID_HANDLE_VALUE)
	{
       //删除目录
	if(!RemoveDirectory(DirName))
	{
		//MessageBox(0,"删除目录失败!","警告信息",MB_OK);
		return FALSE;
	}
    else 
		return TRUE;
	}

	while(!bFinished)
	{  
	
		//递归搜索其他的文件 
		//IsFinded=(BOOL)tempFind.FindNextFile();
		if(_tcscmp(FileData.cFileName,TEXT("."))!=0&&_tcscmp(FileData.cFileName,TEXT(".."))!=0) 
		//if(!tempFind.IsDots())//如果不是".",".."目录
		{
			TCHAR foundFileName[256];
			_tcscpy(foundFileName,FileData.cFileName);
			if(FileData.dwFileAttributes   ==   FILE_ATTRIBUTE_DIRECTORY)//如果是目录,则递归地调用
			{
				TCHAR tempDir[256];				
				_stprintf(tempDir,TEXT("%s\\%s"),DirName,foundFileName);
				DeleteDirectory(tempDir);
			}
			else//如果是文件则直接删除之
			{
				TCHAR tempFileName[256];
				_stprintf(tempFileName,TEXT("%s\\%s"),DirName,foundFileName);
				DeleteFile(tempFileName);
			}
		}
		//
		if(!FindNextFile(hSearch,&FileData))
		{
			bFinished=TRUE;
		}
	}
	//tempFind.Close();
	if(!FindClose(hSearch))
	{
		return FALSE;
	}
	//删除目录
	if(!RemoveDirectory(DirName))
	{
		//MessageBox(0,"删除目录失败!","警告信息",MB_OK);
		return FALSE;
	}
	return TRUE;
}


//怎样一次创建一个多级目录
//如下,调用方式   WriteDirectory(   strPath); 
//  参数为要创建的目录全路径名,最后没有"\"。   
//详细说明参见:http://go18.163.com/~freecode/vc/sharecode/source/WriteDir.html   
    
//  #include   "stdafx.h"   
    

⌨️ 快捷键说明

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