MyPos.cpp
上传用户:sztwq510
上传日期:2013-06-26
资源大小:4045k
文件大小:5k
源码类别:

酒店行业

开发平台:

Java

  1. // MyPos.cpp : Defines the class behaviors for the application.
  2. //
  3. #include "stdafx.h"
  4. #include "MyPos.h"
  5. #include "MyPosDlg.h"
  6. #include "LogonDlg.h"
  7. #include "Splash.h"
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CMyPosApp
  15. BEGIN_MESSAGE_MAP(CMyPosApp, CWinApp)
  16. //{{AFX_MSG_MAP(CMyPosApp)
  17. // NOTE - the ClassWizard will add and remove mapping macros here.
  18. //    DO NOT EDIT what you see in these blocks of generated code!
  19. //}}AFX_MSG
  20. // ON_COMMAND(ID_HELP, CWinApp::OnHelp)//Deuse the F1-Help.
  21. END_MESSAGE_MAP()
  22. /////////////////////////////////////////////////////////////////////////////
  23. // CMyPosApp construction
  24. CMyPosApp::CMyPosApp()
  25. {
  26. // Place all significant initialization in InitInstance
  27. }
  28. /////////////////////////////////////////////////////////////////////////////
  29. // The one and only CMyPosApp object
  30. CMyPosApp theApp;
  31. /////////////////////////////////////////////////////////////////////////////
  32. // CMyPosApp initialization
  33. BOOL CMyPosApp::InitInstance()
  34. {
  35. //Add splash image to the application.
  36. CCommandLineInfo cmdInfo;
  37. ParseCommandLine(cmdInfo);
  38. CSplashWnd::EnableSplashScreen(cmdInfo.m_bShowSplash);
  39. AfxOleInit();//初始化COM库
  40. AfxEnableControlContainer();
  41. // 此程序只能运行一次,用互斥量来判断程序是否已运行
  42.     HANDLE m_hMutex=CreateMutex(NULL,TRUE, m_pszAppName); 
  43.     if(GetLastError()==ERROR_ALREADY_EXISTS) 
  44. return FALSE; 
  45. //以下是连接access2000数据库。。。
  46. HRESULT hr;
  47. try
  48. {
  49. hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
  50. if(SUCCEEDED(hr))
  51. {
  52. m_pConnection->ConnectionTimeout=3;///设置超时时间为3秒
  53. // hr = m_pConnection->Open(Filepath,"","",adModeUnknown);
  54. hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Cypos.mdb;","","",adModeUnknown);
  55. ///连接数据库
  56. ///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51;  }
  57. }
  58. }
  59. catch(_com_error e)///捕捉异常
  60. {
  61. CString temp;
  62. temp.Format("连接数据库错误信息:%s",e.ErrorMessage());
  63. ::MessageBox(NULL,temp,"提示信息",NULL);
  64. return false;
  65. }
  66. // Standard initialization
  67. // If you are not using these features and wish to reduce the size
  68. //  of your final executable, you should remove from the following
  69. //  the specific initialization routines you do not need.
  70. #ifdef _AFXDLL
  71. Enable3dControls(); // Call this when using MFC in a shared DLL
  72. #else
  73. Enable3dControlsStatic(); // Call this when linking to MFC statically
  74. #endif
  75.     SetDialogBkColor (RGB (130,194, 220), RGB ( 16,20, 255 ) );
  76. CLogonDlg logdlg;
  77. if(logdlg.DoModal()==IDOK)
  78. CString sql="SELECT * FROM USERS where LOGID='"+theApp.name+"'";
  79. else
  80. return FALSE;
  81. pWnd=NULL;//Initialize pointer!!!!
  82. theApp.pWndoff=NULL;//Initialize pointer!!!!
  83. scallid="";
  84. CMyPosDlg dlg;
  85. m_pMainWnd = &dlg;
  86. int nResponse = dlg.DoModal();
  87. if (nResponse == IDOK)
  88. {
  89. // TODO: Place code here to handle when the dialog is
  90. //  dismissed with OK
  91. }
  92. else if (nResponse == IDCANCEL)
  93. {
  94. // TODO: Place code here to handle when the dialog is
  95. //  dismissed with Cancel
  96. }
  97. // Since the dialog has been closed, return FALSE so that we exit the
  98. //  application, rather than start the application's message pump.
  99. return TRUE;
  100. }
  101. CString CMyPosApp::addpwd(CString pwd, bool in)
  102. {
  103. char temp[1000];
  104. if(in)
  105. {
  106. for(int i=0;i<pwd.GetLength();i++)
  107. temp[i]=pwd[i]-2-i;
  108. temp[i]='';
  109. }
  110. else
  111. {
  112. for(int i=0;i<pwd.GetLength();i++)
  113. temp[i]=pwd[i]+2+i;
  114. temp[i]='';
  115. }
  116. CString str;
  117. str.Format("%s",temp);
  118. return str;
  119. }
  120. int CMyPosApp::ExitInstance() 
  121. {
  122. // TODO: Add your specialized code here and/or call the base class
  123. if(m_pConnection->State)
  124. m_pConnection->Close(); ///如果已经打开了连接则关闭它
  125. return CWinApp::ExitInstance();
  126. }
  127. BOOL CMyPosApp::VerifyPower(CString power)
  128. {
  129. CString sql,spower;
  130. _RecordsetPtr m_pRecordset;
  131. sql="Select POWER from USERS where NAME='"+theApp.name+"'";
  132. try
  133. {
  134. m_pRecordset.CreateInstance("ADODB.Recordset");
  135. m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
  136. if(!m_pRecordset->adoEOF)
  137. spower=(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("POWER");
  138. }
  139. catch(_com_error e)///捕捉异常
  140. {
  141. CString temp;
  142. temp.Format("读取用户权限出错:%s",e.ErrorMessage());
  143. AfxMessageBox(temp);
  144. return FALSE;
  145. }
  146. if(spower.Find(power)>=0)
  147. return TRUE;
  148. else
  149. return FALSE;
  150. }