textstor.h 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835
  1. /*** Autogenerated by WIDL 7.7 from include/textstor.idl - Do not edit ***/
  2. #ifdef _WIN32
  3. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  4. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  5. #endif
  6. #include <rpc.h>
  7. #include <rpcndr.h>
  8. #endif
  9. #ifndef COM_NO_WINDOWS_H
  10. #include <windows.h>
  11. #include <ole2.h>
  12. #endif
  13. #ifndef __textstor_h__
  14. #define __textstor_h__
  15. /* Forward declarations */
  16. #ifndef __ITextStoreACPSink_FWD_DEFINED__
  17. #define __ITextStoreACPSink_FWD_DEFINED__
  18. typedef interface ITextStoreACPSink ITextStoreACPSink;
  19. #ifdef __cplusplus
  20. interface ITextStoreACPSink;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __ITextStoreACP_FWD_DEFINED__
  24. #define __ITextStoreACP_FWD_DEFINED__
  25. typedef interface ITextStoreACP ITextStoreACP;
  26. #ifdef __cplusplus
  27. interface ITextStoreACP;
  28. #endif /* __cplusplus */
  29. #endif
  30. /* Headers for imported files */
  31. #include <oaidl.h>
  32. #ifdef __cplusplus
  33. extern "C" {
  34. #endif
  35. #define TS_E_INVALIDPOS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0200)
  36. #define TS_E_NOLOCK MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201)
  37. #define TS_E_NOOBJECT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0202)
  38. #define TS_E_NOSERVICE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0203)
  39. #define TS_E_NOINTERFACE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0204)
  40. #define TS_E_NOSELECTION MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0205)
  41. #define TS_E_NOLAYOUT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0206)
  42. #define TS_E_INVALIDPOINT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0207)
  43. #define TS_E_SYNCHRONOUS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0208)
  44. #define TS_E_READONLY MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0209)
  45. #define TS_E_FORMAT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x020a)
  46. #define TS_S_ASYNC MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0x0300)
  47. #define TS_DEFAULT_SELECTION (~0)
  48. #define TS_SD_READONLY (0x1)
  49. #define TS_SD_LOADING (0x2)
  50. #define TS_SS_DISJOINTSEL (0x1)
  51. #define TS_SS_REGIONS (0x2)
  52. #define TS_SS_TRANSITORY (0x4)
  53. #define TS_SS_NOHIDDENTEXT (0x8)
  54. #define TS_AS_TEXT_CHANGE (0x1)
  55. #define TS_AS_SEL_CHANGE (0x2)
  56. #define TS_AS_LAYOUT_CHANGE (0x4)
  57. #define TS_AS_ATTR_CHANGE (0x8)
  58. #define TS_AS_STATUS_CHANGE (0x10)
  59. #define TS_AS_ALL_SINKS ((((TS_AS_TEXT_CHANGE | TS_AS_SEL_CHANGE) | TS_AS_LAYOUT_CHANGE) | TS_AS_ATTR_CHANGE) | TS_AS_STATUS_CHANGE)
  60. #define TS_LF_SYNC (0x1)
  61. #define TS_LF_READ (0x2)
  62. #define TS_LF_READWRITE (0x6)
  63. #define TS_CHAR_EMBEDDED (0xfffc)
  64. #define TS_CHAR_REGION (0x0)
  65. #define TS_CHAR_REPLACEMENT (0xfffd)
  66. #define TS_IAS_NOQUERY (0x1)
  67. #define TS_IAS_QUERYONLY (0x2)
  68. #define TS_ST_CORRECTION (0x1)
  69. #define GXFPF_ROUND_NEAREST (0x1)
  70. #define GXFPF_NEAREST (0x2)
  71. typedef enum __WIDL_textstor_generated_name_0000000F {
  72. TS_AE_NONE = 0,
  73. TS_AE_START = 1,
  74. TS_AE_END = 2
  75. } TsActiveSelEnd;
  76. typedef enum __WIDL_textstor_generated_name_00000010 {
  77. TS_RT_PLAIN = 0,
  78. TS_RT_HIDDEN = 1,
  79. TS_RT_OPAQUE = 2
  80. } TsRunType;
  81. typedef GUID TS_ATTRID;
  82. typedef struct TS_STATUS {
  83. DWORD dwDynamicFlags;
  84. DWORD dwStaticFlags;
  85. } TS_STATUS;
  86. typedef struct TS_TEXTCHANGE {
  87. LONG acpStart;
  88. LONG acpOldEnd;
  89. LONG acpNewEnd;
  90. } TS_TEXTCHANGE;
  91. typedef struct TS_SELECTIONSTYLE {
  92. TsActiveSelEnd ase;
  93. WINBOOL fInterimChar;
  94. } TS_SELECTIONSTYLE;
  95. typedef struct TS_SELECTION_ACP {
  96. LONG acpStart;
  97. LONG acpEnd;
  98. TS_SELECTIONSTYLE style;
  99. } TS_SELECTION_ACP;
  100. typedef struct TS_RUNINFO {
  101. ULONG uCount;
  102. TsRunType type;
  103. } TS_RUNINFO;
  104. typedef struct TS_ATTRVAL {
  105. TS_ATTRID idAttr;
  106. DWORD dwOverlapId;
  107. VARIANT varValue;
  108. } TS_ATTRVAL;
  109. #define TS_ATTR_FIND_BACKWARDS (0x1)
  110. #define TS_ATTR_FIND_WANT_OFFSET (0x2)
  111. #define TS_ATTR_FIND_UPDATESTART (0x4)
  112. #define TS_ATTR_FIND_WANT_VALUE (0x8)
  113. #define TS_ATTR_FIND_WANT_END (0x10)
  114. #define TS_ATTR_FIND_HIDDEN (0x20)
  115. typedef enum __WIDL_textstor_generated_name_00000011 {
  116. TS_LC_CREATE = 0,
  117. TS_LC_CHANGE = 1,
  118. TS_LC_DESTROY = 2
  119. } TsLayoutCode;
  120. typedef DWORD TsViewCookie;
  121. /*****************************************************************************
  122. * ITextStoreACPSink interface
  123. */
  124. #ifndef __ITextStoreACPSink_INTERFACE_DEFINED__
  125. #define __ITextStoreACPSink_INTERFACE_DEFINED__
  126. DEFINE_GUID(IID_ITextStoreACPSink, 0x22d44c94, 0xa419, 0x4542, 0xa2,0x72, 0xae,0x26,0x09,0x3e,0xce,0xcf);
  127. #if defined(__cplusplus) && !defined(CINTERFACE)
  128. MIDL_INTERFACE("22d44c94-a419-4542-a272-ae26093ececf")
  129. ITextStoreACPSink : public IUnknown
  130. {
  131. virtual HRESULT STDMETHODCALLTYPE OnTextChange(
  132. DWORD dwFlags,
  133. const TS_TEXTCHANGE *pChange) = 0;
  134. virtual HRESULT STDMETHODCALLTYPE OnSelectionChange(
  135. ) = 0;
  136. virtual HRESULT STDMETHODCALLTYPE OnLayoutChange(
  137. TsLayoutCode lcode,
  138. TsViewCookie vcView) = 0;
  139. virtual HRESULT STDMETHODCALLTYPE OnStatusChange(
  140. DWORD dwFlags) = 0;
  141. virtual HRESULT STDMETHODCALLTYPE OnAttrsChange(
  142. LONG acpStart,
  143. LONG acpEnd,
  144. ULONG cAttrs,
  145. const TS_ATTRID *paAttrs) = 0;
  146. virtual HRESULT STDMETHODCALLTYPE OnLockGranted(
  147. DWORD dwLockFlags) = 0;
  148. virtual HRESULT STDMETHODCALLTYPE OnStartEditTransaction(
  149. ) = 0;
  150. virtual HRESULT STDMETHODCALLTYPE OnEndEditTransaction(
  151. ) = 0;
  152. };
  153. #ifdef __CRT_UUID_DECL
  154. __CRT_UUID_DECL(ITextStoreACPSink, 0x22d44c94, 0xa419, 0x4542, 0xa2,0x72, 0xae,0x26,0x09,0x3e,0xce,0xcf)
  155. #endif
  156. #else
  157. typedef struct ITextStoreACPSinkVtbl {
  158. BEGIN_INTERFACE
  159. /*** IUnknown methods ***/
  160. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  161. ITextStoreACPSink *This,
  162. REFIID riid,
  163. void **ppvObject);
  164. ULONG (STDMETHODCALLTYPE *AddRef)(
  165. ITextStoreACPSink *This);
  166. ULONG (STDMETHODCALLTYPE *Release)(
  167. ITextStoreACPSink *This);
  168. /*** ITextStoreACPSink methods ***/
  169. HRESULT (STDMETHODCALLTYPE *OnTextChange)(
  170. ITextStoreACPSink *This,
  171. DWORD dwFlags,
  172. const TS_TEXTCHANGE *pChange);
  173. HRESULT (STDMETHODCALLTYPE *OnSelectionChange)(
  174. ITextStoreACPSink *This);
  175. HRESULT (STDMETHODCALLTYPE *OnLayoutChange)(
  176. ITextStoreACPSink *This,
  177. TsLayoutCode lcode,
  178. TsViewCookie vcView);
  179. HRESULT (STDMETHODCALLTYPE *OnStatusChange)(
  180. ITextStoreACPSink *This,
  181. DWORD dwFlags);
  182. HRESULT (STDMETHODCALLTYPE *OnAttrsChange)(
  183. ITextStoreACPSink *This,
  184. LONG acpStart,
  185. LONG acpEnd,
  186. ULONG cAttrs,
  187. const TS_ATTRID *paAttrs);
  188. HRESULT (STDMETHODCALLTYPE *OnLockGranted)(
  189. ITextStoreACPSink *This,
  190. DWORD dwLockFlags);
  191. HRESULT (STDMETHODCALLTYPE *OnStartEditTransaction)(
  192. ITextStoreACPSink *This);
  193. HRESULT (STDMETHODCALLTYPE *OnEndEditTransaction)(
  194. ITextStoreACPSink *This);
  195. END_INTERFACE
  196. } ITextStoreACPSinkVtbl;
  197. interface ITextStoreACPSink {
  198. CONST_VTBL ITextStoreACPSinkVtbl* lpVtbl;
  199. };
  200. #ifdef COBJMACROS
  201. #ifndef WIDL_C_INLINE_WRAPPERS
  202. /*** IUnknown methods ***/
  203. #define ITextStoreACPSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  204. #define ITextStoreACPSink_AddRef(This) (This)->lpVtbl->AddRef(This)
  205. #define ITextStoreACPSink_Release(This) (This)->lpVtbl->Release(This)
  206. /*** ITextStoreACPSink methods ***/
  207. #define ITextStoreACPSink_OnTextChange(This,dwFlags,pChange) (This)->lpVtbl->OnTextChange(This,dwFlags,pChange)
  208. #define ITextStoreACPSink_OnSelectionChange(This) (This)->lpVtbl->OnSelectionChange(This)
  209. #define ITextStoreACPSink_OnLayoutChange(This,lcode,vcView) (This)->lpVtbl->OnLayoutChange(This,lcode,vcView)
  210. #define ITextStoreACPSink_OnStatusChange(This,dwFlags) (This)->lpVtbl->OnStatusChange(This,dwFlags)
  211. #define ITextStoreACPSink_OnAttrsChange(This,acpStart,acpEnd,cAttrs,paAttrs) (This)->lpVtbl->OnAttrsChange(This,acpStart,acpEnd,cAttrs,paAttrs)
  212. #define ITextStoreACPSink_OnLockGranted(This,dwLockFlags) (This)->lpVtbl->OnLockGranted(This,dwLockFlags)
  213. #define ITextStoreACPSink_OnStartEditTransaction(This) (This)->lpVtbl->OnStartEditTransaction(This)
  214. #define ITextStoreACPSink_OnEndEditTransaction(This) (This)->lpVtbl->OnEndEditTransaction(This)
  215. #else
  216. /*** IUnknown methods ***/
  217. static FORCEINLINE HRESULT ITextStoreACPSink_QueryInterface(ITextStoreACPSink* This,REFIID riid,void **ppvObject) {
  218. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  219. }
  220. static FORCEINLINE ULONG ITextStoreACPSink_AddRef(ITextStoreACPSink* This) {
  221. return This->lpVtbl->AddRef(This);
  222. }
  223. static FORCEINLINE ULONG ITextStoreACPSink_Release(ITextStoreACPSink* This) {
  224. return This->lpVtbl->Release(This);
  225. }
  226. /*** ITextStoreACPSink methods ***/
  227. static FORCEINLINE HRESULT ITextStoreACPSink_OnTextChange(ITextStoreACPSink* This,DWORD dwFlags,const TS_TEXTCHANGE *pChange) {
  228. return This->lpVtbl->OnTextChange(This,dwFlags,pChange);
  229. }
  230. static FORCEINLINE HRESULT ITextStoreACPSink_OnSelectionChange(ITextStoreACPSink* This) {
  231. return This->lpVtbl->OnSelectionChange(This);
  232. }
  233. static FORCEINLINE HRESULT ITextStoreACPSink_OnLayoutChange(ITextStoreACPSink* This,TsLayoutCode lcode,TsViewCookie vcView) {
  234. return This->lpVtbl->OnLayoutChange(This,lcode,vcView);
  235. }
  236. static FORCEINLINE HRESULT ITextStoreACPSink_OnStatusChange(ITextStoreACPSink* This,DWORD dwFlags) {
  237. return This->lpVtbl->OnStatusChange(This,dwFlags);
  238. }
  239. static FORCEINLINE HRESULT ITextStoreACPSink_OnAttrsChange(ITextStoreACPSink* This,LONG acpStart,LONG acpEnd,ULONG cAttrs,const TS_ATTRID *paAttrs) {
  240. return This->lpVtbl->OnAttrsChange(This,acpStart,acpEnd,cAttrs,paAttrs);
  241. }
  242. static FORCEINLINE HRESULT ITextStoreACPSink_OnLockGranted(ITextStoreACPSink* This,DWORD dwLockFlags) {
  243. return This->lpVtbl->OnLockGranted(This,dwLockFlags);
  244. }
  245. static FORCEINLINE HRESULT ITextStoreACPSink_OnStartEditTransaction(ITextStoreACPSink* This) {
  246. return This->lpVtbl->OnStartEditTransaction(This);
  247. }
  248. static FORCEINLINE HRESULT ITextStoreACPSink_OnEndEditTransaction(ITextStoreACPSink* This) {
  249. return This->lpVtbl->OnEndEditTransaction(This);
  250. }
  251. #endif
  252. #endif
  253. #endif
  254. #endif /* __ITextStoreACPSink_INTERFACE_DEFINED__ */
  255. /*****************************************************************************
  256. * ITextStoreACP interface
  257. */
  258. #ifndef __ITextStoreACP_INTERFACE_DEFINED__
  259. #define __ITextStoreACP_INTERFACE_DEFINED__
  260. DEFINE_GUID(IID_ITextStoreACP, 0x28888fe3, 0xc2a0, 0x483a, 0xa3,0xea, 0x8c,0xb1,0xce,0x51,0xff,0x3d);
  261. #if defined(__cplusplus) && !defined(CINTERFACE)
  262. MIDL_INTERFACE("28888fe3-c2a0-483a-a3ea-8cb1ce51ff3d")
  263. ITextStoreACP : public IUnknown
  264. {
  265. virtual HRESULT STDMETHODCALLTYPE AdviseSink(
  266. REFIID riid,
  267. IUnknown *punk,
  268. DWORD dwMask) = 0;
  269. virtual HRESULT STDMETHODCALLTYPE UnadviseSink(
  270. IUnknown *punk) = 0;
  271. virtual HRESULT STDMETHODCALLTYPE RequestLock(
  272. DWORD dwLockFlags,
  273. HRESULT *phrSession) = 0;
  274. virtual HRESULT STDMETHODCALLTYPE GetStatus(
  275. TS_STATUS *pdcs) = 0;
  276. virtual HRESULT STDMETHODCALLTYPE QueryInsert(
  277. LONG acpTestStart,
  278. LONG acpTestEnd,
  279. ULONG cch,
  280. LONG *pacpResultStart,
  281. LONG *pacpResultEnd) = 0;
  282. virtual HRESULT STDMETHODCALLTYPE GetSelection(
  283. ULONG ulIndex,
  284. ULONG ulCount,
  285. TS_SELECTION_ACP *pSelection,
  286. ULONG *pcFetched) = 0;
  287. virtual HRESULT STDMETHODCALLTYPE SetSelection(
  288. ULONG ulCount,
  289. const TS_SELECTION_ACP *pSelection) = 0;
  290. virtual HRESULT STDMETHODCALLTYPE GetText(
  291. LONG acpStart,
  292. LONG acpEnd,
  293. WCHAR *pchPlain,
  294. ULONG cchPlainReq,
  295. ULONG *pcchPlainRet,
  296. TS_RUNINFO *prgRunInfo,
  297. ULONG cRunInfoReq,
  298. ULONG *pcRunInfoRet,
  299. LONG *pacpNext) = 0;
  300. virtual HRESULT STDMETHODCALLTYPE SetText(
  301. DWORD dwFlags,
  302. LONG acpStart,
  303. LONG acpEnd,
  304. const WCHAR *pchText,
  305. ULONG cch,
  306. TS_TEXTCHANGE *pChange) = 0;
  307. virtual HRESULT STDMETHODCALLTYPE GetFormattedText(
  308. LONG acpStart,
  309. LONG acpEnd,
  310. IDataObject **ppDataObject) = 0;
  311. virtual HRESULT STDMETHODCALLTYPE GetEmbedded(
  312. LONG acpPos,
  313. REFGUID rguidService,
  314. REFIID riid,
  315. IUnknown **ppunk) = 0;
  316. virtual HRESULT STDMETHODCALLTYPE QueryInsertEmbedded(
  317. const GUID *pguidService,
  318. const FORMATETC *pFormatEtc,
  319. WINBOOL *pfInsertable) = 0;
  320. virtual HRESULT STDMETHODCALLTYPE InsertEmbedded(
  321. DWORD dwFlags,
  322. LONG acpStart,
  323. LONG acpEnd,
  324. IDataObject *pDataObject,
  325. TS_TEXTCHANGE *pChange) = 0;
  326. virtual HRESULT STDMETHODCALLTYPE InsertTextAtSelection(
  327. DWORD dwFlags,
  328. const WCHAR *pchText,
  329. ULONG cch,
  330. LONG *pacpStart,
  331. LONG *pacpEnd,
  332. TS_TEXTCHANGE *pChange) = 0;
  333. virtual HRESULT STDMETHODCALLTYPE InsertEmbeddedAtSelection(
  334. DWORD dwFlags,
  335. IDataObject *pDataObject,
  336. LONG *pacpStart,
  337. LONG *pacpEnd,
  338. TS_TEXTCHANGE *pChange) = 0;
  339. virtual HRESULT STDMETHODCALLTYPE RequestSupportedAttrs(
  340. DWORD dwFlags,
  341. ULONG cFilterAttrs,
  342. const TS_ATTRID *paFilterAttrs) = 0;
  343. virtual HRESULT STDMETHODCALLTYPE RequestAttrsAtPosition(
  344. LONG acpPos,
  345. ULONG cFilterAttrs,
  346. const TS_ATTRID *paFilterAttrs,
  347. DWORD dwFlags) = 0;
  348. virtual HRESULT STDMETHODCALLTYPE RequestAttrsTransitioningAtPosition(
  349. LONG acpPos,
  350. ULONG cFilterAttrs,
  351. const TS_ATTRID *paFilterAttrs,
  352. DWORD dwFlags) = 0;
  353. virtual HRESULT STDMETHODCALLTYPE FindNextAttrTransition(
  354. LONG acpStart,
  355. LONG acpHalt,
  356. ULONG cFilterAttrs,
  357. const TS_ATTRID *paFilterAttrs,
  358. DWORD dwFlags,
  359. LONG *pacpNext,
  360. WINBOOL *pfFound,
  361. LONG *plFoundOffset) = 0;
  362. virtual HRESULT STDMETHODCALLTYPE RetrieveRequestedAttrs(
  363. ULONG ulCount,
  364. TS_ATTRVAL *paAttrVals,
  365. ULONG *pcFetched) = 0;
  366. virtual HRESULT STDMETHODCALLTYPE GetEndACP(
  367. LONG *pacp) = 0;
  368. virtual HRESULT STDMETHODCALLTYPE GetActiveView(
  369. TsViewCookie *pvcView) = 0;
  370. virtual HRESULT STDMETHODCALLTYPE GetACPFromPoint(
  371. TsViewCookie vcView,
  372. const POINT *ptScreen,
  373. DWORD dwFlags,
  374. LONG *pacp) = 0;
  375. virtual HRESULT STDMETHODCALLTYPE GetTextExt(
  376. TsViewCookie vcView,
  377. LONG acpStart,
  378. LONG acpEnd,
  379. RECT *prc,
  380. WINBOOL *pfClipped) = 0;
  381. virtual HRESULT STDMETHODCALLTYPE GetScreenExt(
  382. TsViewCookie vcView,
  383. RECT *prc) = 0;
  384. virtual HRESULT STDMETHODCALLTYPE GetWnd(
  385. TsViewCookie vcView,
  386. HWND *phwnd) = 0;
  387. };
  388. #ifdef __CRT_UUID_DECL
  389. __CRT_UUID_DECL(ITextStoreACP, 0x28888fe3, 0xc2a0, 0x483a, 0xa3,0xea, 0x8c,0xb1,0xce,0x51,0xff,0x3d)
  390. #endif
  391. #else
  392. typedef struct ITextStoreACPVtbl {
  393. BEGIN_INTERFACE
  394. /*** IUnknown methods ***/
  395. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  396. ITextStoreACP *This,
  397. REFIID riid,
  398. void **ppvObject);
  399. ULONG (STDMETHODCALLTYPE *AddRef)(
  400. ITextStoreACP *This);
  401. ULONG (STDMETHODCALLTYPE *Release)(
  402. ITextStoreACP *This);
  403. /*** ITextStoreACP methods ***/
  404. HRESULT (STDMETHODCALLTYPE *AdviseSink)(
  405. ITextStoreACP *This,
  406. REFIID riid,
  407. IUnknown *punk,
  408. DWORD dwMask);
  409. HRESULT (STDMETHODCALLTYPE *UnadviseSink)(
  410. ITextStoreACP *This,
  411. IUnknown *punk);
  412. HRESULT (STDMETHODCALLTYPE *RequestLock)(
  413. ITextStoreACP *This,
  414. DWORD dwLockFlags,
  415. HRESULT *phrSession);
  416. HRESULT (STDMETHODCALLTYPE *GetStatus)(
  417. ITextStoreACP *This,
  418. TS_STATUS *pdcs);
  419. HRESULT (STDMETHODCALLTYPE *QueryInsert)(
  420. ITextStoreACP *This,
  421. LONG acpTestStart,
  422. LONG acpTestEnd,
  423. ULONG cch,
  424. LONG *pacpResultStart,
  425. LONG *pacpResultEnd);
  426. HRESULT (STDMETHODCALLTYPE *GetSelection)(
  427. ITextStoreACP *This,
  428. ULONG ulIndex,
  429. ULONG ulCount,
  430. TS_SELECTION_ACP *pSelection,
  431. ULONG *pcFetched);
  432. HRESULT (STDMETHODCALLTYPE *SetSelection)(
  433. ITextStoreACP *This,
  434. ULONG ulCount,
  435. const TS_SELECTION_ACP *pSelection);
  436. HRESULT (STDMETHODCALLTYPE *GetText)(
  437. ITextStoreACP *This,
  438. LONG acpStart,
  439. LONG acpEnd,
  440. WCHAR *pchPlain,
  441. ULONG cchPlainReq,
  442. ULONG *pcchPlainRet,
  443. TS_RUNINFO *prgRunInfo,
  444. ULONG cRunInfoReq,
  445. ULONG *pcRunInfoRet,
  446. LONG *pacpNext);
  447. HRESULT (STDMETHODCALLTYPE *SetText)(
  448. ITextStoreACP *This,
  449. DWORD dwFlags,
  450. LONG acpStart,
  451. LONG acpEnd,
  452. const WCHAR *pchText,
  453. ULONG cch,
  454. TS_TEXTCHANGE *pChange);
  455. HRESULT (STDMETHODCALLTYPE *GetFormattedText)(
  456. ITextStoreACP *This,
  457. LONG acpStart,
  458. LONG acpEnd,
  459. IDataObject **ppDataObject);
  460. HRESULT (STDMETHODCALLTYPE *GetEmbedded)(
  461. ITextStoreACP *This,
  462. LONG acpPos,
  463. REFGUID rguidService,
  464. REFIID riid,
  465. IUnknown **ppunk);
  466. HRESULT (STDMETHODCALLTYPE *QueryInsertEmbedded)(
  467. ITextStoreACP *This,
  468. const GUID *pguidService,
  469. const FORMATETC *pFormatEtc,
  470. WINBOOL *pfInsertable);
  471. HRESULT (STDMETHODCALLTYPE *InsertEmbedded)(
  472. ITextStoreACP *This,
  473. DWORD dwFlags,
  474. LONG acpStart,
  475. LONG acpEnd,
  476. IDataObject *pDataObject,
  477. TS_TEXTCHANGE *pChange);
  478. HRESULT (STDMETHODCALLTYPE *InsertTextAtSelection)(
  479. ITextStoreACP *This,
  480. DWORD dwFlags,
  481. const WCHAR *pchText,
  482. ULONG cch,
  483. LONG *pacpStart,
  484. LONG *pacpEnd,
  485. TS_TEXTCHANGE *pChange);
  486. HRESULT (STDMETHODCALLTYPE *InsertEmbeddedAtSelection)(
  487. ITextStoreACP *This,
  488. DWORD dwFlags,
  489. IDataObject *pDataObject,
  490. LONG *pacpStart,
  491. LONG *pacpEnd,
  492. TS_TEXTCHANGE *pChange);
  493. HRESULT (STDMETHODCALLTYPE *RequestSupportedAttrs)(
  494. ITextStoreACP *This,
  495. DWORD dwFlags,
  496. ULONG cFilterAttrs,
  497. const TS_ATTRID *paFilterAttrs);
  498. HRESULT (STDMETHODCALLTYPE *RequestAttrsAtPosition)(
  499. ITextStoreACP *This,
  500. LONG acpPos,
  501. ULONG cFilterAttrs,
  502. const TS_ATTRID *paFilterAttrs,
  503. DWORD dwFlags);
  504. HRESULT (STDMETHODCALLTYPE *RequestAttrsTransitioningAtPosition)(
  505. ITextStoreACP *This,
  506. LONG acpPos,
  507. ULONG cFilterAttrs,
  508. const TS_ATTRID *paFilterAttrs,
  509. DWORD dwFlags);
  510. HRESULT (STDMETHODCALLTYPE *FindNextAttrTransition)(
  511. ITextStoreACP *This,
  512. LONG acpStart,
  513. LONG acpHalt,
  514. ULONG cFilterAttrs,
  515. const TS_ATTRID *paFilterAttrs,
  516. DWORD dwFlags,
  517. LONG *pacpNext,
  518. WINBOOL *pfFound,
  519. LONG *plFoundOffset);
  520. HRESULT (STDMETHODCALLTYPE *RetrieveRequestedAttrs)(
  521. ITextStoreACP *This,
  522. ULONG ulCount,
  523. TS_ATTRVAL *paAttrVals,
  524. ULONG *pcFetched);
  525. HRESULT (STDMETHODCALLTYPE *GetEndACP)(
  526. ITextStoreACP *This,
  527. LONG *pacp);
  528. HRESULT (STDMETHODCALLTYPE *GetActiveView)(
  529. ITextStoreACP *This,
  530. TsViewCookie *pvcView);
  531. HRESULT (STDMETHODCALLTYPE *GetACPFromPoint)(
  532. ITextStoreACP *This,
  533. TsViewCookie vcView,
  534. const POINT *ptScreen,
  535. DWORD dwFlags,
  536. LONG *pacp);
  537. HRESULT (STDMETHODCALLTYPE *GetTextExt)(
  538. ITextStoreACP *This,
  539. TsViewCookie vcView,
  540. LONG acpStart,
  541. LONG acpEnd,
  542. RECT *prc,
  543. WINBOOL *pfClipped);
  544. HRESULT (STDMETHODCALLTYPE *GetScreenExt)(
  545. ITextStoreACP *This,
  546. TsViewCookie vcView,
  547. RECT *prc);
  548. HRESULT (STDMETHODCALLTYPE *GetWnd)(
  549. ITextStoreACP *This,
  550. TsViewCookie vcView,
  551. HWND *phwnd);
  552. END_INTERFACE
  553. } ITextStoreACPVtbl;
  554. interface ITextStoreACP {
  555. CONST_VTBL ITextStoreACPVtbl* lpVtbl;
  556. };
  557. #ifdef COBJMACROS
  558. #ifndef WIDL_C_INLINE_WRAPPERS
  559. /*** IUnknown methods ***/
  560. #define ITextStoreACP_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  561. #define ITextStoreACP_AddRef(This) (This)->lpVtbl->AddRef(This)
  562. #define ITextStoreACP_Release(This) (This)->lpVtbl->Release(This)
  563. /*** ITextStoreACP methods ***/
  564. #define ITextStoreACP_AdviseSink(This,riid,punk,dwMask) (This)->lpVtbl->AdviseSink(This,riid,punk,dwMask)
  565. #define ITextStoreACP_UnadviseSink(This,punk) (This)->lpVtbl->UnadviseSink(This,punk)
  566. #define ITextStoreACP_RequestLock(This,dwLockFlags,phrSession) (This)->lpVtbl->RequestLock(This,dwLockFlags,phrSession)
  567. #define ITextStoreACP_GetStatus(This,pdcs) (This)->lpVtbl->GetStatus(This,pdcs)
  568. #define ITextStoreACP_QueryInsert(This,acpTestStart,acpTestEnd,cch,pacpResultStart,pacpResultEnd) (This)->lpVtbl->QueryInsert(This,acpTestStart,acpTestEnd,cch,pacpResultStart,pacpResultEnd)
  569. #define ITextStoreACP_GetSelection(This,ulIndex,ulCount,pSelection,pcFetched) (This)->lpVtbl->GetSelection(This,ulIndex,ulCount,pSelection,pcFetched)
  570. #define ITextStoreACP_SetSelection(This,ulCount,pSelection) (This)->lpVtbl->SetSelection(This,ulCount,pSelection)
  571. #define ITextStoreACP_GetText(This,acpStart,acpEnd,pchPlain,cchPlainReq,pcchPlainRet,prgRunInfo,cRunInfoReq,pcRunInfoRet,pacpNext) (This)->lpVtbl->GetText(This,acpStart,acpEnd,pchPlain,cchPlainReq,pcchPlainRet,prgRunInfo,cRunInfoReq,pcRunInfoRet,pacpNext)
  572. #define ITextStoreACP_SetText(This,dwFlags,acpStart,acpEnd,pchText,cch,pChange) (This)->lpVtbl->SetText(This,dwFlags,acpStart,acpEnd,pchText,cch,pChange)
  573. #define ITextStoreACP_GetFormattedText(This,acpStart,acpEnd,ppDataObject) (This)->lpVtbl->GetFormattedText(This,acpStart,acpEnd,ppDataObject)
  574. #define ITextStoreACP_GetEmbedded(This,acpPos,rguidService,riid,ppunk) (This)->lpVtbl->GetEmbedded(This,acpPos,rguidService,riid,ppunk)
  575. #define ITextStoreACP_QueryInsertEmbedded(This,pguidService,pFormatEtc,pfInsertable) (This)->lpVtbl->QueryInsertEmbedded(This,pguidService,pFormatEtc,pfInsertable)
  576. #define ITextStoreACP_InsertEmbedded(This,dwFlags,acpStart,acpEnd,pDataObject,pChange) (This)->lpVtbl->InsertEmbedded(This,dwFlags,acpStart,acpEnd,pDataObject,pChange)
  577. #define ITextStoreACP_InsertTextAtSelection(This,dwFlags,pchText,cch,pacpStart,pacpEnd,pChange) (This)->lpVtbl->InsertTextAtSelection(This,dwFlags,pchText,cch,pacpStart,pacpEnd,pChange)
  578. #define ITextStoreACP_InsertEmbeddedAtSelection(This,dwFlags,pDataObject,pacpStart,pacpEnd,pChange) (This)->lpVtbl->InsertEmbeddedAtSelection(This,dwFlags,pDataObject,pacpStart,pacpEnd,pChange)
  579. #define ITextStoreACP_RequestSupportedAttrs(This,dwFlags,cFilterAttrs,paFilterAttrs) (This)->lpVtbl->RequestSupportedAttrs(This,dwFlags,cFilterAttrs,paFilterAttrs)
  580. #define ITextStoreACP_RequestAttrsAtPosition(This,acpPos,cFilterAttrs,paFilterAttrs,dwFlags) (This)->lpVtbl->RequestAttrsAtPosition(This,acpPos,cFilterAttrs,paFilterAttrs,dwFlags)
  581. #define ITextStoreACP_RequestAttrsTransitioningAtPosition(This,acpPos,cFilterAttrs,paFilterAttrs,dwFlags) (This)->lpVtbl->RequestAttrsTransitioningAtPosition(This,acpPos,cFilterAttrs,paFilterAttrs,dwFlags)
  582. #define ITextStoreACP_FindNextAttrTransition(This,acpStart,acpHalt,cFilterAttrs,paFilterAttrs,dwFlags,pacpNext,pfFound,plFoundOffset) (This)->lpVtbl->FindNextAttrTransition(This,acpStart,acpHalt,cFilterAttrs,paFilterAttrs,dwFlags,pacpNext,pfFound,plFoundOffset)
  583. #define ITextStoreACP_RetrieveRequestedAttrs(This,ulCount,paAttrVals,pcFetched) (This)->lpVtbl->RetrieveRequestedAttrs(This,ulCount,paAttrVals,pcFetched)
  584. #define ITextStoreACP_GetEndACP(This,pacp) (This)->lpVtbl->GetEndACP(This,pacp)
  585. #define ITextStoreACP_GetActiveView(This,pvcView) (This)->lpVtbl->GetActiveView(This,pvcView)
  586. #define ITextStoreACP_GetACPFromPoint(This,vcView,ptScreen,dwFlags,pacp) (This)->lpVtbl->GetACPFromPoint(This,vcView,ptScreen,dwFlags,pacp)
  587. #define ITextStoreACP_GetTextExt(This,vcView,acpStart,acpEnd,prc,pfClipped) (This)->lpVtbl->GetTextExt(This,vcView,acpStart,acpEnd,prc,pfClipped)
  588. #define ITextStoreACP_GetScreenExt(This,vcView,prc) (This)->lpVtbl->GetScreenExt(This,vcView,prc)
  589. #define ITextStoreACP_GetWnd(This,vcView,phwnd) (This)->lpVtbl->GetWnd(This,vcView,phwnd)
  590. #else
  591. /*** IUnknown methods ***/
  592. static FORCEINLINE HRESULT ITextStoreACP_QueryInterface(ITextStoreACP* This,REFIID riid,void **ppvObject) {
  593. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  594. }
  595. static FORCEINLINE ULONG ITextStoreACP_AddRef(ITextStoreACP* This) {
  596. return This->lpVtbl->AddRef(This);
  597. }
  598. static FORCEINLINE ULONG ITextStoreACP_Release(ITextStoreACP* This) {
  599. return This->lpVtbl->Release(This);
  600. }
  601. /*** ITextStoreACP methods ***/
  602. static FORCEINLINE HRESULT ITextStoreACP_AdviseSink(ITextStoreACP* This,REFIID riid,IUnknown *punk,DWORD dwMask) {
  603. return This->lpVtbl->AdviseSink(This,riid,punk,dwMask);
  604. }
  605. static FORCEINLINE HRESULT ITextStoreACP_UnadviseSink(ITextStoreACP* This,IUnknown *punk) {
  606. return This->lpVtbl->UnadviseSink(This,punk);
  607. }
  608. static FORCEINLINE HRESULT ITextStoreACP_RequestLock(ITextStoreACP* This,DWORD dwLockFlags,HRESULT *phrSession) {
  609. return This->lpVtbl->RequestLock(This,dwLockFlags,phrSession);
  610. }
  611. static FORCEINLINE HRESULT ITextStoreACP_GetStatus(ITextStoreACP* This,TS_STATUS *pdcs) {
  612. return This->lpVtbl->GetStatus(This,pdcs);
  613. }
  614. static FORCEINLINE HRESULT ITextStoreACP_QueryInsert(ITextStoreACP* This,LONG acpTestStart,LONG acpTestEnd,ULONG cch,LONG *pacpResultStart,LONG *pacpResultEnd) {
  615. return This->lpVtbl->QueryInsert(This,acpTestStart,acpTestEnd,cch,pacpResultStart,pacpResultEnd);
  616. }
  617. static FORCEINLINE HRESULT ITextStoreACP_GetSelection(ITextStoreACP* This,ULONG ulIndex,ULONG ulCount,TS_SELECTION_ACP *pSelection,ULONG *pcFetched) {
  618. return This->lpVtbl->GetSelection(This,ulIndex,ulCount,pSelection,pcFetched);
  619. }
  620. static FORCEINLINE HRESULT ITextStoreACP_SetSelection(ITextStoreACP* This,ULONG ulCount,const TS_SELECTION_ACP *pSelection) {
  621. return This->lpVtbl->SetSelection(This,ulCount,pSelection);
  622. }
  623. static FORCEINLINE HRESULT ITextStoreACP_GetText(ITextStoreACP* This,LONG acpStart,LONG acpEnd,WCHAR *pchPlain,ULONG cchPlainReq,ULONG *pcchPlainRet,TS_RUNINFO *prgRunInfo,ULONG cRunInfoReq,ULONG *pcRunInfoRet,LONG *pacpNext) {
  624. return This->lpVtbl->GetText(This,acpStart,acpEnd,pchPlain,cchPlainReq,pcchPlainRet,prgRunInfo,cRunInfoReq,pcRunInfoRet,pacpNext);
  625. }
  626. static FORCEINLINE HRESULT ITextStoreACP_SetText(ITextStoreACP* This,DWORD dwFlags,LONG acpStart,LONG acpEnd,const WCHAR *pchText,ULONG cch,TS_TEXTCHANGE *pChange) {
  627. return This->lpVtbl->SetText(This,dwFlags,acpStart,acpEnd,pchText,cch,pChange);
  628. }
  629. static FORCEINLINE HRESULT ITextStoreACP_GetFormattedText(ITextStoreACP* This,LONG acpStart,LONG acpEnd,IDataObject **ppDataObject) {
  630. return This->lpVtbl->GetFormattedText(This,acpStart,acpEnd,ppDataObject);
  631. }
  632. static FORCEINLINE HRESULT ITextStoreACP_GetEmbedded(ITextStoreACP* This,LONG acpPos,REFGUID rguidService,REFIID riid,IUnknown **ppunk) {
  633. return This->lpVtbl->GetEmbedded(This,acpPos,rguidService,riid,ppunk);
  634. }
  635. static FORCEINLINE HRESULT ITextStoreACP_QueryInsertEmbedded(ITextStoreACP* This,const GUID *pguidService,const FORMATETC *pFormatEtc,WINBOOL *pfInsertable) {
  636. return This->lpVtbl->QueryInsertEmbedded(This,pguidService,pFormatEtc,pfInsertable);
  637. }
  638. static FORCEINLINE HRESULT ITextStoreACP_InsertEmbedded(ITextStoreACP* This,DWORD dwFlags,LONG acpStart,LONG acpEnd,IDataObject *pDataObject,TS_TEXTCHANGE *pChange) {
  639. return This->lpVtbl->InsertEmbedded(This,dwFlags,acpStart,acpEnd,pDataObject,pChange);
  640. }
  641. static FORCEINLINE HRESULT ITextStoreACP_InsertTextAtSelection(ITextStoreACP* This,DWORD dwFlags,const WCHAR *pchText,ULONG cch,LONG *pacpStart,LONG *pacpEnd,TS_TEXTCHANGE *pChange) {
  642. return This->lpVtbl->InsertTextAtSelection(This,dwFlags,pchText,cch,pacpStart,pacpEnd,pChange);
  643. }
  644. static FORCEINLINE HRESULT ITextStoreACP_InsertEmbeddedAtSelection(ITextStoreACP* This,DWORD dwFlags,IDataObject *pDataObject,LONG *pacpStart,LONG *pacpEnd,TS_TEXTCHANGE *pChange) {
  645. return This->lpVtbl->InsertEmbeddedAtSelection(This,dwFlags,pDataObject,pacpStart,pacpEnd,pChange);
  646. }
  647. static FORCEINLINE HRESULT ITextStoreACP_RequestSupportedAttrs(ITextStoreACP* This,DWORD dwFlags,ULONG cFilterAttrs,const TS_ATTRID *paFilterAttrs) {
  648. return This->lpVtbl->RequestSupportedAttrs(This,dwFlags,cFilterAttrs,paFilterAttrs);
  649. }
  650. static FORCEINLINE HRESULT ITextStoreACP_RequestAttrsAtPosition(ITextStoreACP* This,LONG acpPos,ULONG cFilterAttrs,const TS_ATTRID *paFilterAttrs,DWORD dwFlags) {
  651. return This->lpVtbl->RequestAttrsAtPosition(This,acpPos,cFilterAttrs,paFilterAttrs,dwFlags);
  652. }
  653. static FORCEINLINE HRESULT ITextStoreACP_RequestAttrsTransitioningAtPosition(ITextStoreACP* This,LONG acpPos,ULONG cFilterAttrs,const TS_ATTRID *paFilterAttrs,DWORD dwFlags) {
  654. return This->lpVtbl->RequestAttrsTransitioningAtPosition(This,acpPos,cFilterAttrs,paFilterAttrs,dwFlags);
  655. }
  656. static FORCEINLINE HRESULT ITextStoreACP_FindNextAttrTransition(ITextStoreACP* This,LONG acpStart,LONG acpHalt,ULONG cFilterAttrs,const TS_ATTRID *paFilterAttrs,DWORD dwFlags,LONG *pacpNext,WINBOOL *pfFound,LONG *plFoundOffset) {
  657. return This->lpVtbl->FindNextAttrTransition(This,acpStart,acpHalt,cFilterAttrs,paFilterAttrs,dwFlags,pacpNext,pfFound,plFoundOffset);
  658. }
  659. static FORCEINLINE HRESULT ITextStoreACP_RetrieveRequestedAttrs(ITextStoreACP* This,ULONG ulCount,TS_ATTRVAL *paAttrVals,ULONG *pcFetched) {
  660. return This->lpVtbl->RetrieveRequestedAttrs(This,ulCount,paAttrVals,pcFetched);
  661. }
  662. static FORCEINLINE HRESULT ITextStoreACP_GetEndACP(ITextStoreACP* This,LONG *pacp) {
  663. return This->lpVtbl->GetEndACP(This,pacp);
  664. }
  665. static FORCEINLINE HRESULT ITextStoreACP_GetActiveView(ITextStoreACP* This,TsViewCookie *pvcView) {
  666. return This->lpVtbl->GetActiveView(This,pvcView);
  667. }
  668. static FORCEINLINE HRESULT ITextStoreACP_GetACPFromPoint(ITextStoreACP* This,TsViewCookie vcView,const POINT *ptScreen,DWORD dwFlags,LONG *pacp) {
  669. return This->lpVtbl->GetACPFromPoint(This,vcView,ptScreen,dwFlags,pacp);
  670. }
  671. static FORCEINLINE HRESULT ITextStoreACP_GetTextExt(ITextStoreACP* This,TsViewCookie vcView,LONG acpStart,LONG acpEnd,RECT *prc,WINBOOL *pfClipped) {
  672. return This->lpVtbl->GetTextExt(This,vcView,acpStart,acpEnd,prc,pfClipped);
  673. }
  674. static FORCEINLINE HRESULT ITextStoreACP_GetScreenExt(ITextStoreACP* This,TsViewCookie vcView,RECT *prc) {
  675. return This->lpVtbl->GetScreenExt(This,vcView,prc);
  676. }
  677. static FORCEINLINE HRESULT ITextStoreACP_GetWnd(ITextStoreACP* This,TsViewCookie vcView,HWND *phwnd) {
  678. return This->lpVtbl->GetWnd(This,vcView,phwnd);
  679. }
  680. #endif
  681. #endif
  682. #endif
  683. #endif /* __ITextStoreACP_INTERFACE_DEFINED__ */
  684. /* Begin additional prototypes for all interfaces */
  685. ULONG __RPC_USER CLIPFORMAT_UserSize (ULONG *, ULONG, CLIPFORMAT *);
  686. unsigned char * __RPC_USER CLIPFORMAT_UserMarshal (ULONG *, unsigned char *, CLIPFORMAT *);
  687. unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(ULONG *, unsigned char *, CLIPFORMAT *);
  688. void __RPC_USER CLIPFORMAT_UserFree (ULONG *, CLIPFORMAT *);
  689. ULONG __RPC_USER VARIANT_UserSize (ULONG *, ULONG, VARIANT *);
  690. unsigned char * __RPC_USER VARIANT_UserMarshal (ULONG *, unsigned char *, VARIANT *);
  691. unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
  692. void __RPC_USER VARIANT_UserFree (ULONG *, VARIANT *);
  693. ULONG __RPC_USER HWND_UserSize (ULONG *, ULONG, HWND *);
  694. unsigned char * __RPC_USER HWND_UserMarshal (ULONG *, unsigned char *, HWND *);
  695. unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
  696. void __RPC_USER HWND_UserFree (ULONG *, HWND *);
  697. /* End additional prototypes */
  698. #ifdef __cplusplus
  699. }
  700. #endif
  701. #endif /* __textstor_h__ */