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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? showvideo.cs

?? 該即時通訊系統系統能夠實現像QQ一樣的通訊功能
?? CS
字號:
using  System;
using  System.Runtime.InteropServices;
namespace  LanMsg.AV
{
	
	public  class  showVideo
	{
		[DllImport("avicap32.dll")]  public  static  extern  IntPtr  capCreateCaptureWindowA(byte[]  lpszWindowName,  int  dwStyle,  int  x,  int  y,  int  nWidth,  int  nHeight,  IntPtr  hWndParent,  int  nID);
		[DllImport("avicap32.dll")]  public  static  extern  bool  capGetDriverDescriptionA(short  wDriver,  byte[]  lpszName,  int  cbName,  byte[]  lpszVer,  int  cbVer);
		[DllImport("User32.dll")]  public  static  extern  bool  SendMessage(IntPtr  hWnd,  int  wMsg,  bool  wParam,  int  lParam);  
		[DllImport("User32.dll")]  public  static  extern  bool  SendMessage(IntPtr  hWnd,  int  wMsg,  short  wParam,  int  lParam);  
		[DllImport("User32.dll")]  public  static  extern  bool  SendMessage(IntPtr  hWnd,  int  wMsg,  short  wParam,  FrameEventHandler  lParam);  
		[DllImport("User32.dll")]  public  static  extern  bool  SendMessage(IntPtr  hWnd,  int  wMsg,  int  wParam,  ref  BITMAPINFO  lParam);
		[DllImport("User32.dll")]  public  static  extern  int  SetWindowPos(IntPtr  hWnd,  int  hWndInsertAfter,  int  x,  int  y,  int  cx,  int  cy,  int  wFlags);
		[DllImport("avicap32.dll")]public  static  extern  int  capGetVideoFormat(IntPtr  hWnd,  IntPtr  psVideoFormat,  int  wSize  );

		public  const  int  WM_USER  =  0x400;
		public  const  int  WS_CHILD  =  0x40000000;
		public  const  int  WS_VISIBLE  =  0x10000000;
		public  const  int  SWP_NOMOVE  =  0x2;
		public  const  int  SWP_NOZORDER  =  0x4;
		public  const  int  WM_CAP_DRIVER_CONNECT  =  WM_USER  +  10;
		public  const  int  WM_CAP_DRIVER_DISCONNECT  =  WM_USER  +  11;
		public  const  int  WM_CAP_SET_CALLBACK_FRAME  =  WM_USER  +  5;
		public  const  int  WM_CAP_SET_PREVIEW  =  WM_USER  +  50;
		public  const  int  WM_CAP_SET_PREVIEWRATE  =  WM_USER  +  52;
		public  const  int  WM_CAP_SET_VIDEOFORMAT  =  WM_USER  +  45;
  
		[StructLayout(LayoutKind.Sequential)]  public  struct  VIDEOHDR
		{
			[MarshalAs(UnmanagedType.I4)]  public  int  lpData;
			[MarshalAs(UnmanagedType.I4)]  public  int  dwBufferLength;
			[MarshalAs(UnmanagedType.I4)]  public  int  dwBytesUsed;
			[MarshalAs(UnmanagedType.I4)]  public  int  dwTimeCaptured;
			[MarshalAs(UnmanagedType.I4)]  public  int  dwUser;
			[MarshalAs(UnmanagedType.I4)]  public  int  dwFlags;
			[MarshalAs(UnmanagedType.ByValArray,  SizeConst=4)]  public  int[]  dwReserved;
		}

		[StructLayout(LayoutKind.Sequential)]  public  struct  bitmapinfoheader
		{
			[MarshalAs(UnmanagedType.I4)]  public  Int32  biSize  ;
			[MarshalAs(UnmanagedType.I4)]  public  Int32  biWidth  ;
			[MarshalAs(UnmanagedType.I4)]  public  Int32  biHeight  ;
			[MarshalAs(UnmanagedType.I2)]  public  short  biPlanes;
			[MarshalAs(UnmanagedType.I2)]  public  short  biBitCount  ;
			[MarshalAs(UnmanagedType.I4)]  public  Int32  biCompression;
			[MarshalAs(UnmanagedType.I4)]  public  Int32  biSizeImage;
			[MarshalAs(UnmanagedType.I4)]  public  Int32  biXPelsPerMeter;
			[MarshalAs(UnmanagedType.I4)]  public  Int32  biYPelsPerMeter;
			[MarshalAs(UnmanagedType.I4)]  public  Int32  biClrUsed;
			[MarshalAs(UnmanagedType.I4)]  public  Int32  biClrImportant;
		}  

		[StructLayout(LayoutKind.Sequential)]  public  struct  BITMAPINFO
		{
			[MarshalAs(UnmanagedType.Struct,  SizeConst=40)]  public  BITMAPINFOHEADER  bmiHeader;
			[MarshalAs(UnmanagedType.ByValArray,  SizeConst=1024)]  public  Int32[]  bmiColors;
		}
  
		public  delegate  void  FrameEventHandler(IntPtr  lwnd,  IntPtr  lpVHdr);
  
		public  static  object  GetStructure(IntPtr  ptr,ValueType  structure)
		{
			return  Marshal.PtrToStructure(ptr,structure.GetType());
		}
  
		public  static  object  GetStructure(int  ptr,ValueType  structure)
		{
			return  GetStructure(new  IntPtr(ptr),structure);
		}
  
		public  static  void  Copy(IntPtr  ptr,byte[]  data)
		{
			Marshal.Copy(ptr,data,0,data.Length);
		}
  
		public  static  void  Copy(int  ptr,byte[]  data)
		{
			Copy(new  IntPtr(ptr),data);
		}
  
		public  static  int  SizeOf(object  structure)
		{
			return  Marshal.SizeOf(structure);  
		}
	}

	public  class  Camera
	{
		public  Camera(IntPtr  handle,  int  width,int  height)
		{
			mControlPtr  =  handle;
			mWidth  =  width;
			mHeight  =  height;
		}
  
		public  delegate  void  RecievedFrameEventHandler(byte[]  data);
		public  event  RecievedFrameEventHandler  RecievedFrame;
  
		private  IntPtr  lwndC;  
		private  IntPtr  mControlPtr;  
		private  int  mWidth;
		private  int  mHeight;
  
		private  showVideo.FrameEventHandler  mFrameEventHandler;  //  Delegate  instance  for  the  frame  callback  -  must  keep  alive!  gc  should  NOT  collect  it
  
		public  void  CloseWebcam()
		{
			this.capDriverDisconnect(this.lwndC);
		}
  
		public  void  StartWebCam()
		{
			byte[]  lpszName  =  new  byte[100];
			byte[]  lpszVer  =  new  byte[100];
  
			showVideo.capGetDriverDescriptionA(0,  lpszName,  100,lpszVer,  100);
			this.lwndC  =  showVideo.capCreateCaptureWindowA(lpszName,  showVideo.WS_VISIBLE  +  showVideo.WS_CHILD,  0,  0,  mWidth,  mHeight,  mControlPtr,  0);
  
			if  (this.capDriverConnect(this.lwndC,  0))
			{
				this.capPreviewRate(this.lwndC,  66);
				this.capPreview(this.lwndC,  true);
				showVideo.BITMAPINFO  bitmapinfo  =  new  showVideo.BITMAPINFO();  
				bitmapinfo.bmiHeader.biSize  =  showVideo.SizeOf(bitmapinfo.bmiHeader);
				bitmapinfo.bmiHeader.biWidth  =  352;
				bitmapinfo.bmiHeader.biHeight  =  288;
				bitmapinfo.bmiHeader.biPlanes  =  1;
				bitmapinfo.bmiHeader.biBitCount  =  24;
				this.capSetVideoFormat(this.lwndC,  ref  bitmapinfo,  showVideo.SizeOf(bitmapinfo));
				this.mFrameEventHandler  =  new  showVideo.FrameEventHandler(FrameCallBack);
				this.capSetCallbackOnFrame(this.lwndC,  this.mFrameEventHandler);
				showVideo.SetWindowPos(this.lwndC,  0,  0,  0,  mWidth  ,  mHeight  ,  6);
			}  
		}

		private  bool  capDriverConnect(IntPtr  lwnd,  short  i)
		{
			return  showVideo.SendMessage(lwnd,  showVideo.WM_CAP_DRIVER_CONNECT,  i,  0);
		}

		private  bool  capDriverDisconnect(IntPtr  lwnd)
		{
			return  showVideo.SendMessage(lwnd,  showVideo.WM_CAP_DRIVER_DISCONNECT,  0,  0);
		}
  
		private  bool  capPreview(IntPtr  lwnd,  bool  f)
		{
			return  showVideo.SendMessage(lwnd,  showVideo.WM_CAP_SET_PREVIEW  ,  f,  0);
		}

		private  bool  capPreviewRate(IntPtr  lwnd,  short  wMS)
		{
			return  showVideo.SendMessage(lwnd,  showVideo.WM_CAP_SET_PREVIEWRATE,  wMS,  0);
		}
  
		private  bool  capSetCallbackOnFrame(IntPtr  lwnd,  showVideo.FrameEventHandler  lpProc)
		{  
			return  showVideo.SendMessage(lwnd,  showVideo.WM_CAP_SET_CALLBACK_FRAME,  0,  lpProc);
		}

		private  bool  capSetVideoFormat(IntPtr  hCapWnd,  ref  showVideo.BITMAPINFO  BmpFormat,  int  CapFormatSize)
		{
			return  showVideo.SendMessage(hCapWnd,  showVideo.WM_CAP_SET_VIDEOFORMAT,  CapFormatSize,  ref  BmpFormat);
		}

		private  void  FrameCallBack(IntPtr  lwnd,  IntPtr  lpVHdr)
		{
			showVideo.VIDEOHDR  videoHeader  =  new  showVideo.VIDEOHDR();
			byte[]  VideoData;
			videoHeader  =  (showVideo.VIDEOHDR)showVideo.GetStructure(lpVHdr,videoHeader);
			VideoData  =  new  byte[videoHeader.dwBytesUsed];
			showVideo.Copy(videoHeader.lpData  ,VideoData);
			if  (this.RecievedFrame  !=  null)
				this.RecievedFrame  (VideoData);
		}
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产又黄又大久久| 日韩av一区二区三区四区| 日韩欧美在线综合网| 欧美视频一区二区三区四区| av成人免费在线观看| 国产成人免费在线观看不卡| 激情五月播播久久久精品| 免费精品视频在线| 日本成人在线不卡视频| 奇米影视在线99精品| 美女视频黄a大片欧美| 精品一区二区三区视频在线观看| 美女在线视频一区| 精品一区二区三区av| 国产精品一区二区三区四区| 国产成人综合网| 91亚洲永久精品| 欧美日韩免费在线视频| 欧美成人vps| 久久精品男人天堂av| 中文字幕一区不卡| 亚洲国产成人av| 精品一区二区三区蜜桃| 不卡电影免费在线播放一区| 91福利精品第一导航| 7777精品伊人久久久大香线蕉| 日韩区在线观看| 午夜精彩视频在线观看不卡| 日本一区中文字幕| 国产毛片精品视频| 色琪琪一区二区三区亚洲区| 日韩一级大片在线观看| 日本一区免费视频| 图片区小说区区亚洲影院| 麻豆视频一区二区| 91天堂素人约啪| 亚洲精品一区二区三区福利| 亚洲欧美日韩国产中文在线| 麻豆精品视频在线观看| av爱爱亚洲一区| 日韩欧美亚洲一区二区| 亚洲欧美自拍偷拍| 国内久久精品视频| 欧美伦理视频网站| 国产精品久久久久三级| 天天综合网天天综合色| 99久久精品99国产精品| 久久影音资源网| 婷婷综合久久一区二区三区| 97久久精品人人澡人人爽| 日韩一卡二卡三卡四卡| 亚洲综合一区在线| 国产91在线观看丝袜| 欧美一区二区私人影院日本| 中文字幕制服丝袜一区二区三区| 日本色综合中文字幕| 99国产精品久久久久| 欧美电影精品一区二区| 亚洲免费观看在线观看| 国产成人超碰人人澡人人澡| 日韩一区二区免费在线电影| 亚洲夂夂婷婷色拍ww47| 大桥未久av一区二区三区中文| 日韩欧美www| 日韩精品一二区| 欧美日韩国产另类一区| 亚洲乱码中文字幕| 91视视频在线观看入口直接观看www | 国产精品久久久久精k8| 精品一区二区av| 精品久久久久久久久久久久久久久 | 国产在线一区二区综合免费视频| 欧美午夜精品久久久久久孕妇| 中文字幕第一区二区| 成人综合激情网| 国产精品丝袜一区| 成人动漫视频在线| ●精品国产综合乱码久久久久| 国产河南妇女毛片精品久久久| 《视频一区视频二区| 一本大道久久a久久综合婷婷| 亚洲欧洲成人精品av97| 一本色道亚洲精品aⅴ| 亚洲久草在线视频| 欧美日韩中文国产| 日韩国产高清影视| 日韩免费观看高清完整版| 精彩视频一区二区| 国产精品乱码一区二三区小蝌蚪| 成人综合婷婷国产精品久久| 亚洲日本va在线观看| 91精品福利视频| 五月激情综合色| 这里只有精品99re| 国产精品一区二区三区99| 国产清纯白嫩初高生在线观看91| youjizz久久| 亚洲成a天堂v人片| 日韩欧美高清dvd碟片| 国产91丝袜在线18| 亚洲综合色婷婷| 日韩欧美一级特黄在线播放| 国产大陆精品国产| 亚洲综合成人网| 欧美不卡在线视频| 99re这里都是精品| 婷婷中文字幕一区三区| 国产欧美一区二区精品性色| 色综合天天综合色综合av| 日韩精品国产精品| 亚洲国产成人在线| 欧美精品乱码久久久久久| 国产91丝袜在线播放九色| 亚洲电影在线免费观看| 久久久777精品电影网影网| 欧美视频精品在线观看| 国产成人av电影在线| 国产 日韩 欧美大片| 亚洲超丰满肉感bbw| 国产欧美日韩三区| 91精品国产综合久久婷婷香蕉| 大胆欧美人体老妇| 蜜桃视频在线观看一区| 亚洲精品免费在线播放| 国产亚洲一区二区三区| 欧美精品1区2区3区| 99久久国产免费看| 国产一区 二区 三区一级| 亚洲国产日日夜夜| 亚洲人成在线观看一区二区| 精品99999| 欧美丰满少妇xxxxx高潮对白| 9人人澡人人爽人人精品| 国精产品一区一区三区mba视频| 亚洲国产美国国产综合一区二区| 久久精品视频一区二区三区| 欧美日韩一区不卡| 91亚洲午夜精品久久久久久| 国产成人免费视频网站高清观看视频 | 成人性生交大片免费看中文| 日本va欧美va瓶| 亚洲综合成人在线| 一区二区三区日韩在线观看| 日本一区二区高清| 欧美大尺度电影在线| 91精品国产乱码| 欧美色精品天天在线观看视频| 北岛玲一区二区三区四区| 精品一区二区在线播放| 久久福利资源站| 免费在线观看精品| 老司机免费视频一区二区| 日韩av中文在线观看| 美国欧美日韩国产在线播放| 日本在线观看不卡视频| 久久99国产精品麻豆| 免费观看一级特黄欧美大片| 蜜桃av一区二区三区电影| 美女被吸乳得到大胸91| 黄页视频在线91| 国产伦精一区二区三区| 丰满亚洲少妇av| 欧美一区二区三区喷汁尤物| 欧美精品第1页| 91精品午夜视频| 精品国精品自拍自在线| 久久精品夜夜夜夜久久| 日本一区二区电影| 亚洲欧洲综合另类| 丝袜a∨在线一区二区三区不卡| 手机精品视频在线观看| 精品一区二区久久久| 国产精品香蕉一区二区三区| 处破女av一区二区| 欧美吻胸吃奶大尺度电影 | 精品不卡在线视频| 国产精品午夜电影| 亚洲影院久久精品| 麻豆精品国产91久久久久久| 国产丶欧美丶日本不卡视频| 99在线精品观看| 高清av一区二区| 精品国产sm最大网站免费看| 亚洲美女偷拍久久| 精品在线亚洲视频| 亚洲天天做日日做天天谢日日欢 | 成人网在线播放| 色狠狠桃花综合| 日韩欧美高清dvd碟片| 国产精品美女久久久久久2018 | 欧美日韩一区不卡| 精品国产一区二区三区久久影院| 亚洲国产激情av| 日韩一区有码在线| 欧美日韩精品一区二区| 国产精品美女视频| 色欧美88888久久久久久影院| 久久99精品久久久久久国产越南 | 一区二区三区精品在线| 免费观看在线色综合|