| 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 |  | 
 
 
 
 
 | 19 | #ifndef DO_NO_IMPORTS | 
 
 
 
 
 | 20 | import "oaidl.idl"; | 
 
 
 
 
 | 21 | #endif | 
 
 
 
 
 | 22 |  | 
 
 
 
 
 | 23 | interface ITfLangBarEventSink; | 
 
 
 
 
 | 24 | interface ITfLangBarItemMgr; | 
 
 
 
 
 | 25 | interface ITfInputProcessorProfiles; | 
 
 
 
 
 | 26 |  | 
 
 
 
 
 | 27 | const ULONG TF_LBI_DESC_MAXLEN = 32; | 
 
 
 
 
 | 28 |  | 
 
 
 
 
 | 29 | typedef [uuid(12a1d29f-a065-440c-9746-eb2002c8bd19)] struct TF_LANGBARITEMINFO | 
 
 
 
 
 | 30 | { | 
 
 
 
 
 | 31 | CLSID    clsidService; | 
 
 
 
 
 | 32 | GUID     guidItem; | 
 
 
 
 
 | 33 | DWORD    dwStyle; | 
 
 
 
 
 | 34 | ULONG    ulSort; | 
 
 
 
 
 | 35 | WCHAR    szDescription[TF_LBI_DESC_MAXLEN]; | 
 
 
 
 
 | 36 | } TF_LANGBARITEMINFO; | 
 
 
 
 
 | 37 |  | 
 
 
 
 
 | 38 | [ | 
 
 
 
 
 | 39 | object, | 
 
 
 
 
 | 40 | uuid(73540d69-edeb-4ee9-96c9-23aa30b25916), | 
 
 
 
 
 | 41 | pointer_default(unique), | 
 
 
 
 
 | 42 | ] | 
 
 
 
 
 | 43 | interface ITfLangBarItem : IUnknown | 
 
 
 
 
 | 44 | { | 
 
 
 
 
 | 45 | HRESULT GetInfo( | 
 
 
 
 
 | 46 | [out] TF_LANGBARITEMINFO *pInfo); | 
 
 
 
 
 | 47 |  | 
 
 
 
 
 | 48 | HRESULT GetStatus( | 
 
 
 
 
 | 49 | [out] DWORD *pdwStatus); | 
 
 
 
 
 | 50 |  | 
 
 
 
 
 | 51 | HRESULT Show( | 
 
 
 
 
 | 52 | [in] BOOL fShow); | 
 
 
 
 
 | 53 |  | 
 
 
 
 
 | 54 | HRESULT GetTooltipString( | 
 
 
 
 
 | 55 | [out] BSTR *pbstrToolTip); | 
 
 
 
 
 | 56 | } | 
 
 
 
 
 | 57 |  | 
 
 
 
 
 | 58 | [ | 
 
 
 
 
 | 59 | object, | 
 
 
 
 
 | 60 | uuid(583f34d0-de25-11d2-afdd-00105a2799b5), | 
 
 
 
 
 | 61 | pointer_default(unique), | 
 
 
 
 
 | 62 | ] | 
 
 
 
 
 | 63 | interface IEnumTfLangBarItems : IUnknown | 
 
 
 
 
 | 64 | { | 
 
 
 
 
 | 65 | HRESULT Clone( | 
 
 
 
 
 | 66 | [out] IEnumTfLangBarItems **ppEnum); | 
 
 
 
 
 | 67 |  | 
 
 
 
 
 | 68 | HRESULT Next( | 
 
 
 
 
 | 69 | [in] ULONG ulCount, | 
 
 
 
 
 | 70 | [out, size_is(ulCount)] ITfLangBarItem **ppItem, | 
 
 
 
 
 | 71 | [in, out, unique] ULONG *pcFetched); | 
 
 
 
 
 | 72 |  | 
 
 
 
 
 | 73 | HRESULT Reset(); | 
 
 
 
 
 | 74 |  | 
 
 
 
 
 | 75 | HRESULT Skip( | 
 
 
 
 
 | 76 | [in] ULONG ulCount); | 
 
 
 
 
 | 77 | } | 
 
 
 
 
 | 78 |  | 
 
 
 
 
 | 79 | [ | 
 
 
 
 
 | 80 | object, | 
 
 
 
 
 | 81 | uuid(57dbe1a0-de25-11d2-afdd-00105a2799b5), | 
 
 
 
 
 | 82 | pointer_default(unique), | 
 
 
 
 
 | 83 | ] | 
 
 
 
 
 | 84 | interface ITfLangBarItemSink : IUnknown | 
 
 
 
 
 | 85 | { | 
 
 
 
 
 | 86 | HRESULT OnUpdate( | 
 
 
 
 
 | 87 | [in] DWORD dwFlags); | 
 
 
 
 
 | 88 | } | 
 
 
 
 
 | 89 |  | 
 
 
 
 
 | 90 | [ | 
 
 
 
 
 | 91 | object, | 
 
 
 
 
 | 92 | uuid(ba468c55-9956-4fb1-a59d-52a7dd7cc6aa), | 
 
 
 
 
 | 93 | pointer_default(unique), | 
 
 
 
 
 | 94 | ] | 
 
 
 
 
 | 95 | interface ITfLangBarItemMgr : IUnknown | 
 
 
 
 
 | 96 | { | 
 
 
 
 
 | 97 | HRESULT EnumItems( | 
 
 
 
 
 | 98 | [out] IEnumTfLangBarItems **ppEnum); | 
 
 
 
 
 | 99 |  | 
 
 
 
 
 | 100 | HRESULT GetItem( | 
 
 
 
 
 | 101 | [in] REFGUID rguid, | 
 
 
 
 
 | 102 | [out] ITfLangBarItem **ppItem); | 
 
 
 
 
 | 103 |  | 
 
 
 
 
 | 104 | HRESULT AddItem( | 
 
 
 
 
 | 105 | [in] ITfLangBarItem *punk); | 
 
 
 
 
 | 106 |  | 
 
 
 
 
 | 107 | HRESULT RemoveItem( | 
 
 
 
 
 | 108 | [in] ITfLangBarItem *punk); | 
 
 
 
 
 | 109 |  | 
 
 
 
 
 | 110 | HRESULT AdviseItemSink( | 
 
 
 
 
 | 111 | [in] ITfLangBarItemSink *punk, | 
 
 
 
 
 | 112 | [out] DWORD *pdwCookie, | 
 
 
 
 
 | 113 | [in] REFGUID rguidItem); | 
 
 
 
 
 | 114 |  | 
 
 
 
 
 | 115 | HRESULT UnadviseItemSink( | 
 
 
 
 
 | 116 | [in] DWORD dwCookie); | 
 
 
 
 
 | 117 |  | 
 
 
 
 
 | 118 | HRESULT GetItemFloatingRect( | 
 
 
 
 
 | 119 | [in] DWORD dwThreadId, | 
 
 
 
 
 | 120 | [in] REFGUID rguid, | 
 
 
 
 
 | 121 | [out] RECT *prc); | 
 
 
 
 
 | 122 |  | 
 
 
 
 
 | 123 | HRESULT GetItemsStatus( | 
 
 
 
 
 | 124 | [in] ULONG ulCount, | 
 
 
 
 
 | 125 | [in, size_is(ulCount)] const GUID *prgguid, | 
 
 
 
 
 | 126 | [out, size_is(ulCount)] DWORD *pdwStatus); | 
 
 
 
 
 | 127 |  | 
 
 
 
 
 | 128 | HRESULT GetItemNum( | 
 
 
 
 
 | 129 | [out] ULONG *pulCount); | 
 
 
 
 
 | 130 |  | 
 
 
 
 
 | 131 | HRESULT GetItems( | 
 
 
 
 
 | 132 | [in] ULONG ulCount, | 
 
 
 
 
 | 133 | [out, size_is(ulCount), length_is(*pcFetched)] ITfLangBarItem **ppItem, | 
 
 
 
 
 | 134 | [out, size_is(ulCount), length_is(*pcFetched)] TF_LANGBARITEMINFO *pInfo, | 
 
 
 
 
 | 135 | [out, size_is(ulCount), length_is(*pcFetched)] DWORD *pdwStatus, | 
 
 
 
 
 | 136 | [in, out, unique] ULONG *pcFetched); | 
 
 
 
 
 | 137 |  | 
 
 
 
 
 | 138 | HRESULT AdviseItemsSink( | 
 
 
 
 
 | 139 | [in] ULONG ulCount, | 
 
 
 
 
 | 140 | [in, size_is(ulCount)] ITfLangBarItemSink **ppunk, | 
 
 
 
 
 | 141 | [in, size_is(ulCount)] const GUID *pguidItem, | 
 
 
 
 
 | 142 | [out, size_is(ulCount)] DWORD *pdwCookie); | 
 
 
 
 
 | 143 |  | 
 
 
 
 
 | 144 | HRESULT UnadviseItemsSink( | 
 
 
 
 
 | 145 | [in] ULONG ulCount, | 
 
 
 
 
 | 146 | [in, size_is(ulCount)] DWORD *pdwCookie); | 
 
 
 
 
 | 147 | } | 
 
 
 
 
 | 148 |  | 
 
 
 
 
 | 149 | [ | 
 
 
 
 
 | 150 | object, | 
 
 
 
 
 | 151 | uuid(87955690-e627-11d2-8ddb-00105a2799b5), | 
 
 
 
 
 | 152 | pointer_default(unique) | 
 
 
 
 
 | 153 | ] | 
 
 
 
 
 | 154 | interface ITfLangBarMgr: IUnknown | 
 
 
 
 
 | 155 | { | 
 
 
 
 
 | 156 | HRESULT AdviseEventSink( | 
 
 
 
 
 | 157 | [in] ITfLangBarEventSink *pSink, | 
 
 
 
 
 | 158 | [in] HWND hwnd, | 
 
 
 
 
 | 159 | [in] DWORD dwflags, | 
 
 
 
 
 | 160 | [in] DWORD *pdwCookie); | 
 
 
 
 
 | 161 |  | 
 
 
 
 
 | 162 | HRESULT UnAdviseEventSink( | 
 
 
 
 
 | 163 | [in] DWORD dwCookie); | 
 
 
 
 
 | 164 |  | 
 
 
 
 
 | 165 | HRESULT GetThreadMarshalInterface( | 
 
 
 
 
 | 166 | [in] DWORD dwThreadId, | 
 
 
 
 
 | 167 | [in] DWORD dwType, | 
 
 
 
 
 | 168 | [in] REFIID riid, | 
 
 
 
 
 | 169 | [out] IUnknown **ppunk); | 
 
 
 
 
 | 170 |  | 
 
 
 
 
 | 171 | HRESULT GetThreadLangBarItemMgr( | 
 
 
 
 
 | 172 | [in] DWORD dwThreadId, | 
 
 
 
 
 | 173 | [out] ITfLangBarItemMgr **pplbie, | 
 
 
 
 
 | 174 | [out] DWORD *pdwThreadid); | 
 
 
 
 
 | 175 |  | 
 
 
 
 
 | 176 | HRESULT GetInputProcessorProfiles( | 
 
 
 
 
 | 177 | [in] DWORD dwThreadId, | 
 
 
 
 
 | 178 | [out] ITfInputProcessorProfiles **ppaip, | 
 
 
 
 
 | 179 | [out] DWORD *pdwThreadid); | 
 
 
 
 
 | 180 |  | 
 
 
 
 
 | 181 | HRESULT RestoreLastFocus( | 
 
 
 
 
 | 182 | [out] DWORD *dwThreadId, | 
 
 
 
 
 | 183 | [in] BOOL fPrev); | 
 
 
 
 
 | 184 |  | 
 
 
 
 
 | 185 | HRESULT SetModalInput( | 
 
 
 
 
 | 186 | [in] ITfLangBarEventSink *pSink, | 
 
 
 
 
 | 187 | [in] DWORD dwThreadId, | 
 
 
 
 
 | 188 | [in] DWORD dwFlags); | 
 
 
 
 
 | 189 |  | 
 
 
 
 
 | 190 | HRESULT ShowFloating( | 
 
 
 
 
 | 191 | [in] DWORD dwFlags); | 
 
 
 
 
 | 192 |  | 
 
 
 
 
 | 193 | HRESULT GetShowFloatingStatus( | 
 
 
 
 
 | 194 | [out] DWORD *pdwFlags); | 
 
 
 
 
 | 195 | } | 
 
 
 
 
 | 196 |  | 
 
 
 
 
 | 197 | [ | 
 
 
 
 
 | 198 | object, | 
 
 
 
 
 | 199 | uuid(18a4e900-e0ae-11d2-afdd-00105a2799b5), | 
 
 
 
 
 | 200 | pointer_default(unique) | 
 
 
 
 
 | 201 | ] | 
 
 
 
 
 | 202 | interface ITfLangBarEventSink: IUnknown | 
 
 
 
 
 | 203 | { | 
 
 
 
 
 | 204 | HRESULT OnSetFocus( | 
 
 
 
 
 | 205 | [in] DWORD dwThreadId); | 
 
 
 
 
 | 206 |  | 
 
 
 
 
 | 207 | HRESULT OnThreadTerminate( | 
 
 
 
 
 | 208 | [in] DWORD dwThreadId); | 
 
 
 
 
 | 209 |  | 
 
 
 
 
 | 210 | HRESULT OnThreadItemChange( | 
 
 
 
 
 | 211 | [in] DWORD dwThreadId); | 
 
 
 
 
 | 212 |  | 
 
 
 
 
 | 213 | HRESULT OnModalInput( | 
 
 
 
 
 | 214 | [in] DWORD dwThreadId, | 
 
 
 
 
 | 215 | [in] UINT uMsg, | 
 
 
 
 
 | 216 | [in] WPARAM wParam, | 
 
 
 
 
 | 217 | [in] LPARAM lParam); | 
 
 
 
 
 | 218 |  | 
 
 
 
 
 | 219 | HRESULT ShowFloating( | 
 
 
 
 
 | 220 | [in] DWORD dwFlags); | 
 
 
 
 
 | 221 |  | 
 
 
 
 
 | 222 | HRESULT GetItemFloatingRect( | 
 
 
 
 
 | 223 | [in] DWORD dwThreadId, | 
 
 
 
 
 | 224 | [in] REFGUID rguid, | 
 
 
 
 
 | 225 | [out] RECT *prc); | 
 
 
 
 
 | 226 | } |