cInputDevice.h
上传用户:sycq158
上传日期:2008-10-22
资源大小:15361k
文件大小:1k
源码类别:

游戏

开发平台:

Visual C++

  1. // CMAIN LIB - APPLICATION AND DIRECT WRAPPER
  2. //
  3. // Written by Mauricio Teichmann Ritter
  4. //
  5. // Copyright (C) 2002, Brazil. All rights reserved.
  6. // 
  7. //
  8. // cInputDevice.h: interface for the cInputDevice class.
  9. //
  10. //////////////////////////////////////////////////////////////////////
  11. #if !defined(AFX_CINPUTDEVICE_H__00716BAA_8084_456C_91FB_03CCE67C3565__INCLUDED_)
  12. #define AFX_CINPUTDEVICE_H__00716BAA_8084_456C_91FB_03CCE67C3565__INCLUDED_
  13. #if _MSC_VER > 1000
  14. #pragma once
  15. #endif // _MSC_VER > 1000
  16. #include "cApplication.h"
  17. class cInputDevice  
  18. {
  19. private:
  20. static int m_iRefCount;
  21. protected:
  22. static LPDIRECTINPUT8 m_lpDI; 
  23. public:
  24. cInputDevice();
  25. virtual ~cInputDevice();
  26. BOOL Create()
  27. {
  28. HRESULT         hRet; 
  29. if(!m_lpDI)
  30. {
  31. hRet = DirectInput8Create(GetMainApp()->GetInstHandle(), DIRECTINPUT_VERSION, 
  32. IID_IDirectInput8, (void**)&m_lpDI, NULL); 
  33. if FAILED(hRet) 
  34. // DirectInput not available
  35. return FALSE;
  36. }
  37. }
  38. m_iRefCount++;
  39. return TRUE;
  40. }
  41. void Destroy()
  42. {
  43. m_iRefCount--;
  44. if(m_iRefCount == 0)
  45. {
  46. if(m_lpDI != NULL){
  47. m_lpDI->Release();
  48. m_lpDI = NULL;
  49. }
  50. }
  51. }
  52. };
  53. #endif // !defined(AFX_CINPUTDEVICE_H__00716BAA_8084_456C_91FB_03CCE67C3565__INCLUDED_)