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

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

?? cappicture.cpp

?? < VC++視頻音頻開發>> 這本書的源碼
?? CPP
字號:
#include <windows.h>
#include <vfw.h>
#include <commdlg.h>
#include "CapPicture.h"

LRESULT WINAPI MainWndProc( HWND, UINT, WPARAM, LPARAM ); 
LRESULT WINAPI SelCapDrvProc( HWND, UINT, WPARAM, LPARAM );
int EnumCapDrv();
VOID APIENTRY HandlePopupMenu(HWND, POINT);
DWORD WINAPI videoThreadProc(LPVOID lParam);


HANDLE ghInstance;
HWND hwndMain;
HWND hwndVideo;
HWND hwndSelCapDrvDlg;
HWND hwndSelCapDrvDlg_LBox;
HWND hwndExit;
HWND hwndMin;
HWND hwndHelp;
HWND hwndRecord;
HANDLE hVideoThread;
HRGN hRegion1;
CAPDRIVERCAPS CapDrvCaps;
bool isRecordFileOpen = false;
char recordFile[260];
bool isPicFileOpen = false;
char pictureFile[260];
bool isRecording = false;
bool threadEnd = false;

int PASCAL WinMain( HINSTANCE hInstance,
    HINSTANCE hPrevInstance,

    LPSTR lpszCmdLine,
    int nCmdShow )
{
   WNDCLASS wc;
   MSG msg;

   if( !hPrevInstance )
   {
      wc.lpszClassName = "GenericAppClass";
      wc.lpfnWndProc = MainWndProc;
      wc.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW;
      wc.hInstance = hInstance;
      wc.hIcon = LoadIcon( NULL, IDI_APPLICATION );
      wc.hCursor = LoadCursor( NULL, IDC_ARROW );
      wc.hbrBackground = CreateSolidBrush (RGB(196, 200, 204));
      wc.lpszMenuName = "GenericAppMenu";

      wc.cbClsExtra = 0;
      wc.cbWndExtra = 0;

      RegisterClass( &wc );
   }

   ghInstance = hInstance;

   hwndMain = CreateWindow( "GenericAppClass",
      "Super Video",
      WS_POPUP,
      100,
      100,
      500,
      500,
      NULL,
      NULL,
      hInstance,
      NULL
   );

   ShowWindow( hwndMain, nCmdShow );
   SetWindowRgn(hwndMain,hRegion1,1);

   while( GetMessage( &msg, NULL, 0, 0 ) ) {
      TranslateMessage( &msg );

      DispatchMessage( &msg );
   }

   return msg.wParam;
}

LRESULT CALLBACK MainWndProc( HWND hwndMain, UINT msg, WPARAM wParam,
   LPARAM lParam )
{
   HDC hDC = GetDC(hwndMain);
   RECT rc;           
   POINT pt;  

   switch( msg ) {
	  case WM_LBUTTONDBLCLK:
	  	    SetFocus(hwndMain);
	  	    break;
      case WM_RBUTTONDOWN: 
            GetClientRect(hwndMain, (LPRECT) &rc); 
            pt.x = LOWORD(lParam); 
            pt.y = HIWORD(lParam); 
            if (PtInRect((LPRECT) &rc, pt)) 
                HandlePopupMenu(hwndMain, pt); 
            break; 
      case WM_PAINT:
         FrameRgn(hDC,hRegion1,CreateSolidBrush(RGB(0,0,0)),2,2); 
  		 BringWindowToTop(hwndSelCapDrvDlg);
         return( DefWindowProc( hwndMain, msg, wParam, lParam ));
	  case WM_COMMAND:
	  	 CAPSTATUS CapStatus;
	  	 switch( wParam ) {
 		
		 	case SOURCE:
	  	 	   if(CapDrvCaps.fHasDlgVideoSource)
	  	 	   		capDlgVideoSource(hwndVideo);
	  	 	   break;
	  	 	case FORMAT:
	  	 	   if(CapDrvCaps.fHasDlgVideoFormat)
	  	 	   {		
	  	 	   		capDlgVideoFormat(hwndMain);
	  	 	   		capGetStatus(hwndVideo, &CapStatus, sizeof(CAPSTATUS));
	  	 	   		SetWindowPos(hwndVideo, NULL, 0, 0, CapStatus.uiImageWidth,
	  	 	   					CapStatus.uiImageHeight, SWP_NOZORDER | SWP_NOMOVE);
	  	 	   }
	  	 	   break;
	  	 	case DISPLAY:
	  	 		if (CapDrvCaps.fHasDlgVideoDisplay)
	  	 			capDlgVideoDisplay(hwndVideo);
	  	 		break;
            case EXIT:
               SendMessage(hwndMain, WM_SYSCOMMAND, SC_CLOSE, 0);
               break;
            case MINIMIZE:
               SendMessage(hwndMain, WM_SYSCOMMAND, SC_MINIMIZE, 0);
               break;
            case HELP:
               SendMessage(hwndMain, WM_SYSCOMMAND, SC_CONTEXTHELP, 0);
               break;
            case RECORDVIDEO:
            if(HIWORD(wParam) == BN_CLICKED && (HWND) lParam == hwndRecord)
            {
			   if (!isRecordFileOpen)
			   {
			   		OPENFILENAME ofn;
			   		ZeroMemory(&ofn, sizeof(OPENFILENAME));
					ofn.lStructSize = sizeof(OPENFILENAME);
					ofn.hwndOwner = hwndMain;
					ofn.lpstrFile = recordFile;
					ofn.nMaxFile = sizeof(recordFile);
					ofn.lpstrFilter = "Video\0*.avi";
					ofn.nFilterIndex = 1;
					ofn.lpstrFileTitle = NULL;
					ofn.nMaxFileTitle = 0;
					ofn.lpstrInitialDir = NULL;
					ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
					if(GetSaveFileName(&ofn) == TRUE)
					{
						strcpy(recordFile, ofn.lpstrFile);
						strcat(recordFile, ".avi");
						isRecordFileOpen = true; 
						DWORD id;
						SECURITY_ATTRIBUTES sa;
						sa.nLength = sizeof(SECURITY_ATTRIBUTES);
						sa.lpSecurityDescriptor = NULL;
						sa.bInheritHandle = TRUE;
						hVideoThread = CreateThread(&sa, (ULONG)0, 
											videoThreadProc, (LPVOID)(ULONG)0, (ULONG)0, &id);		
						if(hVideoThread == NULL)
							MessageBox(NULL, "Creation of Record Thread failed!", "Thread", MB_OK | MB_ICONEXCLAMATION);
						
						break;
					}
				}

				if (isRecordFileOpen) 
				{
					if(isRecording)
					{
						threadEnd = true;
						capFileSaveAs(hwndVideo, recordFile);
						SetWindowText(hwndRecord, "Record Video");
						isRecording = false;
						break;
					}
					
					if(!isRecording )
					{
						int a = 0;
						
						MessageBox(hwndMain, "Do you want to write over the open file?",
									"File warning", MB_YESNO | MB_ICONWARNING);
						if (a != IDYES)
						{
							isRecordFileOpen = false;
							SendMessage(hwndMain, WM_COMMAND, MAKEWPARAM(RECORDVIDEO, BN_CLICKED), (LPARAM) hwndRecord);
						}
						
						if (a == IDYES)
						{
							capCaptureSequence(hwndVideo);
							isRecording = true;
						}
						
					break;
					}
				}
			}	
         	break;
         }
      break;
     case WM_CREATE:
      
      	RECT helpRect, minRect, exitRect;
      	HRGN helpRgn, minRgn, exitRgn;
        hRegion1 = CreateRoundRectRgn(100,100,500, 500,20,20);   
	  	hwndVideo = capCreateCaptureWindow(
	  					(LPSTR) "My Capture Window",
	  					WS_CHILD | WS_VISIBLE,
	  					150, 150, 300, 280,
	  					(HWND) hwndMain,
	  					(int) 1);
		hwndExit = CreateWindow (
				"button",
				"x",
				WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | BS_CENTER | BS_VCENTER,
				470, 110, BUTTONSIZE, BUTTONSIZE,
				hwndMain,
				(HMENU) EXIT,
				(HINSTANCE)ghInstance,
				(LPVOID)NULL);
		hwndMin = CreateWindow (
				"button",
				"-",
				WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | BS_CENTER | BS_VCENTER,
				450, 110, BUTTONSIZE, BUTTONSIZE,
				hwndMain,
				(HMENU) MINIMIZE,
				(HINSTANCE)ghInstance,
				(LPVOID)NULL);  		
		hwndHelp = CreateWindow (
				"button",
				"?",
				WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | BS_CENTER | BS_VCENTER,
				430, 110, BUTTONSIZE, BUTTONSIZE, 
				hwndMain, 
				(HMENU) HELP,
				(HINSTANCE)ghInstance,
				(LPVOID)NULL);
		hwndRecord = CreateWindow (
				"button", 
				"錄像", 
				WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | BS_CENTER | BS_VCENTER, 
				250, 464, 90, 28,
				hwndMain, 
				(HMENU) RECORDVIDEO,
				(HINSTANCE)ghInstance,
				(LPVOID)NULL);				
				
	  	GetClientRect(hwndHelp, &helpRect);
	  	GetClientRect(hwndMin, &minRect);
	  	GetClientRect(hwndExit, &exitRect);
	  		  		  	
	  	helpRgn = CreateEllipticRgnIndirect(&helpRect);
		minRgn = CreateEllipticRgnIndirect(&minRect);
		exitRgn = CreateEllipticRgnIndirect(&exitRect);
	  		  		
	    SetWindowRgn(hwndExit,exitRgn,1);
	    SetWindowRgn(hwndMin,minRgn,1);					  		  		
	    SetWindowRgn(hwndHelp,helpRgn,1);				
	
		hwndSelCapDrvDlg = CreateDialog((HINSTANCE)ghInstance, 
										MAKEINTRESOURCE( SELCAPDRVDLG  ), 
										0, (DLGPROC)SelCapDrvProc);
		hwndSelCapDrvDlg_LBox = GetDlgItem(hwndSelCapDrvDlg, 
   										   SELCAPDRVDLG_LSTBOX);
	    EnumCapDrv();
      break;
      case WM_DESTROY:
      	 capPreview(hwndVideo, FALSE);
      	 capDriverDisconnect(hwndVideo);
         PostQuitMessage( 0 );
         break;
      default:
         return( DefWindowProc( hwndMain, msg, wParam, lParam ));

   }

   return 0;
}

LRESULT CALLBACK SelCapDrvProc( HWND hWnd, UINT msg, 
								WPARAM wParam, LPARAM lParam )
{

	switch(msg)
	{
		case WM_INITDIALOG:
		    return TRUE;
		case WM_COMMAND:
			switch ( wParam )
			{
				case SELCAPDRVDLG_BUTTON:
					int sel = 0;
					SendMessage( hwndSelCapDrvDlg_LBox, LB_GETSELITEMS, 1, sel);
					SendMessage( hwndVideo, WM_CAP_DRIVER_CONNECT, sel, 0L); 
					SendMessage( hwndSelCapDrvDlg, WM_CLOSE, 0, 0);
					SendMessage( hwndVideo, WM_CAP_DRIVER_GET_CAPS,
								 sizeof(CAPDRIVERCAPS), (LONG) (LPVOID) &CapDrvCaps);
					capPreviewRate( hwndVideo, 66 );
					capPreview( hwndVideo, TRUE );
			}
			return TRUE;
		case WM_CLOSE:
			DestroyWindow(hwndSelCapDrvDlg);
			return TRUE;
	}

	return( 0L );
}

int EnumCapDrv()
{
	char szDeviceName[80];
	char szDeviceVersion[80];
	char item[161];
	int i;

	for (i=0; i<10; i++)
	{
		if ( capGetDriverDescription(i, szDeviceName, sizeof(szDeviceName),
									szDeviceVersion, sizeof(szDeviceVersion)) )
		{
				strcpy(item, szDeviceName);
				strcat(item, " ");
				strcat(item, szDeviceVersion);
				SendMessage(hwndSelCapDrvDlg_LBox, LB_ADDSTRING, 0, 
            			   (LPARAM) item);
            	SendMessage(hwndSelCapDrvDlg_LBox, LB_SETITEMDATA, i, (LPARAM) i);
        }
    }
    
    return 0;
}

VOID APIENTRY HandlePopupMenu(HWND hwnd, POINT pt) 
{ 
    HMENU hmenu;    
    HMENU hmenuTrackPopup;
	hmenu = LoadMenu((HINSTANCE)ghInstance, "PopupMenu"); 
    if (hmenu == NULL) 
        return; 
    hmenuTrackPopup = GetSubMenu(hmenu, 0); 
    ClientToScreen(hwnd, (LPPOINT) &pt); 
    TrackPopupMenu(hmenuTrackPopup, TPM_LEFTALIGN | TPM_LEFTBUTTON, 
        pt.x, pt.y, 0, hwnd, NULL); 
    DestroyMenu(hmenu); 
}

DWORD WINAPI videoThreadProc(LPVOID lParam)
{
	SetWindowText(hwndRecord, "停止");
	capCaptureSequence(hwndVideo);
	isRecording = true;
	while (!threadEnd)
		;
	MessageBox(NULL, "Leaving Thread", "thread", NULL);
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜精品久久久久久超碰| 99久久精品免费看| 日韩欧美一级在线播放| 蜜臀国产一区二区三区在线播放| 欧美一区二区三区系列电影| 久久99精品一区二区三区三区| 日韩免费一区二区三区在线播放| 国产综合久久久久影院| 国产亚洲精品aa午夜观看| 成人精品鲁一区一区二区| 一区二区三区在线视频免费| 在线观看一区二区视频| 免费看日韩精品| 久久久久国产精品人| 色综合视频一区二区三区高清| 亚洲成a人v欧美综合天堂下载| 欧美一区二区视频网站| 国产精品一区一区| 亚洲自拍偷拍图区| 欧美本精品男人aⅴ天堂| 成人免费视频网站在线观看| 亚洲一区二区三区爽爽爽爽爽 | 亚洲国产一区二区在线播放| 欧美人成免费网站| 成人激情小说乱人伦| 亚洲精品一二三| 欧美变态tickling挠脚心| 成人福利视频网站| 天天av天天翘天天综合网 | 性感美女久久精品| 国产日韩欧美高清在线| 欧美视频完全免费看| 韩国视频一区二区| 亚洲综合清纯丝袜自拍| 日韩一区二区三区免费观看| 成人性生交大片免费看视频在线 | 色欧美乱欧美15图片| 激情成人午夜视频| 亚洲大片精品永久免费| 国产精品午夜在线观看| 欧美夫妻性生活| 色综合久久天天综合网| 激情综合亚洲精品| 亚洲国产中文字幕| |精品福利一区二区三区| 日韩一区二区三区视频| 色噜噜狠狠成人中文综合| 国产久卡久卡久卡久卡视频精品| 亚洲国产精品久久人人爱| 国产精品素人一区二区| 日韩欧美在线网站| 欧美日韩精品欧美日韩精品| 成人白浆超碰人人人人| 黄色日韩网站视频| 五月激情综合网| 亚洲免费在线观看| 国产精品毛片高清在线完整版| 精品1区2区在线观看| 欧美日韩激情在线| 欧美在线观看一区| 色久优优欧美色久优优| 丁香激情综合国产| 国产成人在线观看| 国内成人精品2018免费看| 免费成人av资源网| 日韩影院在线观看| 亚洲国产精品久久人人爱| 亚洲国产视频网站| 亚洲一区二区三区三| 亚洲一区二区在线视频| 亚洲激情在线激情| 亚洲精品视频在线看| 亚洲欧美另类小说视频| 最好看的中文字幕久久| 中文字幕亚洲视频| 亚洲欧美一区二区三区国产精品 | 日本人妖一区二区| 蜜臀av性久久久久av蜜臀妖精| 午夜久久久久久久久久一区二区| 亚洲福利一区二区三区| 午夜精品久久久久久久久久| 日韩一区欧美二区| 久久99热狠狠色一区二区| 国内精品视频666| 高清不卡一区二区在线| 成人午夜精品在线| 91一区二区三区在线观看| 91在线国产观看| 欧美性欧美巨大黑白大战| 亚洲精品一区二区三区蜜桃下载 | 蜜臀va亚洲va欧美va天堂| 久久99久久99精品免视看婷婷| 黑人巨大精品欧美黑白配亚洲| 国产经典欧美精品| www.日韩大片| 欧美亚洲国产一区在线观看网站| 欧美视频一二三区| 欧美大肚乱孕交hd孕妇| 久久久精品天堂| 亚洲免费色视频| 日韩电影在线免费观看| 国产盗摄一区二区| 91麻豆6部合集magnet| 欧美美女激情18p| 2021中文字幕一区亚洲| 国产精品久久久久久久久果冻传媒| 一区二区三区不卡视频在线观看| 奇米精品一区二区三区四区| 国产在线视频精品一区| 一本久久a久久精品亚洲| 欧美一区二区视频观看视频| 久久精品一区八戒影视| 亚洲激情欧美激情| 精品一区二区三区视频在线观看| 99综合电影在线视频| 欧美日韩亚洲另类| 国产三级精品视频| 污片在线观看一区二区| 国产精品自拍一区| 欧美日韩国产经典色站一区二区三区| 精品久久久三级丝袜| 亚洲女女做受ⅹxx高潮| 久久成人久久爱| av电影在线观看一区| 欧美一级欧美三级在线观看| 国产精品久久三区| 美日韩一区二区三区| 99精品桃花视频在线观看| 日韩一区二区在线观看| 亚洲精品视频一区| 国产精品乡下勾搭老头1| 欧美日韩黄色一区二区| 亚洲欧洲国产专区| 国模冰冰炮一区二区| 欧美日韩视频在线一区二区| 国产精品伦理在线| 国产在线看一区| 欧美老女人第四色| 亚洲视频你懂的| 国产成人精品三级麻豆| 欧美成人a在线| 午夜精品成人在线视频| 337p亚洲精品色噜噜| 国产精品福利电影一区二区三区四区| 蜜桃视频在线观看一区二区| 欧美无砖砖区免费| 亚洲免费av高清| 99久久国产综合精品麻豆| 精品国产免费人成电影在线观看四季| 性做久久久久久久久| 在线观看免费成人| 一个色妞综合视频在线观看| proumb性欧美在线观看| 国产精品美女久久久久久久久久久| 九九在线精品视频| 欧美成人综合网站| 美腿丝袜在线亚洲一区| 欧美日韩在线播| 亚洲成人av中文| 欧美午夜免费电影| 亚洲图片一区二区| 日本福利一区二区| 亚洲免费色视频| 在线观看免费一区| 亚洲第一福利一区| 在线播放中文一区| 日韩高清电影一区| 日韩网站在线看片你懂的| 日韩精品免费专区| 日韩欧美国产精品一区| 久久97超碰国产精品超碰| 日韩午夜电影在线观看| 精油按摩中文字幕久久| 久久综合色播五月| 国产精品99久久久久| 欧美激情一区二区三区蜜桃视频| 国产激情91久久精品导航| 久久精品视频一区| 97精品国产露脸对白| 亚洲综合一区二区三区| 欧美日韩国产系列| 免费在线观看一区| 久久精品视频免费| eeuss鲁片一区二区三区在线观看| 亚洲国产高清aⅴ视频| 91美女在线观看| 丝袜美腿亚洲一区| 久久综合狠狠综合久久综合88| 国产91精品一区二区麻豆亚洲| 亚洲人一二三区| 欧美一区二区视频在线观看| 国产一级精品在线| 国产精品免费视频网站| 欧洲一区二区av| 捆绑调教美女网站视频一区| 国产欧美精品日韩区二区麻豆天美| 91小宝寻花一区二区三区| 日本欧美在线观看| 国产欧美精品日韩区二区麻豆天美| 一本一道波多野结衣一区二区|