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.

244 lines
5.4 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // File: caime.h
  4. //
  5. // Contents: CAIME
  6. //
  7. //----------------------------------------------------------------------------
  8. #ifndef CAIME_H
  9. #define CAIME_H
  10. #include "imtls.h"
  11. typedef struct _PauseCookie
  12. {
  13. DWORD dwCookie;
  14. struct _PauseCookie *next;
  15. } PauseCookie;
  16. //+---------------------------------------------------------------------------
  17. //
  18. // CAIME
  19. //
  20. //----------------------------------------------------------------------------
  21. class __declspec(novtable) CAIME : public IActiveIME_Private,
  22. public IServiceProvider
  23. {
  24. public:
  25. CAIME();
  26. virtual ~CAIME();
  27. //
  28. // IUnknown methods
  29. //
  30. virtual STDMETHODIMP QueryInterface(REFIID riid, void **ppvObj);
  31. virtual STDMETHODIMP_(ULONG) AddRef(void);
  32. virtual STDMETHODIMP_(ULONG) Release(void);
  33. #if 0
  34. //
  35. // Wrappers
  36. //
  37. HIMC GetContext(HWND hWnd)
  38. {
  39. HIMC hIMC;
  40. _pActiveIMM->GetContext(hWnd, &hIMC);
  41. return hIMC;
  42. }
  43. HIMC CreateContext()
  44. {
  45. HIMC hIMC;
  46. _pActiveIMM->CreateContext(&hIMC);
  47. return hIMC;
  48. }
  49. BOOL DestroyContext(HIMC hIMC)
  50. {
  51. return SUCCEEDED(_pActiveIMM->DestroyContext(hIMC));
  52. }
  53. HIMC AssociateContext(HWND hWnd, HIMC hIMC)
  54. {
  55. HIMC hOrgIMC;
  56. _pActiveIMM->AssociateContext(hWnd, hIMC, &hOrgIMC);
  57. return hOrgIMC;
  58. }
  59. LPINPUTCONTEXT LockIMC(HIMC hIMC)
  60. {
  61. LPINPUTCONTEXT pic;
  62. _pActiveIMM->LockIMC(hIMC, &pic);
  63. return pic;
  64. }
  65. BOOL UnlockIMC(HIMC hIMC)
  66. {
  67. return (_pActiveIMM->UnlockIMC(hIMC) == S_OK);
  68. }
  69. LPVOID LockIMCC(HIMCC hIMCC)
  70. {
  71. void *pv;
  72. _pActiveIMM->LockIMCC(hIMCC, &pv);
  73. return pv;
  74. }
  75. BOOL UnlockIMCC(HIMCC hIMCC)
  76. {
  77. return (_pActiveIMM->UnlockIMCC(hIMCC) == S_OK);
  78. }
  79. HIMCC CreateIMCC(DWORD dwSize)
  80. {
  81. HIMCC hIMCC;
  82. _pActiveIMM->CreateIMCC(dwSize, &hIMCC);
  83. return hIMCC;
  84. }
  85. HIMCC DestroyIMCC(HIMCC hIMCC)
  86. {
  87. return SUCCEEDED(_pActiveIMM->DestroyIMCC(hIMCC)) ? NULL : hIMCC;
  88. }
  89. DWORD GetIMCCSize(HIMCC hIMCC)
  90. {
  91. DWORD dwSize;
  92. _pActiveIMM->GetIMCCSize(hIMCC, &dwSize);
  93. return dwSize;
  94. }
  95. HIMCC ReSizeIMCC(HIMCC hIMCC, DWORD dwSize)
  96. {
  97. HIMCC hIMCC2;
  98. _pActiveIMM->ReSizeIMCC(hIMCC, dwSize, &hIMCC2);
  99. return hIMCC2;
  100. }
  101. BOOL GenerateMessage(HIMC hIMC)
  102. {
  103. return (_pActiveIMM->GenerateMessage(hIMC) == S_OK);
  104. }
  105. DWORD GetGuideLineA(HIMC hIMC, DWORD dwIndex, LPSTR szBuffer, DWORD dwBufLen)
  106. {
  107. DWORD dwResult;
  108. _pActiveIMM->GetGuideLineA(hIMC, dwIndex, dwBufLen, szBuffer, &dwResult);
  109. return dwResult;
  110. }
  111. BOOL SetCandidateWindow(HIMC hIMC, LPCANDIDATEFORM lpCandidateForm)
  112. {
  113. return (_pActiveIMM->SetCandidateWindow(hIMC, lpCandidateForm) == S_OK);
  114. }
  115. BOOL GetOpenStatus(HIMC hIMC)
  116. {
  117. return (_pActiveIMM->GetOpenStatus(hIMC) == S_OK);
  118. }
  119. BOOL SetOpenStatus(HIMC hIMC, BOOL fOpen)
  120. {
  121. return (_pActiveIMM->SetOpenStatus(hIMC, fOpen) == S_OK);
  122. }
  123. BOOL GetConversionStatus(HIMC hIMC, LPDWORD lpfdwConversion, LPDWORD lpfdwSentence)
  124. {
  125. return (_pActiveIMM->GetConversionStatus(hIMC, lpfdwConversion, lpfdwSentence) == S_OK);
  126. }
  127. BOOL SetConversionStatus(HIMC hIMC, DWORD fdwConversion, DWORD fdwSentence)
  128. {
  129. return (_pActiveIMM->SetConversionStatus(hIMC, fdwConversion, fdwSentence) == S_OK);
  130. }
  131. HWND GetDefaultIMEWnd(HWND hWnd)
  132. {
  133. HWND hDefWnd;
  134. _pActiveIMM->GetDefaultIMEWnd(hWnd, &hDefWnd);
  135. return hDefWnd;
  136. }
  137. BOOL GetHotKey(DWORD dwHotKeyID, UINT *puModifiers, UINT *puVKey, HKL *phKL)
  138. {
  139. return SUCCEEDED(_pActiveIMM->GetHotKey(dwHotKeyID, puModifiers, puVKey, phKL));
  140. }
  141. HWND CreateSoftKeyboard(UINT uType, HWND hOwner, int x, int y)
  142. {
  143. HWND hWnd;
  144. _pActiveIMM->CreateSoftKeyboard(uType, hOwner, x, y, &hWnd);
  145. return hWnd;
  146. }
  147. BOOL DestroySoftKeyboard(HWND hSoftKbdWnd)
  148. {
  149. return SUCCEEDED(_pActiveIMM->DestroySoftKeyboard(hSoftKbdWnd));
  150. }
  151. BOOL ShowSoftKeyboard(HWND hSoftKbdWnd, int nCmdShow)
  152. {
  153. return SUCCEEDED(_pActiveIMM->ShowSoftKeyboard(hSoftKbdWnd, nCmdShow));
  154. }
  155. UINT GetConversionListA(HKL hKL, HIMC hIMC, LPSTR lpSrc, CANDIDATELIST *lpDst, UINT uBufLen, UINT uFlag)
  156. {
  157. UINT uCopied;
  158. _pActiveIMM->GetConversionListA(hKL, hIMC, lpSrc, uBufLen, uFlag, lpDst, &uCopied);
  159. return uCopied;
  160. }
  161. LRESULT EscapeA(HKL hKL, HIMC hIMC, UINT uEscape, LPVOID lpData)
  162. {
  163. LRESULT lResult;
  164. _pActiveIMM->EscapeA(hKL, hIMC, uEscape, lpData, &lResult);
  165. return lResult;
  166. }
  167. BOOL SetStatusWindowPos(HIMC hIMC, POINT *lpptPos)
  168. {
  169. return SUCCEEDED(_pActiveIMM->SetStatusWindowPos(hIMC, lpptPos));
  170. }
  171. #endif
  172. protected:
  173. IActiveIMMIME_Private* m_pIActiveIMMIME;
  174. PauseCookie *_pPauseCookie;
  175. int _cRef;
  176. public:
  177. virtual STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void **ppv) = 0;
  178. };
  179. #endif // CAIME_H