📄 cammon.cpp
字号:
::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 + -