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.

91 lines
3.6 KiB

  1. //////////////////////////////////////////////////////////////////
  2. // File : cpadsvrs.h
  3. // Purpose :
  4. //
  5. // Date : Fri Apr 16 14:34:49 1999
  6. // Author : ToshiaK
  7. //
  8. // Copyright(c) 1995-1999, Microsoft Corp. All rights reserved
  9. //////////////////////////////////////////////////////////////////
  10. #ifndef __C_IMEPAD_SERVER_SHARE_MEM_H__
  11. #define __C_IMEPAD_SERVER_SHARE_MEM_H__
  12. #include "cpadsvr.h"
  13. class CImePadSvrSharemem;
  14. typedef CImePadSvrSharemem *LPCImePadSvrSharemem;
  15. //----------------------------------------------------------------
  16. //Async notify data.
  17. //----------------------------------------------------------------
  18. typedef struct tagIMEPADNOTIFYDATA {
  19. DWORD dwCharID;
  20. DWORD dwSelIndex;
  21. LPWSTR lpwstrCreated1;
  22. LPWSTR lpwstrCreated2;
  23. }IMEPADNOTIFYDATA, LPIMEPADNOTIFYDATA;
  24. interface IImePadServer;
  25. class CImePadSvrSharemem:public CImePadSvr
  26. {
  27. public:
  28. CImePadSvrSharemem(VOID);
  29. ~CImePadSvrSharemem(VOID);
  30. virtual BOOL IsAvailable (VOID);
  31. virtual BOOL OnIMEPadClose (VOID);
  32. virtual INT Initialize (LANGID imeLangID, DWORD dwImeInputID, LPVOID lpVoid);
  33. virtual INT Terminate (LPVOID lpVoid);
  34. virtual INT ForceDisConnect (VOID);
  35. virtual INT ShowUI (BOOL fShow);
  36. virtual INT IsVisible (BOOL *pfVisible);
  37. virtual INT ActivateApplet (UINT activateID,
  38. DWORD_PTR dwActParam,
  39. LPWSTR lpwstr1,
  40. LPWSTR lpwstr2);
  41. virtual INT Notify (INT id, WPARAM wParam, LPARAM lParam);
  42. virtual INT GetAppletConfigList (DWORD dwMask,
  43. INT* pCountApplet,
  44. IMEPADAPPLETCONFIG **ppList);
  45. virtual IUnknown* SetIUnkIImeIPoint (IUnknown *pIUnk);
  46. virtual IUnknown* SetIUnkIImeCallback (IUnknown *pIUnk);
  47. virtual IUnknown* GetIUnkIImeIPoint (VOID);
  48. virtual IUnknown* GetIUnkIImeCallback (VOID);
  49. private:
  50. //----------------------------------------------------------------
  51. //private methods.
  52. //----------------------------------------------------------------
  53. IImePadServer * CreateObject(VOID);
  54. static LRESULT CALLBACK ClientWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
  55. LRESULT RealWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
  56. LRESULT MsgTimer (HWND hwnd, WPARAM wParam, LPARAM lParam);
  57. HWND CreateIFHWND (VOID);
  58. BOOL DestroyIFHWND (BOOL fReserved);
  59. INT CLSID2Str (REFCLSID refclsid, TCHAR *szBuf, size_t cbBuf);
  60. INT CLSID2ModuleName(REFCLSID refclsid,
  61. BOOL fLocalSvr,
  62. TCHAR *szPath,
  63. INT cbSize);
  64. //----------------------------------------------------------------
  65. //private member
  66. //----------------------------------------------------------------
  67. LANGID m_imeLangID; //Save Initialized data.
  68. DWORD m_dwImeInputID; //Save Initialized data.
  69. BOOL m_fShowReqStatus; //Save ShowUI()'s bool value.
  70. BOOL m_fLastActiveCtx; //Save IMEPADNOTIFY_ACTIVATECONTEXT
  71. HWND m_hwndIF; //Internal I/F Window handle.
  72. IUnknown* m_lpIUnkIImeIPoint; //IImeIPoint I/F pointer as IUnknown.
  73. IUnknown* m_lpIUnkIImeCallback; //IImeCallback I/F pointer as IUnknown.
  74. IImePadServer* m_lpIImePadServer; //IImePadServer I/F pointer.
  75. LPCImePadCallback m_lpCImePadCallback; //CImePadCallback instance pointer.
  76. DWORD m_dwRegAdvise; //Callbacck interface connect cookie.
  77. HMODULE m_hModuleProxyStub; //ProxyStub dll instance handle.
  78. DWORD m_dwTLSIndexForProxyStub;
  79. IMEPADNOTIFYDATA m_ntfyDataApplyCand; //for IMEPADNOTIFY_APPLYCAND
  80. IMEPADNOTIFYDATA m_ntfyDataQueryCand; //for IMEPADNOTIFY_QUERYCAND
  81. IMEPADNOTIFYDATA m_ntfyDataApplyCandEx; //for IMEPADNOTIFY_APPLYCANDEX
  82. };
  83. #endif //__C_IMEPAD_SERVER_SHARE_MEM_H__