亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? videocapturer.cs

?? 該即時(shí)通訊系統(tǒng)系統(tǒng)能夠?qū)崿F(xiàn)像QQ一樣的通訊功能
?? CS
字號(hào):
using System;
using System.Text;
using System.Drawing;
using System.Diagnostics;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace LanMsg.AV
{
	public delegate void VideoCaptureEventHandler(object sender,VIDEOHDR hdr);
	public delegate void VideoErrorEventHandler(object sender,string desc);
	public class VideoCapturer
	{
		capVideoStreamCallback m_streamCallBack;
		capErrorCallback m_errorCallBack;
		CaptureParms m_parms;
		BITMAPINFO m_BITMAPINFO;
		IntPtr m_hwnd;
		bool m_IsCapturing;
		bool m_HasPreview;
		bool m_Connected;
		private int index;
		public event VideoCaptureEventHandler VideoCaptured;
		public event VideoErrorEventHandler VideoError;
		public VideoCapturer(Control control,int index)
		{
			this.index=index;
			m_hwnd=capCreateCaptureWindow ("",WS_VISIBLE|WS_CHILD,0,0,control.Width ,control.Height,control.Handle,0);

			if(m_hwnd==IntPtr.Zero)throw new AVException();
			m_parms=new CaptureParms();

			m_streamCallBack=new capVideoStreamCallback(this.streamCallBack);
			m_errorCallBack=new capErrorCallback(this.capErrorCallback);
			SendMessage(m_hwnd,WM_CAP_SET_CALLBACK_ERRORA,0,m_errorCallBack);
			SendMessage(m_hwnd,WM_CAP_SET_CALLBACK_VIDEOSTREAM,0,m_streamCallBack);
		}
		public int ShowVideoDisplay()
		{
			return SendMessageClass.SendMessage(m_hwnd,WM_CAP_DLG_VIDEODISPLAY,0,0);
		}
		public int ShowVideoCompression()
		{
			return SendMessageClass.SendMessage(m_hwnd,WM_CAP_DLG_VIDEOCOMPRESSION,0,0);
		}
		public int ShowVideoFormat()
		{
			return SendMessageClass.SendMessage(m_hwnd,WM_CAP_DLG_VIDEOFORMAT,0,0);
		}
		public int ShowVideoSource()
		{
			return SendMessageClass.SendMessage(m_hwnd,WM_CAP_DLG_VIDEOSOURCE,0,0);
		}
		public int ConnectDevice()
		{
			return SendMessageClass.SendMessage(m_hwnd,WM_CAP_DRIVER_CONNECT,this.index,0);
		}
		public int SetPreviewRate(int rate)
		{
			return SendMessageClass.SendMessage(m_hwnd,WM_CAP_SET_PREVIEWRATE,rate,0);
		}
		public bool Preview
		{
			get{return this.m_HasPreview;}
			set
			{
				int ret=SendMessageClass.SendMessage(m_hwnd,WM_CAP_SET_PREVIEW,value,0);
				if(ret==1)this.m_HasPreview=value;
			}
		}
		public int CaptureWithOutFile()
		{
	//		Debug.Assert(this.Connected);
			int ret=SendMessageClass.SendMessage(m_hwnd,WM_CAP_SEQUENCE_NOFILE,0,0);
			return ret;
		}

		public void  Disconnect()
		{
			SendMessageClass.SendMessage(m_hwnd,WM_CAP_DRIVER_DISCONNECT,0,0);
		}
		public void Close()
		{
			SendMessageClass.SendMessage(m_hwnd,0x10,0,0);
		}
		public int Stop()
		{
			int ret=SendMessageClass.SendMessage(m_hwnd,WM_CAP_STOP,0,0);
			return ret;
		}
		public int Abort()
		{
			int ret=SendMessageClass.SendMessage(m_hwnd,WM_CAP_ABORT,0,0);
			return ret;
		}
		public int SavePicture(string file)
		{
			return SendMessage(m_hwnd,WM_CAP_FILE_SAVEDIBW,0,file);
		}
		public CaptureParms CaptureParms
		{
			get
			{
				SendMessage(m_hwnd,WM_CAP_GET_SEQUENCE_SETUP,Marshal.SizeOf(m_parms),ref m_parms);
				return this.m_parms;
			}
			set
			{
				m_parms=value;
				SendMessage(m_hwnd,WM_CAP_SET_SEQUENCE_SETUP,Marshal.SizeOf(m_parms),ref m_parms);
			}
		}
		public BITMAPINFO BITMAPINFO 
		{
			get
			{
				SendMessage(m_hwnd,WM_CAP_GET_VIDEOFORMAT,Marshal.SizeOf(m_BITMAPINFO),ref m_BITMAPINFO);
				return this.m_BITMAPINFO;
			}
			set
			{
				this.m_BITMAPINFO=value;
				SendMessage(m_hwnd,WM_CAP_SET_VIDEOFORMAT,Marshal.SizeOf(m_BITMAPINFO),ref m_BITMAPINFO);
			}
		}
		public int SetScale(bool value)
		{
			return SendMessageClass.SendMessage(m_hwnd,WM_CAP_SET_SCALE,value,0);
		}
		public CAPSTATUS CAPSTATUS
		{
			get
			{
				CAPSTATUS status=new CAPSTATUS();
				SendMessage(m_hwnd,WM_CAP_GET_STATUS,Marshal.SizeOf(CAPSTATUS),ref status);
				return status;
			}
		}
		public bool Connected
		{
			get{return this.m_Connected;}
		}
		public IntPtr Handler
		{
			get{return this.Handler;}
		}
		public bool IsCapturing
		{
			get{return this.m_IsCapturing;}
		}

		private int streamCallBack(IntPtr hWnd,ref VIDEOHDR lpVHdr)
		{
			if(this.VideoCaptured!=null)this.VideoCaptured(this,lpVHdr);
			return 0;
		}
		private int capErrorCallback(IntPtr hWnd,int nID,string lpsz)
		{
			this.m_IsCapturing=false;
			this.m_HasPreview=false;
			if(this.m_Connected)
			{
				this.Disconnect();
				this.m_Connected=false;
			}
			if(this.VideoError!=null)this.VideoError(this,lpsz);
			return 0;
		}
		public class VideoCaptureDeviceCollection:System.Collections.ArrayList{}
		public static VideoCaptureDeviceCollection GetDevices()
		{
			VideoCaptureDeviceCollection c=new VideoCaptureDeviceCollection();
			for(int i=0;i<10;i++)
			{
				StringBuilder name,version;
				name=new StringBuilder( 128);
				version=new StringBuilder(128);
				if(capGetDriverDescription(i,name,128,version,128))
				{
					c.Add(new VideoCaptureDevice(i,name.ToString(),version.ToString()));
				}
			}
			return c;
		}


		#region

		private static int WS_CHILD = 1073741824;
		private static int WS_VISIBLE = 268435456;


		private const int WM_USER                        = 0x0400;
		private const int WM_CAP_START                   =WM_USER;
		private const int WM_CAP_UNICODE_START            =WM_USER+100;
		private const int WM_CAP_SET_CALLBACK_ERRORW     =(WM_CAP_UNICODE_START+  2);
		private const int WM_CAP_SET_CALLBACK_ERRORA     =(WM_CAP_START+  2);
		private const int WM_CAP_SET_CALLBACK_FRAME      = (WM_CAP_START+  5);
		private const int  WM_CAP_SET_CALLBACK_VIDEOSTREAM =(WM_CAP_START+  6);


		public static int  WM_CAP_DRIVER_CONNECT           =(WM_CAP_START+  10);
		public static int  WM_CAP_DRIVER_DISCONNECT        =(WM_CAP_START+  11);

		public static int  WM_CAP_DRIVER_GET_NAMEA        =(WM_CAP_START+  12);
		public static int  WM_CAP_DRIVER_GET_VERSIONA     =(WM_CAP_START+  13);
		public static int  WM_CAP_DRIVER_GET_NAMEW        =(WM_CAP_UNICODE_START+  12);
		public static int  WM_CAP_DRIVER_GET_VERSIONW     =(WM_CAP_UNICODE_START+  13);
		public static int  WM_CAP_DRIVER_GET_NAME          =WM_CAP_DRIVER_GET_NAMEW;
		public static int  WM_CAP_DRIVER_GET_VERSION       =WM_CAP_DRIVER_GET_VERSIONW;

		public static int  WM_CAP_DRIVER_GET_CAPS          =(WM_CAP_START+  14);

		public static int  WM_CAP_FILE_SET_CAPTURE_FILEA  =(WM_CAP_START+  20);
		public static int  WM_CAP_FILE_GET_CAPTURE_FILEA  =(WM_CAP_START+  21);
		public static int  WM_CAP_FILE_SAVEASA            =(WM_CAP_START+  23);
		public static int  WM_CAP_FILE_SAVEDIBA           =(WM_CAP_START+  25);
		public static int  WM_CAP_FILE_SET_CAPTURE_FILEW  =(WM_CAP_UNICODE_START+  20);
		public static int  WM_CAP_FILE_GET_CAPTURE_FILEW  =(WM_CAP_UNICODE_START+  21);
		public static int  WM_CAP_FILE_SAVEASW            =(WM_CAP_UNICODE_START+  23);
		public static int  WM_CAP_FILE_SAVEDIBW           =(WM_CAP_UNICODE_START+  25);
		public static int  WM_CAP_FILE_SET_CAPTURE_FILE    =WM_CAP_FILE_SET_CAPTURE_FILEW;
		public static int  WM_CAP_FILE_GET_CAPTURE_FILE    =WM_CAP_FILE_GET_CAPTURE_FILEW;
		public static int  WM_CAP_FILE_SAVEAS              =WM_CAP_FILE_SAVEASW;
		public static int  WM_CAP_FILE_SAVEDIB             =WM_CAP_FILE_SAVEDIBW;

		// out of order to save on ifdefs
		public static int  WM_CAP_FILE_ALLOCATE            =(WM_CAP_START+  22);
		public static int  WM_CAP_FILE_SET_INFOCHUNK       =(WM_CAP_START+  24);

		public static int  WM_CAP_EDIT_COPY                =(WM_CAP_START+  30);

		public static int  WM_CAP_SET_AUDIOFORMAT          =(WM_CAP_START+  35);
		public static int  WM_CAP_GET_AUDIOFORMAT          =(WM_CAP_START+  36);

		public static int  WM_CAP_DLG_VIDEOFORMAT          =(WM_CAP_START+  41);
		public static int  WM_CAP_DLG_VIDEOSOURCE          =(WM_CAP_START+  42);
		public static int  WM_CAP_DLG_VIDEODISPLAY         =(WM_CAP_START+  43);
		public static int  WM_CAP_GET_VIDEOFORMAT          =(WM_CAP_START+  44);
		public static int  WM_CAP_SET_VIDEOFORMAT          =(WM_CAP_START+  45);
		public static int  WM_CAP_DLG_VIDEOCOMPRESSION     =(WM_CAP_START+  46);

		public static int  WM_CAP_SET_PREVIEW              =(WM_CAP_START+  50);
		public static int  WM_CAP_SET_OVERLAY              =(WM_CAP_START+  51);
		public static int  WM_CAP_SET_PREVIEWRATE          =(WM_CAP_START+  52);
		public static int  WM_CAP_SET_SCALE                =(WM_CAP_START+  53);
		public static int  WM_CAP_GET_STATUS               =(WM_CAP_START+  54);
		public static int  WM_CAP_SET_SCROLL               =(WM_CAP_START+  55);

		public static int  WM_CAP_GRAB_FRAME               =(WM_CAP_START+  60);
		public static int  WM_CAP_GRAB_FRAME_NOSTOP        =(WM_CAP_START+  61);

		public static int  WM_CAP_SEQUENCE                 =(WM_CAP_START+  62);
		public static int  WM_CAP_SEQUENCE_NOFILE          =(WM_CAP_START+  63);
		public static int  WM_CAP_SET_SEQUENCE_SETUP       =(WM_CAP_START+  64);
		public static int  WM_CAP_GET_SEQUENCE_SETUP       =(WM_CAP_START+  65);

		public static int  WM_CAP_SET_MCI_DEVICEA         =(WM_CAP_START+  66);
		public static int  WM_CAP_GET_MCI_DEVICEA         =(WM_CAP_START+  67);
		public static int  WM_CAP_SET_MCI_DEVICEW         =(WM_CAP_UNICODE_START+  66);
		public static int  WM_CAP_GET_MCI_DEVICEW         =(WM_CAP_UNICODE_START+  67);
		public static int  WM_CAP_SET_MCI_DEVICE           =WM_CAP_SET_MCI_DEVICEW;
		public static int  WM_CAP_GET_MCI_DEVICE           =WM_CAP_GET_MCI_DEVICEW;
		public static int  WM_CAP_STOP                     =(WM_CAP_START+  68);
		public static int  WM_CAP_ABORT                    =(WM_CAP_START+  69);

		public static int  WM_CAP_SINGLE_FRAME_OPEN        =(WM_CAP_START+  70);
		public static int  WM_CAP_SINGLE_FRAME_CLOSE       =(WM_CAP_START+  71);
		public static int  WM_CAP_SINGLE_FRAME             =(WM_CAP_START+  72);

		public static int  WM_CAP_PAL_OPENA               =(WM_CAP_START+  80);
		public static int  WM_CAP_PAL_SAVEA               =(WM_CAP_START+  81);
		public static int  WM_CAP_PAL_OPENW               =(WM_CAP_UNICODE_START+  80);
		public static int  WM_CAP_PAL_SAVEW               =(WM_CAP_UNICODE_START+  81);
		public static int  WM_CAP_PAL_OPEN                = WM_CAP_PAL_OPENW;
		public static int  WM_CAP_PAL_SAVE                 =WM_CAP_PAL_SAVEW;

		public static int  WM_CAP_PAL_PASTE                =(WM_CAP_START+  82);
		public static int  WM_CAP_PAL_AUTOCREATE           =(WM_CAP_START+  83);
		public static int  WM_CAP_PAL_MANUALCREATE         =(WM_CAP_START+  84);

		// Following added post VFW 1.1
		public static int  WM_CAP_SET_CALLBACK_CAPCONTROL  =(WM_CAP_START+  85);






		[DllImport("AVICAP32.dll")]
		private static extern IntPtr capCreateCaptureWindow(
			string lpszWindowName,
			int dwStyle,
			int x, int y, int nWidth, int nHeight,
			IntPtr hwndParent, int nID);
		[DllImport("AVICAP32.dll",CharSet=CharSet.Unicode)]
		private static extern bool capGetDriverDescription(int wDriverIndex,
			StringBuilder lpszName, int cbName,
			StringBuilder lpszVer, int cbVer);


		[DllImport("USER32.DLL")]
		static extern int SendMessage(	
			IntPtr hwnd, 
			int wMsg,
			int wParam,
			capErrorCallback lParam
			);	
		[DllImport("USER32.DLL")]
		static extern int SendMessage(	
			IntPtr hwnd, 
			int wMsg,
			int wParam,
			capVideoStreamCallback lParam
			);	
		[DllImport("USER32.DLL")]
		static extern int SendMessage(	
			IntPtr hwnd, 
			int wMsg,
			int wParam,
			ref CaptureParms lParam
			);	
		[DllImport("USER32.DLL")]
		static extern int SendMessage(	
			IntPtr hwnd, 
			int wMsg,
			int wParam,
			ref BITMAPINFO lParam
			);	
		[DllImport("USER32.DLL")]
		static extern int SendMessage(	
			IntPtr hwnd, 
			int wMsg,
			int wParam,
			ref CAPSTATUS lParam
			);	
		[DllImport("USER32.DLL",CharSet=CharSet.Auto)]
		static extern int SendMessage(	
			IntPtr hwnd, 
			int wMsg,
			int wParam,
			string lParam
			);	
		#endregion
	}
	public class VideoCaptureDevice
	{
		private int index;private string name,version;
		public VideoCaptureDevice(int index,string name,string version)
		{
			this.index=index;this.name=name;this.version=version;
		}
		public int Index{get{return this.index;}}
		public string Name{get{return this.name;}}
		public string Version{get{return this.version;}}
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区x88av| 中文字幕不卡三区| 天堂在线亚洲视频| 欧美日韩你懂的| 午夜精品久久久久久久蜜桃app| 91久久线看在观草草青青| 亚洲女同一区二区| 欧美日韩国产成人在线免费| 免费成人深夜小野草| 久久久久久久久久久久久夜| 成人va在线观看| 亚洲久草在线视频| 7777精品伊人久久久大香线蕉超级流畅| 日韩av网站在线观看| 久久人人超碰精品| 99国产精品99久久久久久| 亚洲一区二区三区视频在线| 欧美一区二区福利视频| 国产精品99久久久久久宅男| 亚洲欧洲成人av每日更新| 欧美日韩精品一区二区三区四区| 毛片av一区二区三区| 国产视频一区不卡| 欧美午夜视频网站| 国产在线一区二区综合免费视频| 国产精品视频一区二区三区不卡| 欧美这里有精品| 欧美久久久久中文字幕| 精品一区二区三区在线播放 | 欧美性生活久久| 免费在线观看一区| 国产精品无码永久免费888| 欧美日韩一区高清| 丰满少妇在线播放bd日韩电影| 亚洲国产另类av| 欧美国产精品一区| 日韩午夜电影av| 色婷婷一区二区| 国产资源在线一区| 亚洲电影中文字幕在线观看| 国产日韩在线不卡| 欧美精品久久久久久久多人混战| 福利一区在线观看| 久久99蜜桃精品| 亚洲午夜视频在线| 国产精品国产三级国产aⅴ中文| 日韩视频一区二区在线观看| 一本大道久久a久久精品综合| 国产呦精品一区二区三区网站| 亚洲一级不卡视频| 国产精品高潮久久久久无| 2023国产一二三区日本精品2022| 欧美三级电影在线看| av福利精品导航| 国产99久久久久久免费看农村| 日本欧美肥老太交大片| 一区二区三区四区中文字幕| 国产精品午夜在线观看| 欧美xxxx在线观看| 在线电影欧美成精品| 在线亚洲+欧美+日本专区| 不卡一区二区三区四区| 国产黄色精品网站| 国产真实精品久久二三区| 麻豆精品一区二区| 日韩福利电影在线| 日韩主播视频在线| 水蜜桃久久夜色精品一区的特点 | 日韩欧美一级特黄在线播放| 欧美日韩成人在线一区| 欧美在线免费观看视频| 日本精品视频一区二区三区| 不卡一区二区三区四区| 国产成人一区在线| 丁香另类激情小说| 国产精品亚洲一区二区三区在线| 精品在线观看视频| 国产一区在线观看视频| 韩国欧美国产1区| 精品国产成人系列| 91麻豆精品国产91久久久资源速度 | 一卡二卡欧美日韩| 亚洲欧洲韩国日本视频| 亚洲日本免费电影| 亚洲色图视频免费播放| 一区二区三区四区不卡视频| 亚洲精品一卡二卡| 亚洲aⅴ怡春院| 蜜臀久久99精品久久久久久9 | 亚洲免费观看高清在线观看| 亚洲精品视频免费观看| 亚洲高清一区二区三区| 免费日韩伦理电影| 国产高清在线精品| 成人网在线免费视频| 色综合 综合色| 欧美男女性生活在线直播观看| 在线播放日韩导航| 精品成a人在线观看| 国产精品久久影院| 亚洲成人av电影在线| 麻豆成人91精品二区三区| 成人午夜短视频| 日本精品免费观看高清观看| 欧美精品99久久久**| 久久久不卡网国产精品二区| 粉嫩绯色av一区二区在线观看 | 欧美精品777| 国产丝袜欧美中文另类| 一区二区三区成人在线视频| 青娱乐精品在线视频| 成人亚洲一区二区一| 欧美日韩在线免费视频| 久久综合九色综合久久久精品综合| 国产精品国产三级国产有无不卡| 亚洲成av人片在www色猫咪| 狠狠色丁香婷婷综合| 一本一本大道香蕉久在线精品| 欧美一区二区日韩| 国产精品久久久久久久久图文区 | 自拍偷拍欧美精品| 亚洲成人av一区| 国产成人av电影免费在线观看| 欧美视频一区在线观看| 久久理论电影网| 日韩中文字幕区一区有砖一区| 丁香激情综合五月| 7777精品伊人久久久大香线蕉经典版下载| 国产亚洲一区二区三区| 日韩高清电影一区| 91麻豆免费观看| 久久久久国色av免费看影院| 亚洲va在线va天堂| 99麻豆久久久国产精品免费| 欧美xxxxxxxxx| 亚洲国产精品一区二区尤物区| 国产精品夜夜嗨| 日韩视频免费观看高清完整版 | 国产在线精品免费| 欧美日韩免费观看一区二区三区 | 国产精品久久久久四虎| 久久精品国产**网站演员| 色婷婷av一区| 国产精品蜜臀在线观看| 激情图片小说一区| 欧美精品1区2区| 一区二区三区成人在线视频| av综合在线播放| 欧美激情艳妇裸体舞| 韩国理伦片一区二区三区在线播放| 7777精品伊人久久久大香线蕉完整版| 亚洲美女视频在线| av电影在线观看不卡| 日本一区二区在线不卡| 国产毛片精品国产一区二区三区| 欧美一区二区免费视频| 日韩高清国产一区在线| 欧美日韩在线播放三区四区| 亚洲一区影音先锋| 色吧成人激情小说| 中文字幕一区免费在线观看| 国产成人免费视| 久久久影视传媒| 国产风韵犹存在线视精品| 精品国精品国产尤物美女| 亚洲五码中文字幕| 欧美日韩国产电影| 午夜激情一区二区| 91精品国产品国语在线不卡| 三级亚洲高清视频| 日韩一级大片在线观看| 偷拍亚洲欧洲综合| 欧美视频中文字幕| 日韩电影在线一区二区| 日韩一区二区三区视频在线 | 亚洲自拍偷拍网站| 欧美在线观看视频在线| 亚洲mv在线观看| 日韩欧美一级二级| 国产一区二区视频在线| 国产拍揄自揄精品视频麻豆| 成人免费视频一区二区| 亚洲欧洲日韩在线| 欧美性xxxxx极品少妇| 香蕉成人啪国产精品视频综合网 | 一级中文字幕一区二区| 欧美疯狂做受xxxx富婆| 国产精品美女久久久久久2018| 色综合久久中文字幕综合网| 亚洲中国最大av网站| 91麻豆精品久久久久蜜臀| 国产一区视频在线看| 国产精品区一区二区三区| 99精品久久99久久久久| 亚洲福利视频导航| 2024国产精品| 在线观看日韩电影| 久久97超碰国产精品超碰| 国产精品蜜臀在线观看| 欧美日韩不卡一区|