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.

187 lines
4.2 KiB

  1. #ifndef _MISCFUNC_H
  2. #define _MISCFUNC_H
  3. #include "sapilayr.h"
  4. class CSapiIMX;
  5. //////////////////////////////////////////////////////////////////////////////
  6. //
  7. // CGetSAPIObject
  8. //
  9. //////////////////////////////////////////////////////////////////////////////
  10. class CGetSAPIObject : public ITfFnGetSAPIObject
  11. {
  12. public:
  13. CGetSAPIObject(CSapiIMX *psi);
  14. ~CGetSAPIObject();
  15. // IUnknown
  16. //
  17. STDMETHODIMP QueryInterface(REFGUID riid, LPVOID *ppobj);
  18. STDMETHODIMP_(ULONG) AddRef(void);
  19. STDMETHODIMP_(ULONG) Release(void);
  20. // ITfFunction
  21. STDMETHODIMP GetDisplayName(BSTR *pbstrCand);
  22. // ITfFnGetSAPIObject
  23. STDMETHODIMP Get(TfSapiObject sObj, IUnknown **ppunk);
  24. // internal API IsSupported()
  25. HRESULT IsSupported(REFIID riid, TfSapiObject *psObj);
  26. private:
  27. CSapiIMX *m_psi;
  28. CComPtr<ITfContext> m_cpIC;
  29. LONG m_cRef;
  30. };
  31. //////////////////////////////////////////////////////////////////////////////
  32. //
  33. // CFnBalloon
  34. //
  35. //////////////////////////////////////////////////////////////////////////////
  36. class CFnBalloon : public ITfFnBalloon,
  37. public CFunction
  38. {
  39. public:
  40. CFnBalloon(CSapiIMX *psi);
  41. ~CFnBalloon();
  42. //
  43. // IUnknown methods
  44. //
  45. STDMETHODIMP QueryInterface(REFIID riid, void **ppvObj);
  46. STDMETHODIMP_(ULONG) AddRef(void);
  47. STDMETHODIMP_(ULONG) Release(void);
  48. //
  49. // ITfFunction
  50. //
  51. STDMETHODIMP GetDisplayName(BSTR *pbstrCand);
  52. //
  53. // ITfFnBalloon
  54. //
  55. STDMETHODIMP UpdateBalloon(TfLBBalloonStyle style, const WCHAR *pch, ULONG cch);
  56. private:
  57. long _cRef;
  58. };
  59. //////////////////////////////////////////////////////////////////////////////
  60. //
  61. // CFnAbort
  62. //
  63. //////////////////////////////////////////////////////////////////////////////
  64. class CFnAbort : public ITfFnAbort,
  65. public CFunction
  66. {
  67. public:
  68. CFnAbort(CSapiIMX *psi);
  69. ~CFnAbort();
  70. // IUnknown
  71. //
  72. STDMETHODIMP QueryInterface(REFGUID riid, LPVOID *ppobj);
  73. STDMETHODIMP_(ULONG) AddRef(void);
  74. STDMETHODIMP_(ULONG) Release(void);
  75. // ITfFunction
  76. STDMETHODIMP GetDisplayName(BSTR *pbstrCand);
  77. // ITfFnAbort
  78. STDMETHODIMP Abort(ITfContext *pic);
  79. private:
  80. CSapiIMX *m_psi;
  81. LONG _cRef;
  82. };
  83. //////////////////////////////////////////////////////////////////////////////
  84. //
  85. // CFnConfigure
  86. //
  87. // synopsis: implements ITfFnConfigure
  88. //
  89. //////////////////////////////////////////////////////////////////////////////
  90. class __declspec(novtable) CFnConfigure : public ITfFnConfigure
  91. {
  92. public:
  93. CFnConfigure(CSapiIMX *psi) {m_psi = psi;}
  94. ~CFnConfigure() {}
  95. // ITfFunction method
  96. STDMETHODIMP GetDisplayName(BSTR *pbstrName)
  97. {
  98. HRESULT hr = E_INVALIDARG;
  99. if (pbstrName)
  100. {
  101. *pbstrName = SysAllocString(L"Show configuration UI for SR");
  102. if (!*pbstrName)
  103. hr = E_OUTOFMEMORY;
  104. else
  105. hr = S_OK;
  106. }
  107. return hr;
  108. }
  109. // ITfFnConfigure methods
  110. STDMETHODIMP Show(HWND hwnd, LANGID langid, REFGUID rguidProfile);
  111. CSapiIMX *m_psi;
  112. };
  113. class CFnPropertyUIStatus : public ITfFnPropertyUIStatus
  114. {
  115. public:
  116. CFnPropertyUIStatus(CSapiIMX *psi) {m_psi = psi; m_cRef = 1;}
  117. ~CFnPropertyUIStatus() {}
  118. //
  119. // IUnknown methods
  120. //
  121. STDMETHODIMP QueryInterface(REFIID riid, void **ppvObj);
  122. STDMETHODIMP_(ULONG) AddRef(void);
  123. STDMETHODIMP_(ULONG) Release(void);
  124. // ITfFunction method
  125. STDMETHODIMP GetDisplayName(BSTR *pbstrName)
  126. {
  127. HRESULT hr = E_INVALIDARG;
  128. if (pbstrName)
  129. {
  130. *pbstrName = SysAllocString(L"Get UI setting status of SPTIP");
  131. if (!*pbstrName)
  132. hr = E_OUTOFMEMORY;
  133. else
  134. hr = S_OK;
  135. }
  136. return hr;
  137. }
  138. // ITfFnPropertyUIStatus methods
  139. STDMETHODIMP GetStatus(REFGUID refguidProp, DWORD *pdw);
  140. STDMETHODIMP SetStatus(REFGUID refguidProp, DWORD dw)
  141. {
  142. return E_NOTIMPL;
  143. }
  144. CSapiIMX *m_psi;
  145. LONG m_cRef;
  146. };
  147. #endif // ndef _MISCFUNC_H