⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 diutil.h

📁 一个个人开发的rpg游戏<亚特兰蒂斯传奇>的源码
💻 H
字号:
//-----------------------------------------------------------------------------
// File: DIUtil.h
//
// Desc: DirectInput support using action mapping
//
// Copyright (C) 1995-2000 Microsoft Corporation. All Rights Reserved.
//-----------------------------------------------------------------------------
//Modified by Kylinx
#ifndef DIUTIL_H
#define DIUTIL_H
#pragma comment(lib,"dinput8")
#include <dinput.h>
#define DEFINE_BUFFER_SIZE 16
typedef BYTE DKey[256];
class CDirectInputKeyBoard
{
	LPDIRECTINPUT8       m_pDI;     
	LPDIRECTINPUTDEVICE8 m_pKeyboard;
	DWORD				 m_dwOldTime;
	DWORD				 m_dwOldTimeKey[256];
public:
	CDirectInputKeyBoard();
	~CDirectInputKeyBoard();
	void FreeDirectInput();
	HRESULT CreateKeyBoard(HWND hWnd,bool bExclusive,bool bForeGround,bool bImmediate);
	HRESULT ReadImmediateData(DKey &keys);
	BYTE ReadLastBufferKey(DWORD dwDelay=0);
	BOOL WaitKey(BYTE key,DWORD dwDelay=50);
};

class CDirectInputMouse
{
	LPDIRECTINPUT8       m_pDI;     
	LPDIRECTINPUTDEVICE8 m_pDevMouse;

	void FreeDirectInput();
public:
	CDirectInputMouse();
	~CDirectInputMouse();
	BOOL IsLeftButtonDown();
	BOOL IsRightButtonDown();
	HRESULT CreateMouse(HWND hWnd,BOOL bForeground=true,BOOL bExclusive=false,BOOL bImmediate=true);

};
//-----------------------------------------------------------------------------
// Name: class CInputDeviceManager
// Desc: Input device manager using DX8 action mapping
//-----------------------------------------------------------------------------
class CInputDeviceManager
{
    HWND                 m_hWnd;
    TCHAR*               m_strUserName;

    LPDIRECTINPUT8       m_pDI;
    LPDIRECTINPUTDEVICE8 m_pdidDevices[20];
    DWORD                m_dwNumDevices;
    DIACTIONFORMAT       m_diaf;

public:
    // Device control
    HRESULT AddDevice( const DIDEVICEINSTANCE* pdidi, LPDIRECTINPUTDEVICE8 pdidDevice );
    HRESULT GetDevices( LPDIRECTINPUTDEVICE8** ppDevices, DWORD* pdwNumDevices );
    HRESULT ConfigureDevices( HWND hWnd, IUnknown* pSurface, VOID* pCallback, DWORD dwFlags );
    VOID UnacquireDevices();

    // Construction
    HRESULT SetActionFormat( DIACTIONFORMAT& diaf, BOOL bReenumerate );
    HRESULT Create( HWND hWnd, TCHAR* strUserName, DIACTIONFORMAT& diaf );

    CInputDeviceManager();
    ~CInputDeviceManager();
};

#endif


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -