Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
1.5 KiB

  1. //
  2. // imecls.h
  3. //
  4. #ifndef IMECLS_H
  5. #define IMECLS_H
  6. #include "private.h"
  7. #include "globals.h"
  8. //////////////////////////////////////////////////////////////////////////////
  9. //
  10. // misc func
  11. //
  12. //////////////////////////////////////////////////////////////////////////////
  13. BOOL CheckExistingImeClassWnd(SYSTHREAD *psfn);
  14. BOOL UninitImeClassWndOnProcess();
  15. //////////////////////////////////////////////////////////////////////////////
  16. //
  17. // CSysImeClassWnd
  18. //
  19. //////////////////////////////////////////////////////////////////////////////
  20. class CSysImeClassWnd
  21. {
  22. public:
  23. CSysImeClassWnd();
  24. ~CSysImeClassWnd();
  25. static BOOL CheclExistingImeClassWnd(SYSTHREAD *psfn);
  26. static BOOL IsImeClassWnd(HWND hwnd);
  27. BOOL Init(HWND hwnd);
  28. static LRESULT WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
  29. HWND GetWnd() {return _hwnd;}
  30. void Start();
  31. void Stop();
  32. private:
  33. HWND _hwnd;
  34. WNDPROC _pfn;
  35. DBG_ID_DECLARE;
  36. };
  37. //////////////////////////////////////////////////////////////////////////////
  38. //
  39. // CSysImeClassWndArray
  40. //
  41. //////////////////////////////////////////////////////////////////////////////
  42. class CSysImeClassWndArray : public CPtrArray<CSysImeClassWnd>
  43. {
  44. public:
  45. CSysImeClassWndArray();
  46. BOOL StartSubclass();
  47. BOOL StopSubclass();
  48. CSysImeClassWnd *Find(HWND hwnd);
  49. void Remove(CSysImeClassWnd *picw);
  50. void RemoveAll();
  51. private:
  52. DBG_ID_DECLARE;
  53. };
  54. #endif // IMECLS_H