2009-08-26 Chris Toshok <toshok@ximian.com>
[moon.git] / src / value.h
blob7756804e390acd50c131d736f7d650fab91689c7
1 /*
2 * Automatically generated, do not edit this file directly
3 */
5 /*
6 * value.h: Generated code for the type system.
8 * Contact:
9 * Moonlight List (moonlight-list@lists.ximian.com)
11 * Copyright 2007 Novell, Inc. (http://www.novell.com)
13 * See the LICENSE file included with the distribution for details.
17 #ifndef MOON_VALUE_H
18 #define MOON_VALUE_H
20 #include <glib.h>
21 #include <string.h>
22 #include <cairo.h>
24 #include "type.h"
26 /*
27 * ugly file containing the catchall value type we use.
30 struct FontFamily;
31 struct FontSource;
32 struct FontWeight;
33 struct FontStyle;
34 struct FontStretch;
35 struct PropertyPath;
36 struct Color;
37 struct Duration;
38 struct KeyTime;
39 struct Point;
40 struct Rect;
41 struct Size;
42 struct Uri;
43 struct RepeatBehavior;
44 struct GridLength;
45 struct Thickness;
46 struct CornerRadius;
47 struct ManagedTypeInfo;
49 struct Value;
51 class Type;
52 class DependencyProperty;
53 class Surface;
54 class AnimationStorage;
56 class Accessibility;
57 class AlsaSource;
58 class Animation;
59 class AnimationClock;
60 class Application;
61 class ArcSegment;
62 class ASFDemuxer;
63 class ASFMarkerDecoder;
64 class ASFPacket;
65 class ASFParser;
66 class AssemblyPart;
67 class AssemblyPartCollection;
68 class ASXDemuxer;
69 class AudioSource;
70 class AudioStream;
71 class BackEase;
72 class BeginStoryboard;
73 class BezierSegment;
74 class BitmapImage;
75 class BitmapSource;
76 class Border;
77 class BounceEase;
78 class Brush;
79 class Canvas;
80 class CircleEase;
81 class Clock;
82 class ClockGroup;
83 class CodecDownloader;
84 class Collection;
85 class CollectionChangedEventArgs;
86 class CollectionItemChangedEventArgs;
87 class ColorAnimation;
88 class ColorAnimationUsingKeyFrames;
89 class ColorKeyFrame;
90 class ColorKeyFrameCollection;
91 class ColumnDefinition;
92 class ColumnDefinitionCollection;
93 class ContentChangedEventArgs;
94 class ContentControl;
95 class Control;
96 class ControlTemplate;
97 class CubicEase;
98 class CursorPositionChangedEventArgs;
99 class DataTemplate;
100 class DeepZoomImageTileSource;
101 class DependencyObject;
102 class DependencyObjectCollection;
103 class Deployment;
104 class DiscreteColorKeyFrame;
105 class DiscreteDoubleKeyFrame;
106 class DiscreteObjectKeyFrame;
107 class DiscretePointKeyFrame;
108 class DispatcherTimer;
109 class DoubleCollection;
110 class DoubleAnimation;
111 class DoubleAnimationUsingKeyFrames;
112 class DoubleKeyFrame;
113 class DoubleKeyFrameCollection;
114 class Downloader;
115 class DownloadProgressEventArgs;
116 class DrawingAttributes;
117 class EasingColorKeyFrame;
118 class EasingDoubleKeyFrame;
119 class EasingFunctionBase;
120 class EasingPointKeyFrame;
121 class ElasticEase;
122 class Ellipse;
123 class EllipseGeometry;
124 class ErrorEventArgs;
125 class EventArgs;
126 class EventListenerProxy;
127 class EventObject;
128 class EventTrigger;
129 class ExceptionRoutedEventArgs;
130 class ExponentialEase;
131 class ExternalDecoder;
132 class ExternalDemuxer;
133 class FfmpegDecoder;
134 class FfmpegDemuxer;
135 class FileDownloader;
136 class FileSource;
137 class FrameworkElement;
138 class FrameworkTemplate;
139 class GeneralTransform;
140 class Geometry;
141 class GeometryCollection;
142 class GeometryGroup;
143 class Glyphs;
144 class GradientBrush;
145 class GradientStop;
146 class GradientStopCollection;
147 class Grid;
148 class HitTestCollection;
149 class IImageConverter;
150 class Image;
151 class ImageBrush;
152 class ImageErrorEventArgs;
153 class ImageSource;
154 class IMediaDecoder;
155 class IMediaDemuxer;
156 class IMediaObject;
157 class IMediaSource;
158 class IMediaStream;
159 class InkPresenter;
160 class Inline;
161 class InlineCollection;
162 class InputMethod;
163 class InternalDownloader;
164 class ItemCollection;
165 class KeyEventArgs;
166 class KeyFrame;
167 class KeyFrameCollection;
168 class KeySpline;
169 class LayoutInformation;
170 class Line;
171 class LinearColorKeyFrame;
172 class LinearDoubleKeyFrame;
173 class LinearGradientBrush;
174 class LinearPointKeyFrame;
175 class LineBreak;
176 class LineGeometry;
177 class LineSegment;
178 class ManagedStreamSource;
179 class ManualTimeSource;
180 class MarkerReachedEventArgs;
181 class MarkerStream;
182 class Matrix;
183 class MatrixTransform;
184 class Media;
185 class MediaAttribute;
186 class MediaAttributeCollection;
187 class MediaBase;
188 class MediaClosure;
189 class MediaDisposeObjectClosure;
190 class MediaElement;
191 class MediaFrame;
192 class MediaGetFrameClosure;
193 class MediaMarker;
194 class MediaMarkerFoundClosure;
195 class MediaPlayer;
196 class MediaReportSeekCompletedClosure;
197 class MediaSeekClosure;
198 class MemorySource;
199 class MmsDemuxer;
200 class MmsDownloader;
201 class MmsPlaylistEntry;
202 class MmsSecondDownloader;
203 class MmsSource;
204 class MouseEventArgs;
205 class MouseWheelEventArgs;
206 class Mp3Demuxer;
207 class MultiScaleImage;
208 class MultiScaleSubImage;
209 class MultiScaleSubImageCollection;
210 class MultiScaleTileSource;
211 class NameScope;
212 class NullDecoder;
213 class ObjectAnimationUsingKeyFrames;
214 class ObjectKeyFrame;
215 class ObjectKeyFrameCollection;
216 class Panel;
217 class ParallelTimeline;
218 class ParserErrorEventArgs;
219 class PassThroughDecoder;
220 class PasswordBox;
221 class Path;
222 class PathFigure;
223 class PathFigureCollection;
224 class PathGeometry;
225 class PathSegment;
226 class PathSegmentCollection;
227 class Playlist;
228 class PlaylistEntry;
229 class PlaylistRoot;
230 class PointCollection;
231 class PointAnimation;
232 class PointAnimationUsingKeyFrames;
233 class PointKeyFrame;
234 class PointKeyFrameCollection;
235 class PolyBezierSegment;
236 class Polygon;
237 class Polyline;
238 class PolyLineSegment;
239 class PolyQuadraticBezierSegment;
240 class Popup;
241 class PowerEase;
242 class ProgressEventArgs;
243 class ProgressiveSource;
244 class PulseSource;
245 class QuadraticBezierSegment;
246 class QuadraticEase;
247 class QuarticEase;
248 class QuinticEase;
249 class RadialGradientBrush;
250 class Rectangle;
251 class RectangleGeometry;
252 class RenderingEventArgs;
253 class ResourceDictionary;
254 class RotateTransform;
255 class RoutedEventArgs;
256 class RowDefinition;
257 class RowDefinitionCollection;
258 class Run;
259 class ScaleTransform;
260 class Setter;
261 class SetterBase;
262 class SetterBaseCollection;
263 class Shape;
264 class SineEase;
265 class SizeChangedEventArgs;
266 class SkewTransform;
267 class SolidColorBrush;
268 class SplineColorKeyFrame;
269 class SplineDoubleKeyFrame;
270 class SplinePointKeyFrame;
271 class Storyboard;
272 class Stroke;
273 class StrokeCollection;
274 class Style;
275 class StylusInfo;
276 class StylusPoint;
277 class StylusPointCollection;
278 class Surface;
279 class SystemTimeSource;
280 class TextBlock;
281 class TextBox;
282 class TextBoxBase;
283 class TextBoxModelChangedEventArgs;
284 class TextBoxView;
285 class TextChangedEventArgs;
286 class TileBrush;
287 class Timeline;
288 class TimelineCollection;
289 class TimelineGroup;
290 class TimelineMarker;
291 class TimelineMarkerCollection;
292 class TimeManager;
293 class TimeSource;
294 class Transform;
295 class TransformCollection;
296 class TransformGroup;
297 class TranslateTransform;
298 class TriggerCollection;
299 class TriggerAction;
300 class TriggerActionCollection;
301 class TriggerBase;
302 class UIElement;
303 class UIElementCollection;
304 class UnmanagedMatrix;
305 class UserControl;
306 class VideoBrush;
307 class VideoStream;
308 class VisualBrush;
309 class WriteableBitmap;
310 class YUVConverter;
313 #define checked_get_exact(kind, errval, mem) g_return_val_if_fail (k == (kind), errval); return mem;
314 #define checked_get_subclass(kind, castas) if (u.dependency_object == NULL) return NULL; g_return_val_if_fail (Types::IsSubclassOrSuperclassOf (types, k, kind), NULL); return (castas*)u.dependency_object;
316 struct Value {
317 public:
318 void Init ();
320 Value ();
321 Value (const Value& v);
322 explicit Value (Type::Kind k);
323 explicit Value (bool z);
324 explicit Value (double d);
325 explicit Value (gint32 i);
326 explicit Value (guint32 i);
327 Value (gunichar c, Type::Kind as); // for use with char values.
328 Value (gint64 i, Type::Kind as); // Use for TimeSpan and int64 values.
329 Value (Color c);
330 Value (EventObject *obj);
331 Value (FontFamily family);
332 Value (FontSource source);
333 Value (FontWeight weight);
334 Value (FontStyle style);
335 Value (FontStretch stretch);
336 Value (PropertyPath propertypath);
337 Value (Point pt);
338 Value (Rect rect);
339 Value (Size size);
340 Value (Uri uri);
341 Value (RepeatBehavior repeat);
342 Value (Duration duration);
343 Value (KeyTime keytime);
344 Value (GridLength grid_length);
345 Value (Thickness thickness);
346 Value (CornerRadius radius);
347 Value (ManagedTypeInfo type_info);
348 Value (const char *s, bool take = false);
349 Value (Point *points, int count);
350 Value (double *values, int count);
351 Value (Type::Kind, void *npobj);
353 ~Value ();
355 // Use these to create Values with dependency objects with
356 // a reference count of 1 (giving the ownership of the object
357 // to Value).
358 // Useful in cases like this:
359 // SetValue (SomeProperty, new DependencyObject ())
360 // in which case we have to unref the newly created object.
361 static Value* CreateUnrefPtr (EventObject* dob);
362 static Value CreateUnref (EventObject* dob);
364 // essentially the same as the copy constructor, except it
365 // does a deep copy of DependencyObjects.
366 static Value* Clone (Value *v, Types *types = NULL);
368 bool GetIsNull ();
369 void SetIsNull (bool isNull);
371 bool operator!= (const Value &v) const;
372 bool operator== (const Value &v) const;
374 Value& operator= (const Value& other);
376 bool Is (Type::Kind type) { return Type::IsSubclassOf (k, type); }
378 bool AsBool () { checked_get_exact (Type::BOOL, false, (bool)u.i32); }
379 gunichar AsChar () { checked_get_exact (Type::CHAR, 0, u.c); }
380 double AsDouble () { checked_get_exact (Type::DOUBLE, 0.0, u.d); }
381 float AsFloat () { checked_get_exact (Type::FLOAT, 0.0, u.f); }
382 guint64 AsUInt64 () { checked_get_exact (Type::UINT64, 0, u.ui64); }
383 gint64 AsInt64 () { checked_get_exact (Type::INT64, 0, u.i64); }
384 TimeSpan AsTimeSpan () { checked_get_exact (Type::TIMESPAN, 0, (TimeSpan)u.i64); }
385 guint32 AsUInt32 () { checked_get_exact (Type::UINT32, 0, u.ui32); }
386 gint32 AsInt32 () { checked_get_exact (Type::INT32, 0, u.i32); }
387 Color* AsColor () { checked_get_exact (Type::COLOR, NULL, u.color); }
388 Point* AsPoint () { checked_get_exact (Type::POINT, NULL, u.point); }
389 Uri* AsUri () { checked_get_exact (Type::URI, NULL, u.uri); }
390 Rect* AsRect () { checked_get_exact (Type::RECT, NULL, u.rect); }
391 Size* AsSize () { checked_get_exact (Type::SIZE, NULL, u.size); }
392 FontFamily* AsFontFamily () { checked_get_exact (Type::FONTFAMILY, NULL, u.fontfamily); }
393 FontWeight* AsFontWeight () { checked_get_exact (Type::FONTWEIGHT, NULL, u.fontweight); }
394 FontStyle* AsFontStyle () { checked_get_exact (Type::FONTSTYLE, NULL, u.fontstyle); }
395 FontStretch* AsFontStretch() { checked_get_exact (Type::FONTSTRETCH, NULL, u.fontstretch); }
396 FontSource* AsFontSource () { checked_get_exact (Type::FONTSOURCE, NULL, u.fontsource); }
397 PropertyPath* AsPropertyPath () { checked_get_exact (Type::PROPERTYPATH, NULL, u.propertypath); }
398 char* AsString () { checked_get_exact (Type::STRING, NULL, u.s); }
399 DependencyProperty* AsDependencyProperty () { checked_get_exact (Type::DEPENDENCYPROPERTY, NULL, u.dp); }
401 void * AsManagedObject () { checked_get_exact (Type::MANAGED, NULL, u.managed_object); }
402 void * AsNPObj () { checked_get_exact (Type::NPOBJ, NULL, u.npobj); }
404 RepeatBehavior* AsRepeatBehavior () { checked_get_exact (Type::REPEATBEHAVIOR, NULL, u.repeat); }
405 Duration* AsDuration () { checked_get_exact (Type::DURATION, NULL, u.duration); }
406 KeyTime* AsKeyTime () { checked_get_exact (Type::KEYTIME, NULL, u.keytime); }
407 GridLength* AsGridLength () { checked_get_exact (Type::GRIDLENGTH, NULL, u.grid_length); }
408 Thickness* AsThickness () { checked_get_exact (Type::THICKNESS, NULL, u.thickness); }
409 CornerRadius* AsCornerRadius () { checked_get_exact (Type::CORNERRADIUS, NULL, u.corner); }
410 ManagedTypeInfo* AsManagedTypeInfo () { checked_get_exact (Type::MANAGEDTYPEINFO, NULL, u.type_info); }
411 /* nullable primitives (all but bool) */
412 double* AsNullableDouble () { checked_get_exact (Type::DOUBLE, NULL, &u.d); }
413 guint64* AsNullableUint64 () { checked_get_exact (Type::UINT64, NULL, &u.ui64); }
414 gint64* AsNullableInt64 () { checked_get_exact (Type::INT64, NULL, &u.i64); }
415 gint32* AsNullableInt32 () { checked_get_exact (Type::INT32, NULL, &u.i32); }
417 Accessibility* AsAccessibility (Types *types = NULL) { checked_get_subclass (Type::ACCESSIBILITY, Accessibility) }
418 AlsaSource* AsAlsaSource (Types *types = NULL) { checked_get_subclass (Type::ALSASOURCE, AlsaSource) }
419 Animation* AsAnimation (Types *types = NULL) { checked_get_subclass (Type::ANIMATION, Animation) }
420 AnimationClock* AsAnimationClock (Types *types = NULL) { checked_get_subclass (Type::ANIMATIONCLOCK, AnimationClock) }
421 Application* AsApplication (Types *types = NULL) { checked_get_subclass (Type::APPLICATION, Application) }
422 ArcSegment* AsArcSegment (Types *types = NULL) { checked_get_subclass (Type::ARCSEGMENT, ArcSegment) }
423 ASFDemuxer* AsASFDemuxer (Types *types = NULL) { checked_get_subclass (Type::ASFDEMUXER, ASFDemuxer) }
424 ASFMarkerDecoder* AsASFMarkerDecoder (Types *types = NULL) { checked_get_subclass (Type::ASFMARKERDECODER, ASFMarkerDecoder) }
425 ASFPacket* AsASFPacket (Types *types = NULL) { checked_get_subclass (Type::ASFPACKET, ASFPacket) }
426 ASFParser* AsASFParser (Types *types = NULL) { checked_get_subclass (Type::ASFPARSER, ASFParser) }
427 AssemblyPart* AsAssemblyPart (Types *types = NULL) { checked_get_subclass (Type::ASSEMBLYPART, AssemblyPart) }
428 AssemblyPartCollection* AsAssemblyPartCollection (Types *types = NULL) { checked_get_subclass (Type::ASSEMBLYPART_COLLECTION, AssemblyPartCollection) }
429 ASXDemuxer* AsASXDemuxer (Types *types = NULL) { checked_get_subclass (Type::ASXDEMUXER, ASXDemuxer) }
430 AudioSource* AsAudioSource (Types *types = NULL) { checked_get_subclass (Type::AUDIOSOURCE, AudioSource) }
431 AudioStream* AsAudioStream (Types *types = NULL) { checked_get_subclass (Type::AUDIOSTREAM, AudioStream) }
432 BackEase* AsBackEase (Types *types = NULL) { checked_get_subclass (Type::BACKEASE, BackEase) }
433 BeginStoryboard* AsBeginStoryboard (Types *types = NULL) { checked_get_subclass (Type::BEGINSTORYBOARD, BeginStoryboard) }
434 BezierSegment* AsBezierSegment (Types *types = NULL) { checked_get_subclass (Type::BEZIERSEGMENT, BezierSegment) }
435 BitmapImage* AsBitmapImage (Types *types = NULL) { checked_get_subclass (Type::BITMAPIMAGE, BitmapImage) }
436 BitmapSource* AsBitmapSource (Types *types = NULL) { checked_get_subclass (Type::BITMAPSOURCE, BitmapSource) }
437 Border* AsBorder (Types *types = NULL) { checked_get_subclass (Type::BORDER, Border) }
438 BounceEase* AsBounceEase (Types *types = NULL) { checked_get_subclass (Type::BOUNCEEASE, BounceEase) }
439 Brush* AsBrush (Types *types = NULL) { checked_get_subclass (Type::BRUSH, Brush) }
440 Canvas* AsCanvas (Types *types = NULL) { checked_get_subclass (Type::CANVAS, Canvas) }
441 CircleEase* AsCircleEase (Types *types = NULL) { checked_get_subclass (Type::CIRCLEEASE, CircleEase) }
442 Clock* AsClock (Types *types = NULL) { checked_get_subclass (Type::CLOCK, Clock) }
443 ClockGroup* AsClockGroup (Types *types = NULL) { checked_get_subclass (Type::CLOCKGROUP, ClockGroup) }
444 CodecDownloader* AsCodecDownloader (Types *types = NULL) { checked_get_subclass (Type::CODECDOWNLOADER, CodecDownloader) }
445 Collection* AsCollection (Types *types = NULL) { checked_get_subclass (Type::COLLECTION, Collection) }
446 CollectionChangedEventArgs* AsCollectionChangedEventArgs (Types *types = NULL) { checked_get_subclass (Type::COLLECTIONCHANGEDEVENTARGS, CollectionChangedEventArgs) }
447 CollectionItemChangedEventArgs* AsCollectionItemChangedEventArgs (Types *types = NULL) { checked_get_subclass (Type::COLLECTIONITEMCHANGEDEVENTARGS, CollectionItemChangedEventArgs) }
448 ColorAnimation* AsColorAnimation (Types *types = NULL) { checked_get_subclass (Type::COLORANIMATION, ColorAnimation) }
449 ColorAnimationUsingKeyFrames* AsColorAnimationUsingKeyFrames (Types *types = NULL) { checked_get_subclass (Type::COLORANIMATIONUSINGKEYFRAMES, ColorAnimationUsingKeyFrames) }
450 ColorKeyFrame* AsColorKeyFrame (Types *types = NULL) { checked_get_subclass (Type::COLORKEYFRAME, ColorKeyFrame) }
451 ColorKeyFrameCollection* AsColorKeyFrameCollection (Types *types = NULL) { checked_get_subclass (Type::COLORKEYFRAME_COLLECTION, ColorKeyFrameCollection) }
452 ColumnDefinition* AsColumnDefinition (Types *types = NULL) { checked_get_subclass (Type::COLUMNDEFINITION, ColumnDefinition) }
453 ColumnDefinitionCollection* AsColumnDefinitionCollection (Types *types = NULL) { checked_get_subclass (Type::COLUMNDEFINITION_COLLECTION, ColumnDefinitionCollection) }
454 ContentChangedEventArgs* AsContentChangedEventArgs (Types *types = NULL) { checked_get_subclass (Type::CONTENTCHANGEDEVENTARGS, ContentChangedEventArgs) }
455 ContentControl* AsContentControl (Types *types = NULL) { checked_get_subclass (Type::CONTENTCONTROL, ContentControl) }
456 Control* AsControl (Types *types = NULL) { checked_get_subclass (Type::CONTROL, Control) }
457 ControlTemplate* AsControlTemplate (Types *types = NULL) { checked_get_subclass (Type::CONTROLTEMPLATE, ControlTemplate) }
458 CubicEase* AsCubicEase (Types *types = NULL) { checked_get_subclass (Type::CUBICEASE, CubicEase) }
459 CursorPositionChangedEventArgs* AsCursorPositionChangedEventArgs (Types *types = NULL) { checked_get_subclass (Type::CURSORPOSITIONCHANGEDEVENTARGS, CursorPositionChangedEventArgs) }
460 DataTemplate* AsDataTemplate (Types *types = NULL) { checked_get_subclass (Type::DATATEMPLATE, DataTemplate) }
461 DeepZoomImageTileSource* AsDeepZoomImageTileSource (Types *types = NULL) { checked_get_subclass (Type::DEEPZOOMIMAGETILESOURCE, DeepZoomImageTileSource) }
462 DependencyObject* AsDependencyObject (Types *types = NULL) { checked_get_subclass (Type::DEPENDENCY_OBJECT, DependencyObject) }
463 DependencyObjectCollection* AsDependencyObjectCollection (Types *types = NULL) { checked_get_subclass (Type::DEPENDENCY_OBJECT_COLLECTION, DependencyObjectCollection) }
464 Deployment* AsDeployment (Types *types = NULL) { checked_get_subclass (Type::DEPLOYMENT, Deployment) }
465 DiscreteColorKeyFrame* AsDiscreteColorKeyFrame (Types *types = NULL) { checked_get_subclass (Type::DISCRETECOLORKEYFRAME, DiscreteColorKeyFrame) }
466 DiscreteDoubleKeyFrame* AsDiscreteDoubleKeyFrame (Types *types = NULL) { checked_get_subclass (Type::DISCRETEDOUBLEKEYFRAME, DiscreteDoubleKeyFrame) }
467 DiscreteObjectKeyFrame* AsDiscreteObjectKeyFrame (Types *types = NULL) { checked_get_subclass (Type::DISCRETEOBJECTKEYFRAME, DiscreteObjectKeyFrame) }
468 DiscretePointKeyFrame* AsDiscretePointKeyFrame (Types *types = NULL) { checked_get_subclass (Type::DISCRETEPOINTKEYFRAME, DiscretePointKeyFrame) }
469 DispatcherTimer* AsDispatcherTimer (Types *types = NULL) { checked_get_subclass (Type::DISPATCHERTIMER, DispatcherTimer) }
470 DoubleCollection* AsDoubleCollection (Types *types = NULL) { checked_get_subclass (Type::DOUBLE_COLLECTION, DoubleCollection) }
471 DoubleAnimation* AsDoubleAnimation (Types *types = NULL) { checked_get_subclass (Type::DOUBLEANIMATION, DoubleAnimation) }
472 DoubleAnimationUsingKeyFrames* AsDoubleAnimationUsingKeyFrames (Types *types = NULL) { checked_get_subclass (Type::DOUBLEANIMATIONUSINGKEYFRAMES, DoubleAnimationUsingKeyFrames) }
473 DoubleKeyFrame* AsDoubleKeyFrame (Types *types = NULL) { checked_get_subclass (Type::DOUBLEKEYFRAME, DoubleKeyFrame) }
474 DoubleKeyFrameCollection* AsDoubleKeyFrameCollection (Types *types = NULL) { checked_get_subclass (Type::DOUBLEKEYFRAME_COLLECTION, DoubleKeyFrameCollection) }
475 Downloader* AsDownloader (Types *types = NULL) { checked_get_subclass (Type::DOWNLOADER, Downloader) }
476 DownloadProgressEventArgs* AsDownloadProgressEventArgs (Types *types = NULL) { checked_get_subclass (Type::DOWNLOADPROGRESSEVENTARGS, DownloadProgressEventArgs) }
477 DrawingAttributes* AsDrawingAttributes (Types *types = NULL) { checked_get_subclass (Type::DRAWINGATTRIBUTES, DrawingAttributes) }
478 EasingColorKeyFrame* AsEasingColorKeyFrame (Types *types = NULL) { checked_get_subclass (Type::EASINGCOLORKEYFRAME, EasingColorKeyFrame) }
479 EasingDoubleKeyFrame* AsEasingDoubleKeyFrame (Types *types = NULL) { checked_get_subclass (Type::EASINGDOUBLEKEYFRAME, EasingDoubleKeyFrame) }
480 EasingFunctionBase* AsEasingFunctionBase (Types *types = NULL) { checked_get_subclass (Type::EASINGFUNCTIONBASE, EasingFunctionBase) }
481 EasingPointKeyFrame* AsEasingPointKeyFrame (Types *types = NULL) { checked_get_subclass (Type::EASINGPOINTKEYFRAME, EasingPointKeyFrame) }
482 ElasticEase* AsElasticEase (Types *types = NULL) { checked_get_subclass (Type::ELASTICEASE, ElasticEase) }
483 Ellipse* AsEllipse (Types *types = NULL) { checked_get_subclass (Type::ELLIPSE, Ellipse) }
484 EllipseGeometry* AsEllipseGeometry (Types *types = NULL) { checked_get_subclass (Type::ELLIPSEGEOMETRY, EllipseGeometry) }
485 ErrorEventArgs* AsErrorEventArgs (Types *types = NULL) { checked_get_subclass (Type::ERROREVENTARGS, ErrorEventArgs) }
486 EventArgs* AsEventArgs (Types *types = NULL) { checked_get_subclass (Type::EVENTARGS, EventArgs) }
487 EventListenerProxy* AsEventListenerProxy (Types *types = NULL) { checked_get_subclass (Type::EVENTLISTENERPROXY, EventListenerProxy) }
488 EventObject* AsEventObject (Types *types = NULL) { checked_get_subclass (Type::EVENTOBJECT, EventObject) }
489 EventTrigger* AsEventTrigger (Types *types = NULL) { checked_get_subclass (Type::EVENTTRIGGER, EventTrigger) }
490 ExceptionRoutedEventArgs* AsExceptionRoutedEventArgs (Types *types = NULL) { checked_get_subclass (Type::EXCEPTIONROUTEDEVENTARGS, ExceptionRoutedEventArgs) }
491 ExponentialEase* AsExponentialEase (Types *types = NULL) { checked_get_subclass (Type::EXPONENTIALEASE, ExponentialEase) }
492 ExternalDecoder* AsExternalDecoder (Types *types = NULL) { checked_get_subclass (Type::EXTERNALDECODER, ExternalDecoder) }
493 ExternalDemuxer* AsExternalDemuxer (Types *types = NULL) { checked_get_subclass (Type::EXTERNALDEMUXER, ExternalDemuxer) }
494 FfmpegDecoder* AsFfmpegDecoder (Types *types = NULL) { checked_get_subclass (Type::FFMPEGDECODER, FfmpegDecoder) }
495 FfmpegDemuxer* AsFfmpegDemuxer (Types *types = NULL) { checked_get_subclass (Type::FFMPEGDEMUXER, FfmpegDemuxer) }
496 FileDownloader* AsFileDownloader (Types *types = NULL) { checked_get_subclass (Type::FILEDOWNLOADER, FileDownloader) }
497 FileSource* AsFileSource (Types *types = NULL) { checked_get_subclass (Type::FILESOURCE, FileSource) }
498 FrameworkElement* AsFrameworkElement (Types *types = NULL) { checked_get_subclass (Type::FRAMEWORKELEMENT, FrameworkElement) }
499 FrameworkTemplate* AsFrameworkTemplate (Types *types = NULL) { checked_get_subclass (Type::FRAMEWORKTEMPLATE, FrameworkTemplate) }
500 GeneralTransform* AsGeneralTransform (Types *types = NULL) { checked_get_subclass (Type::GENERALTRANSFORM, GeneralTransform) }
501 Geometry* AsGeometry (Types *types = NULL) { checked_get_subclass (Type::GEOMETRY, Geometry) }
502 GeometryCollection* AsGeometryCollection (Types *types = NULL) { checked_get_subclass (Type::GEOMETRY_COLLECTION, GeometryCollection) }
503 GeometryGroup* AsGeometryGroup (Types *types = NULL) { checked_get_subclass (Type::GEOMETRYGROUP, GeometryGroup) }
504 Glyphs* AsGlyphs (Types *types = NULL) { checked_get_subclass (Type::GLYPHS, Glyphs) }
505 GradientBrush* AsGradientBrush (Types *types = NULL) { checked_get_subclass (Type::GRADIENTBRUSH, GradientBrush) }
506 GradientStop* AsGradientStop (Types *types = NULL) { checked_get_subclass (Type::GRADIENTSTOP, GradientStop) }
507 GradientStopCollection* AsGradientStopCollection (Types *types = NULL) { checked_get_subclass (Type::GRADIENTSTOP_COLLECTION, GradientStopCollection) }
508 Grid* AsGrid (Types *types = NULL) { checked_get_subclass (Type::GRID, Grid) }
509 HitTestCollection* AsHitTestCollection (Types *types = NULL) { checked_get_subclass (Type::HITTEST_COLLECTION, HitTestCollection) }
510 IImageConverter* AsIImageConverter (Types *types = NULL) { checked_get_subclass (Type::IIMAGECONVERTER, IImageConverter) }
511 Image* AsImage (Types *types = NULL) { checked_get_subclass (Type::IMAGE, Image) }
512 ImageBrush* AsImageBrush (Types *types = NULL) { checked_get_subclass (Type::IMAGEBRUSH, ImageBrush) }
513 ImageErrorEventArgs* AsImageErrorEventArgs (Types *types = NULL) { checked_get_subclass (Type::IMAGEERROREVENTARGS, ImageErrorEventArgs) }
514 ImageSource* AsImageSource (Types *types = NULL) { checked_get_subclass (Type::IMAGESOURCE, ImageSource) }
515 IMediaDecoder* AsIMediaDecoder (Types *types = NULL) { checked_get_subclass (Type::IMEDIADECODER, IMediaDecoder) }
516 IMediaDemuxer* AsIMediaDemuxer (Types *types = NULL) { checked_get_subclass (Type::IMEDIADEMUXER, IMediaDemuxer) }
517 IMediaObject* AsIMediaObject (Types *types = NULL) { checked_get_subclass (Type::IMEDIAOBJECT, IMediaObject) }
518 IMediaSource* AsIMediaSource (Types *types = NULL) { checked_get_subclass (Type::IMEDIASOURCE, IMediaSource) }
519 IMediaStream* AsIMediaStream (Types *types = NULL) { checked_get_subclass (Type::IMEDIASTREAM, IMediaStream) }
520 InkPresenter* AsInkPresenter (Types *types = NULL) { checked_get_subclass (Type::INKPRESENTER, InkPresenter) }
521 Inline* AsInline (Types *types = NULL) { checked_get_subclass (Type::INLINE, Inline) }
522 InlineCollection* AsInlineCollection (Types *types = NULL) { checked_get_subclass (Type::INLINE_COLLECTION, InlineCollection) }
523 InputMethod* AsInputMethod (Types *types = NULL) { checked_get_subclass (Type::INPUTMETHOD, InputMethod) }
524 InternalDownloader* AsInternalDownloader (Types *types = NULL) { checked_get_subclass (Type::INTERNALDOWNLOADER, InternalDownloader) }
525 ItemCollection* AsItemCollection (Types *types = NULL) { checked_get_subclass (Type::ITEM_COLLECTION, ItemCollection) }
526 KeyEventArgs* AsKeyEventArgs (Types *types = NULL) { checked_get_subclass (Type::KEYEVENTARGS, KeyEventArgs) }
527 KeyFrame* AsKeyFrame (Types *types = NULL) { checked_get_subclass (Type::KEYFRAME, KeyFrame) }
528 KeyFrameCollection* AsKeyFrameCollection (Types *types = NULL) { checked_get_subclass (Type::KEYFRAME_COLLECTION, KeyFrameCollection) }
529 KeySpline* AsKeySpline (Types *types = NULL) { checked_get_subclass (Type::KEYSPLINE, KeySpline) }
530 LayoutInformation* AsLayoutInformation (Types *types = NULL) { checked_get_subclass (Type::LAYOUTINFORMATION, LayoutInformation) }
531 Line* AsLine (Types *types = NULL) { checked_get_subclass (Type::LINE, Line) }
532 LinearColorKeyFrame* AsLinearColorKeyFrame (Types *types = NULL) { checked_get_subclass (Type::LINEARCOLORKEYFRAME, LinearColorKeyFrame) }
533 LinearDoubleKeyFrame* AsLinearDoubleKeyFrame (Types *types = NULL) { checked_get_subclass (Type::LINEARDOUBLEKEYFRAME, LinearDoubleKeyFrame) }
534 LinearGradientBrush* AsLinearGradientBrush (Types *types = NULL) { checked_get_subclass (Type::LINEARGRADIENTBRUSH, LinearGradientBrush) }
535 LinearPointKeyFrame* AsLinearPointKeyFrame (Types *types = NULL) { checked_get_subclass (Type::LINEARPOINTKEYFRAME, LinearPointKeyFrame) }
536 LineBreak* AsLineBreak (Types *types = NULL) { checked_get_subclass (Type::LINEBREAK, LineBreak) }
537 LineGeometry* AsLineGeometry (Types *types = NULL) { checked_get_subclass (Type::LINEGEOMETRY, LineGeometry) }
538 LineSegment* AsLineSegment (Types *types = NULL) { checked_get_subclass (Type::LINESEGMENT, LineSegment) }
539 ManagedStreamSource* AsManagedStreamSource (Types *types = NULL) { checked_get_subclass (Type::MANAGEDSTREAMSOURCE, ManagedStreamSource) }
540 ManualTimeSource* AsManualTimeSource (Types *types = NULL) { checked_get_subclass (Type::MANUALTIMESOURCE, ManualTimeSource) }
541 MarkerReachedEventArgs* AsMarkerReachedEventArgs (Types *types = NULL) { checked_get_subclass (Type::MARKERREACHEDEVENTARGS, MarkerReachedEventArgs) }
542 MarkerStream* AsMarkerStream (Types *types = NULL) { checked_get_subclass (Type::MARKERSTREAM, MarkerStream) }
543 Matrix* AsMatrix (Types *types = NULL) { checked_get_subclass (Type::MATRIX, Matrix) }
544 MatrixTransform* AsMatrixTransform (Types *types = NULL) { checked_get_subclass (Type::MATRIXTRANSFORM, MatrixTransform) }
545 Media* AsMedia (Types *types = NULL) { checked_get_subclass (Type::MEDIA, Media) }
546 MediaAttribute* AsMediaAttribute (Types *types = NULL) { checked_get_subclass (Type::MEDIAATTRIBUTE, MediaAttribute) }
547 MediaAttributeCollection* AsMediaAttributeCollection (Types *types = NULL) { checked_get_subclass (Type::MEDIAATTRIBUTE_COLLECTION, MediaAttributeCollection) }
548 MediaBase* AsMediaBase (Types *types = NULL) { checked_get_subclass (Type::MEDIABASE, MediaBase) }
549 MediaClosure* AsMediaClosure (Types *types = NULL) { checked_get_subclass (Type::MEDIACLOSURE, MediaClosure) }
550 MediaDisposeObjectClosure* AsMediaDisposeObjectClosure (Types *types = NULL) { checked_get_subclass (Type::MEDIADISPOSEOBJECTCLOSURE, MediaDisposeObjectClosure) }
551 MediaElement* AsMediaElement (Types *types = NULL) { checked_get_subclass (Type::MEDIAELEMENT, MediaElement) }
552 MediaFrame* AsMediaFrame (Types *types = NULL) { checked_get_subclass (Type::MEDIAFRAME, MediaFrame) }
553 MediaGetFrameClosure* AsMediaGetFrameClosure (Types *types = NULL) { checked_get_subclass (Type::MEDIAGETFRAMECLOSURE, MediaGetFrameClosure) }
554 MediaMarker* AsMediaMarker (Types *types = NULL) { checked_get_subclass (Type::MEDIAMARKER, MediaMarker) }
555 MediaMarkerFoundClosure* AsMediaMarkerFoundClosure (Types *types = NULL) { checked_get_subclass (Type::MEDIAMARKERFOUNDCLOSURE, MediaMarkerFoundClosure) }
556 MediaPlayer* AsMediaPlayer (Types *types = NULL) { checked_get_subclass (Type::MEDIAPLAYER, MediaPlayer) }
557 MediaReportSeekCompletedClosure* AsMediaReportSeekCompletedClosure (Types *types = NULL) { checked_get_subclass (Type::MEDIAREPORTSEEKCOMPLETEDCLOSURE, MediaReportSeekCompletedClosure) }
558 MediaSeekClosure* AsMediaSeekClosure (Types *types = NULL) { checked_get_subclass (Type::MEDIASEEKCLOSURE, MediaSeekClosure) }
559 MemorySource* AsMemorySource (Types *types = NULL) { checked_get_subclass (Type::MEMORYSOURCE, MemorySource) }
560 MmsDemuxer* AsMmsDemuxer (Types *types = NULL) { checked_get_subclass (Type::MMSDEMUXER, MmsDemuxer) }
561 MmsDownloader* AsMmsDownloader (Types *types = NULL) { checked_get_subclass (Type::MMSDOWNLOADER, MmsDownloader) }
562 MmsPlaylistEntry* AsMmsPlaylistEntry (Types *types = NULL) { checked_get_subclass (Type::MMSPLAYLISTENTRY, MmsPlaylistEntry) }
563 MmsSecondDownloader* AsMmsSecondDownloader (Types *types = NULL) { checked_get_subclass (Type::MMSSECONDDOWNLOADER, MmsSecondDownloader) }
564 MmsSource* AsMmsSource (Types *types = NULL) { checked_get_subclass (Type::MMSSOURCE, MmsSource) }
565 MouseEventArgs* AsMouseEventArgs (Types *types = NULL) { checked_get_subclass (Type::MOUSEEVENTARGS, MouseEventArgs) }
566 MouseWheelEventArgs* AsMouseWheelEventArgs (Types *types = NULL) { checked_get_subclass (Type::MOUSEWHEELEVENTARGS, MouseWheelEventArgs) }
567 Mp3Demuxer* AsMp3Demuxer (Types *types = NULL) { checked_get_subclass (Type::MP3DEMUXER, Mp3Demuxer) }
568 MultiScaleImage* AsMultiScaleImage (Types *types = NULL) { checked_get_subclass (Type::MULTISCALEIMAGE, MultiScaleImage) }
569 MultiScaleSubImage* AsMultiScaleSubImage (Types *types = NULL) { checked_get_subclass (Type::MULTISCALESUBIMAGE, MultiScaleSubImage) }
570 MultiScaleSubImageCollection* AsMultiScaleSubImageCollection (Types *types = NULL) { checked_get_subclass (Type::MULTISCALESUBIMAGE_COLLECTION, MultiScaleSubImageCollection) }
571 MultiScaleTileSource* AsMultiScaleTileSource (Types *types = NULL) { checked_get_subclass (Type::MULTISCALETILESOURCE, MultiScaleTileSource) }
572 NameScope* AsNameScope (Types *types = NULL) { checked_get_subclass (Type::NAMESCOPE, NameScope) }
573 NullDecoder* AsNullDecoder (Types *types = NULL) { checked_get_subclass (Type::NULLDECODER, NullDecoder) }
574 ObjectAnimationUsingKeyFrames* AsObjectAnimationUsingKeyFrames (Types *types = NULL) { checked_get_subclass (Type::OBJECTANIMATIONUSINGKEYFRAMES, ObjectAnimationUsingKeyFrames) }
575 ObjectKeyFrame* AsObjectKeyFrame (Types *types = NULL) { checked_get_subclass (Type::OBJECTKEYFRAME, ObjectKeyFrame) }
576 ObjectKeyFrameCollection* AsObjectKeyFrameCollection (Types *types = NULL) { checked_get_subclass (Type::OBJECTKEYFRAME_COLLECTION, ObjectKeyFrameCollection) }
577 Panel* AsPanel (Types *types = NULL) { checked_get_subclass (Type::PANEL, Panel) }
578 ParallelTimeline* AsParallelTimeline (Types *types = NULL) { checked_get_subclass (Type::PARALLELTIMELINE, ParallelTimeline) }
579 ParserErrorEventArgs* AsParserErrorEventArgs (Types *types = NULL) { checked_get_subclass (Type::PARSERERROREVENTARGS, ParserErrorEventArgs) }
580 PassThroughDecoder* AsPassThroughDecoder (Types *types = NULL) { checked_get_subclass (Type::PASSTHROUGHDECODER, PassThroughDecoder) }
581 PasswordBox* AsPasswordBox (Types *types = NULL) { checked_get_subclass (Type::PASSWORDBOX, PasswordBox) }
582 Path* AsPath (Types *types = NULL) { checked_get_subclass (Type::PATH, Path) }
583 PathFigure* AsPathFigure (Types *types = NULL) { checked_get_subclass (Type::PATHFIGURE, PathFigure) }
584 PathFigureCollection* AsPathFigureCollection (Types *types = NULL) { checked_get_subclass (Type::PATHFIGURE_COLLECTION, PathFigureCollection) }
585 PathGeometry* AsPathGeometry (Types *types = NULL) { checked_get_subclass (Type::PATHGEOMETRY, PathGeometry) }
586 PathSegment* AsPathSegment (Types *types = NULL) { checked_get_subclass (Type::PATHSEGMENT, PathSegment) }
587 PathSegmentCollection* AsPathSegmentCollection (Types *types = NULL) { checked_get_subclass (Type::PATHSEGMENT_COLLECTION, PathSegmentCollection) }
588 Playlist* AsPlaylist (Types *types = NULL) { checked_get_subclass (Type::PLAYLIST, Playlist) }
589 PlaylistEntry* AsPlaylistEntry (Types *types = NULL) { checked_get_subclass (Type::PLAYLISTENTRY, PlaylistEntry) }
590 PlaylistRoot* AsPlaylistRoot (Types *types = NULL) { checked_get_subclass (Type::PLAYLISTROOT, PlaylistRoot) }
591 PointCollection* AsPointCollection (Types *types = NULL) { checked_get_subclass (Type::POINT_COLLECTION, PointCollection) }
592 PointAnimation* AsPointAnimation (Types *types = NULL) { checked_get_subclass (Type::POINTANIMATION, PointAnimation) }
593 PointAnimationUsingKeyFrames* AsPointAnimationUsingKeyFrames (Types *types = NULL) { checked_get_subclass (Type::POINTANIMATIONUSINGKEYFRAMES, PointAnimationUsingKeyFrames) }
594 PointKeyFrame* AsPointKeyFrame (Types *types = NULL) { checked_get_subclass (Type::POINTKEYFRAME, PointKeyFrame) }
595 PointKeyFrameCollection* AsPointKeyFrameCollection (Types *types = NULL) { checked_get_subclass (Type::POINTKEYFRAME_COLLECTION, PointKeyFrameCollection) }
596 PolyBezierSegment* AsPolyBezierSegment (Types *types = NULL) { checked_get_subclass (Type::POLYBEZIERSEGMENT, PolyBezierSegment) }
597 Polygon* AsPolygon (Types *types = NULL) { checked_get_subclass (Type::POLYGON, Polygon) }
598 Polyline* AsPolyline (Types *types = NULL) { checked_get_subclass (Type::POLYLINE, Polyline) }
599 PolyLineSegment* AsPolyLineSegment (Types *types = NULL) { checked_get_subclass (Type::POLYLINESEGMENT, PolyLineSegment) }
600 PolyQuadraticBezierSegment* AsPolyQuadraticBezierSegment (Types *types = NULL) { checked_get_subclass (Type::POLYQUADRATICBEZIERSEGMENT, PolyQuadraticBezierSegment) }
601 Popup* AsPopup (Types *types = NULL) { checked_get_subclass (Type::POPUP, Popup) }
602 PowerEase* AsPowerEase (Types *types = NULL) { checked_get_subclass (Type::POWEREASE, PowerEase) }
603 ProgressEventArgs* AsProgressEventArgs (Types *types = NULL) { checked_get_subclass (Type::PROGRESSEVENTARGS, ProgressEventArgs) }
604 ProgressiveSource* AsProgressiveSource (Types *types = NULL) { checked_get_subclass (Type::PROGRESSIVESOURCE, ProgressiveSource) }
605 PulseSource* AsPulseSource (Types *types = NULL) { checked_get_subclass (Type::PULSESOURCE, PulseSource) }
606 QuadraticBezierSegment* AsQuadraticBezierSegment (Types *types = NULL) { checked_get_subclass (Type::QUADRATICBEZIERSEGMENT, QuadraticBezierSegment) }
607 QuadraticEase* AsQuadraticEase (Types *types = NULL) { checked_get_subclass (Type::QUADRATICEASE, QuadraticEase) }
608 QuarticEase* AsQuarticEase (Types *types = NULL) { checked_get_subclass (Type::QUARTICEASE, QuarticEase) }
609 QuinticEase* AsQuinticEase (Types *types = NULL) { checked_get_subclass (Type::QUINTICEASE, QuinticEase) }
610 RadialGradientBrush* AsRadialGradientBrush (Types *types = NULL) { checked_get_subclass (Type::RADIALGRADIENTBRUSH, RadialGradientBrush) }
611 Rectangle* AsRectangle (Types *types = NULL) { checked_get_subclass (Type::RECTANGLE, Rectangle) }
612 RectangleGeometry* AsRectangleGeometry (Types *types = NULL) { checked_get_subclass (Type::RECTANGLEGEOMETRY, RectangleGeometry) }
613 RenderingEventArgs* AsRenderingEventArgs (Types *types = NULL) { checked_get_subclass (Type::RENDERINGEVENTARGS, RenderingEventArgs) }
614 ResourceDictionary* AsResourceDictionary (Types *types = NULL) { checked_get_subclass (Type::RESOURCE_DICTIONARY, ResourceDictionary) }
615 RotateTransform* AsRotateTransform (Types *types = NULL) { checked_get_subclass (Type::ROTATETRANSFORM, RotateTransform) }
616 RoutedEventArgs* AsRoutedEventArgs (Types *types = NULL) { checked_get_subclass (Type::ROUTEDEVENTARGS, RoutedEventArgs) }
617 RowDefinition* AsRowDefinition (Types *types = NULL) { checked_get_subclass (Type::ROWDEFINITION, RowDefinition) }
618 RowDefinitionCollection* AsRowDefinitionCollection (Types *types = NULL) { checked_get_subclass (Type::ROWDEFINITION_COLLECTION, RowDefinitionCollection) }
619 Run* AsRun (Types *types = NULL) { checked_get_subclass (Type::RUN, Run) }
620 ScaleTransform* AsScaleTransform (Types *types = NULL) { checked_get_subclass (Type::SCALETRANSFORM, ScaleTransform) }
621 Setter* AsSetter (Types *types = NULL) { checked_get_subclass (Type::SETTER, Setter) }
622 SetterBase* AsSetterBase (Types *types = NULL) { checked_get_subclass (Type::SETTERBASE, SetterBase) }
623 SetterBaseCollection* AsSetterBaseCollection (Types *types = NULL) { checked_get_subclass (Type::SETTERBASE_COLLECTION, SetterBaseCollection) }
624 Shape* AsShape (Types *types = NULL) { checked_get_subclass (Type::SHAPE, Shape) }
625 SineEase* AsSineEase (Types *types = NULL) { checked_get_subclass (Type::SINEEASE, SineEase) }
626 SizeChangedEventArgs* AsSizeChangedEventArgs (Types *types = NULL) { checked_get_subclass (Type::SIZECHANGEDEVENTARGS, SizeChangedEventArgs) }
627 SkewTransform* AsSkewTransform (Types *types = NULL) { checked_get_subclass (Type::SKEWTRANSFORM, SkewTransform) }
628 SolidColorBrush* AsSolidColorBrush (Types *types = NULL) { checked_get_subclass (Type::SOLIDCOLORBRUSH, SolidColorBrush) }
629 SplineColorKeyFrame* AsSplineColorKeyFrame (Types *types = NULL) { checked_get_subclass (Type::SPLINECOLORKEYFRAME, SplineColorKeyFrame) }
630 SplineDoubleKeyFrame* AsSplineDoubleKeyFrame (Types *types = NULL) { checked_get_subclass (Type::SPLINEDOUBLEKEYFRAME, SplineDoubleKeyFrame) }
631 SplinePointKeyFrame* AsSplinePointKeyFrame (Types *types = NULL) { checked_get_subclass (Type::SPLINEPOINTKEYFRAME, SplinePointKeyFrame) }
632 Storyboard* AsStoryboard (Types *types = NULL) { checked_get_subclass (Type::STORYBOARD, Storyboard) }
633 Stroke* AsStroke (Types *types = NULL) { checked_get_subclass (Type::STROKE, Stroke) }
634 StrokeCollection* AsStrokeCollection (Types *types = NULL) { checked_get_subclass (Type::STROKE_COLLECTION, StrokeCollection) }
635 Style* AsStyle (Types *types = NULL) { checked_get_subclass (Type::STYLE, Style) }
636 StylusInfo* AsStylusInfo (Types *types = NULL) { checked_get_subclass (Type::STYLUSINFO, StylusInfo) }
637 StylusPoint* AsStylusPoint (Types *types = NULL) { checked_get_subclass (Type::STYLUSPOINT, StylusPoint) }
638 StylusPointCollection* AsStylusPointCollection (Types *types = NULL) { checked_get_subclass (Type::STYLUSPOINT_COLLECTION, StylusPointCollection) }
639 Surface* AsSurface (Types *types = NULL) { checked_get_subclass (Type::SURFACE, Surface) }
640 SystemTimeSource* AsSystemTimeSource (Types *types = NULL) { checked_get_subclass (Type::SYSTEMTIMESOURCE, SystemTimeSource) }
641 TextBlock* AsTextBlock (Types *types = NULL) { checked_get_subclass (Type::TEXTBLOCK, TextBlock) }
642 TextBox* AsTextBox (Types *types = NULL) { checked_get_subclass (Type::TEXTBOX, TextBox) }
643 TextBoxBase* AsTextBoxBase (Types *types = NULL) { checked_get_subclass (Type::TEXTBOXBASE, TextBoxBase) }
644 TextBoxModelChangedEventArgs* AsTextBoxModelChangedEventArgs (Types *types = NULL) { checked_get_subclass (Type::TEXTBOXMODELCHANGEDEVENTARGS, TextBoxModelChangedEventArgs) }
645 TextBoxView* AsTextBoxView (Types *types = NULL) { checked_get_subclass (Type::TEXTBOXVIEW, TextBoxView) }
646 TextChangedEventArgs* AsTextChangedEventArgs (Types *types = NULL) { checked_get_subclass (Type::TEXTCHANGEDEVENTARGS, TextChangedEventArgs) }
647 TileBrush* AsTileBrush (Types *types = NULL) { checked_get_subclass (Type::TILEBRUSH, TileBrush) }
648 Timeline* AsTimeline (Types *types = NULL) { checked_get_subclass (Type::TIMELINE, Timeline) }
649 TimelineCollection* AsTimelineCollection (Types *types = NULL) { checked_get_subclass (Type::TIMELINE_COLLECTION, TimelineCollection) }
650 TimelineGroup* AsTimelineGroup (Types *types = NULL) { checked_get_subclass (Type::TIMELINEGROUP, TimelineGroup) }
651 TimelineMarker* AsTimelineMarker (Types *types = NULL) { checked_get_subclass (Type::TIMELINEMARKER, TimelineMarker) }
652 TimelineMarkerCollection* AsTimelineMarkerCollection (Types *types = NULL) { checked_get_subclass (Type::TIMELINEMARKER_COLLECTION, TimelineMarkerCollection) }
653 TimeManager* AsTimeManager (Types *types = NULL) { checked_get_subclass (Type::TIMEMANAGER, TimeManager) }
654 TimeSource* AsTimeSource (Types *types = NULL) { checked_get_subclass (Type::TIMESOURCE, TimeSource) }
655 Transform* AsTransform (Types *types = NULL) { checked_get_subclass (Type::TRANSFORM, Transform) }
656 TransformCollection* AsTransformCollection (Types *types = NULL) { checked_get_subclass (Type::TRANSFORM_COLLECTION, TransformCollection) }
657 TransformGroup* AsTransformGroup (Types *types = NULL) { checked_get_subclass (Type::TRANSFORMGROUP, TransformGroup) }
658 TranslateTransform* AsTranslateTransform (Types *types = NULL) { checked_get_subclass (Type::TRANSLATETRANSFORM, TranslateTransform) }
659 TriggerCollection* AsTriggerCollection (Types *types = NULL) { checked_get_subclass (Type::TRIGGER_COLLECTION, TriggerCollection) }
660 TriggerAction* AsTriggerAction (Types *types = NULL) { checked_get_subclass (Type::TRIGGERACTION, TriggerAction) }
661 TriggerActionCollection* AsTriggerActionCollection (Types *types = NULL) { checked_get_subclass (Type::TRIGGERACTION_COLLECTION, TriggerActionCollection) }
662 TriggerBase* AsTriggerBase (Types *types = NULL) { checked_get_subclass (Type::TRIGGERBASE, TriggerBase) }
663 UIElement* AsUIElement (Types *types = NULL) { checked_get_subclass (Type::UIELEMENT, UIElement) }
664 UIElementCollection* AsUIElementCollection (Types *types = NULL) { checked_get_subclass (Type::UIELEMENT_COLLECTION, UIElementCollection) }
665 UnmanagedMatrix* AsUnmanagedMatrix (Types *types = NULL) { checked_get_subclass (Type::UNMANAGEDMATRIX, UnmanagedMatrix) }
666 UserControl* AsUserControl (Types *types = NULL) { checked_get_subclass (Type::USERCONTROL, UserControl) }
667 VideoBrush* AsVideoBrush (Types *types = NULL) { checked_get_subclass (Type::VIDEOBRUSH, VideoBrush) }
668 VideoStream* AsVideoStream (Types *types = NULL) { checked_get_subclass (Type::VIDEOSTREAM, VideoStream) }
669 VisualBrush* AsVisualBrush (Types *types = NULL) { checked_get_subclass (Type::VISUALBRUSH, VisualBrush) }
670 WriteableBitmap* AsWriteableBitmap (Types *types = NULL) { checked_get_subclass (Type::WRITEABLEBITMAP, WriteableBitmap) }
671 YUVConverter* AsYUVConverter (Types *types = NULL) { checked_get_subclass (Type::YUVCONVERTER, YUVConverter) }
674 char *ToString ();
676 Type::Kind GetKind ();
678 void FreeValue ();
680 private:
681 Type::Kind k;
683 gint32 padding;
685 union {
686 double d;
687 float f;
688 guint64 ui64;
689 gint64 i64;
690 guint32 ui32;
691 gint32 i32;
692 gunichar c;
693 char *s;
694 EventObject *dependency_object;
695 Color *color;
696 DependencyProperty *dp;
697 Point *point;
698 Uri *uri;
699 Rect *rect;
700 Size *size;
701 FontFamily *fontfamily;
702 FontSource *fontsource;
703 FontWeight *fontweight;
704 FontStretch *fontstretch;
705 FontStyle *fontstyle;
706 PropertyPath *propertypath;
707 RepeatBehavior *repeat;
708 Duration *duration;
709 KeyTime *keytime;
710 GridLength *grid_length;
711 Thickness *thickness;
712 CornerRadius *corner;
713 ManagedTypeInfo *type_info;
714 void *managed_object;
715 void *npobj;
716 } u;
718 // You don't want to be using this ctor. it's here to help
719 // c++ recognize bad unspecified pointer args to Value ctors
720 // (it normally converts them to bool, which we handle, so you
721 // never see the error of your ways). So do the world a
722 // favor, and don't expose this ctor. :)
723 Value (void *v) { }
724 // You don't want to be using this ctor either.
725 // Use the Value (gint64, Type::Kind) ctor
726 // (Both for TimeSpan and int64_t)
727 // This one is bad because it get used by either int64_t
728 // and TimeSpan, and the constructor doesn't know which
729 // of the two types it is.
730 explicit Value (gint64 i) {};
732 void Copy (const Value& other);
733 char *GetName ();
736 G_BEGIN_DECLS
737 /* @GeneratePInvoke */
738 void value_free_value (Value *value);
739 /* @GeneratePInvoke */
740 void value_free_value2 (/* @MarshalAs=IntPtr */ Value *value);
741 G_END_DECLS
744 #endif /* MOON_VALUE_H */