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

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

?? dinput.cpp

?? 游戲c++開發簡例
?? CPP
字號:
#include "gl.h"
#include "gengine.h"
#include "..\common.h"

#define KEYBUFFER_TAIL	0xffffffff

extern LPDIRECTDRAW		lpDD;

LPDIRECTINPUT           lpDI			= NULL;
LPDIRECTINPUTDEVICE     lpDIKeyboard	= NULL;
LPDIRECTINPUTDEVICE		lpDIMouse		= NULL;
DIDEVICEOBJECTDATA		*lpDIKeyData	= NULL;
HANDLE					hDIThread, hDIExitEvent;
DWORD					hDIThreadid;

static DIDEVICEOBJECTDATA	*lpDIKeyDataTemp= NULL;
static BYTE keyState[256];	// 鍵盤當前狀態 

static DWORD WINAPI DInputManager( LPVOID tmp );

int InitDInput( HINSTANCE hInst )
{
	if( lpDD == NULL ){
		MsgBox( "init ddraw first" );
		return -1;
	}

	DWORD items = 0;
	DIPROPDWORD dipKb = {
		{	sizeof( DIPROPDWORD ),
			sizeof( DIPROPHEADER ),
			0,
			DIPH_DEVICE
		},
		KEYBUFFERSIZE 
	};
	if(( lpDIKeyData = new DIDEVICEOBJECTDATA[ KEYBUFFERSIZE ] ) == NULL ){
		MsgBox( "DInput allocate mem failed" );
		return -1;
	}
	if(( lpDIKeyDataTemp = new DIDEVICEOBJECTDATA[ KEYBUFFERSIZE ]) == NULL ){
		MsgBox( "DInput allocate mem failed" );
		delete lpDIKeyData;
		return -1;
	}
	if( FAILED( DirectInputCreate( hInst, DIRECTINPUT_VERSION, &lpDI, NULL ))){
		MsgBox( "Init DirectInput failed" );
		return -1;
	}
	if( FAILED( lpDI->CreateDevice( GUID_SysKeyboard, &lpDIKeyboard, NULL ))){
		MsgBox( "Create Keyboard device failed" );
		return -1;
	}
	if( FAILED( lpDIKeyboard->SetDataFormat( &c_dfDIKeyboard ))){
		MsgBox( "DInput SetFormat failed" );
		return -1;
	}
	if( FAILED( lpDIKeyboard->SetCooperativeLevel( hScreen, DISCL_NONEXCLUSIVE | DISCL_FOREGROUND ))){
		MsgBox( "DI setcooperativelevel failed" );
		return -1;
	}
	if( FAILED( lpDIKeyboard->SetProperty( DIPROP_BUFFERSIZE, &dipKb.diph ))){
		MsgBox( "DI set keyb property failed" );
		return -1;
	}
	lpDIKeyboard->Acquire();
/*	if( SUCCESSED(lpDIKeyboard->GetDeviceData( sizeof( DIDEVICEOBJDECTDATA ), lpDIKeyData, &items, 0 ))){
		if( items < KEYBUFFERSIZE )
			lpDIKeyData[items].dwData = KEYBUFFER_TAIL;
		memcpy( lpDIKeyDataTemp, lpDIKeyData, sizeof( DIDEVICEOBJECTDATA )*KEYBUFFERSIZE );
	}*/
	//鼠標
	if( FAILED( lpDI->CreateDevice( GUID_SysMouse, &lpDIMouse, NULL ))){
		MsgBox( "創建鼠標設備失敗." );
		return -1;
	}
	if( FAILED( lpDIMouse->SetDataFormat( &c_dfDIMouse ))){
		MsgBox( "DIMouse SetFormat failed" );
		return -1;
	}
#ifdef _DEBUG
	if( FAILED( lpDIMouse->SetCooperativeLevel( hScreen, DISCL_NONEXCLUSIVE | DISCL_FOREGROUND ))){
#else
	if( FAILED( lpDIMouse->SetCooperativeLevel( hScreen, DISCL_EXCLUSIVE | DISCL_FOREGROUND ))){
#endif
		MsgBox( "DIMouse set cooperativelevel failed" );
		return -1;
	}
	lpDIMouse->Acquire();
	if( InitMouse() != 0 ){
		MsgBox( "InitMouse failed" );
		return -1;
	}

	hDIThread=CreateThread( NULL, 0, DInputManager, NULL , 0, &hDIThreadid );
	if ( hDIThread == NULL ){
		MsgBox( "create di thread failed" );
		return -1;
	}

	hDIExitEvent = CreateEvent( NULL,FALSE,FALSE,NULL );

	return 0;
}

void DestroyDInput( void )
{
	SetEvent( hDIExitEvent );
	if( lpDI ){
		if( lpDIKeyboard ){
			lpDIKeyboard->Unacquire();
			lpDIKeyboard->Release();
			lpDIKeyboard = NULL;
		}
		if( lpDIMouse ){
			lpDIMouse->Unacquire();
			lpDIMouse->Release();
			lpDIMouse = NULL;
		}
		lpDI = NULL;
	}
	MouseExit();
}

void DInputSync( int active )
{
	if( active ){
		if( lpDIKeyboard )
			lpDIKeyboard->Acquire();
		if( lpDIMouse )
			lpDIMouse->Acquire();
	}
	else{
		if( lpDIKeyboard )
			lpDIKeyboard->Unacquire();
		if( lpDIMouse )
			lpDIMouse->Unacquire();
	}
}

DWORD DInputReadkey( void )
{
	DWORD items = KEYBUFFERSIZE;
	if( FAILED( lpDIKeyboard->GetDeviceData( sizeof( DIDEVICEOBJECTDATA ), lpDIKeyData, &items, 0 ))){
		//OutDebugString( "dinputreadkey failed" );
		return 0;
	}
	//for( ; items>0; items-- ){
	//}
	//OutDebugInt( "di readkey items", items );
	if( items < KEYBUFFERSIZE )
		lpDIKeyData[items].dwData = KEYBUFFER_TAIL;
	if( items && lpDIKeyData[0].dwData & 0x80 )
		return lpDIKeyData[0].dwOfs;
	else
		return 0;
}

static DWORD WINAPI DInputManager( LPVOID tmp )
{
	for (;;) {
		Sleep(20);
		MouseTimerHandler( );

		if( WaitForSingleObject(hDIExitEvent, 0) == WAIT_OBJECT_0 )
			return 0;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品在线观看视频| 在线观看精品一区| 久久久久久久久久电影| 国产一区二区三区四区五区入口| 2022国产精品视频| 国产精品99久久久久久似苏梦涵| 中文一区在线播放| 91麻豆福利精品推荐| 亚洲一区av在线| 欧美成人video| 国产成人免费9x9x人网站视频| 国产精品国产三级国产aⅴ无密码| 91视频在线观看免费| 天堂成人免费av电影一区| 日韩欧美国产系列| 高潮精品一区videoshd| 亚洲日本青草视频在线怡红院| 欧美在线短视频| 久久精品国产在热久久| 国产精品婷婷午夜在线观看| 欧美在线视频日韩| 免费视频一区二区| 国产精品乱人伦| 欧美绝品在线观看成人午夜影视| 精品一区二区久久久| 最新久久zyz资源站| 日韩一级片在线观看| eeuss鲁一区二区三区| 午夜精品爽啪视频| 日本一区二区综合亚洲| 欧美日韩免费高清一区色橹橹| 久久99久久99| 亚洲宅男天堂在线观看无病毒| 欧美成人video| 欧美在线制服丝袜| 成人国产在线观看| 日韩国产高清影视| 136国产福利精品导航| 91精品国产欧美一区二区成人| 91丝袜美女网| 久久精品国产99国产精品| 1000部国产精品成人观看| 精品粉嫩超白一线天av| 欧洲av一区二区嗯嗯嗯啊| 国产在线不卡一区| 日本成人在线看| 亚洲黄色尤物视频| 国产精品午夜在线| 精品久久久三级丝袜| 欧美人狂配大交3d怪物一区| 99久久精品99国产精品| 精品系列免费在线观看| 亚洲成人激情自拍| 亚洲激情自拍偷拍| 国产精品嫩草影院com| 久久综合久久久久88| 欧美日本视频在线| 欧美日韩在线免费视频| 色哟哟一区二区三区| 成人国产精品免费| 国产精品99久久久久久久vr | 综合电影一区二区三区 | 国产精品一区三区| 日韩在线一区二区三区| 亚洲图片欧美色图| 一区二区三区不卡在线观看| 国产精品日韩成人| 欧美国产日韩亚洲一区| 国产午夜一区二区三区| 久久综合久久久久88| 精品国产一区二区三区忘忧草| 欧美一区在线视频| 在线播放一区二区三区| 欧美午夜片在线观看| 欧美一区二区三区人| 欧美高清性hdvideosex| 在线观看91精品国产入口| 欧美性极品少妇| 欧美三区在线观看| 欧美日韩亚洲综合| 91麻豆精品国产91久久久| 欧美美女一区二区三区| 欧美男人的天堂一二区| 欧美久久免费观看| 欧美放荡的少妇| 欧美不卡在线视频| 国产欧美精品一区| 国产精品久久久爽爽爽麻豆色哟哟| 欧美激情在线看| 亚洲欧美一区二区在线观看| 亚洲精品久久久蜜桃| 亚洲一区二区三区四区在线观看 | 亚洲精品国产无天堂网2021| 亚洲色图色小说| 亚洲一区二区成人在线观看| 午夜欧美大尺度福利影院在线看| 日韩在线卡一卡二| 久久国产精品99久久人人澡| 国产精品91xxx| 日本精品一级二级| 91精品欧美综合在线观看最新| 日韩欧美成人一区| 国产欧美精品一区二区三区四区| 亚洲日本va在线观看| 午夜av一区二区三区| 精品无人区卡一卡二卡三乱码免费卡| 国产美女一区二区三区| 99久久综合99久久综合网站| 欧美在线影院一区二区| 日韩精品一区二区三区视频| 亚洲国产精品传媒在线观看| 国产精品国产三级国产专播品爱网| 亚洲一区二区三区美女| 国产乱人伦精品一区二区在线观看| 成人性生交大片免费看中文 | 国产盗摄女厕一区二区三区| 色94色欧美sute亚洲13| 日韩视频一区二区三区| 国产精品沙发午睡系列990531| 亚洲va欧美va人人爽午夜| 国产一区二区在线观看免费| 欧亚一区二区三区| 国产校园另类小说区| 天天综合网 天天综合色| 不卡一区在线观看| 日韩三级精品电影久久久| 国产精品福利电影一区二区三区四区| 丝袜美腿亚洲色图| 9i看片成人免费高清| 欧美xingq一区二区| 一区二区三区蜜桃| 国产成人在线色| 日韩一区二区在线观看视频播放| 1000部国产精品成人观看| 国产剧情一区二区| 日韩一区二区精品在线观看| 亚洲一区二区在线免费观看视频| 国产福利精品导航| 欧美大片在线观看一区二区| 亚洲一区二区影院| 99久久99久久久精品齐齐| 久久精品视频在线免费观看| 亚洲第一狼人社区| 99久久精品免费看国产免费软件| 久久男人中文字幕资源站| 日本不卡一二三| 欧美日韩一区二区不卡| 一区二区视频免费在线观看| 成人性生交大片免费看视频在线| 精品国产人成亚洲区| 美女尤物国产一区| 欧美精品丝袜中出| 亚洲成av人片在线| 日本韩国一区二区| 亚洲国产精品激情在线观看| 国产一区二区看久久| 精品日韩一区二区三区| 另类小说综合欧美亚洲| 91精品国产综合久久婷婷香蕉| 亚洲综合网站在线观看| 色婷婷综合久久| 综合激情成人伊人| 色系网站成人免费| 亚洲视频在线一区观看| 99久久免费精品| 中文字幕中文在线不卡住| 成人av免费在线播放| 日本一区二区视频在线观看| 福利91精品一区二区三区| 欧美国产精品久久| 成人毛片在线观看| 国产精品久久免费看| 99re亚洲国产精品| 亚洲欧美另类在线| 欧美日韩一区二区欧美激情| 日韩av电影免费观看高清完整版| 欧美肥妇free| 国内外精品视频| 欧美国产禁国产网站cc| av一二三不卡影片| 有码一区二区三区| 欧美老人xxxx18| 久久不见久久见中文字幕免费| 久久亚区不卡日本| 丰满亚洲少妇av| 一区二区视频在线| 欧美高清dvd| 国产精品一区久久久久| 日韩伦理电影网| 欧美日韩亚洲另类| 国产一区二区不卡在线| 国产精品久久久久久一区二区三区| 色欧美日韩亚洲| 麻豆成人91精品二区三区| 久久蜜桃香蕉精品一区二区三区| www.成人网.com| 爽好久久久欧美精品| 久久久www成人免费毛片麻豆 | 国产成人亚洲综合a∨猫咪| 亚洲天堂av老司机|