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