1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**************************************************************************\ 2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Copyright (c) 1998-2000, Microsoft Corp. All Rights Reserved. 4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Module Name: 6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* GdiplusRegion.h 8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Abstract: 10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Region API related declarations 12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov\**************************************************************************/ 14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef _GDIPLUSREGION_H 16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define _GDIPLUSREGION_H 17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/** 19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Construct a new region object 20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov */ 21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 23ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Region() 24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov GpRegion *region = NULL; 26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipCreateRegion(®ion); 28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetNativeRegion(region); 30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 33ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Region(IN const RectF& rect) 34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov GpRegion *region = NULL; 36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipCreateRegionRect(&rect, ®ion); 38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetNativeRegion(region); 40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 43ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Region(IN const Rect& rect) 44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov GpRegion *region = NULL; 46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipCreateRegionRectI(&rect, ®ion); 48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetNativeRegion(region); 50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 53ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Region(IN const GraphicsPath* path) 54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov GpRegion *region = NULL; 56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipCreateRegionPath(path->nativePath, ®ion); 58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetNativeRegion(region); 60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 63ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Region(IN const BYTE* regionData, IN INT size) 64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov GpRegion *region = NULL; 66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipCreateRegionRgnData(regionData, size, ®ion); 68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetNativeRegion(region); 70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 73ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Region(IN HRGN hRgn) 74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov GpRegion *region = NULL; 76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipCreateRegionHrgn(hRgn, ®ion); 78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetNativeRegion(region); 80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 83ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion* Region::FromHRGN(IN HRGN hRgn) 84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov GpRegion *region = NULL; 86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (DllExports::GdipCreateRegionHrgn(hRgn, ®ion) == Ok) 88ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov Region* newRegion = new Region(region); 90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (newRegion == NULL) 92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov DllExports::GdipDeleteRegion(region); 94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 95ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return newRegion; 97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 98ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov else 99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return NULL; 100ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 102ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 103ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::~Region() 104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 105ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov DllExports::GdipDeleteRegion(nativeRegion); 106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 107ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 108ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/** 109ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Make a copy of the region object 110ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov */ 111ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Region* 112ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Clone() const 113ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 114ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov GpRegion *region = NULL; 115ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 116ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetStatus(DllExports::GdipCloneRegion(nativeRegion, ®ion)); 117ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 118ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return new Region(region); 119ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 120ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 121ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 122ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::MakeInfinite() 123ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 124ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipSetInfinite(nativeRegion)); 125ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 126ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 127ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 128ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::MakeEmpty() 129ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 130ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipSetEmpty(nativeRegion)); 131ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 132ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 133ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/** 134ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Region operations 135ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov */ 136ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 137ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Intersect(IN const RectF& rect) 138ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 139ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionRect(nativeRegion, &rect, CombineModeIntersect)); 140ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 141ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 142ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 143ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Intersect(IN const Rect& rect) 144ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 145ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionRectI(nativeRegion, &rect, CombineModeIntersect)); 146ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 147ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 148ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 149ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Intersect(IN const GraphicsPath* path) 150ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 151ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionPath(nativeRegion, path->nativePath, CombineModeIntersect)); 152ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 153ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 154ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 155ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Intersect(IN const Region* region) 156ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 157ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionRegion(nativeRegion, region->nativeRegion, CombineModeIntersect)); 158ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 159ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 160ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 161ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Union(IN const RectF& rect) 162ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 163ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionRect(nativeRegion, &rect, CombineModeUnion)); 164ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 165ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 166ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 167ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Union(IN const Rect& rect) 168ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 169ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionRectI(nativeRegion, &rect, CombineModeUnion)); 170ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 171ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 172ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 173ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Union(IN const GraphicsPath* path) 174ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 175ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionPath(nativeRegion, path->nativePath, CombineModeUnion)); 176ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 177ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 178ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 179ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Union(IN const Region* region) 180ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 181ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionRegion(nativeRegion, region->nativeRegion, CombineModeUnion)); 182ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 183ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 184ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 185ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Xor(IN const RectF& rect) 186ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 187ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionRect(nativeRegion, &rect, CombineModeXor)); 188ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 189ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 190ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 191ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Xor(IN const Rect& rect) 192ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 193ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionRectI(nativeRegion, &rect, CombineModeXor)); 194ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 195ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 196ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 197ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Xor(IN const GraphicsPath* path) 198ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 199ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionPath(nativeRegion, path->nativePath, CombineModeXor)); 200ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 201ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 202ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 203ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Xor(IN const Region* region) 204ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 205ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionRegion(nativeRegion, region->nativeRegion, CombineModeXor)); 206ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 207ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 208ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 209ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Exclude(IN const RectF& rect) 210ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 211ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionRect(nativeRegion, &rect, CombineModeExclude)); 212ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 213ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 214ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 215ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Exclude(IN const Rect& rect) 216ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 217ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionRectI(nativeRegion, &rect, CombineModeExclude)); 218ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 219ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 220ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 221ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Exclude(IN const GraphicsPath* path) 222ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 223ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionPath(nativeRegion, path->nativePath, CombineModeExclude)); 224ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 225ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 226ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 227ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Exclude(IN const Region* region) 228ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 229ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionRegion(nativeRegion, 230ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov region->nativeRegion, CombineModeExclude)); 231ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 232ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 233ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 234ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Complement(IN const RectF& rect) 235ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 236ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionRect(nativeRegion, &rect, CombineModeComplement)); 237ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 238ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 239ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 240ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Complement(IN const Rect& rect) 241ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 242ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionRectI(nativeRegion, &rect, CombineModeComplement)); 243ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 244ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 245ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 246ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Complement(IN const GraphicsPath* path) 247ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 248ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionPath(nativeRegion, 249ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov path->nativePath, CombineModeComplement)); 250ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 251ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 252ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 253ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Complement(IN const Region* region) 254ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 255ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipCombineRegionRegion(nativeRegion, 256ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov region->nativeRegion, CombineModeComplement)); 257ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 258ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 259ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/** 260ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Transform operations 261ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov */ 262ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 263ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Translate(IN REAL dx, 264ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN REAL dy) 265ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 266ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipTranslateRegion(nativeRegion, dx, dy)); 267ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 268ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 269ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 270ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Translate(IN INT dx, 271ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN INT dy) 272ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 273ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipTranslateRegionI(nativeRegion, dx, dy)); 274ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 275ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 276ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 277ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Transform(IN const Matrix* matrix) 278ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 279ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipTransformRegion(nativeRegion, matrix->nativeMatrix)); 280ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 281ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 282ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/** 283ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Get region attributes 284ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov */ 285ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 286ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::GetBounds(OUT RectF* rect, 287ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN const Graphics* g) const 288ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 289ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipGetRegionBounds(nativeRegion, 290ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov g->nativeGraphics, 291ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov rect)); 292ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 293ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 294ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 295ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::GetBounds(OUT Rect* rect, 296ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN const Graphics* g) const 297ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 298ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipGetRegionBoundsI(nativeRegion, 299ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov g->nativeGraphics, 300ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov rect)); 301ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 302ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 303ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline HRGN 304ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::GetHRGN(IN const Graphics* g) const 305ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 306ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov HRGN hrgn; 307ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 308ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetStatus(DllExports::GdipGetRegionHRgn(nativeRegion, 309ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov g->nativeGraphics, 310ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov &hrgn)); 311ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 312ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return hrgn; 313ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 314ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 315ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline BOOL 316ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::IsEmpty(IN const Graphics *g) const 317ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 318ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov BOOL booln = FALSE; 319ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 320ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetStatus(DllExports::GdipIsEmptyRegion(nativeRegion, 321ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov g->nativeGraphics, 322ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov &booln)); 323ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 324ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return booln; 325ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 326ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 327ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline BOOL 328ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::IsInfinite(IN const Graphics *g) const 329ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 330ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov BOOL booln = FALSE; 331ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 332ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetStatus(DllExports::GdipIsInfiniteRegion(nativeRegion, 333ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov g->nativeGraphics, 334ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov &booln)); 335ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 336ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return booln; 337ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 338ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 339ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline BOOL 340ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::Equals(IN const Region* region, 341ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN const Graphics* g) const 342ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 343ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov BOOL booln = FALSE; 344ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 345ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetStatus(DllExports::GdipIsEqualRegion(nativeRegion, 346ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov region->nativeRegion, 347ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov g->nativeGraphics, 348ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov &booln)); 349ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return booln; 350ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 351ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 352ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Get the size of the buffer needed for the GetData method 353ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline UINT 354ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::GetDataSize() const 355ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 356ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov UINT bufferSize = 0; 357ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 358ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetStatus(DllExports::GdipGetRegionDataSize(nativeRegion, &bufferSize)); 359ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 360ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return bufferSize; 361ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 362ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 363ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// buffer - where to put the data 364ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// bufferSize - how big the buffer is (should be at least as big as GetDataSize()) 365ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// sizeFilled - if not NULL, this is an OUT param that says how many bytes 366ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// of data were written to the buffer. 367ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 368ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::GetData(OUT BYTE* buffer, 369ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN UINT bufferSize, 370ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov OUT UINT* sizeFilled) const 371ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 372ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipGetRegionData(nativeRegion, buffer, bufferSize, sizeFilled)); 373ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 374ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 375ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/** 376ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Hit testing operations 377ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov */ 378ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline BOOL 379ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::IsVisible(IN const PointF& point, 380ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN const Graphics* g) const 381ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 382ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov BOOL booln = FALSE; 383ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 384ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetStatus(DllExports::GdipIsVisibleRegionPoint(nativeRegion, 385ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov point.X, point.Y, 386ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov (g == NULL) ? NULL : g->nativeGraphics, 387ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov &booln)); 388ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return booln; 389ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 390ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 391ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline BOOL 392ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::IsVisible(IN const RectF& rect, 393ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN const Graphics* g) const 394ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 395ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov BOOL booln = FALSE; 396ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 397ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetStatus(DllExports::GdipIsVisibleRegionRect(nativeRegion, rect.X, 398ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov rect.Y, rect.Width, 399ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov rect.Height, 400ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov (g == NULL) ? NULL : g->nativeGraphics, 401ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov &booln)); 402ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return booln; 403ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 404ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 405ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline BOOL 406ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::IsVisible(IN const Point& point, 407ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN const Graphics* g) const 408ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 409ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov BOOL booln = FALSE; 410ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 411ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 412ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetStatus(DllExports::GdipIsVisibleRegionPointI(nativeRegion, 413ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov point.X, 414ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov point.Y, 415ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov (g == NULL) ? NULL : g->nativeGraphics, 416ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov &booln)); 417ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return booln; 418ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 419ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 420ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline BOOL 421ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::IsVisible(IN const Rect& rect, 422ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN const Graphics* g) const 423ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 424ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov BOOL booln = FALSE; 425ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 426ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetStatus(DllExports::GdipIsVisibleRegionRectI(nativeRegion, 427ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov rect.X, 428ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov rect.Y, 429ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov rect.Width, 430ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov rect.Height, 431ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov (g == NULL) ? NULL : g->nativeGraphics, 432ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov &booln)); 433ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return booln; 434ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 435ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 436ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline UINT 437ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::GetRegionScansCount(IN const Matrix* matrix) const 438ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 439ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov UINT count = 0; 440ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 441ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetStatus(DllExports::GdipGetRegionScansCount(nativeRegion, 442ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov &count, 443ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov matrix->nativeMatrix)); 444ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return count; 445ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 446ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 447ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 448ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::GetRegionScans( 449ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN const Matrix* matrix, 450ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov OUT RectF* rects, 451ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN OUT INT* count) const 452ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 453ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipGetRegionScans(nativeRegion, 454ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov rects, 455ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov count, 456ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov matrix->nativeMatrix)); 457ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 458ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 459ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// If rects is NULL, return the count of rects in the region. 460ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Otherwise, assume rects is big enough to hold all the region rects 461ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// and fill them in and return the number of rects filled in. 462ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// The rects are returned in the units specified by the matrix 463ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// (which is typically a world-to-device transform). 464ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Note that the number of rects returned can vary, depending on the 465ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// matrix that is used. 466ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 467ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovRegion::GetRegionScans( 468ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN const Matrix* matrix, 469ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov OUT Rect* rects, // NULL to just get the count 470ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN OUT INT* count) const 471ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 472ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipGetRegionScansI(nativeRegion, 473ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov rects, 474ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov count, 475ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov matrix->nativeMatrix)); 476ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 477ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 478ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// protected method 479ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Region::Region(GpRegion* nativeRegion) 480ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 481ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetNativeRegion(nativeRegion); 482ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 483ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 484ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// protected method 485ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline VOID Region::SetNativeRegion(GpRegion* nativeRegion) 486ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 487ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov this->nativeRegion = nativeRegion; 488ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 489ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 490ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status Region::GetLastStatus() const 491ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 492ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov Status lastStatus = lastResult; 493ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = Ok; 494ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 495ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return lastStatus; 496ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 497ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 498ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif // !_GDIPLUSREGION_H 499