windowscodecs: Store GIF frame extensions in a dedicated Extensions structure.
[wine] / include / tom.idl
1 /*
2  * Copyright 2006 Juan Lang
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 import "oaidl.idl";
20 import "ocidl.idl";
21
22 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
23 cpp_quote("#undef FindText")
24 cpp_quote("#endif")
25
26 typedef enum tagTomConstants
27 {
28     tomFalse       = 0,
29     tomTrue        = -1,
30     tomUndefined   = -9999999,
31     tomToggle      = -9999998,
32     tomAutoColor   = -9999997,
33     tomDefault     = -9999996,
34     tomSuspend     = -9999995,
35     tomResume      = -9999994,
36     tomApplyNow    = 0,
37     tomApplyLater  = 1,
38     tomTrackParms  = 2,
39     tomCacheParms  = 3,
40     tomBackward    = 0xc0000001,
41     tomForward     = 0x3fffffff,
42     tomMove        = 0,
43     tomExtend      = 1,
44     tomNoSelection          = 0,
45     tomSelectionIP          = 1,
46     tomSelectionNormal      = 2,
47     tomSelectionFrame       = 3,
48     tomSelectionColumn      = 4,
49     tomSelectionRow         = 5,
50     tomSelectionBlock       = 6,
51     tomSelectionInlineShape = 7,
52     tomSelectionShape       = 8,
53     tomSelStartActive = 1,
54     tomSelAtEOL       = 2,
55     tomSelOvertype    = 4,
56     tomSelActive      = 8,
57     tomSelReplace     = 16,
58     tomEnd   = 0,
59     tomStart = 32,
60     tomCollapseEnd   = 0,
61     tomCollapseStart = 1,
62     tomClientCoord = 256,
63     tomNone       = 0,
64     tomSingle     = 1,
65     tomWords      = 2,
66     tomDouble     = 3,
67     tomDotted     = 4,
68     tomDash       = 5,
69     tomDashDot    = 6,
70     tomDashDotDot = 7,
71     tomWave       = 8,
72     tomThick      = 9,
73     tomHair       = 10,
74     tomLineSpaceSingle   = 0,
75     tomLineSpace1pt5     = 1,
76     tomLineSpaceDouble   = 2,
77     tomLineSpaceAtLeast  = 3,
78     tomLineSpaceExactly  = 4,
79     tomLineSpaceMultiple = 5,
80     tomAlignLeft        = 0,
81     tomAlignCenter      = 1,
82     tomAlignRight       = 2,
83     tomAlignJustify     = 3,
84     tomAlignDecimal     = 3,
85     tomAlignBar         = 4,
86     tomAlignInterWord   = 3,
87     tomAlignInterLetter = 4,
88     tomAlignScaled      = 5,
89     tomAlignGlyphs      = 6,
90     tomAlignSnapGrid    = 7,
91     tomSpaces     = 0,
92     tomDots       = 1,
93     tomDashes     = 2,
94     tomLines      = 3,
95     tomThickLines = 4,
96     tomEquals     = 5,
97     tomTabBack = -3,
98     tomTabNext = -2,
99     tomTabHere = -1,
100     tomListBullet           = 1,
101     tomListNumberAsArabic   = 2,
102     tomListNumberAsLCLetter = 3,
103     tomListNumberAsUCLetter = 4,
104     tomListNumberAsLCRoman  = 5,
105     tomListNumberAsUCRoman  = 6,
106     tomListNumberAsSequence = 7,
107     tomListParentheses      = 0x10000,
108     tomListPeriod           = 0x20000,
109     tomListPlain            = 0x30000,
110     tomCharacter  = 1,
111     tomWord       = 2,
112     tomSentence   = 3,
113     tomParagraph  = 4,
114     tomLine       = 5,
115     tomStory      = 6,
116     tomScreen     = 7,
117     tomSection    = 8,
118     tomColumn     = 9,
119     tomRow        = 10,
120     tomWindow     = 11,
121     tomCell       = 12,
122     tomCharFormat = 13,
123     tomParaFormat = 14,
124     tomTable      = 15,
125     tomObject     = 16,
126     tomMatchWord    = 2,
127     tomMatchCase    = 4,
128     tomMatchPattern = 8,
129     tomUnknownStory         = 0,
130     tomMainTextStory        = 1,
131     tomFootnotesStory       = 2,
132     tomEndnotesStory        = 3,
133     tomCommentsStory        = 4,
134     tomTextFrameStory       = 5,
135     tomEvenPagesHeaderStory = 6,
136     tomPrimaryHeaderStory   = 7,
137     tomEvenPagesFooterStory = 8,
138     tomPrimaryFooterStory   = 9,
139     tomFirstPageHeaderStory = 10,
140     tomFirstPageFooterStory = 11,
141     tomNoAnimation        = 0,
142     tomLasVegasLights     = 1,
143     tomBlinkingBackground = 2,
144     tomSparkleText        = 3,
145     tomMarchingBlackAnts  = 4,
146     tomMarchingRedAnts    = 5,
147     tomShimmer            = 6,
148     tomWipeDown           = 7,
149     tomWipeRight          = 8,
150     tomAnimationMax       = 8,
151     tomLowerCase     = 0,
152     tomUpperCase     = 1,
153     tomTitleCase     = 2,
154     tomSentenceCase  = 4,
155     tomToggleCase    = 5,
156     tomReadOnly         = 0x100,
157     tomShareDenyRead    = 0x200,
158     tomShareDenyWrite   = 0x400,
159     tomPasteFile        = 0x1000,
160     tomCreateNew        = 0x10,
161     tomCreateAlways     = 0x20,
162     tomOpenExisting     = 0x30,
163     tomOpenAlways       = 0x40,
164     tomTruncateExisting = 0x50,
165     tomRTF              = 0x1,
166     tomText             = 0x2,
167     tomHTML             = 0x3,
168     tomWordDocument     = 0x4,
169     tomBold      = 0x80000001,
170     tomItalic    = 0x80000002,
171     tomUnderline = 0x80000004,
172     tomStrikeout = 0x80000008,
173     tomProtected = 0x80000010,
174     tomLink      = 0x80000020,
175     tomSmallCaps = 0x80000040,
176     tomAllCaps   = 0x80000080,
177     tomHidden    = 0x80000100,
178     tomOutline   = 0x80000200,
179     tomShadow    = 0x80000400,
180     tomEmboss    = 0x80000800,
181     tomImprint   = 0x80001000,
182     tomDisabled  = 0x80002000,
183     tomRevised   = 0x80004000,
184     tomNormalCaret      = 0,
185     tomKoreanBlockCaret = 0x1,
186     tomIncludeInset = 0x1,
187     tomIgnoreCurrentFont  = 0,
188     tomMatchFontCharset   = 0x1,
189     tomMatchFontSignature = 0x2,
190     tomCharset = 0x80000000,
191     tomRE10Mode = 0x1,
192     tomNoIME   = 0x80000,
193     tomSelfIME = 0x40000
194 } tomConstants;
195
196 interface ITextRange;
197 interface ITextSelection;
198 interface ITextStoryRanges;
199
200 [
201   object,
202   uuid(8cc497c0-a1df-11ce-8098-00aa0047be5d)
203 ]
204 interface ITextDocument : IDispatch
205 {
206     HRESULT GetName([retval, out]BSTR *pName);
207     HRESULT GetSelection([retval, out]ITextSelection **ppSel);
208     HRESULT GetStoryCount([retval, out]LONG *pCount);
209     HRESULT GetStoryRanges([retval, out]ITextStoryRanges **ppStories);
210     HRESULT GetSaved([retval, out]LONG *pValue);
211     HRESULT SetSaved([in]LONG Value);
212     HRESULT GetDefaultTabStop([retval, out]float *pValue);
213     HRESULT SetDefaultTabStop([in]float Value);
214     HRESULT New();
215     HRESULT Open([in]VARIANT *pVar, [in]LONG Flags, [in]LONG CodePage);
216     HRESULT Save([in]VARIANT *pVar, [in]LONG Flags, [in]LONG CodePage);
217     HRESULT Freeze([retval, out]LONG *pCount);
218     HRESULT Unfreeze([retval, out]LONG *pCount);
219     HRESULT BeginEditCollection();
220     HRESULT EndEditCollection();
221     HRESULT Undo([in]LONG Count, [retval, out]LONG *prop);
222     HRESULT Redo([in]LONG Count, [retval, out]LONG *prop);
223     HRESULT Range([in]LONG cp1, [in]LONG cp2, [retval, out]ITextRange **ppRange);
224     HRESULT RangeFromPoint([in]LONG x, [in]LONG y, [retval, out]ITextRange **ppRange);
225 }
226
227 interface ITextFont;
228 interface ITextPara;
229
230 [
231   object,
232   uuid(8cc497c2-a1df-11ce-8098-00aa0047be5d)
233 ]
234 interface ITextRange : IDispatch
235 {
236     HRESULT GetText([retval, out]BSTR *pbstr);
237     HRESULT SetText([in]BSTR bstr);
238     HRESULT GetChar([retval, out]LONG *pch);
239     HRESULT SetChar([in]LONG ch);
240     HRESULT GetDuplicate([retval, out]ITextRange **ppRange);
241     HRESULT GetFormattedText([retval, out]ITextRange **ppRange);
242     HRESULT SetFormattedText([in]ITextRange *pRange);
243     HRESULT GetStart([retval, out]LONG *pcpFirst);
244     HRESULT SetStart([in]LONG cpFirst);
245     HRESULT GetEnd([retval, out]LONG *pcpLim);
246     HRESULT SetEnd([in]LONG cpLim);
247     HRESULT GetFont([retval, out]ITextFont **pFont);
248     HRESULT SetFont([in]ITextFont *pFont);
249     HRESULT GetPara([retval, out]ITextPara **ppPara);
250     HRESULT SetPara([in]ITextPara *pPara);
251     HRESULT GetStoryLength([retval, out]LONG *pcch);
252     HRESULT GetStoryType([retval, out]LONG *pValue);
253     HRESULT Collapse([in]LONG bStart);
254     HRESULT Expand([in]LONG Unit, [retval, out]LONG *pDelta);
255     HRESULT GetIndex([in]LONG Unit, [retval, out]LONG *pIndex);
256     HRESULT SetIndex([in]LONG Unit, [in]LONG Index, [in]LONG Extend);
257     HRESULT SetRange([in]LONG cpActive, [in]LONG cpOther);
258     HRESULT InRange([in]ITextRange *pRange, [retval, out]LONG *pb);
259     HRESULT InStory([in]ITextRange *pRange, [retval, out]LONG *pb);
260     HRESULT IsEqual([in]ITextRange *pRange, [retval, out]LONG *pb);
261     HRESULT Select();
262     HRESULT StartOf([in]LONG Unit, [in]LONG Extend, [retval, out]LONG *pDelta);
263     HRESULT EndOf([in]LONG Unit, [in]LONG Extend, [retval, out]LONG *pDelta);
264     HRESULT Move([in]LONG Unit, [in]LONG Count, [retval, out]LONG *pDelta);
265     HRESULT MoveStart([in]LONG Unit, [in]LONG Count, [retval, out]LONG *pDelta);
266     HRESULT MoveEnd([in]LONG Unit, [in]LONG Count, [retval, out]LONG *pDelta);
267     HRESULT MoveWhile([in]VARIANT *Cset, [in]LONG Count, [retval, out]LONG *pDelta);
268     HRESULT MoveStartWhile([in]VARIANT *Cset, [in]LONG Count, [retval, out]LONG *pDelta);
269     HRESULT MoveEndWhile([in]VARIANT *Cset, [in]LONG Count, [retval, out]LONG *pDelta);
270     HRESULT MoveUntil([in]VARIANT *Cset, [in]LONG Count, [retval, out]LONG *pDelta);
271     HRESULT MoveStartUntil([in]VARIANT *Cset, [in]LONG Count, [retval, out]LONG *pDelta);
272     HRESULT MoveEndUntil([in]VARIANT *Cset, [in]LONG Count, [retval, out]LONG *pDelta);
273     HRESULT FindText([in]BSTR bstr, [in]LONG cch, [in]LONG Flags, [retval, out]LONG *pLength);
274     HRESULT FindTextStart([in]BSTR bstr, [in]LONG cch, [in]LONG Flags, [retval, out]LONG *pLength);
275     HRESULT FindTextEnd([in]BSTR bstr, [in]LONG cch, [in]LONG Flags, [retval, out]LONG *pLength);
276     HRESULT Delete([in]LONG Unit, [in]LONG Count, [retval, out]LONG *pDelta);
277     HRESULT Cut([out]VARIANT *pVar);
278     HRESULT Copy([out]VARIANT *pVar);
279     HRESULT Paste([in]VARIANT *pVar, [in]LONG Format);
280     HRESULT CanPaste([in]VARIANT *pVar, [in]LONG Format, [retval, out]LONG *pb);
281     HRESULT CanEdit([retval, out]LONG *pb);
282     HRESULT ChangeCase([in]LONG Type);
283     HRESULT GetPoint([in]LONG Type, [out]LONG *cx, [out]LONG *cy);
284     HRESULT SetPoint([in]LONG x, [in]LONG y, [in]LONG Type, [in]LONG Extend);
285     HRESULT ScrollIntoView([in]LONG Value);
286     HRESULT GetEmbeddedObject([retval, out]IUnknown **ppv);
287 }
288
289 [
290   object,
291   uuid(8cc497c1-a1df-11ce-8098-00aa0047be5d)
292 ]
293 interface ITextSelection : ITextRange
294 {
295     HRESULT GetFlags([retval, out]LONG *pFlags);
296     HRESULT SetFlags([in]LONG Flags);
297     HRESULT GetType([retval, out]LONG *pType);
298     HRESULT MoveLeft([in]LONG Unit, [in]LONG Count, [in]LONG Extend, [retval, out]LONG *pDelta);
299     HRESULT MoveRight([in]LONG Unit, [in]LONG Count, [in]LONG Extend, [retval, out]LONG *pDelta);
300     HRESULT MoveUp([in]LONG Unit, [in]LONG Count, [in]LONG Extend, [retval, out]LONG *pDelta);
301     HRESULT MoveDown([in]LONG Unit, [in]LONG Count, [in]LONG Extend, [retval, out]LONG *pDelta);
302     HRESULT HomeKey([in]LONG Unit, [in]LONG Extend, [retval, out]LONG *pDelta);
303     HRESULT EndKey([in]LONG Unit, [in]LONG Extend, [retval, out]LONG *pDelta);
304     HRESULT TypeText([in]BSTR bstr);
305 }
306
307 [
308   object,
309   uuid(8cc497c3-a1df-11ce-8098-00aa0047be5d)
310 ]
311 interface ITextFont : IDispatch
312 {
313     HRESULT GetDuplicate([retval, out]ITextFont **ppFont);
314     HRESULT SetDuplicate([in]ITextFont *pFont);
315     HRESULT CanChange([out]LONG *pB);
316     HRESULT IsEqual([in]ITextFont *pFont, [retval, out]LONG *pB);
317     HRESULT Reset([in]LONG Value);
318     HRESULT GetStyle([retval, out]LONG *pValue);
319     HRESULT SetStyle([in]LONG Value);
320     HRESULT GetAllCaps([retval, out]LONG *pValue);
321     HRESULT SetAllCaps([in]LONG Value);
322     HRESULT GetAnimation([retval, out]LONG *pValue);
323     HRESULT SetAnimation([in]LONG Value);
324     HRESULT GetBackColor([retval, out]LONG *pValue);
325     HRESULT SetBackColor([in]LONG Value);
326     HRESULT GetBold([retval, out]LONG *pValue);
327     HRESULT SetBold([in]LONG Value);
328     HRESULT GetEmboss([retval, out]LONG *pValue);
329     HRESULT SetEmboss([in]LONG Value);
330     HRESULT GetForeColor([retval, out]LONG *pValue);
331     HRESULT SetForeColor([in]LONG Value);
332     HRESULT GetHidden([retval, out]LONG *pValue);
333     HRESULT SetHidden([in]LONG Value);
334     HRESULT GetEngrave([retval, out]LONG *pValue);
335     HRESULT SetEngrave([in]LONG Value);
336     HRESULT GetItalic([retval, out]LONG *pValue);
337     HRESULT SetItalic([in]LONG Value);
338     HRESULT GetKerning([retval, out]LONG *pValue);
339     HRESULT SetKerning([in]LONG Value);
340     HRESULT GetLanguageID([retval, out]LONG *pValue);
341     HRESULT SetLanguageID([in]LONG Value);
342     HRESULT GetName([retval, out]BSTR *pValue);
343     HRESULT SetName([in]BSTR Value);
344     HRESULT GetOutline([retval, out]LONG *pValue);
345     HRESULT SetOutline([in]LONG Value);
346     HRESULT GetPosition([retval, out]LONG *pValue);
347     HRESULT SetPosition([in]LONG Value);
348     HRESULT GetProtected([retval, out]LONG *pValue);
349     HRESULT SetProtected([in]LONG Value);
350     HRESULT GetShadow([retval, out]LONG *pValue);
351     HRESULT SetShadow([in]LONG Value);
352     HRESULT GetSize([retval, out]LONG *pValue);
353     HRESULT SetSize([in]LONG Value);
354     HRESULT GetSmallCaps([retval, out]LONG *pValue);
355     HRESULT SetSmallCaps([in]LONG Value);
356     HRESULT GetSpacing([retval, out]float *pValue);
357     HRESULT SetSpacing([in]float Value);
358     HRESULT GetStrikeThrough([retval, out]LONG *pValue);
359     HRESULT SetStrikeThrough([in]LONG Value);
360     HRESULT GetSubscript([retval, out]LONG *pValue);
361     HRESULT SetSubscript([in]LONG Value);
362     HRESULT GetSuperscript([retval, out]LONG *pValue);
363     HRESULT SetSuperscript([in]LONG Value);
364     HRESULT GetUnderline([retval, out]LONG *pValue);
365     HRESULT SetUnderline([in]LONG Value);
366     HRESULT GetWeight([retval, out]LONG *pValue);
367     HRESULT SetWeight([in]LONG Value);
368 }
369
370 [
371   object,
372   uuid(8cc497c4-a1df-11ce-8098-00aa0047be5d)
373 ]
374 interface ITextPara : IDispatch
375 {
376     HRESULT GetDuplicate([retval, out]ITextPara **ppPara);
377     HRESULT SetDuplicate([in]ITextPara *pPara);
378     HRESULT CanChange([out]LONG *pB);
379     HRESULT IsEqual([in]ITextPara *pPara, [retval, out]LONG *pB);
380     HRESULT Reset([in]LONG Value);
381     HRESULT GetStyle([retval, out]LONG *pValue);
382     HRESULT SetStyle([in]LONG Value);
383     HRESULT GetAlignment([retval, out]LONG *pValue);
384     HRESULT SetAlignment([in]LONG Value);
385     HRESULT GetHyphenation([retval, out]LONG *pValue);
386     HRESULT SetHyphenation([in]LONG Value);
387     HRESULT GetFirstLineIndent([retval, out]float *pValue);
388     HRESULT GetKeepTogether([retval, out]LONG *pValue);
389     HRESULT SetKeepTogether([in]LONG Value);
390     HRESULT GetKeepWithNext([retval, out]LONG *pValue);
391     HRESULT SetKeepWithNext([in]LONG Value);
392     HRESULT GetLeftIndent([retval, out]float *pValue);
393     HRESULT GetLineSpacing([retval, out]float *pValue);
394     HRESULT GetLineSpacingRule([retval, out]LONG *pValue);
395     HRESULT GetListAlignment([retval, out]LONG *pValue);
396     HRESULT SetListAlignment([in]LONG Value);
397     HRESULT GetListLevelIndex([retval, out]LONG *pValue);
398     HRESULT SetListLevelIndex([in]LONG Value);
399     HRESULT GetListStart([retval, out]LONG *pValue);
400     HRESULT SetListStart([in]LONG Value);
401     HRESULT GetListTab([retval, out]LONG *pValue);
402     HRESULT SetListTab([in]LONG Value);
403     HRESULT GetListType([retval, out]LONG *pValue);
404     HRESULT SetListType([in]LONG Value);
405     HRESULT GetNoLineNumber([retval, out]LONG *pValue);
406     HRESULT SetNoLineNumber([in]LONG Value);
407     HRESULT GetPageBreakBefore([retval, out]LONG *pValue);
408     HRESULT SetPageBreakBefore([in]LONG Value);
409     HRESULT GetRightIndent([retval, out]float *pValue);
410     HRESULT SetRightIndent([in]float Value);
411     HRESULT SetIndents([in]float StartIndent, [in]float LeftIndent, [in]float RightIndent);
412     HRESULT SetLineSpacing([in]LONG LineSpacingRule, [in]float LineSpacing);
413     HRESULT GetSpaceAfter([retval, out]float *pValue);
414     HRESULT SetSpaceAfter([in]float Value);
415     HRESULT GetSpaceBefore([retval, out]float *pValue);
416     HRESULT SetSpaceBefore([in]float Value);
417     HRESULT GetWindowControl([retval, out]float *pValue);
418     HRESULT SetWindowControl([in]float Value);
419     HRESULT GetTabCount([retval, out]LONG *pCount);
420     HRESULT AddTab([in]float tbPos, [in]LONG tbAlign, [in]LONG tbLeader);
421     HRESULT ClearAllTabs();
422     HRESULT DeleteTab([in]float tbPos);
423     HRESULT GetTab([in]LONG iTab, [out]float *ptbPos, [out]LONG *ptbAlign, [out]LONG *ptbLeader);
424 }
425
426 [
427   object,
428   uuid(8cc497c5-a1df-11ce-8098-00aa0047be5d)
429 ]
430 interface ITextStoryRanges : IDispatch
431 {
432     HRESULT _NewEnum([retval, out]IUnknown **ppUnkEnum);
433     HRESULT Item([in]LONG Index, [retval, out]ITextRange **ppRange);
434     HRESULT GetCount([retval, out]LONG *pCount);
435 }