ctfutb.idl 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. /*
  2. * Copyright 2010 Justin Chevrier
  3. *
  4. * This library is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU Lesser General Public
  6. * License as published by the Free Software Foundation; either
  7. * version 2.1 of the License, or (at your option) any later version.
  8. *
  9. * This library is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. * Lesser General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU Lesser General Public
  15. * License along with this library; if not, write to the Free Software
  16. * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  17. */
  18. #ifndef DO_NO_IMPORTS
  19. import "oaidl.idl";
  20. #endif
  21. interface ITfLangBarEventSink;
  22. interface ITfLangBarItemMgr;
  23. interface ITfInputProcessorProfiles;
  24. const ULONG TF_LBI_DESC_MAXLEN = 32;
  25. typedef [uuid(12a1d29f-a065-440c-9746-eb2002c8bd19)] struct TF_LANGBARITEMINFO
  26. {
  27. CLSID clsidService;
  28. GUID guidItem;
  29. DWORD dwStyle;
  30. ULONG ulSort;
  31. WCHAR szDescription[TF_LBI_DESC_MAXLEN];
  32. } TF_LANGBARITEMINFO;
  33. [
  34. object,
  35. uuid(73540d69-edeb-4ee9-96c9-23aa30b25916),
  36. pointer_default(unique),
  37. ]
  38. interface ITfLangBarItem : IUnknown
  39. {
  40. HRESULT GetInfo(
  41. [out] TF_LANGBARITEMINFO *pInfo);
  42. HRESULT GetStatus(
  43. [out] DWORD *pdwStatus);
  44. HRESULT Show(
  45. [in] BOOL fShow);
  46. HRESULT GetTooltipString(
  47. [out] BSTR *pbstrToolTip);
  48. }
  49. [
  50. object,
  51. uuid(583f34d0-de25-11d2-afdd-00105a2799b5),
  52. pointer_default(unique),
  53. ]
  54. interface IEnumTfLangBarItems : IUnknown
  55. {
  56. HRESULT Clone(
  57. [out] IEnumTfLangBarItems **ppEnum);
  58. HRESULT Next(
  59. [in] ULONG ulCount,
  60. [out, size_is(ulCount)] ITfLangBarItem **ppItem,
  61. [in, out, unique] ULONG *pcFetched);
  62. HRESULT Reset();
  63. HRESULT Skip(
  64. [in] ULONG ulCount);
  65. }
  66. [
  67. object,
  68. uuid(57dbe1a0-de25-11d2-afdd-00105a2799b5),
  69. pointer_default(unique),
  70. ]
  71. interface ITfLangBarItemSink : IUnknown
  72. {
  73. HRESULT OnUpdate(
  74. [in] DWORD dwFlags);
  75. }
  76. [
  77. object,
  78. uuid(ba468c55-9956-4fb1-a59d-52a7dd7cc6aa),
  79. pointer_default(unique),
  80. ]
  81. interface ITfLangBarItemMgr : IUnknown
  82. {
  83. HRESULT EnumItems(
  84. [out] IEnumTfLangBarItems **ppEnum);
  85. HRESULT GetItem(
  86. [in] REFGUID rguid,
  87. [out] ITfLangBarItem **ppItem);
  88. HRESULT AddItem(
  89. [in] ITfLangBarItem *punk);
  90. HRESULT RemoveItem(
  91. [in] ITfLangBarItem *punk);
  92. HRESULT AdviseItemSink(
  93. [in] ITfLangBarItemSink *punk,
  94. [out] DWORD *pdwCookie,
  95. [in] REFGUID rguidItem);
  96. HRESULT UnadviseItemSink(
  97. [in] DWORD dwCookie);
  98. HRESULT GetItemFloatingRect(
  99. [in] DWORD dwThreadId,
  100. [in] REFGUID rguid,
  101. [out] RECT *prc);
  102. HRESULT GetItemsStatus(
  103. [in] ULONG ulCount,
  104. [in, size_is(ulCount)] const GUID *prgguid,
  105. [out, size_is(ulCount)] DWORD *pdwStatus);
  106. HRESULT GetItemNum(
  107. [out] ULONG *pulCount);
  108. HRESULT GetItems(
  109. [in] ULONG ulCount,
  110. [out, size_is(ulCount), length_is(*pcFetched)] ITfLangBarItem **ppItem,
  111. [out, size_is(ulCount), length_is(*pcFetched)] TF_LANGBARITEMINFO *pInfo,
  112. [out, size_is(ulCount), length_is(*pcFetched)] DWORD *pdwStatus,
  113. [in, out, unique] ULONG *pcFetched);
  114. HRESULT AdviseItemsSink(
  115. [in] ULONG ulCount,
  116. [in, size_is(ulCount)] ITfLangBarItemSink **ppunk,
  117. [in, size_is(ulCount)] const GUID *pguidItem,
  118. [out, size_is(ulCount)] DWORD *pdwCookie);
  119. HRESULT UnadviseItemsSink(
  120. [in] ULONG ulCount,
  121. [in, size_is(ulCount)] DWORD *pdwCookie);
  122. }
  123. [
  124. object,
  125. uuid(87955690-e627-11d2-8ddb-00105a2799b5),
  126. pointer_default(unique)
  127. ]
  128. interface ITfLangBarMgr: IUnknown
  129. {
  130. HRESULT AdviseEventSink(
  131. [in] ITfLangBarEventSink *pSink,
  132. [in] HWND hwnd,
  133. [in] DWORD dwflags,
  134. [in] DWORD *pdwCookie);
  135. HRESULT UnAdviseEventSink(
  136. [in] DWORD dwCookie);
  137. HRESULT GetThreadMarshalInterface(
  138. [in] DWORD dwThreadId,
  139. [in] DWORD dwType,
  140. [in] REFIID riid,
  141. [out] IUnknown **ppunk);
  142. HRESULT GetThreadLangBarItemMgr(
  143. [in] DWORD dwThreadId,
  144. [out] ITfLangBarItemMgr **pplbie,
  145. [out] DWORD *pdwThreadid);
  146. HRESULT GetInputProcessorProfiles(
  147. [in] DWORD dwThreadId,
  148. [out] ITfInputProcessorProfiles **ppaip,
  149. [out] DWORD *pdwThreadid);
  150. HRESULT RestoreLastFocus(
  151. [out] DWORD *dwThreadId,
  152. [in] BOOL fPrev);
  153. HRESULT SetModalInput(
  154. [in] ITfLangBarEventSink *pSink,
  155. [in] DWORD dwThreadId,
  156. [in] DWORD dwFlags);
  157. HRESULT ShowFloating(
  158. [in] DWORD dwFlags);
  159. HRESULT GetShowFloatingStatus(
  160. [out] DWORD *pdwFlags);
  161. }
  162. [
  163. object,
  164. uuid(18a4e900-e0ae-11d2-afdd-00105a2799b5),
  165. pointer_default(unique)
  166. ]
  167. interface ITfLangBarEventSink: IUnknown
  168. {
  169. HRESULT OnSetFocus(
  170. [in] DWORD dwThreadId);
  171. HRESULT OnThreadTerminate(
  172. [in] DWORD dwThreadId);
  173. HRESULT OnThreadItemChange(
  174. [in] DWORD dwThreadId);
  175. HRESULT OnModalInput(
  176. [in] DWORD dwThreadId,
  177. [in] UINT uMsg,
  178. [in] WPARAM wParam,
  179. [in] LPARAM lParam);
  180. HRESULT ShowFloating(
  181. [in] DWORD dwFlags);
  182. HRESULT GetItemFloatingRect(
  183. [in] DWORD dwThreadId,
  184. [in] REFGUID rguid,
  185. [out] RECT *prc);
  186. }