wininet: Fix a couple of memory leaks.
[wine.git] / include / d2d1.idl
blobc63ed2423d39e8e6e927903c483a1a3c0ddef708
1 /*
2 * Copyright 2013 Nikolay Sivov for CodeWeavers
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.
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.
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
19 import "unknwn.idl";
20 import "d2dbasetypes.h";
22 typedef D2D_POINT_2F D2D1_POINT_2F;
24 typedef enum D2D1_DEBUG_LEVEL
26 D2D1_DEBUG_LEVEL_NONE = 0,
27 D2D1_DEBUG_LEVEL_ERROR = 1,
28 D2D1_DEBUG_LEVEL_WARNING = 2,
29 D2D1_DEBUG_LEVEL_INFORMATION = 3,
30 D2D1_DEBUG_LEVEL_FORCE_DWORD = 0xffffffff,
31 } D2D1_DEBUG_LEVEL;
33 typedef enum D2D1_FACTORY_TYPE
35 D2D1_FACTORY_TYPE_SINGLE_THREADED = 0,
36 D2D1_FACTORY_TYPE_MULTI_THREADED = 1,
37 D2D1_FACTORY_TYPE_FORCE_DWORD = 0xfffffff,
38 } D2D1_FACTORY_TYPE;
40 typedef enum D2D1_FILL_MODE
42 D2D1_FILL_MODE_ALTERNATE = 0,
43 D2D1_FILL_MODE_WINDING = 1,
44 D2D1_FILL_MODE_FORCE_DWORD = 0xffffffff
45 } D2D1_FILL_MODE;
47 typedef enum D2D1_PATH_SEGMENT
49 D2D1_PATH_SEGMENT_NONE = 0,
50 D2D1_PATH_SEGMENT_FORCE_UNSTROKED = 1,
51 D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN = 2,
52 D2D1_PATH_SEGMENT_FORCE_DWORD = 0xffffffff
53 } D2D1_PATH_SEGMENT;
55 typedef enum D2D1_FIGURE_BEGIN
57 D2D1_FIGURE_BEGIN_FILLED = 0,
58 D2D1_FIGURE_BEGIN_HOLLOW = 1,
59 D2D1_FIGURE_BEGIN_FORCE_DWORD = 0xffffffff
60 } D2D1_FIGURE_BEGIN;
62 typedef struct D2D1_BEZIER_SEGMENT
64 D2D1_POINT_2F point1;
65 D2D1_POINT_2F point2;
66 D2D1_POINT_2F point3;
67 } D2D1_BEZIER_SEGMENT;
69 typedef enum D2D1_FIGURE_END
71 D2D1_FIGURE_END_OPEN = 0,
72 D2D1_FIGURE_END_CLOSED = 1,
73 D2D1_FIGURE_END_FORCE_DWORD = 0xffffffff
74 } D2D1_FIGURE_END;
76 typedef struct D2D1_FACTORY_OPTIONS
78 D2D1_DEBUG_LEVEL debugLevel;
79 } D2D1_FACTORY_OPTIONS;
82 local,
83 object,
84 uuid(2cd9069e-12e2-11dc-9fed-001143a055f9)
86 interface ID2D1SimplifiedGeometrySink : IUnknown
88 void SetFillMode(D2D1_FILL_MODE mode);
89 void SetSegmentFlags(D2D1_PATH_SEGMENT vertexFlags);
90 void BeginFigure(D2D1_POINT_2F startPoint, D2D1_FIGURE_BEGIN figureBegin);
91 void AddLines(const D2D1_POINT_2F *points, UINT32 count);
92 void AddBeziers(const D2D1_BEZIER_SEGMENT *beziers, UINT32 count);
93 void EndFigure(D2D1_FIGURE_END figureEnd);
94 HRESULT Close();
97 [local] HRESULT __stdcall D2D1CreateFactory(D2D1_FACTORY_TYPE factory_type, REFIID iid,
98 const D2D1_FACTORY_OPTIONS *factory_options, void **factory);