CommandLineInfoEx.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /////////////////////////////////////////////////////////////////////////////
  2. #ifndef _COMMANDLINE_INFO_EX_H_
  3. #define _COMMANDLINE_INFO_EX_H_
  4. //////////////////////////////////////////////////////////////////////////
  5. // 命令行参数:
  6. // -wf 写入flash cookies
  7. // -df 删除flash cookies
  8. //////////////////////////////////////////////////////////////////////////
  9. class CCommandLineInfoEx :
  10. public CCommandLineInfo
  11. {
  12. public:
  13. CCommandLineInfoEx(void);
  14. ~CCommandLineInfoEx(void);
  15. public:
  16. /** 是否正在以管理员身份启动
  17. @return 管理员身份运行返回true,否则返回false
  18. */
  19. bool IsRunasAdmin();
  20. bool IsChildProcess();
  21. bool GetWindowHandle(wstring& strWindowHandle);
  22. bool GetSharePath(wstring& strSharePath){ strSharePath = m_strSharePath; return true; }
  23. bool GetResumeFlag() { return m_bResume; }
  24. bool GetVisableFlag() { return m_bVisable; }
  25. bool GetStartPdfFlag() { return m_bStartPdf; }
  26. /** 是否包含指定的命令参数
  27. @param [in] nCmd命令参数ID
  28. @return 包含返回true,否则返回false
  29. */
  30. bool HasCommand(int nCmd);
  31. public:
  32. virtual void ParseParam(const TCHAR* pszParam, BOOL bFlag, BOOL bLast);
  33. #ifdef _UNICODE
  34. virtual void ParseParam(const char* pszParam, BOOL bFlag, BOOL bLast);
  35. #endif
  36. protected:
  37. void ParseParamFlag(const char* pszParam);
  38. void ParseParamNotFlag(const TCHAR* pszParam);
  39. #ifdef _UNICODE
  40. void ParseParamNotFlag(const char* pszParam);
  41. #endif
  42. void ParseLast(BOOL bLast);
  43. public:
  44. public:
  45. /** 检查是否可以启动应用程序
  46. @return 可以安全启动返回true,否则返回false
  47. */
  48. static void ParseCommandLine(CCommandLineInfoEx& rCmdInfo);
  49. public:
  50. static BOOL ParseWindow(wstring strUrl, wstring& strWindow);
  51. static BOOL ParseSharePath(wstring strUrl, wstring& strPath);
  52. static BOOL ParseRect(wstring strUrl, RECT& rcRect);
  53. static BOOL ParseResume(wstring strUrl, bool& bResume);
  54. static BOOL ParseVisable(wstring strUrl, bool& bVisable);
  55. static BOOL ParseStartPdf(wstring strUrl, bool& bStartPdf);
  56. private:
  57. static bool split(const std::wstring& src, std::wstring delimit, std::vector<std::wstring> &v, std::wstring null_subst = L"");
  58. public:
  59. enum { RoomEnter,
  60. SingleChat,
  61. GroupChat,
  62. TgroupChat,
  63. WriteFlashCookie,
  64. DelFlashCookie,
  65. Nothing = -1 } m_nShellCommand;
  66. private:
  67. bool m_bRunasAdmin;
  68. bool m_bChildProcess;
  69. wstring m_strWindow;
  70. wstring m_strSharePath;
  71. bool m_bResume;
  72. bool m_bVisable;
  73. bool m_bStartPdf;
  74. RECT m_rcRect;
  75. };
  76. #endif // _COMMANDLINE_INFO_EX_H_