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

📄 cammon.cpp

📁 用Embedded Visual C++ Win32 API开发的运行于Windows CE Pocket PC的多点移动视频监控软件
💻 CPP
📖 第 1 页 / 共 3 页
字号:
				::MessageBox (hDlg, _T("Camera name is limited to maximum 10 characters. please modify!"), _T("Warning"), MB_OK | MB_ICONEXCLAMATION ) ;
				break;
			}
			
			if(theDlg.IsCameraNameDuplicate () ==TRUE)
			{
				if(::MessageBox (hDlg, _T("The camera name exists. Do you really want to overwrite it?"), _T("Warning"), MB_YESNO | MB_ICONQUESTION ) == IDNO)	break;
				theDlg.DeleteMeFromRegestry ();
			}

			if(_tcsstr(theDlg.Path , _T("http://") ) ==NULL)
			{
				::MessageBox (hDlg, _T("Incorrect camera path inputed, please check!"), _T("Warning"), MB_OK | MB_ICONEXCLAMATION ) ;
				break;
			}

			theDlg.SaveMe ();

			theDlg.pAllCam ->RetrieveFromRegistry ();

			hItem = ::GetDlgItem (hDlg, IDC_LIST_CAMERAS);
			idx = ::SendMessage (hItem, LB_ADDSTRING, (WPARAM)0, (LPARAM)theDlg.Name );

			theDlg.ClearListbox (IDC_LIST_CAMERAS);
			theDlg.Set (hDlg, &allCam);
			theDlg.InitListbox (IDC_LIST_CAMERAS);

			::SendMessage (hItem, LB_SETCURSEL, (WPARAM)idx, 0);
			break;
		case IDC_BUTTON_REMOVE:
			hItem = ::GetDlgItem (hDlg, IDC_LIST_CAMERAS);
			idx = ::SendMessage (hItem, LB_GETCURSEL, 0, 0 );
			if( idx == LB_ERR )	break;

			::SendMessage (hItem, LB_SETCURSEL, (WPARAM)idx, 0);
			::SendMessage (hItem, LB_GETTEXT,  (WPARAM)idx, (LPARAM)theDlg.Name );

			theDlg.DeleteMeFromRegestry ();

			::SendMessage (hItem, LB_DELETESTRING, (WPARAM)idx, 0);

			hItem = ::GetDlgItem (hDlg, IDC_EDIT_NAME);			::SendMessage (hItem, WM_SETTEXT, (WPARAM)0, (LPARAM)_T("") );
			hItem = ::GetDlgItem (hDlg, IDC_EDIT_PATH);			::SendMessage (hItem, WM_SETTEXT, (WPARAM)0, (LPARAM)_T("") );
			hItem = ::GetDlgItem (hDlg, IDC_EDIT_USERNAME);		::SendMessage (hItem, WM_SETTEXT, (WPARAM)0, (LPARAM)_T("") );
			hItem = ::GetDlgItem (hDlg, IDC_EDIT_PASSWORD);		::SendMessage (hItem, WM_SETTEXT, (WPARAM)0, (LPARAM)_T("") );

			theDlg.pAllCam ->RetrieveFromRegistry ();

			break;

		case IDC_CHECK_IO_PTZ:
			hItem = ::GetDlgItem (hDlg, IDC_COMBO_TYPE);
			idx = ::SendMessage (hItem, CB_GETCURSEL, (WPARAM)0, (LPARAM)0 );
			::SendMessage (hItem, CB_GETLBTEXT, (WPARAM)idx, (LPARAM)theDlg.Type );

			if(wcscmp(theDlg.Type , _T("2120") ) ==0 
				|| wcscmp(theDlg.Type , _T("2100") ) ==0 )
			{
				hItem = ::GetDlgItem (hDlg, IDC_CHECK_IO_PTZ);
				theDlg.IO =0;	
				if(::SendMessage (hItem, BM_GETCHECK, 0, 0)==BST_CHECKED)	theDlg.IO =1;	
			}
			else if(wcscmp(theDlg.Type , _T("2400") ) ==0 )
			{
				hItem = ::GetDlgItem (hDlg, IDC_CHECK_IO_PTZ);
				theDlg.ptz =0;	
				if(::SendMessage (hItem, BM_GETCHECK, 0, 0)==BST_CHECKED)	theDlg.ptz =1;	
			}
			else //other
			{
				theDlg.IO =0;	
				theDlg.ptz =0;	
			}

			break;
		case IDC_COMBO_TYPE:
			hItem = ::GetDlgItem (hDlg, IDC_COMBO_TYPE);
			idx = ::SendMessage (hItem, CB_GETCURSEL, (WPARAM)0, (LPARAM)0 );
			::SendMessage (hItem, CB_GETLBTEXT, (WPARAM)idx, (LPARAM)theDlg.Type );

			if(wcscmp(theDlg.Type , _T("2120") ) ==0 
				||wcscmp(theDlg.Type , _T("2100") ) ==0 )
			{
				hItem = ::GetDlgItem (hDlg, IDC_EDIT_PATH);
				::SendMessage (hItem, WM_GETTEXT, (WPARAM)255, (LPARAM)thePath  );
				if(_tcslen(thePath)==0)
				{
					_tcscpy(thePath, _T("http://127.0.0.1/jpg/image.jpg") );
					::SendMessage (hItem, WM_SETTEXT, (WPARAM)0, (LPARAM)thePath  );
				}

				hItem = ::GetDlgItem (hDlg, IDC_CHECK_IO_PTZ);
				::ShowWindow (hItem, SW_SHOW);
				::SetWindowText (hItem, _T("IO") );
				::SendMessage (hItem, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0);
				if(theDlg.IO )	::SendMessage (hItem, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);

				hItem = ::GetDlgItem (hDlg, IDC_COMBO_TYPE);
				idx = ::SendMessage (hItem, CB_FINDSTRINGEXACT, (WPARAM)-1, (LPARAM)theDlg.Type );
				if(idx>=0)	::SendMessage (hItem, CB_SETCURSEL, (WPARAM)idx, (LPARAM)0 );
			}
			else if(wcscmp(theDlg.Type , _T("2400") ) ==0 )
			{
				hItem = ::GetDlgItem (hDlg, IDC_EDIT_PATH);
				::SendMessage (hItem, WM_GETTEXT, (WPARAM)255, (LPARAM)thePath  );
				if(_tcslen(thePath)==0)
				{
					_tcscpy(thePath, _T("http://127.0.0.1/cgi-bin/fullsize.jpg?camera=1&compression=3") );
					::SendMessage (hItem, WM_SETTEXT, (WPARAM)0, (LPARAM)thePath  );
				}

				hItem = ::GetDlgItem (hDlg, IDC_CHECK_IO_PTZ);
				::ShowWindow (hItem, SW_SHOW);
				::SetWindowText (hItem, _T("PTZ") );
				::SendMessage (hItem, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0);
				if(theDlg.ptz  )	::SendMessage (hItem, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);

				hItem = ::GetDlgItem (hDlg, IDC_COMBO_TYPE);
				idx = ::SendMessage (hItem, CB_FINDSTRINGEXACT, (WPARAM)-1, (LPARAM)theDlg.Type );
				if(idx>=0)	::SendMessage (hItem, CB_SETCURSEL, (WPARAM)idx, (LPARAM)0 );
			}
			else //other
			{
				hItem = ::GetDlgItem (hDlg, IDC_EDIT_PATH);
				::SendMessage (hItem, WM_GETTEXT, (WPARAM)255, (LPARAM)thePath  );
				if(_tcslen(thePath)==0)
				{
					_tcscpy(thePath, _T("http://127.0.0.1/jpg/image.jpg") );
					::SendMessage (hItem, WM_SETTEXT, (WPARAM)0, (LPARAM)thePath  );
				}

				hItem = ::GetDlgItem (hDlg, IDC_CHECK_IO_PTZ);
				::ShowWindow (hItem, SW_HIDE);

				hItem = ::GetDlgItem (hDlg, IDC_COMBO_TYPE);
				idx = ::SendMessage (hItem, CB_FINDSTRINGEXACT, (WPARAM)-1, (LPARAM)_T("Other") );
				if(idx>=0)	::SendMessage (hItem, CB_SETCURSEL, (WPARAM)idx, (LPARAM)0 );
			}
			break;
		case IDC_LIST_CAMERAS:
			//if( HIWORD(wParam) != LBN_SELCHANGE )	break;

			theDlg.DisposeListboxMsg (IDC_LIST_CAMERAS);
			hItem = ::GetDlgItem (hDlg, IDC_EDIT_NAME);
			::SendMessage (hItem, WM_SETTEXT, (WPARAM)0, (LPARAM)theDlg.Name );
			hItem = ::GetDlgItem (hDlg, IDC_EDIT_PATH);
			::SendMessage (hItem, WM_SETTEXT, (WPARAM)0, (LPARAM)theDlg.Path  );

			hItem = ::GetDlgItem (hDlg, IDC_EDIT_USERNAME);
			::SendMessage (hItem, WM_SETTEXT, (WPARAM)0, (LPARAM)theDlg.Username );
			hItem = ::GetDlgItem (hDlg, IDC_EDIT_PASSWORD);
			::SendMessage (hItem, WM_SETTEXT, (WPARAM)0, (LPARAM)theDlg.Password );

			if(wcscmp(theDlg.Type , _T("2120") ) ==0 
				||wcscmp(theDlg.Type , _T("2100") ) ==0 )
			{
				hItem = ::GetDlgItem (hDlg, IDC_CHECK_IO_PTZ);
				::ShowWindow (hItem, SW_SHOW);
				::SetWindowText (hItem, _T("IO") );
				::SendMessage (hItem, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0);
				if(theDlg.IO )	::SendMessage (hItem, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);

				hItem = ::GetDlgItem (hDlg, IDC_COMBO_TYPE);
				idx = ::SendMessage (hItem, CB_FINDSTRINGEXACT, (WPARAM)-1, (LPARAM)theDlg.Type );
				if(idx>=0)	::SendMessage (hItem, CB_SETCURSEL, (WPARAM)idx, (LPARAM)0 );
			}
			else if(wcscmp(theDlg.Type , _T("2400") ) ==0 )
			{
				hItem = ::GetDlgItem (hDlg, IDC_CHECK_IO_PTZ);
				::ShowWindow (hItem, SW_SHOW);
				::SetWindowText (hItem, _T("PTZ") );
				::SendMessage (hItem, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0);
				if(theDlg.ptz  )	::SendMessage (hItem, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);

				hItem = ::GetDlgItem (hDlg, IDC_COMBO_TYPE);
				idx = ::SendMessage (hItem, CB_FINDSTRINGEXACT, (WPARAM)-1, (LPARAM)theDlg.Type );
				if(idx>=0)	::SendMessage (hItem, CB_SETCURSEL, (WPARAM)idx, (LPARAM)0 );
			}
			else //other
			{
				hItem = ::GetDlgItem (hDlg, IDC_CHECK_IO_PTZ);
				::ShowWindow (hItem, SW_HIDE);

				hItem = ::GetDlgItem (hDlg, IDC_COMBO_TYPE);
				idx = ::SendMessage (hItem, CB_FINDSTRINGEXACT, (WPARAM)-1, (LPARAM)_T("Other") );
				if(idx>=0)	::SendMessage (hItem, CB_SETCURSEL, (WPARAM)idx, (LPARAM)0 );
			}
			break;
		}
		break;

	}
    return FALSE;
}

void Trim(TCHAR *str, TCHAR c)
{
	TCHAR *p1, *p2;
	p1=p2=str;
	while(*p2)
	{
		if(*p2==c)	{	p2++;	continue;	}
		*p1=*p2;
		p1++;
		p2++;
	}
	*p1=0;
}


LRESULT CALLBACK DlgProcConnectionSetting(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	SHINITDLGINFO shidi;
	DWORD wmId;
	HWND hItem;
	PAINTSTRUCT ps;
	HDC hdc;
	switch (message)
	{
	case WM_INITDIALOG:
		// Create a Done button and size it.  
		shidi.dwMask = SHIDIM_FLAGS;
		 shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN;
		shidi.hDlg = hDlg;
		SHInitDialog(&shidi);
		
		GPRS_flag = Get_GPRS_value();
		

		if(GPRS_flag==1)
		{
			hItem = ::GetDlgItem (hDlg, IDC_RADIO_GPRS);
			::SendMessage (hItem, BM_SETCHECK, (WPARAM)BST_CHECKED, 0);
			hItem = ::GetDlgItem (hDlg, IDC_RADIO_OTHER);
			::SendMessage (hItem, BM_SETCHECK, (WPARAM)BST_UNCHECKED, 0);
		}
		else
		{
			hItem = ::GetDlgItem (hDlg, IDC_RADIO_GPRS);
			::SendMessage (hItem, BM_SETCHECK, (WPARAM)BST_UNCHECKED, 0);
			hItem = ::GetDlgItem (hDlg, IDC_RADIO_OTHER);
			::SendMessage (hItem, BM_SETCHECK, (WPARAM)BST_CHECKED, 0);
		}

		return TRUE; 
	case WM_PAINT:
		hdc = BeginPaint(hDlg, &ps);
		ShowBkGnd(hdc, _T("\\windows\\VideoDlgBG.bmp"));
		EndPaint(hDlg, &ps);
		break;
	case WM_COMMAND:
		wmId = LOWORD(wParam);
		switch (wmId)
		{
		case IDOK:
			hItem = ::GetDlgItem (hDlg, IDC_RADIO_GPRS);

			GPRS_flag =0;

			if(::SendMessage (hItem, BM_GETCHECK, (WPARAM)0, 0)== BST_CHECKED)
				GPRS_flag =1;

			Set_GPRS_value(GPRS_flag);

			EndDialog(hDlg, LOWORD(wParam));
			return TRUE;
		}
		break;
	}
    return FALSE;
}

DWORD Get_GPRS_value()
{
	HKEY hKey = NULL;
	DWORD dwWord =0;
	DWORD val=0;

	if(::RegCreateKeyEx(HKEY_CURRENT_USER, REGPATH, 0, NULL, 0, 0, NULL, &hKey, &dwWord) != ERROR_SUCCESS)
		return val;

	dwWord = sizeof(DWORD);
	DWORD dwType = REG_DWORD;

	if(::RegQueryValueEx (hKey, _T("GPRS"), NULL, &dwType,  (LPBYTE)&val, &dwWord )!=ERROR_SUCCESS )
	{
		val =0;
		::RegSetValueEx (hKey, _T("GPRS") , NULL, REG_DWORD, (LPBYTE)&val, sizeof(DWORD) );
	}

	::RegCloseKey (hKey);
	return val;
}

void Set_GPRS_value(DWORD val)
{
	HKEY hKey = NULL;
	DWORD dwWord =0;

	if(::RegCreateKeyEx(HKEY_CURRENT_USER, REGPATH, 0, NULL, 0, 0, NULL, &hKey, &dwWord) != ERROR_SUCCESS)
		return;

	::RegSetValueEx (hKey, _T("GPRS") , NULL, REG_DWORD, (LPBYTE)&val, sizeof(DWORD) );

	::RegCloseKey (hKey);
}


DWORD Get_register_value()
{
	HKEY hKey = NULL;
	DWORD dwWord =0;
	DWORD val=0;

	if(::RegCreateKeyEx(HKEY_CURRENT_USER, REGISTER_PATH, 0, NULL, 0, 0, NULL, &hKey, &dwWord) != ERROR_SUCCESS)
		return val;

	dwWord = sizeof(DWORD);
	DWORD dwType = REG_DWORD;

	if(::RegQueryValueEx (hKey, _T("Donald"), NULL, &dwType,  (LPBYTE)&val, &dwWord )!=ERROR_SUCCESS )
	{
		val =0;
		::RegSetValueEx (hKey, _T("Donald") , NULL, REG_DWORD, (LPBYTE)&val, sizeof(DWORD) );
	}

	::RegCloseKey (hKey);
	return val;
}

void Set_register_value(DWORD val)
{
	HKEY hKey = NULL;
	DWORD dwWord =0;

	if(::RegCreateKeyEx(HKEY_CURRENT_USER, REGISTER_PATH, 0, NULL, 0, 0, NULL, &hKey, &dwWord) != ERROR_SUCCESS)
		return;

	::RegSetValueEx (hKey, _T("Donald") , NULL, REG_DWORD, (LPBYTE)&val, sizeof(DWORD) );

	::RegCloseKey (hKey);
}

LRESULT CALLBACK DlgProcRegister(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	SHINITDLGINFO shidi;
	DWORD wmId;
	HWND hItem;
	TCHAR Serial_T[32];
	char Serial_t[32];
	int i;
	HDC hdc;
	PAINTSTRUCT ps;

	switch (message)
	{
	case WM_INITDIALOG:
		// Create a Done button and size it.  
		shidi.dwMask = SHIDIM_FLAGS;
		 shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN;
		shidi.hDlg = hDlg;
		SHInitDialog(&shidi);
		::sndPlaySound(_T("\\windows\\RegSound.wav"),SND_ASYNC);
		return TRUE; 
	case WM_PAINT:
		hdc = BeginPaint(hDlg, &ps);
		ShowBkGnd(hdc, _T("\\windows\\RegDlgBG.bmp"));
		EndPaint(hDlg, &ps);
		break;

	case WM_COMMAND:
		wmId = LOWORD(wParam);
		switch (wmId)
		{
		case IDC_BUTTON_REGISTER_NOW:
			hItem = ::GetDlgItem (hDlg, IDC_EDIT_SERIAL);
			for( i=0; i<32; i++)	{	Serial_T[i] =0;		Serial_t[i] =0;		}
			::SendMessage (hItem, WM_GETTEXT, (WPARAM)7, (LPARAM)(Serial_T+1) );
			for ( i=0; i<32; i++)	Serial_t[i] = (char)(Serial_T[i]);
			{
				SOCKET WinSocket; 
				WinSocket = INVALID_SOCKET;  // Window socket

				WSADATA WSAData;                // Contains details of the Windows
												// Sockets implementation
				// Initiate Windows Sockets.
				if (WSAStartup (MAKEWORD(1,1), &WSAData) != 0)		return FALSE;

				// Create a TCP/IP socket, WinSocket.
				if ((WinSocket = socket (AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) 
					return FALSE;

				SOCKADDR_IN local_sin;          // Local socket address
				// Fill out the local socket's address information.
				local_sin.sin_family = AF_INET;
				local_sin.sin_port = htons (PORTNUM);  
				local_sin.sin_addr.s_addr = inet_addr("158.132.152.111");
//				local_sin.sin_addr.s_addr = inet_addr("158.132.155.56");

				int temp=connect(WinSocket, (LPSOCKADDR)&local_sin, sizeof(local_sin));
				if( temp== SOCKET_ERROR)	{	closesocket(WinSocket);	return FALSE;	}

				Serial_t[0]=0x01;
				::send (WinSocket, Serial_t, 32, 0);
							
				char buf[32];
				recv(WinSocket, (char *)buf, 32, 0);
				::shutdown (WinSocket, 2);
				::closesocket (WinSocket);

				if(buf[0] ==0x01)		//right serial number
				{
					Set_register_value( 1 );
					License_flag =1;
					EndDialog(hDlg, LOWORD(wParam));
					return TRUE;
				}
				else
				{
					::MessageBox (hDlg, _T("Invalid serial number inputed. Please input it again!"), _T("Warning"), MB_OK | MB_ICONEXCLAMATION ) ;
					::SetFocus (hItem);
				}
			}
			break;
		case IDC_BUTTON_REGISTER_LATER:
			::GetSystemTime (&myTime);		
			Login_min = myTime.wMinute ;	
			EndDialog(hDlg, LOWORD(wParam));
			return TRUE;
		case IDOK:
			EndDialog(hDlg, LOWORD(wParam));
			return TRUE;
		}
		break;
	}
    return FALSE;
}


void VerifyTimeoutUse()
{
	if( License_flag == 0)
	{
		::GetSystemTime (&myTime);
		int temp = myTime.wMinute - Login_min;
		if(temp <0)		temp+=60;
		if(temp >= 30 )		::PostQuitMessage (1);
	}
}



void FnDrawBmp(HDC hdc,PTSTR FileName)
{			
	HDC hMemDC;
	HBITMAP hBitmap;
	BITMAP bmp;
	hBitmap = SHLoadDIBitmap(FileName);
	hMemDC = CreateCompatibleDC(hdc);
	SelectObject(hMemDC, hBitmap);
	GetObject(hBitmap, sizeof(BITMAP), &bmp);

	BitBlt(hdc, 0,0, bmp.bmWidth, bmp.bmHeight, hMemDC, 0, 0, SRCCOPY);

	DeleteDC(hMemDC);
	DeleteObject(hBitmap);
}

⌨️ 快捷键说明

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