private int InitMainWindow()
        {
            this.btnStartStop.BackgroundImage = AverMediaTestApp.Properties.Resources.start_video;
            this.cmbBoxDeviceList.Enabled     = false;
            this.btnStartStop.Enabled         = false;
            this.btnCapture.Enabled           = false;
            this.btnDeviceSettings.Enabled    = false;
            this.btnShowImageStats.Enabled    = false;
            this.tabControlFilter.Enabled     = false;


            cmbBoxDeviceList.SelectedIndexChanged += SelectCaptureDevice_Click;

            avermediaTools = new AvermediaTools(pboxImage);
            List <AvermediaDeviceInfo> avermediaDeviceInfoList = avermediaTools.GetVideoCardList();

            cmbDeInterlance.SelectedIndex     = 0;
            cmbVideoEnhancement.SelectedIndex = 0;
            cmbVideoMirror.SelectedIndex      = 0;

            string       deviceName;
            string       savedDeviceName      = avermediaTools.GetSavedDeviceName();
            int          iSelectedDeviceIndex = -1;
            ComboBoxItem comboBoxItem;

            for (int i = 0; i < avermediaDeviceInfoList.Count; ++i)
            {
                comboBoxItem       = new ComboBoxItem();
                comboBoxItem.Text  = avermediaDeviceInfoList[i].DeviceName;
                comboBoxItem.Value = avermediaDeviceInfoList[i];
                cmbBoxDeviceList.Items.Add(comboBoxItem);

                deviceName = comboBoxItem.Text.Substring(comboBoxItem.Text.IndexOf(':') + 1);
                if (savedDeviceName == deviceName)
                {
                    iSelectedDeviceIndex = i;
                }
            }

            this.cmbBoxDeviceList.Enabled = true;

            if (iSelectedDeviceIndex != -1)
            {
                cmbBoxDeviceList.SelectedIndex = iSelectedDeviceIndex;
            }

            avermediaTools.IsLockCrosshair = true;
            btnCrosshairKeyTrackingLock.BackgroundImage = AverMediaTestApp.Properties.Resources._lock;

            KeyHookTool.OnKeyDown += KeyHookTool_OnKeyDown;
            KeyHookTool.SetHook();

            return(0);
        }
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            lock (objSync)
            {
                if (imageStatsForm != null)
                {
                    imageStatsForm.Close();
                    imageStatsForm.Dispose();
                    imageStatsForm = null;
                }
            }

            avermediaTools.Close();
            KeyHookTool.UnHook();
        }