1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**************************************************************************\
2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*
3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Copyright (c) 2000, Microsoft Corp.  All Rights Reserved.
4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*
5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Module Name:
6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*
7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*    GdiplusLineCaps.h
8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*
9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Abstract:
10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*
11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*   APIs for Custom Line Caps
12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*
13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov\**************************************************************************/
14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef _GDIPLUSLINECAPS_H
16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define _GDIPLUSLINECAPS_H
17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline
19ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCustomLineCap::CustomLineCap(
20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    IN const GraphicsPath* fillPath,
21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    IN const GraphicsPath* strokePath,
22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    IN LineCap baseCap,
23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    IN REAL baseInset
24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    )
25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    nativeCap = NULL;
27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    GpPath* nativeFillPath = NULL;
28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    GpPath* nativeStrokePath = NULL;
29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    if(fillPath)
31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        nativeFillPath = fillPath->nativePath;
32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    if(strokePath)
33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        nativeStrokePath = strokePath->nativePath;
34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    lastResult = DllExports::GdipCreateCustomLineCap(
36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                    nativeFillPath, nativeStrokePath,
37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                    baseCap, baseInset, &nativeCap);
38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline
41ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCustomLineCap::CustomLineCap()
42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    // This is used for default constructor for subclasses.
44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    // So don't create a nativeCap.
45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    nativeCap = NULL;
47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    lastResult = Ok;
48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline
51ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCustomLineCap::~CustomLineCap()
52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    DllExports::GdipDeleteCustomLineCap(nativeCap);
54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status
57ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCustomLineCap::SetStrokeCaps(
58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    IN LineCap startCap,
59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    IN LineCap endCap)
60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    return SetStatus(DllExports::GdipSetCustomLineCapStrokeCaps(nativeCap,
62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                startCap, endCap));
63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status
66ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCustomLineCap::GetStrokeCaps(
67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    OUT LineCap* startCap,
68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    OUT LineCap* endCap) const
69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    return SetStatus(DllExports::GdipGetCustomLineCapStrokeCaps(nativeCap,
71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                 startCap, endCap));
72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status
75ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCustomLineCap::SetStrokeJoin(
76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    IN LineJoin lineJoin)
77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    return SetStatus(DllExports::GdipSetCustomLineCapStrokeJoin(nativeCap, lineJoin));
79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline LineJoin
82ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCustomLineCap::GetStrokeJoin() const
83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    LineJoin lineJoin;
85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    SetStatus(DllExports::GdipGetCustomLineCapStrokeJoin(nativeCap, &lineJoin));
87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
88ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    return lineJoin;
89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status
92ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCustomLineCap::SetBaseCap(IN LineCap baseCap)
93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    return SetStatus(DllExports::GdipSetCustomLineCapBaseCap(nativeCap, baseCap));
95ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline LineCap
98ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCustomLineCap::GetBaseCap() const
99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
100ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    LineCap baseCap;
101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    SetStatus(DllExports::GdipGetCustomLineCapBaseCap(nativeCap, &baseCap));
102ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
103ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    return baseCap;
104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
105ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status
107ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCustomLineCap::SetBaseInset(IN REAL inset)
108ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
109ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    return SetStatus(DllExports::GdipSetCustomLineCapBaseInset(nativeCap, inset));
110ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
111ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
112ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline REAL
113ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCustomLineCap::GetBaseInset() const
114ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
115ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    REAL inset;
116ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    SetStatus(DllExports::GdipGetCustomLineCapBaseInset(nativeCap, &inset));
117ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
118ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    return inset;
119ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
120ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
121ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
122ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status
123ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCustomLineCap::SetWidthScale(IN REAL widthScale)
124ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
125ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    return SetStatus(DllExports::GdipSetCustomLineCapWidthScale(nativeCap, widthScale));
126ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
127ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
128ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline REAL
129ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCustomLineCap::GetWidthScale() const
130ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
131ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    REAL widthScale;
132ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    SetStatus(DllExports::GdipGetCustomLineCapWidthScale(nativeCap, &widthScale));
133ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
134ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    return widthScale;
135ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
136ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
137ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline CustomLineCap*
138ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCustomLineCap::Clone() const
139ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
140ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    GpCustomLineCap *newNativeLineCap = NULL;
141ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
142ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    SetStatus(DllExports::GdipCloneCustomLineCap(nativeCap, &newNativeLineCap));
143ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
144ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    if (lastResult == Ok)
145ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    {
146ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        CustomLineCap *newLineCap = new CustomLineCap(newNativeLineCap, lastResult);
147ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        if (newLineCap == NULL)
148ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        {
149ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov            SetStatus(DllExports::GdipDeleteCustomLineCap(newNativeLineCap));
150ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        }
151ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
152ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        return newLineCap;
153ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    }
154ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
155ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    return NULL;
156ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
157ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
158ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass AdjustableArrowCap : public CustomLineCap
159ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
160ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic:
161ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
162ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    AdjustableArrowCap(
163ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        IN REAL height,
164ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        IN REAL width,
165ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        IN BOOL isFilled = TRUE
166ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        )
167ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    {
168ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        GpAdjustableArrowCap* cap = NULL;
169ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
170ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        lastResult = DllExports::GdipCreateAdjustableArrowCap(
171ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                        height, width, isFilled, &cap);
172ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        SetNativeCap(cap);
173ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    }
174ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
175ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    Status SetHeight(IN REAL height)
176ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    {
177ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap;
178ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        return SetStatus(DllExports::GdipSetAdjustableArrowCapHeight(
179ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                            cap, height));
180ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    }
181ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
182ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    REAL GetHeight() const
183ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    {
184ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap;
185ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        REAL height;
186ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        SetStatus(DllExports::GdipGetAdjustableArrowCapHeight(
187ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                            cap, &height));
188ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
189ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        return height;
190ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    }
191ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
192ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    Status SetWidth(IN REAL width)
193ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    {
194ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap;
195ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        return SetStatus(DllExports::GdipSetAdjustableArrowCapWidth(
196ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                            cap, width));
197ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    }
198ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
199ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    REAL GetWidth() const
200ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    {
201ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap;
202ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        REAL width;
203ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        SetStatus(DllExports::GdipGetAdjustableArrowCapWidth(
204ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                            cap, &width));
205ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
206ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        return width;
207ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    }
208ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
209ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    Status SetMiddleInset(IN REAL middleInset)
210ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    {
211ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap;
212ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        return SetStatus(DllExports::GdipSetAdjustableArrowCapMiddleInset(
213ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                            cap, middleInset));
214ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    }
215ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
216ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    REAL GetMiddleInset() const
217ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    {
218ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap;
219ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        REAL middleInset;
220ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        SetStatus(DllExports::GdipGetAdjustableArrowCapMiddleInset(
221ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                            cap, &middleInset));
222ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
223ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        return middleInset;
224ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    }
225ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
226ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    Status SetFillState(IN BOOL isFilled)
227ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    {
228ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap;
229ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        return SetStatus(DllExports::GdipSetAdjustableArrowCapFillState(
230ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                            cap, isFilled));
231ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    }
232ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
233ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    BOOL IsFilled() const
234ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    {
235ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap;
236ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        BOOL isFilled;
237ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        SetStatus(DllExports::GdipGetAdjustableArrowCapFillState(
238ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                            cap, &isFilled));
239ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
240ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        return isFilled;
241ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    }
242ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
243ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifdef DCR_USE_NEW_250932
244ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
245ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovprivate:
246ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    AdjustableArrowCap(const AdjustableArrowCap &);
247ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    AdjustableArrowCap& operator=(const AdjustableArrowCap &);
248ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
249ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif
250ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
251ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov};
252ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
253ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif
254