{"id":275,"date":"2011-03-16T16:34:45","date_gmt":"2011-03-16T23:34:45","guid":{"rendered":"http:\/\/192.168.1.2\/wordpress\/?p=275"},"modified":"2013-03-13T17:30:55","modified_gmt":"2013-03-14T00:30:55","slug":"ip-cam-monitor","status":"publish","type":"post","link":"http:\/\/cywang.no-ip.org\/wordpress\/?p=275","title":{"rendered":"IP Cam Monitor"},"content":{"rendered":"<p>\n\tFutures:\n<\/p>\n<ol>\n<li>\n\t\tConnected to the IPCam or <a href=\"http:\/\/www.webcamxp.com\">Webcam Service<\/a>\n\t<\/li>\n<li>\n\t\tSupport zoom in and zoom out\n\t<\/li>\n<\/ol>\n<p><!--more--><\/p>\n<p>\n\t<a href=\"http:\/\/cywang.no-ip.org\/wordpress\/wp-content\/uploads\/2013\/03\/ipcam.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"ipcam\" class=\"alignnone size-full wp-image-276\" height=\"616\" src=\"http:\/\/cywang.no-ip.org\/wordpress\/wp-content\/uploads\/2013\/03\/ipcam.jpg\" width=\"840\" srcset=\"http:\/\/cywang.no-ip.org\/wordpress\/wp-content\/uploads\/2013\/03\/ipcam.jpg 840w, http:\/\/cywang.no-ip.org\/wordpress\/wp-content\/uploads\/2013\/03\/ipcam-300x220.jpg 300w, http:\/\/cywang.no-ip.org\/wordpress\/wp-content\/uploads\/2013\/03\/ipcam-409x300.jpg 409w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/a>\n<\/p>\n<p>\n\t<a href=\"http:\/\/cywang.no-ip.org\/wordpress\/wp-content\/uploads\/2011\/03\/ipcam2.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"ipcam2\" class=\"alignnone size-medium wp-image-279\" height=\"207\" src=\"http:\/\/cywang.no-ip.org\/wordpress\/wp-content\/uploads\/2011\/03\/ipcam2-300x207.jpg\" width=\"300\" srcset=\"http:\/\/cywang.no-ip.org\/wordpress\/wp-content\/uploads\/2011\/03\/ipcam2-300x207.jpg 300w, http:\/\/cywang.no-ip.org\/wordpress\/wp-content\/uploads\/2011\/03\/ipcam2-434x300.jpg 434w, http:\/\/cywang.no-ip.org\/wordpress\/wp-content\/uploads\/2011\/03\/ipcam2.jpg 984w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>\n<\/p>\n<pre class=\"brush:cpp;\">\r\n\/\/---------------------------------------------------------------------------\r\n\r\n#include &lt;vcl.h&gt;\r\n#include &lt;windows.h&gt;\r\n#include &lt;iphlpapi.h&gt;\r\n#include &lt;stdio.h&gt;\r\n#include &lt;urlmon.h&gt;\r\n#include &lt;winsock2.h&gt;\r\n#include &lt;jpeg.hpp&gt;\r\n#pragma hdrstop\r\n\r\n#include &quot;main.h&quot;\r\n#include &quot;ImageDlg.h&quot;\r\n\/\/---------------------------------------------------------------------------\r\n#pragma package(smart_init)\r\n#pragma link &quot;SHDocVw_OCX&quot;\r\n#pragma resource &quot;*.dfm&quot;\r\nTForm1 *Form1;\r\n\r\nTInitCommonControlsEx ICC;\r\nHWND hIpEdit_ServerIP,hIpEdit_CamIP;\r\nint nServerIP,nCamIP;\r\nAnsiString&nbsp;&nbsp;&nbsp;&nbsp; ServerIP,CamIP;\r\nchar NewServerIPStr[64],NewCamIPStr[64];\r\n\r\nbool isLogin = false;\r\nbool isOpen[5] = {false};\r\n\r\n\/\/---------------------------------------------------------------------------\r\nvoid __fastcall TForm1::FormCreate(TObject *Sender)\r\n{\r\n&nbsp;&nbsp;&nbsp;&nbsp;ICC.dwSize = sizeof(TInitCommonControlsEx);\r\n&nbsp;&nbsp;&nbsp;&nbsp;ICC.dwICC = ICC_INTERNET_CLASSES;\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(!InitCommonControlsEx(&amp;ICC))\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;hIpEdit_ServerIP =CreateWindow(WC_IPADDRESS,NULL,WS_CHILD|WS_VISIBLE,95,13,140,20,Panel_Network-&gt;Handle,0,HInstance,NULL);\r\n&nbsp;&nbsp;&nbsp;&nbsp;nServerIP=ntohl(inet_addr(&quot;homeip&quot;));\r\n&nbsp;&nbsp;&nbsp;&nbsp;SendMessage(hIpEdit_ServerIP,IPM_SETADDRESS,0,nServerIP);\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;hIpEdit_CamIP =CreateWindow(WC_IPADDRESS,NULL,WS_CHILD|WS_VISIBLE,95,13,140,20,Panel_IPCam-&gt;Handle,0,HInstance,NULL);\r\n&nbsp;&nbsp;&nbsp;&nbsp;nCamIP=ntohl(inet_addr(&quot;homeip&quot;));\r\n&nbsp;&nbsp;&nbsp;&nbsp;SendMessage(hIpEdit_CamIP,IPM_SETADDRESS,0,nCamIP);\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;InitialImage(Image_Home_CH1);\r\n&nbsp;&nbsp;&nbsp;&nbsp;InitialImage(Image_Home_CH2);\r\n&nbsp;&nbsp;&nbsp;&nbsp;InitialImage(Image_Home_CH3);\r\n&nbsp;&nbsp;&nbsp;&nbsp;InitialImage(Image_Home_CH4);\r\n&nbsp;&nbsp;&nbsp;&nbsp;InitialImage(Image_Display);\r\n}\r\n\/\/---------------------------------------------------------------------------\r\nvoid __fastcall TForm1::InitialImage(TImage *img)\r\n{\r\n&nbsp;&nbsp;&nbsp;&nbsp;img-&gt;Canvas-&gt;Brush-&gt;Color = clBlack;\r\n&nbsp;&nbsp;&nbsp;&nbsp;img-&gt;Canvas-&gt;Rectangle(0,0,200,200);\r\n}\r\n\/\/---------------------------------------------------------------------------\r\nvoid __fastcall TForm1::Btn_LoginClick(TObject *Sender)\r\n{\r\n&nbsp;&nbsp;&nbsp;&nbsp;BYTE FIRST_IPADDRESS,SECOND_IPADDRESS,THIRD_IPADDRESS,FOURTH_IPADDRESS;\r\n&nbsp;&nbsp;&nbsp;&nbsp;IPAddr NewIP;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;NewServerIPStr[0] = &#39;\\0&#39;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;SendMessage(hIpEdit_ServerIP, IPM_GETADDRESS, 0, (LPARAM) &amp; FIRST_IPADDRESS);\r\n&nbsp;&nbsp;&nbsp;&nbsp;SendMessage(hIpEdit_ServerIP, IPM_GETADDRESS, 0, (LPARAM) &amp; SECOND_IPADDRESS);\r\n&nbsp;&nbsp;&nbsp;&nbsp;SendMessage(hIpEdit_ServerIP, IPM_GETADDRESS, 0, (LPARAM) &amp; THIRD_IPADDRESS);\r\n&nbsp;&nbsp;&nbsp;&nbsp;SendMessage(hIpEdit_ServerIP, IPM_GETADDRESS, 0, (LPARAM) &amp; FOURTH_IPADDRESS);\r\n&nbsp;&nbsp;&nbsp;&nbsp;ServerIP=AnsiString((FIRST_IPADDRESS))+&quot;.&quot;+BYTE(SECOND_IPADDRESS)+&quot;.&quot;+BYTE(THIRD_IPADDRESS)+&quot;.&quot;+BYTE(FOURTH_IPADDRESS);\r\n&nbsp;&nbsp;&nbsp;&nbsp;strcpy(NewServerIPStr, ServerIP.c_str());\r\n\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;NewCamIPStr[0] = &#39;\\0&#39;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;SendMessage(hIpEdit_CamIP, IPM_GETADDRESS, 0, (LPARAM) &amp; FIRST_IPADDRESS);\r\n&nbsp;&nbsp;&nbsp;&nbsp;SendMessage(hIpEdit_CamIP, IPM_GETADDRESS, 0, (LPARAM) &amp; SECOND_IPADDRESS);\r\n&nbsp;&nbsp;&nbsp;&nbsp;SendMessage(hIpEdit_CamIP, IPM_GETADDRESS, 0, (LPARAM) &amp; THIRD_IPADDRESS);\r\n&nbsp;&nbsp;&nbsp;&nbsp;SendMessage(hIpEdit_CamIP, IPM_GETADDRESS, 0, (LPARAM) &amp; FOURTH_IPADDRESS);\r\n&nbsp;&nbsp;&nbsp;&nbsp;CamIP=AnsiString((FIRST_IPADDRESS))+&quot;.&quot;+BYTE(SECOND_IPADDRESS)+&quot;.&quot;+BYTE(THIRD_IPADDRESS)+&quot;.&quot;+BYTE(FOURTH_IPADDRESS);\r\n&nbsp;&nbsp;&nbsp;&nbsp;strcpy(NewCamIPStr, CamIP.c_str());\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(CB_Home-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TMemoryStream *ms=new TMemoryStream;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TJPEGImage *jpg=new TJPEGImage;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!isLogin)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IdHTTP_IPCam-&gt;Request-&gt;Username = Edit_Username-&gt;Text;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IdHTTP_IPCam-&gt;Request-&gt;Password = Edit_Password-&gt;Text;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IdHTTP_IPCam-&gt;Request-&gt;BasicAuthentication = true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IdHTTP_IPCam-&gt;Get(&quot;http:\/\/homeip:9999\/cam_1.jpg&quot;, ms);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ms-&gt;Position=0;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jpg-&gt;LoadFromStream(ms);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Display-&gt;Stretch=true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Display-&gt;Picture-&gt;Assign(jpg);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isLogin = true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete ms;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete jpg;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(...)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage(&quot;Invalid ID or password!&quot;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IdHTTP_IPCam-&gt;Get(&quot;http:\/\/homeip:9999\/cam_1.jpg&quot;, ms);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ms-&gt;Position=0;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jpg-&gt;LoadFromStream(ms);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Display-&gt;Stretch=true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Display-&gt;Picture-&gt;Assign(jpg);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete ms;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete jpg;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(...)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isLogin = false;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(CB_CH1-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHomeDVR(1,Image_Home_CH1);\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(CB_CH2-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHomeDVR(2,Image_Home_CH2);\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(CB_CH3-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHomeDVR(3,Image_Home_CH3);\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(CB_CH4-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHomeDVR(4,Image_Home_CH4);\r\n}\r\n\/\/---------------------------------------------------------------------------\r\nvoid __fastcall TForm1::GetHomeDVR(int Channel, TImage *img)\r\n{\r\n&nbsp;&nbsp;&nbsp;&nbsp;TMemoryStream *ms_ch1=new TMemoryStream;\r\n&nbsp;&nbsp;&nbsp;&nbsp;TJPEGImage *jpg_ch1=new TJPEGImage;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;IdHTTP_Home_CH-&gt;Request-&gt;Username = &quot;xxx&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;IdHTTP_Home_CH-&gt;Request-&gt;Password = &quot;xxxxxx&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;IdHTTP_Home_CH-&gt;Request-&gt;BasicAuthentication = true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;&nbsp;&nbsp;try\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IdHTTP_Home_CH-&gt;Get(&quot;http:\/\/homeip:8888\/snapshot_m.html?ch=&quot;+IntToStr(Channel-1), ms_ch1);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ms_ch1-&gt;Position=0;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jpg_ch1-&gt;LoadFromStream(ms_ch1);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;img-&gt;Stretch=true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;img-&gt;Picture-&gt;Assign(jpg_ch1);\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete ms_ch1;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete jpg_ch1;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;catch(...)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n}\r\n\/\/---------------------------------------------------------------------------\r\nvoid __fastcall TForm1::CppWebBrowser_MainDocumentComplete(TObject *ASender, const IDispatch *pDisp,\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleVariant &amp;URL)\r\n{\r\n&nbsp;&nbsp;&nbsp;&nbsp;if (FAILED(URLDownloadToFile(NULL, &quot;http:\/\/homeip:9999\/cam_1.jpg&quot;,&quot;c:\\\\tmp.jpg&quot;, 0, NULL)))\r\n&nbsp;&nbsp;&nbsp;&nbsp;{;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;else\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Display-&gt;Picture-&gt;LoadFromFile(&quot;c:\\\\tmp.jpg&quot;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n}\r\n\/\/---------------------------------------------------------------------------\r\nvoid __fastcall TForm1::RadioButton_IPCamClick(TObject *Sender)\r\n{\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(RadioButton_IPCam-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Panel_IPCam-&gt;Enabled = true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Panel_Network-&gt;Enabled = false;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;else if(RadioButton_Server-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Panel_IPCam-&gt;Enabled = false;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Panel_Network-&gt;Enabled = true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n}\r\n\/\/---------------------------------------------------------------------------\r\nvoid __fastcall TForm1::RadioButton_ServerClick(TObject *Sender)\r\n{\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(RadioButton_IPCam-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Panel_IPCam-&gt;Enabled = true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Panel_Network-&gt;Enabled = false;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;else if(RadioButton_Server-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Panel_IPCam-&gt;Enabled = false;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Panel_Network-&gt;Enabled = true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n}\r\n\/\/---------------------------------------------------------------------------\r\nvoid __fastcall TForm1::Button2Click(TObject *Sender)\r\n{\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(ComboBox_Resolution-&gt;Text == &quot;640x480&quot;)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Display-&gt;Height = 480;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Display-&gt;Width = 640;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;else if(ComboBox_Resolution-&gt;Text == &quot;320x240&quot;)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Display-&gt;Height = 240;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Display-&gt;Width = 320;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;else if(ComboBox_Resolution-&gt;Text == &quot;176x144&quot;)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Display-&gt;Height = 144;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Display-&gt;Width = 176;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n}\r\n\/\/---------------------------------------------------------------------------\r\nvoid __fastcall TForm1::Btn_RefreshClick(TObject *Sender)\r\n{\r\n&nbsp;&nbsp;&nbsp;&nbsp;Timer_Refresh-&gt;Enabled = true;\r\n}\r\n\/\/---------------------------------------------------------------------------\r\n\r\nvoid __fastcall TForm1::Timer_RefreshTimer(TObject *Sender)\r\n{\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(CB_CH1-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CB_CH1-&gt;Caption = &quot;Connected&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Timer_Refresh-&gt;Enabled = false;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHomeDVR(1,Image_Home_CH1);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Timer_Refresh-&gt;Enabled = true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;else if(!CB_CH1-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CB_CH1-&gt;Caption = &quot;Disconnected&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Home_CH1-&gt;Picture = Image_Black-&gt;Picture;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(CB_CH2-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CB_CH2-&gt;Caption = &quot;Connected&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Timer_Refresh-&gt;Enabled = false;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHomeDVR(2,Image_Home_CH2);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Timer_Refresh-&gt;Enabled = true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;else if(!CB_CH2-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CB_CH2-&gt;Caption = &quot;Disconnected&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Home_CH2-&gt;Picture = Image_Black-&gt;Picture;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(CB_CH3-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CB_CH3-&gt;Caption = &quot;Connected&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Timer_Refresh-&gt;Enabled = false;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHomeDVR(3,Image_Home_CH3);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Timer_Refresh-&gt;Enabled = true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;else if(!CB_CH3-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CB_CH3-&gt;Caption = &quot;Disconnected&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Home_CH3-&gt;Picture = Image_Black-&gt;Picture;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(CB_CH4-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CB_CH4-&gt;Caption = &quot;Connected&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Timer_Refresh-&gt;Enabled = false;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHomeDVR(4,Image_Home_CH4);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Timer_Refresh-&gt;Enabled = true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;else if(!CB_CH4-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CB_CH4-&gt;Caption = &quot;Disconnected&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Home_CH4-&gt;Picture = Image_Black-&gt;Picture;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(CB_Home-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CB_Home-&gt;Caption = &quot;Connected&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Timer_Refresh-&gt;Enabled = false;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TMemoryStream *ms=new TMemoryStream;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TJPEGImage *jpg=new TJPEGImage;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IdHTTP_IPCam-&gt;Request-&gt;Username = Edit_Username-&gt;Text;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IdHTTP_IPCam-&gt;Request-&gt;Password = Edit_Password-&gt;Text;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IdHTTP_IPCam-&gt;Request-&gt;BasicAuthentication = true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IdHTTP_IPCam-&gt;Get(&quot;http:\/\/homeip:9999\/cam_1.jpg&quot;, ms);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ms-&gt;Position=0;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jpg-&gt;LoadFromStream(ms);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Display-&gt;Stretch=true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Display-&gt;Picture-&gt;Assign(jpg);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isLogin = true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete ms;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete jpg;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(...)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage(&quot;Invalid ID or password!&quot;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Timer_Refresh-&gt;Enabled = true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;else if(!CB_Home-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CB_Home-&gt;Caption = &quot;Disconnected&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image_Display-&gt;Picture = Image_Black-&gt;Picture;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n}\r\n\/\/---------------------------------------------------------------------------<\/pre>\n<p>\n\t&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Futures: Connected to the IPCam or Webcam Service Support zoom in and zoom out<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[7,14],"tags":[],"class_list":["post-275","post","type-post","status-publish","format-standard","hentry","category-cc","category-projects"],"_links":{"self":[{"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/275","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=275"}],"version-history":[{"count":6,"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/275\/revisions"}],"predecessor-version":[{"id":304,"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/275\/revisions\/304"}],"wp:attachment":[{"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=275"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=275"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}