text: ﻿/***********************************************************************
  THIS FILE IS AUTOMATICALLY GENERATED. DO NOT MODIFY
  DEVELOPER: Zihan Chen(vczh)
  ***********************************************************************/
  #include "GacUIReflection.h"
  
  /***********************************************************************
  .\GUIINSTANCECOMPILEDWORKFLOW.CPP
  ***********************************************************************/
  
  namespace vl
  {
  	namespace presentation
  	{
  		using namespace stream;
  		using namespace workflow::runtime;
  		using namespace controls;
  
  /***********************************************************************
  GuiInstanceSharedScript
  ***********************************************************************/
  
  		void GuiInstanceCompiledWorkflow::Initialize(bool initializeContext)
  		{
  			if (binaryToLoad)
  			{
  				assembly = new WfAssembly(*binaryToLoad.Obj());
  				context = nullptr;
  				binaryToLoad = nullptr;
  			}
  
  			if (initializeContext && !context)
  			{
  				context = new WfRuntimeGlobalContext(assembly);
  				LoadFunction<void()>(context, L"<initialize>")();
  			}
  		}
  
  /***********************************************************************
  Compiled Workflow Type Resolver (Workflow)
  ***********************************************************************/
  
  		class GuiResourceCompiledWorkflowTypeResolver
  			: public Object
  			, public IGuiResourceTypeResolver
  			, private IGuiResourceTypeResolver_Initialize
  			, private IGuiResourceTypeResolver_DirectLoadStream
  		{
  		public:
  			WString GetType()override
  			{
  				return L"Workflow";
  			}
  
  			bool XmlSerializable()override
  			{
  				return false;
  			}
  
  			bool StreamSerializable()override
  			{
  				return true;
  			}
  
  			vint GetMaxPassIndex()override
  			{
  				return 1;
  			}
  
  			void Initialize(Ptr<GuiResourceItem> resource, GuiResourceInitializeContext& context)override
  			{
  				if (auto compiled = resource->GetContent().Cast<GuiInstanceCompiledWorkflow>())
  				{
  					switch (context.passIndex)
  					{
  					case 0:
  						if (compiled->type == GuiInstanceCompiledWorkflow::InstanceClass)
  						{
  							if (context.usage == GuiResourceUsage::InstanceClass)
  							{
  								compiled->Initialize(true);
  							}
  						}
  						break;
  					}
  				}
  			}
  
  			IGuiResourceTypeResolver_Initialize* Initialize()override
  			{
  				return this;
  			}
  
  			IGuiResourceTypeResolver_DirectLoadStream* DirectLoadStream()override
  			{
  				return this;
  			}
  
  			void SerializePrecompiled(Ptr<GuiResourceItem> resource, Ptr<DescriptableObject> content, stream::IStream& stream)override
  			{
  				if (auto obj = content.Cast<GuiInstanceCompiledWorkflow>())
  				{
  					internal::ContextFreeWriter writer(stream);
  
  					vint type = (vint)obj->type;
  					writer << type;
  
  					if (obj->type == GuiInstanceCompiledWorkflow::InstanceClass)
  					{
  						MemoryStream memoryStream;
  						obj->assembly->Serialize(memoryStream);
  						writer << (IStream&)memoryStream;
  					}
  				}
  			}
  
  			Ptr<DescriptableObject> ResolveResourcePrecompiled(Ptr<GuiResourceItem> resource, stream::IStream& stream, GuiResourceError::List& errors)override
  			{
  				internal::ContextFreeReader reader(stream);
  
  				vint type;
  				reader << type;
  				
  				auto obj = MakePtr<GuiInstanceCompiledWorkflow>();
  				obj->type = (GuiInstanceCompiledWorkflow::AssemblyType)type;
  				if (obj->type == GuiInstanceCompiledWorkflow::InstanceClass)
  				{
  					auto memoryStream = MakePtr<MemoryStream>();
  					reader << (IStream&)*memoryStream.Obj();
  					obj->binaryToLoad = memoryStream;
  				}
  				return obj;
  			}
  		};
  
  /***********************************************************************
  Plugin
  ***********************************************************************/
  
  		class GuiRuntimeTypeResolversPlugin : public Object, public IGuiPlugin
  		{
  		public:
  
  			GUI_PLUGIN_NAME(GacUI_Compiler_WorkflowTypeResolvers)
  			{
  				GUI_PLUGIN_DEPEND(GacUI_Res_ResourceResolver);
  			}
  
  			void Load()override
  			{
  				IGuiResourceResolverManager* manager = GetResourceResolverManager();
  				manager->SetTypeResolver(new GuiResourceCompiledWorkflowTypeResolver);
  			}
  
  			void Unload()override
  			{
  			}
  		};
  		GUI_REGISTER_PLUGIN(GuiRuntimeTypeResolversPlugin)
  	}
  }
  
  /***********************************************************************
  .\TYPEDESCRIPTORS\GUIREFLECTIONBASIC.CPP
  ***********************************************************************/
  
  namespace vl
  {
  	namespace reflection
  	{
  		namespace description
  		{
  			using namespace parsing::xml;
  			using namespace presentation;
  
  #ifndef VCZH_DEBUG_NO_REFLECTION
  
  /***********************************************************************
  Type Declaration
  ***********************************************************************/
  
  #define _ ,
  
  #define GUI_TEMPLATE_PROPERTY_REFLECTION(CLASS, TYPE, NAME)\
  	CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(NAME)
  
  			BEGIN_STRUCT_MEMBER(Color)
  				valueType = new SerializableValueType<Color>();
  				serializableType = new SerializableType<Color>();
  				STRUCT_MEMBER(r)
  				STRUCT_MEMBER(g)
  				STRUCT_MEMBER(b)
  				STRUCT_MEMBER(a)
  				STRUCT_MEMBER(value)
  			END_STRUCT_MEMBER(Color)
  
  			BEGIN_ENUM_ITEM(Alignment)
  				ENUM_CLASS_ITEM(Left)
  				ENUM_CLASS_ITEM(Top)
  				ENUM_CLASS_ITEM(Center)
  				ENUM_CLASS_ITEM(Right)
  				ENUM_CLASS_ITEM(Bottom)
  			END_ENUM_ITEM(Alignment)
  
  			BEGIN_ENUM_ITEM(AxisDirection)
  				ENUM_CLASS_ITEM(LeftDown)
  				ENUM_CLASS_ITEM(RightDown)
  				ENUM_CLASS_ITEM(LeftUp)
  				ENUM_CLASS_ITEM(RightUp)
  				ENUM_CLASS_ITEM(DownLeft)
  				ENUM_CLASS_ITEM(DownRight)
  				ENUM_CLASS_ITEM(UpLeft)
  				ENUM_CLASS_ITEM(UpRight)
  			END_ENUM_ITEM(AxisDirection)
  
  			BEGIN_STRUCT_MEMBER(TextPos)
  				STRUCT_MEMBER(row)
  				STRUCT_MEMBER(column)
  			END_STRUCT_MEMBER(TextPos)
  
  			BEGIN_STRUCT_MEMBER(GridPos)
  				STRUCT_MEMBER(row)
  				STRUCT_MEMBER(column)
  			END_STRUCT_MEMBER(GridPos)
  
  			BEGIN_STRUCT_MEMBER(Point)
  				STRUCT_MEMBER(x)
  				STRUCT_MEMBER(y)
  			END_STRUCT_MEMBER(Point)
  
  			BEGIN_STRUCT_MEMBER(Size)
  				STRUCT_MEMBER(x)
  				STRUCT_MEMBER(y)
  			END_STRUCT_MEMBER(Size)
  
  			BEGIN_STRUCT_MEMBER(Rect)
  				STRUCT_MEMBER(x1)
  				STRUCT_MEMBER(y1)
  				STRUCT_MEMBER(x2)
  				STRUCT_MEMBER(y2)
  			END_STRUCT_MEMBER(Rect)
  
  			BEGIN_STRUCT_MEMBER(Margin)
  				STRUCT_MEMBER(left)
  				STRUCT_MEMBER(top)
  				STRUCT_MEMBER(right)
  				STRUCT_MEMBER(bottom)
  			END_STRUCT_MEMBER(Margin)
  
  			BEGIN_STRUCT_MEMBER(FontProperties)
  				STRUCT_MEMBER(fontFamily)
  				STRUCT_MEMBER(size)
  				STRUCT_MEMBER(bold)
  				STRUCT_MEMBER(italic)
  				STRUCT_MEMBER(underline)
  				STRUCT_MEMBER(strikeline)
  				STRUCT_MEMBER(antialias)
  				STRUCT_MEMBER(verticalAntialias)
  			END_STRUCT_MEMBER(FontProperties)
  
  #define GUI_DEFINE_KEYBOARD_CODE_ENUM_ITEM(NAME, CODE) ENUM_CLASS_ITEM(_##NAME)
  			BEGIN_ENUM_ITEM(VKEY)
  				ENUM_CLASS_ITEM(_UNKNOWN)
  				GUI_DEFINE_KEYBOARD_CODE(GUI_DEFINE_KEYBOARD_CODE_ENUM_ITEM)
  			END_ENUM_ITEM(VKEY)
  #undef GUI_DEFINE_KEYBOARD_CODE_ENUM_ITEM
  
  			BEGIN_STRUCT_MEMBER_FLAG(GlobalStringKey, TypeDescriptorFlags::Primitive)
  				valueType = new SerializableValueType<GlobalStringKey>();
  				serializableType = new SerializableType<GlobalStringKey>();
  			END_STRUCT_MEMBER(GlobalStringKey)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(INativeImageFrame)
  				CLASS_MEMBER_METHOD(GetImage, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetSize, NO_PARAMETER)
  			END_INTERFACE_MEMBER(INativeImageFrame)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(INativeImage)
  				CLASS_MEMBER_METHOD(GetFormat, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetFrameCount, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetFrame, {L"index"})
  				CLASS_MEMBER_EXTERNALCTOR(Ptr<INativeImage>(const WString&), {L"filePath"}, vl::reflection::description::INativeImage_Constructor)
  			END_INTERFACE_MEMBER(INativeImage)
  
  			BEGIN_ENUM_ITEM(INativeImage::FormatType)
  				ENUM_ITEM_NAMESPACE(INativeImage)
  				ENUM_NAMESPACE_ITEM(Bmp)
  				ENUM_NAMESPACE_ITEM(Gif)
  				ENUM_NAMESPACE_ITEM(Icon)
  				ENUM_NAMESPACE_ITEM(Jpeg)
  				ENUM_NAMESPACE_ITEM(Png)
  				ENUM_NAMESPACE_ITEM(Tiff)
  				ENUM_NAMESPACE_ITEM(Wmp)
  				ENUM_NAMESPACE_ITEM(Unknown)
  			END_ENUM_ITEM(INativeImage::FormatType)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(INativeCursor)
  				CLASS_MEMBER_METHOD(IsSystemCursor, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetSystemCursorType, NO_PARAMETER)
  				CLASS_MEMBER_EXTERNALCTOR(INativeCursor*(), NO_PARAMETER, vl::reflection::description::INativeCursor_Constructor1)
  				CLASS_MEMBER_EXTERNALCTOR(INativeCursor*(INativeCursor::SystemCursorType), NO_PARAMETER, vl::reflection::description::INativeCursor_Constructor2)
  			END_INTERFACE_MEMBER(INativeCursor)
  
  			BEGIN_ENUM_ITEM(INativeCursor::SystemCursorType)
  				ENUM_ITEM_NAMESPACE(INativeCursor)
  				ENUM_NAMESPACE_ITEM(SmallWaiting)
  				ENUM_NAMESPACE_ITEM(LargeWaiting)
  				ENUM_NAMESPACE_ITEM(Arrow)
  				ENUM_NAMESPACE_ITEM(Cross)
  				ENUM_NAMESPACE_ITEM(Hand)
  				ENUM_NAMESPACE_ITEM(Help)
  				ENUM_NAMESPACE_ITEM(IBeam)
  				ENUM_NAMESPACE_ITEM(SizeAll)
  				ENUM_NAMESPACE_ITEM(SizeNESW)
  				ENUM_NAMESPACE_ITEM(SizeNS)
  				ENUM_NAMESPACE_ITEM(SizeNWSE)
  				ENUM_NAMESPACE_ITEM(SizeWE)
  			END_ENUM_ITEM(INativeCursor::SystemCursorType)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(INativeWindow)
  				CLASS_MEMBER_PROPERTY_FAST(Bounds)
  				CLASS_MEMBER_PROPERTY_FAST(ClientSize)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ClientBoundsInScreen)
  				CLASS_MEMBER_PROPERTY_FAST(Title)
  				CLASS_MEMBER_PROPERTY_FAST(WindowCursor)
  				CLASS_MEMBER_PROPERTY_FAST(CaretPoint)
  				CLASS_MEMBER_PROPERTY_FAST(Parent)
  				CLASS_MEMBER_PROPERTY_FAST(AlwaysPassFocusToParent)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(CustomFramePadding)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(SizeState)
  				CLASS_MEMBER_PROPERTY_FAST(MinimizedBox)
  				CLASS_MEMBER_PROPERTY_FAST(MaximizedBox)
  				CLASS_MEMBER_PROPERTY_FAST(Border)
  				CLASS_MEMBER_PROPERTY_FAST(SizeBox)
  				CLASS_MEMBER_PROPERTY_FAST(IconVisible)
  				CLASS_MEMBER_PROPERTY_FAST(TitleBar)
  				CLASS_MEMBER_PROPERTY_FAST(TopMost)
  
  				CLASS_MEMBER_METHOD(EnableCustomFrameMode, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(DisableCustomFrameMode, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(IsCustomFrameModeEnabled, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Show, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ShowDeactivated, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ShowRestored, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ShowMaximized, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ShowMinimized, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Hide, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(IsVisible, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Enable, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Disable, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(IsEnabled, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(SetFocus, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(IsFocused, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(SetActivate, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(IsActivated, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ShowInTaskBar, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(HideInTaskBar, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(IsAppearedInTaskBar, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(EnableActivate, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(DisableActivate, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(IsEnabledActivate, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(RequireCapture, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ReleaseCapture, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(IsCapturing, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(RedrawContent, NO_PARAMETER)
  			END_INTERFACE_MEMBER(INativeWindow)
  
  			BEGIN_ENUM_ITEM(INativeWindow::WindowSizeState)
  				ENUM_ITEM_NAMESPACE(INativeWindow)
  				ENUM_NAMESPACE_ITEM(Minimized)
  				ENUM_NAMESPACE_ITEM(Restored)
  				ENUM_NAMESPACE_ITEM(Maximized)
  			END_ENUM_ITEM(INativeWindow::WindowSizeState)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(INativeDelay)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Status)
  
  				CLASS_MEMBER_METHOD(Delay, {L"milliseconds"})
  				CLASS_MEMBER_METHOD(Cancel, NO_PARAMETER)
  			END_INTERFACE_MEMBER(INativeDelay)
  
  			BEGIN_ENUM_ITEM(INativeDelay::ExecuteStatus)
  				ENUM_ITEM_NAMESPACE(INativeDelay)
  				ENUM_NAMESPACE_ITEM(Pending)
  				ENUM_NAMESPACE_ITEM(Executing)
  				ENUM_NAMESPACE_ITEM(Executed)
  				ENUM_NAMESPACE_ITEM(Canceled)
  			END_ENUM_ITEM(INativeDelay::ExecuteStatus)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(INativeScreen)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Bounds);
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ClientBounds);
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Name);
  
  				CLASS_MEMBER_METHOD(IsPrimary, NO_PARAMETER)
  			END_INTERFACE_MEMBER(INativeScreen)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(INativeImageService)
  				CLASS_MEMBER_METHOD(CreateImageFromFile, {L"path"})
  			END_INTERFACE_MEMBER(INativeImageService)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(INativeResourceService)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(DefaultSystemCursor)
  				CLASS_MEMBER_PROPERTY_FAST(DefaultFont)
  
  				CLASS_MEMBER_METHOD(GetSystemCursor, {L"type"})
  			END_INTERFACE_MEMBER(INativeResourceService)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(INativeAsyncService)
  				CLASS_MEMBER_METHOD(IsInMainThread, {L"type"})
  				CLASS_MEMBER_METHOD(InvokeAsync, {L"proc"})
  				CLASS_MEMBER_METHOD(InvokeInMainThread, {L"window" _ L"proc"})
  				CLASS_MEMBER_METHOD(InvokeInMainThreadAndWait, {L"window" _ L"proc" _ L"milliseconds"})
  				CLASS_MEMBER_METHOD(DelayExecute, {L"proc" _ L"milliseconds"})
  				CLASS_MEMBER_METHOD(DelayExecuteInMainThread, {L"proc" _ L"milliseconds"})
  			END_INTERFACE_MEMBER(INativeAsyncService)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(INativeClipboardReader)
  				CLASS_MEMBER_METHOD(ContainsText, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetText, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ContainsDocument, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetDocument, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ContainsImage, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetImage, NO_PARAMETER)
  			END_INTERFACE_MEMBER(INativeClipboardReader)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(INativeClipboardWriter)
  				CLASS_MEMBER_METHOD(SetText, { L"value" })
  				CLASS_MEMBER_METHOD(SetDocument, { L"value" })
  				CLASS_MEMBER_METHOD(SetImage, { L"value" })
  				CLASS_MEMBER_METHOD(Submit, NO_PARAMETER)
  			END_INTERFACE_MEMBER(INativeClipboardWriter)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(INativeClipboardService)
  				CLASS_MEMBER_METHOD(ReadClipboard, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(WriteClipboard, NO_PARAMETER)
  			END_INTERFACE_MEMBER(INativeClipboardService)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(INativeScreenService)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ScreenCount)
  
  				CLASS_MEMBER_METHOD_OVERLOAD(GetScreen, {L"index"}, INativeScreen*(INativeScreenService::*)(vint))
  				CLASS_MEMBER_METHOD_OVERLOAD(GetScreen, {L"window"}, INativeScreen*(INativeScreenService::*)(INativeWindow*))
  			END_INTERFACE_MEMBER(INativeScreenService)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(INativeInputService)
  				CLASS_MEMBER_METHOD(IsKeyPressing, { L"code" })
  				CLASS_MEMBER_METHOD(IsKeyToggled, { L"code" })
  				CLASS_MEMBER_METHOD(GetKeyName, { L"code" })
  				CLASS_MEMBER_METHOD(GetKey, { L"name" })
  			END_INTERFACE_MEMBER(INativeInputService)
  
  			BEGIN_ENUM_ITEM(INativeDialogService::MessageBoxButtonsInput)
  				ENUM_ITEM_NAMESPACE(INativeDialogService)
  				ENUM_NAMESPACE_ITEM(DisplayOK)
  				ENUM_NAMESPACE_ITEM(DisplayOKCancel)
  				ENUM_NAMESPACE_ITEM(DisplayYesNo)
  				ENUM_NAMESPACE_ITEM(DisplayYesNoCancel)
  				ENUM_NAMESPACE_ITEM(DisplayRetryCancel)
  				ENUM_NAMESPACE_ITEM(DisplayAbortRetryIgnore)
  				ENUM_NAMESPACE_ITEM(DisplayCancelTryAgainContinue)
  			END_ENUM_ITEM(INativeDialogService::MessageBoxButtonsInput)
  
  			BEGIN_ENUM_ITEM(INativeDialogService::MessageBoxButtonsOutput)
  				ENUM_ITEM_NAMESPACE(INativeDialogService)
  				ENUM_NAMESPACE_ITEM(SelectOK)
  				ENUM_NAMESPACE_ITEM(SelectCancel)
  				ENUM_NAMESPACE_ITEM(SelectYes)
  				ENUM_NAMESPACE_ITEM(SelectNo)
  				ENUM_NAMESPACE_ITEM(SelectRetry)
  				ENUM_NAMESPACE_ITEM(SelectAbort)
  				ENUM_NAMESPACE_ITEM(SelectIgnore)
  				ENUM_NAMESPACE_ITEM(SelectTryAgain)
  				ENUM_NAMESPACE_ITEM(SelectContinue)
  			END_ENUM_ITEM(INativeDialogService::MessageBoxButtonsOutput)
  
  			BEGIN_ENUM_ITEM(INativeDialogService::MessageBoxDefaultButton)
  				ENUM_ITEM_NAMESPACE(INativeDialogService)
  				ENUM_NAMESPACE_ITEM(DefaultFirst)
  				ENUM_NAMESPACE_ITEM(DefaultSecond)
  				ENUM_NAMESPACE_ITEM(DefaultThird)
  			END_ENUM_ITEM(INativeDialogService::MessageBoxDefaultButton)
  
  			BEGIN_ENUM_ITEM(INativeDialogService::MessageBoxIcons)
  				ENUM_ITEM_NAMESPACE(INativeDialogService)
  				ENUM_NAMESPACE_ITEM(IconNone)
  				ENUM_NAMESPACE_ITEM(IconError)
  				ENUM_NAMESPACE_ITEM(IconQuestion)
  				ENUM_NAMESPACE_ITEM(IconWarning)
  				ENUM_NAMESPACE_ITEM(IconInformation)
  			END_ENUM_ITEM(INativeDialogService::MessageBoxIcons)
  
  			BEGIN_ENUM_ITEM(INativeDialogService::MessageBoxModalOptions)
  				ENUM_ITEM_NAMESPACE(INativeDialogService)
  				ENUM_NAMESPACE_ITEM(ModalWindow)
  				ENUM_NAMESPACE_ITEM(ModalTask)
  				ENUM_NAMESPACE_ITEM(ModalSystem)
  			END_ENUM_ITEM(INativeDialogService::MessageBoxModalOptions)
  
  			BEGIN_ENUM_ITEM(INativeDialogService::ColorDialogCustomColorOptions)
  				ENUM_ITEM_NAMESPACE(INativeDialogService)
  				ENUM_NAMESPACE_ITEM(CustomColorDisabled)
  				ENUM_NAMESPACE_ITEM(CustomColorEnabled)
  				ENUM_NAMESPACE_ITEM(CustomColorOpened)
  			END_ENUM_ITEM(INativeDialogService::ColorDialogCustomColorOptions)
  
  			BEGIN_ENUM_ITEM(INativeDialogService::FileDialogTypes)
  				ENUM_ITEM_NAMESPACE(INativeDialogService)
  				ENUM_NAMESPACE_ITEM(FileDialogOpen)
  				ENUM_NAMESPACE_ITEM(FileDialogOpenPreview)
  				ENUM_NAMESPACE_ITEM(FileDialogSave)
  				ENUM_NAMESPACE_ITEM(FileDialogSavePreview)
  			END_ENUM_ITEM(INativeDialogService::FileDialogTypes)
  
  			BEGIN_ENUM_ITEM_MERGABLE(INativeDialogService::FileDialogOptions)
  				ENUM_ITEM_NAMESPACE(INativeDialogService)
  				ENUM_NAMESPACE_ITEM(FileDialogAllowMultipleSelection)
  				ENUM_NAMESPACE_ITEM(FileDialogFileMustExist)
  				ENUM_NAMESPACE_ITEM(FileDialogShowReadOnlyCheckBox)
  				ENUM_NAMESPACE_ITEM(FileDialogDereferenceLinks)
  				ENUM_NAMESPACE_ITEM(FileDialogShowNetworkButton)
  				ENUM_NAMESPACE_ITEM(FileDialogPromptCreateFile)
  				ENUM_NAMESPACE_ITEM(FileDialogPromptOverwriteFile)
  				ENUM_NAMESPACE_ITEM(FileDialogDirectoryMustExist)
  				ENUM_NAMESPACE_ITEM(FileDialogAddToRecent)
  			END_ENUM_ITEM(INativeDialogService::FileDialogOptions)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(INativeController)
  				CLASS_MEMBER_STATIC_EXTERNALMETHOD(GetCurrentController, NO_PARAMETER, INativeController*(*)(), vl::presentation::GetCurrentController)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ExecutablePath)
  
  				CLASS_MEMBER_METHOD(ResourceService, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(AsyncService, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ClipboardService, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ImageService, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ScreenService, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(InputService, NO_PARAMETER)
  			END_INTERFACE_MEMBER(INativeController)
  
  			BEGIN_CLASS_MEMBER(GuiImageData)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<GuiImageData>(), NO_PARAMETER)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<GuiImageData>(Ptr<INativeImage>, vint), {L"image" _ L"frameIndex"})
  
  				CLASS_MEMBER_METHOD(GetImage, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetFrameIndex, NO_PARAMETER)
  
  				CLASS_MEMBER_PROPERTY_READONLY(Image, GetImage)
  				CLASS_MEMBER_PROPERTY_READONLY(FrameIndex, GetFrameIndex)
  			END_CLASS_MEMBER(GuiImageData)
  
  			BEGIN_CLASS_MEMBER(GuiTextData)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<GuiTextData>(), NO_PARAMETER)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<GuiTextData>(const WString&), {L"text"})
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Text)
  			END_CLASS_MEMBER(GuiTextData)
  				
  			BEGIN_STRUCT_MEMBER(DocumentFontSize)
  				valueType = new SerializableValueType<DocumentFontSize>();
  				serializableType = new SerializableType<DocumentFontSize>();
  				STRUCT_MEMBER(size)
  				STRUCT_MEMBER(relative)
  			END_STRUCT_MEMBER(DocumentFontSize)
  
  			BEGIN_CLASS_MEMBER(DocumentStyleProperties)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DocumentStyleProperties>(), NO_PARAMETER)
  
  				CLASS_MEMBER_FIELD(face)
  				CLASS_MEMBER_FIELD(size)
  				CLASS_MEMBER_FIELD(color)
  				CLASS_MEMBER_FIELD(backgroundColor)
  				CLASS_MEMBER_FIELD(bold)
  				CLASS_MEMBER_FIELD(italic)
  				CLASS_MEMBER_FIELD(underline)
  				CLASS_MEMBER_FIELD(strikeline)
  				CLASS_MEMBER_FIELD(antialias)
  				CLASS_MEMBER_FIELD(verticalAntialias)
  			END_CLASS_MEMBER(DocumentStyleProperties)
  
  			BEGIN_CLASS_MEMBER(DocumentRun)
  			END_CLASS_MEMBER(DocumentRun)
  
  			BEGIN_CLASS_MEMBER(DocumentContainerRun)
  				CLASS_MEMBER_BASE(DocumentRun)
  
  				CLASS_MEMBER_FIELD(runs)
  			END_CLASS_MEMBER(DocumentContainerRun)
  
  			BEGIN_CLASS_MEMBER(DocumentContentRun)
  				CLASS_MEMBER_BASE(DocumentRun)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(RepresentationText)
  			END_CLASS_MEMBER(DocumentContentRun)
  
  			BEGIN_CLASS_MEMBER(DocumentTextRun)
  				CLASS_MEMBER_BASE(DocumentContentRun)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DocumentTextRun>(), NO_PARAMETER)
  				
  				CLASS_MEMBER_FIELD(text)
  			END_CLASS_MEMBER(DocumentTextRun)
  
  			BEGIN_CLASS_MEMBER(DocumentInlineObjectRun)
  				CLASS_MEMBER_BASE(DocumentContentRun)
  				
  				CLASS_MEMBER_FIELD(size)
  				CLASS_MEMBER_FIELD(baseline)
  			END_CLASS_MEMBER(DocumentInlineObjectRun)
  
  			BEGIN_CLASS_MEMBER(DocumentImageRun)
  				CLASS_MEMBER_BASE(DocumentInlineObjectRun)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DocumentImageRun>(), NO_PARAMETER)
  				
  				CLASS_MEMBER_FIELD(image)
  				CLASS_MEMBER_FIELD(frameIndex)
  				CLASS_MEMBER_FIELD(source)
  			END_CLASS_MEMBER(DocumentImageRun)
  
  			BEGIN_CLASS_MEMBER(DocumentEmbeddedObjectRun)
  				CLASS_MEMBER_BASE(DocumentInlineObjectRun)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DocumentEmbeddedObjectRun>(), NO_PARAMETER)
  				
  				CLASS_MEMBER_FIELD(name)
  			END_CLASS_MEMBER(DocumentEmbeddedObjectRun)
  
  			BEGIN_CLASS_MEMBER(DocumentStylePropertiesRun)
  				CLASS_MEMBER_BASE(DocumentContainerRun)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DocumentStylePropertiesRun>(), NO_PARAMETER)
  				
  				CLASS_MEMBER_FIELD(style)
  			END_CLASS_MEMBER(DocumentStylePropertiesRun)
  
  			BEGIN_CLASS_MEMBER(DocumentStyleApplicationRun)
  				CLASS_MEMBER_BASE(DocumentContainerRun)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DocumentStyleApplicationRun>(), NO_PARAMETER)
  				
  				CLASS_MEMBER_FIELD(styleName)
  			END_CLASS_MEMBER(DocumentStyleApplicationRun)
  
  			BEGIN_CLASS_MEMBER(DocumentHyperlinkRun::Package)
  				CLASS_MEMBER_FIELD(hyperlinks)
  				CLASS_MEMBER_FIELD(row)
  				CLASS_MEMBER_FIELD(start)
  				CLASS_MEMBER_FIELD(end)
  			END_CLASS_MEMBER(DocumentHyperlinkRun::Package)
  
  			BEGIN_CLASS_MEMBER(DocumentHyperlinkRun)
  				CLASS_MEMBER_BASE(DocumentStyleApplicationRun)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DocumentHyperlinkRun>(), NO_PARAMETER)
  				
  				CLASS_MEMBER_FIELD(normalStyleName)
  				CLASS_MEMBER_FIELD(activeStyleName)
  				CLASS_MEMBER_FIELD(reference)
  			END_CLASS_MEMBER(DocumentHyperlinkRun)
  
  			BEGIN_CLASS_MEMBER(DocumentParagraphRun)
  				CLASS_MEMBER_BASE(DocumentContainerRun)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DocumentParagraphRun>(), NO_PARAMETER)
  
  				CLASS_MEMBER_FIELD(alignment)
  
  				CLASS_MEMBER_METHOD_OVERLOAD(GetText, {L"skipNonTextContent"}, WString(DocumentParagraphRun::*)(bool))
  			END_CLASS_MEMBER(DocumentParagraphRun)
  
  			BEGIN_CLASS_MEMBER(DocumentStyle)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DocumentStyle>(), NO_PARAMETER)
  				
  				CLASS_MEMBER_FIELD(parentStyleName)
  				CLASS_MEMBER_FIELD(styles)
  				CLASS_MEMBER_FIELD(resolvedStyles)
  			END_CLASS_MEMBER(DocumentStyle)
  
  			BEGIN_CLASS_MEMBER(DocumentModel)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DocumentModel>(), NO_PARAMETER)
  				
  				CLASS_MEMBER_FIELD(paragraphs)
  				CLASS_MEMBER_FIELD(styles)
  
  				CLASS_MEMBER_METHOD_OVERLOAD(GetText, {L"skipNonTextContent"}, WString(DocumentModel::*)(bool))
  				CLASS_MEMBER_STATIC_METHOD(LoadFromXml, {L"resource" _ L"xml" _ L"workingDirectory" _ L"errors"})
  				CLASS_MEMBER_METHOD_OVERLOAD(SaveToXml, NO_PARAMETER, Ptr<XmlDocument>(DocumentModel::*)())
  			END_CLASS_MEMBER(DocumentModel)
  
  			BEGIN_CLASS_MEMBER(GuiResourceNodeBase)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Parent)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Name)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ResourcePath)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(FileContentPath)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(FileAbsolutePath)
  				CLASS_MEMBER_METHOD(SetFileContentPath, { L"content" _ L"absolute" })
  			END_CLASS_MEMBER(GuiResourceNodeBase)
  
  			BEGIN_STRUCT_MEMBER(GuiResourceLocation)
  				STRUCT_MEMBER(resourcePath)
  				STRUCT_MEMBER(filePath)
  			END_STRUCT_MEMBER(GuiResourceLocation)
  
  			BEGIN_STRUCT_MEMBER(GuiResourceTextPos)
  				STRUCT_MEMBER(originalLocation)
  				STRUCT_MEMBER(row)
  				STRUCT_MEMBER(column)
  			END_STRUCT_MEMBER(GuiResourceTextPos)
  
  			BEGIN_STRUCT_MEMBER(GuiResourceError)
  				STRUCT_MEMBER(location)
  				STRUCT_MEMBER(position)
  				STRUCT_MEMBER(message)
  			END_STRUCT_MEMBER(GuiResourceError)
  
  			BEGIN_CLASS_MEMBER(GuiResourceItem)
  				CLASS_MEMBER_BASE(GuiResourceNodeBase)
  				
  				CLASS_MEMBER_METHOD(GetContent, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(SetContent, {L"typeName" _ L"value"})
  
  				CLASS_MEMBER_METHOD(AsImage, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(AsXml, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(AsString, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(AsDocument, NO_PARAMETER)
  			END_CLASS_MEMBER(GuiResourceItem)
  
  			BEGIN_CLASS_MEMBER(GuiResourceFolder)
  				CLASS_MEMBER_BASE(GuiResourceNodeBase)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Items)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Folders)
  
  				CLASS_MEMBER_METHOD(GetItem, { L"name" })
  				CLASS_MEMBER_METHOD(AddItem, { L"name" _ L"item" })
  				CLASS_MEMBER_METHOD(RemoveItem, { L"name" })
  				CLASS_MEMBER_METHOD(ClearItems, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetFolder, { L"name" })
  				CLASS_MEMBER_METHOD(AddFolder, { L"name" _ L"folder" })
  				CLASS_MEMBER_METHOD(RemoveFolder, { L"name" })
  				CLASS_MEMBER_METHOD(ClearFolders, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetValueByPath, { L"path" })
  				CLASS_MEMBER_METHOD(GetFolderByPath, { L"path" })
  				CLASS_MEMBER_METHOD(CreateValueByPath, { L"path" _ L"typeName" _ L"value" })
  			END_CLASS_MEMBER(GuiResourceFolder)
  
  			BEGIN_CLASS_MEMBER(GuiResource)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<GuiResource>(), NO_PARAMETER)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(WorkingDirectory)
  
  				CLASS_MEMBER_METHOD(GetDocumentByPath, {L"path"})
  				CLASS_MEMBER_METHOD(GetImageByPath, {L"path"})
  				CLASS_MEMBER_METHOD(GetXmlByPath, {L"path"})
  				CLASS_MEMBER_METHOD(GetStringByPath, {L"path"})
  			END_CLASS_MEMBER(GuiResource)
  
  			BEGIN_CLASS_MEMBER(GuiResourcePathResolver)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<GuiResourcePathResolver>(Ptr<GuiResource>, WString), {L"resource" _ L"workingDirectory"})
  
  				CLASS_MEMBER_METHOD(ResolveResource, {L"protocol" _ L"path"})
  			END_CLASS_MEMBER(GuiResourcePathResolver)
  
  			BEGIN_ENUM_ITEM(GuiResourceUsage)
  				ENUM_CLASS_ITEM(DataOnly)
  				ENUM_CLASS_ITEM(InstanceClass)
  			END_ENUM_ITEM(GuiResourceUsage)
  
  				BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiResourceManager)
  					CLASS_MEMBER_STATIC_EXTERNALMETHOD(GetResourceManager, NO_PARAMETER, IGuiResourceManager*(*)(), vl::presentation::GetResourceManager)
  				CLASS_MEMBER_METHOD(SetResource, { L"name" _ L"resource" _ L"usage" })
  				CLASS_MEMBER_METHOD(GetResource, { L"name" })
  				CLASS_MEMBER_METHOD(GetResourceFromClassName, { L"name" })
  			END_INTERFACE_MEMBER(IGuiResourceManager)
  
  			BEGIN_ENUM_ITEM(INativeWindowListener::HitTestResult)
  				ENUM_ITEM_NAMESPACE(INativeWindowListener)
  				ENUM_NAMESPACE_ITEM(BorderNoSizing)
  				ENUM_NAMESPACE_ITEM(BorderLeft)
  				ENUM_NAMESPACE_ITEM(BorderRight)
  				ENUM_NAMESPACE_ITEM(BorderTop)
  				ENUM_NAMESPACE_ITEM(BorderBottom)
  				ENUM_NAMESPACE_ITEM(BorderLeftTop)
  				ENUM_NAMESPACE_ITEM(BorderRightTop)
  				ENUM_NAMESPACE_ITEM(BorderLeftBottom)
  				ENUM_NAMESPACE_ITEM(BorderRightBottom)
  				ENUM_NAMESPACE_ITEM(Title)
  				ENUM_NAMESPACE_ITEM(ButtonMinimum)
  				ENUM_NAMESPACE_ITEM(ButtonMaximum)
  				ENUM_NAMESPACE_ITEM(ButtonClose)
  				ENUM_NAMESPACE_ITEM(Client)
  				ENUM_NAMESPACE_ITEM(Icon)
  				ENUM_NAMESPACE_ITEM(NoDecision)
  			END_ENUM_ITEM(INativeWindowListener::HitTestResult)
  
  #undef GUI_TEMPLATE_PROPERTY_REFLECTION
  #undef _
  
  /***********************************************************************
  Type Loader
  ***********************************************************************/
  
  			class GuiBasicTypeLoader : public Object, public ITypeLoader
  			{
  			public:
  				void Load(ITypeManager* manager)
  				{
  					GUIREFLECTIONBASIC_TYPELIST(ADD_TYPE_INFO)
  				}
  
  				void Unload(ITypeManager* manager)
  				{
  				}
  			};
  
  #endif
  
  			bool LoadGuiBasicTypes()
  			{
  #ifndef VCZH_DEBUG_NO_REFLECTION
  				ITypeManager* manager=GetGlobalTypeManager();
  				if(manager)
  				{
  					Ptr<ITypeLoader> loader=new GuiBasicTypeLoader;
  					return manager->AddTypeLoader(loader);
  				}
  #endif
  				return false;
  			}
  		}
  	}
  }
  
  /***********************************************************************
  .\TYPEDESCRIPTORS\GUIREFLECTIONCOMPOSITIONS.CPP
  ***********************************************************************/
  
  namespace vl
  {
  	namespace reflection
  	{
  		namespace description
  		{
  			using namespace collections;
  			using namespace presentation;
  			using namespace presentation::compositions;
  			using namespace presentation::controls;
  
  #ifndef VCZH_DEBUG_NO_REFLECTION
  
  #define _ ,
  
  #define INTERFACE_IDENTIFIER(INTERFACE)\
  	CLASS_MEMBER_STATIC_EXTERNALMETHOD(GetIdentifier, NO_PARAMETER, WString(*)(), vl::presentation::controls::QueryServiceHelper<::INTERFACE>::GetIdentifier)
  
  /***********************************************************************
  Type Declaration (Extra)
  ***********************************************************************/
  
  			BEGIN_ENUM_ITEM(KeyDirection)
  				ENUM_CLASS_ITEM(Up)
  				ENUM_CLASS_ITEM(Down)
  				ENUM_CLASS_ITEM(Left)
  				ENUM_CLASS_ITEM(Right)
  				ENUM_CLASS_ITEM(Home)
  				ENUM_CLASS_ITEM(End)
  				ENUM_CLASS_ITEM(PageUp)
  				ENUM_CLASS_ITEM(PageDown)
  				ENUM_CLASS_ITEM(PageLeft)
  				ENUM_CLASS_ITEM(PageRight)
  			END_ENUM_ITEM(KeyDirection)
  
  			BEGIN_INTERFACE_MEMBER(IGuiAxis)
  				CLASS_MEMBER_METHOD(RealSizeToVirtualSize, {L"size"})
  				CLASS_MEMBER_METHOD(VirtualSizeToRealSize, {L"size"})
  				CLASS_MEMBER_METHOD(RealPointToVirtualPoint, {L"realFullSize" _ L"point"})
  				CLASS_MEMBER_METHOD(VirtualPointToRealPoint, {L"realFullSize" _ L"point"})
  				CLASS_MEMBER_METHOD(RealRectToVirtualRect, {L"realFullSize" _ L"rect"})
  				CLASS_MEMBER_METHOD(VirtualRectToRealRect, {L"realFullSize" _ L"rect"})
  				CLASS_MEMBER_METHOD(RealMarginToVirtualMargin, {L"margin"})
  				CLASS_MEMBER_METHOD(VirtualMarginToRealMargin, {L"margin"})
  				CLASS_MEMBER_METHOD(RealKeyDirectionToVirtualKeyDirection, {L"key"})
  			END_INTERFACE_MEMBER(IGuiAxis)
  
  			BEGIN_CLASS_MEMBER(GuiDefaultAxis)
  				CLASS_MEMBER_BASE(IGuiAxis)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<GuiDefaultAxis>(), NO_PARAMETER)
  			END_CLASS_MEMBER(GuiDefaultAxis)
  
  			BEGIN_CLASS_MEMBER(GuiAxis)
  				CLASS_MEMBER_BASE(IGuiAxis)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<GuiAxis>(AxisDirection), {L"axisDirection"})
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Direction)
  			END_CLASS_MEMBER(GuiAxis)
  
  			BEGIN_ENUM_ITEM(GuiGraphicsComposition::MinSizeLimitation)
  				ENUM_ITEM_NAMESPACE(GuiGraphicsComposition)
  				ENUM_NAMESPACE_ITEM(NoLimit)
  				ENUM_NAMESPACE_ITEM(LimitToElement)
  				ENUM_NAMESPACE_ITEM(LimitToElementAndChildren)
  			END_ENUM_ITEM(GuiGraphicsComposition::MinSizeLimitation)
  
  			BEGIN_ENUM_ITEM(GuiStackComposition::Direction)
  				ENUM_ITEM_NAMESPACE(GuiStackComposition)
  				ENUM_NAMESPACE_ITEM(Horizontal)
  				ENUM_NAMESPACE_ITEM(Vertical)
  				ENUM_NAMESPACE_ITEM(ReversedHorizontal)
  				ENUM_NAMESPACE_ITEM(ReversedVertical)
  			END_ENUM_ITEM(GuiStackComposition::Direction)
  
  			BEGIN_STRUCT_MEMBER(GuiCellOption)
  				STRUCT_MEMBER(composeType)
  				STRUCT_MEMBER(absolute)
  				STRUCT_MEMBER(percentage)
  			END_STRUCT_MEMBER(GuiCellOption)
  
  			BEGIN_ENUM_ITEM(GuiCellOption::ComposeType)
  				ENUM_ITEM_NAMESPACE(GuiCellOption)
  				ENUM_NAMESPACE_ITEM(Absolute)
  				ENUM_NAMESPACE_ITEM(Percentage)
  				ENUM_NAMESPACE_ITEM(MinSize)
  			END_ENUM_ITEM(GuiCellOption::ComposeType)
  
  			BEGIN_STRUCT_MEMBER(GuiFlowOption)
  				STRUCT_MEMBER(baseline)
  				STRUCT_MEMBER(percentage)
  				STRUCT_MEMBER(distance)
  			END_STRUCT_MEMBER(GuiFlowOption)
  
  			BEGIN_ENUM_ITEM(GuiFlowOption::BaselineType)
  				ENUM_ITEM_NAMESPACE(GuiFlowOption)
  				ENUM_NAMESPACE_ITEM(Percentage)
  				ENUM_NAMESPACE_ITEM(FromTop)
  				ENUM_NAMESPACE_ITEM(FromBottom)
  			END_ENUM_ITEM(GuiFlowOption::BaselineType)
  
  			BEGIN_ENUM_ITEM(FlowAlignment)
  				ENUM_CLASS_ITEM(Left)
  				ENUM_CLASS_ITEM(Center)
  				ENUM_CLASS_ITEM(Extend)
  			END_ENUM_ITEM(FlowAlignment)
  
  			BEGIN_ENUM_ITEM(GuiSideAlignedComposition::Direction)
  				ENUM_ITEM_NAMESPACE(GuiSideAlignedComposition)
  				ENUM_NAMESPACE_ITEM(Left)
  				ENUM_NAMESPACE_ITEM(Top)
  				ENUM_NAMESPACE_ITEM(Right)
  				ENUM_NAMESPACE_ITEM(Bottom)
  			END_ENUM_ITEM(GuiSideAlignedComposition::Direction)
  
  			BEGIN_ENUM_ITEM(ResponsiveDirection)
  				ENUM_CLASS_ITEM(Horizontal)
  				ENUM_CLASS_ITEM(Vertical)
  				ENUM_CLASS_ITEM(Both)
  			END_ENUM_ITEM(ResponsiveDirection)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiShortcutKeyItem)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Manager)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Name)
  			END_INTERFACE_MEMBER(IGuiShortcutKeyItem)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiShortcutKeyManager)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ItemCount)
  
  				CLASS_MEMBER_METHOD(GetItem, {L"index"})
  			END_INTERFACE_MEMBER(IGuiShortcutKeyManager)
  
  			BEGIN_CLASS_MEMBER(GuiShortcutKeyManager)
  				CLASS_MEMBER_BASE(IGuiShortcutKeyManager)
  				CLASS_MEMBER_CONSTRUCTOR(GuiShortcutKeyManager*(), NO_PARAMETER)
  
  				CLASS_MEMBER_METHOD(CreateShortcut, {L"ctrl" _ L"shift" _ L"alt" _ L"ket"})
  				CLASS_MEMBER_METHOD(DestroyShortcut, {L"ctrl" _ L"shift" _ L"alt" _ L"ket"})
  				CLASS_MEMBER_METHOD(TryGetShortcut, {L"ctrl" _ L"shift" _ L"alt" _ L"ket"})
  			END_CLASS_MEMBER(GuiShortcutKeyManager)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiAltAction)
  				INTERFACE_IDENTIFIER(vl::presentation::compositions::IGuiAltAction)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Alt)
  
  				CLASS_MEMBER_METHOD(IsAltEnabled, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(IsAltAvailable, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetAltComposition, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetActivatingAltHost, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(OnActiveAlt, NO_PARAMETER)
  			END_INTERFACE_MEMBER(IGuiAltAction)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiAltActionContainer)
  				INTERFACE_IDENTIFIER(vl::presentation::compositions::IGuiAltActionContainer)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(AltActionCount)
  				
  				CLASS_MEMBER_METHOD(GetAltAction, { L"index" })
  			END_INTERFACE_MEMBER(IGuiAltActionContainer)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiAltActionHost)
  				INTERFACE_IDENTIFIER(vl::presentation::compositions::IGuiAltActionHost)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(AltComposition)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(PreviousAltHost)
  
  				CLASS_MEMBER_METHOD(OnActivatedAltHost, { L"previousHost" })
  				CLASS_MEMBER_METHOD(OnDeactivatedAltHost, NO_PARAMETER)
  				CLASS_MEMBER_EXTERNALMETHOD(CollectAltActions, {L"actions"}, void(IGuiAltActionHost::*)(List<IGuiAltAction*>&), vl::reflection::description::IGuiAltActionHost_CollectAltActions)
  			END_INTERFACE_MEMBER(IGuiAltActionHost)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiTabAction)
  				INTERFACE_IDENTIFIER(vl::presentation::compositions::IGuiTabAction)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(AcceptTabInput)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(TabPriority)
  				CLASS_MEMBER_METHOD(IsTabEnabled, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(IsTabAvailable, NO_PARAMETER)
  			END_INTERFACE_MEMBER(IGuiTabAction)
  
  /***********************************************************************
  Type Declaration (Class)
  ***********************************************************************/
  
  			BEGIN_CLASS_MEMBER(GuiGraphicsComposition)
  
  				CLASS_MEMBER_EXTERNALMETHOD(SafeDelete, NO_PARAMETER, void(GuiGraphicsComposition::*)(), vl::presentation::compositions::SafeDeleteComposition)
  
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(leftButtonDown)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(leftButtonUp)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(leftButtonDoubleClick)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(middleButtonDown)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(middleButtonUp)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(middleButtonDoubleClick)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(rightButtonDown)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(rightButtonUp)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(rightButtonDoubleClick)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(horizontalWheel)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(verticalWheel)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(mouseMove)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(mouseEnter)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(mouseLeave)
  				
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(previewKey)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(keyDown)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(keyUp)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(systemKeyDown)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(systemKeyUp)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(previewCharInput)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(charInput)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(gotFocus)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(lostFocus)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(caretNotify)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(clipboardNotify)
  				CLASS_MEMBER_GUIEVENT_COMPOSITION(renderTargetChanged)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Parent)
  				CLASS_MEMBER_PROPERTY_FAST(OwnedElement)
  				CLASS_MEMBER_PROPERTY_FAST(Visible)
  				CLASS_MEMBER_PROPERTY_FAST(MinSizeLimitation)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(GlobalBounds)
  				CLASS_MEMBER_PROPERTY_FAST(TransparentToMouse)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(AssociatedControl)
  				CLASS_MEMBER_PROPERTY_FAST(AssociatedCursor)
  				CLASS_MEMBER_PROPERTY_FAST(AssociatedHitTestResult)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(RelatedControl)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(RelatedControlHost)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(RelatedCursor)
  				CLASS_MEMBER_PROPERTY_FAST(Margin)
  				CLASS_MEMBER_PROPERTY_FAST(InternalMargin)
  				CLASS_MEMBER_PROPERTY_FAST(PreferredMinSize)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ClientArea)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(MinPreferredClientSize)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(PreferredBounds)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Bounds)
  
  				CLASS_MEMBER_METHOD_RENAME(GetChildren, Children, NO_PARAMETER)
  				CLASS_MEMBER_PROPERTY_READONLY(Children, GetChildren)
  
  				CLASS_MEMBER_METHOD(AddChild, {L"child"})
  				CLASS_MEMBER_METHOD(InsertChild, {L"index" _ L"child"})
  				CLASS_MEMBER_METHOD(RemoveChild, {L"child"})
  				CLASS_MEMBER_METHOD(MoveChild, {L"child" _ L"newIndex"})
  				CLASS_MEMBER_METHOD(Render, {L"size"})
  				CLASS_MEMBER_METHOD(FindComposition, {L"location" _ L"forMouseEvent"})
  				CLASS_MEMBER_METHOD(ForceCalculateSizeImmediately, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(IsSizeAffectParent, NO_PARAMETER)
  			END_CLASS_MEMBER(GuiGraphicsComposition)
  
  			BEGIN_CLASS_MEMBER(GuiGraphicsSite)
  				CLASS_MEMBER_BASE(GuiGraphicsComposition)
  
  				CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(Bounds)
  			END_CLASS_MEMBER(GuiGraphicsSite)
  
  			BEGIN_CLASS_MEMBER(GuiWindowComposition)
  				CLASS_MEMBER_BASE(GuiGraphicsSite)
  				CLASS_MEMBER_CONSTRUCTOR(GuiWindowComposition*(), NO_PARAMETER)
  			END_CLASS_MEMBER(GuiWindowComposition)
  
  			BEGIN_CLASS_MEMBER(GuiBoundsComposition)
  				CLASS_MEMBER_BASE(GuiGraphicsSite)
  				CLASS_MEMBER_CONSTRUCTOR(GuiBoundsComposition*(), NO_PARAMETER)
  
  				CLASS_MEMBER_PROPERTY_FAST(SizeAffectParent)
  				CLASS_MEMBER_PROPERTY_EVENT_FAST(Bounds, BoundsChanged)
  				CLASS_MEMBER_PROPERTY_FAST(AlignmentToParent)
  				
  				CLASS_MEMBER_METHOD(IsAlignedToParent, NO_PARAMETER)
  			END_CLASS_MEMBER(GuiBoundsComposition)
  
  			BEGIN_CLASS_MEMBER(GuiStackComposition)
  				CLASS_MEMBER_BASE(GuiBoundsComposition)
  				CLASS_MEMBER_CONSTRUCTOR(GuiStackComposition*(), NO_PARAMETER)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(StackItems)
  
  				CLASS_MEMBER_PROPERTY_FAST(Direction)
  				CLASS_MEMBER_PROPERTY_FAST(Padding)
  				CLASS_MEMBER_PROPERTY_FAST(ExtraMargin)
  
  				CLASS_MEMBER_METHOD(InsertStackItem, {L"index" _ L"item"})
  				CLASS_MEMBER_METHOD(IsStackItemClipped, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(EnsureVisible, {L"index"})
  			END_CLASS_MEMBER(GuiStackComposition)
  
  			BEGIN_CLASS_MEMBER(GuiStackItemComposition)
  				CLASS_MEMBER_BASE(GuiGraphicsSite)
  				CLASS_MEMBER_CONSTRUCTOR(GuiStackItemComposition*(), NO_PARAMETER)
  
  				CLASS_MEMBER_PROPERTY_EVENT_FAST(Bounds, BoundsChanged)
  				CLASS_MEMBER_PROPERTY_FAST(ExtraMargin)
  			END_CLASS_MEMBER(GuiStackItemComposition)
  
  			BEGIN_CLASS_MEMBER(GuiTableComposition)
  				CLASS_MEMBER_BASE(GuiBoundsComposition)
  				CLASS_MEMBER_CONSTRUCTOR(GuiTableComposition*(), NO_PARAMETER)
  
  				CLASS_MEMBER_GUIEVENT(ConfigChanged)
  
  				CLASS_MEMBER_PROPERTY_FAST(CellPadding)
  				CLASS_MEMBER_PROPERTY_FAST(BorderVisible)
  
  				CLASS_MEMBER_METHOD(GetRows, NO_PARAMETER)
  				CLASS_MEMBER_EXTERNALMETHOD(SetRows, {L"value"}, void(GuiTableComposition::*)(vint), vl::reflection::description::GuiTableComposition_SetRows)
  				CLASS_MEMBER_PROPERTY(Rows, GetRows, SetRows)
  				CLASS_MEMBER_METHOD(GetColumns, NO_PARAMETER)
  				CLASS_MEMBER_EXTERNALMETHOD(SetColumns, {L"value"}, void(GuiTableComposition::*)(vint), vl::reflection::description::GuiTableComposition_SetColumns)
  				CLASS_MEMBER_PROPERTY(Columns, GetColumns, SetColumns)
  				CLASS_MEMBER_METHOD(SetRowsAndColumns, {L"rows" _ L"columns"})
  
  				CLASS_MEMBER_METHOD(GetSitedCell, {L"rows" _ L"columns"})
  				CLASS_MEMBER_METHOD(GetRowOption, {L"row"})
  				CLASS_MEMBER_METHOD(SetRowOption, {L"row" _ L"option"})
  				CLASS_MEMBER_METHOD(GetColumnOption, {L"column"})
  				CLASS_MEMBER_METHOD(SetColumnOption, {L"column" _ L"option"})
  				CLASS_MEMBER_METHOD(GetCellArea, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(UpdateCellBounds, NO_PARAMETER)
  			END_CLASS_MEMBER(GuiTableComposition)
  
  			BEGIN_CLASS_MEMBER(GuiCellComposition)
  				CLASS_MEMBER_BASE(GuiGraphicsSite)
  				CLASS_MEMBER_CONSTRUCTOR(GuiCellComposition*(), NO_PARAMETER)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(TableParent)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Row)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(RowSpan)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Column)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ColumnSpan)
  
  				CLASS_MEMBER_METHOD(SetSite, {L"row" _ L"column" _ L"rowSpan" _ L"columnSpan"})
  			END_CLASS_MEMBER(GuiCellComposition)
  
  			BEGIN_CLASS_MEMBER(GuiTableSplitterCompositionBase)
  				CLASS_MEMBER_BASE(GuiGraphicsSite)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(TableParent)
  			END_CLASS_MEMBER(GuiRowSplitterComposition)
  
  			BEGIN_CLASS_MEMBER(GuiRowSplitterComposition)
  				CLASS_MEMBER_BASE(GuiTableSplitterCompositionBase)
  				CLASS_MEMBER_CONSTRUCTOR(GuiRowSplitterComposition*(), NO_PARAMETER)
  
  				CLASS_MEMBER_PROPERTY_FAST(RowsToTheTop)
  			END_CLASS_MEMBER(GuiRowSplitterComposition)
  
  			BEGIN_CLASS_MEMBER(GuiColumnSplitterComposition)
  				CLASS_MEMBER_BASE(GuiTableSplitterCompositionBase)
  				CLASS_MEMBER_CONSTRUCTOR(GuiColumnSplitterComposition*(), NO_PARAMETER)
  
  				CLASS_MEMBER_PROPERTY_FAST(ColumnsToTheLeft)
  			END_CLASS_MEMBER(GuiColumnSplitterComposition)
  
  			BEGIN_CLASS_MEMBER(GuiFlowComposition)
  				CLASS_MEMBER_BASE(GuiBoundsComposition)
  				CLASS_MEMBER_CONSTRUCTOR(GuiFlowComposition*(), NO_PARAMETER)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(FlowItems)
  				CLASS_MEMBER_PROPERTY_FAST(ExtraMargin)
  				CLASS_MEMBER_PROPERTY_FAST(RowPadding)
  				CLASS_MEMBER_PROPERTY_FAST(ColumnPadding)
  				CLASS_MEMBER_PROPERTY_FAST(Axis)
  				CLASS_MEMBER_PROPERTY_FAST(Alignment)
  			END_CLASS_MEMBER(GuiFlowComposition)
  
  			BEGIN_CLASS_MEMBER(GuiFlowItemComposition)
  				CLASS_MEMBER_BASE(GuiGraphicsSite)
  				CLASS_MEMBER_CONSTRUCTOR(GuiFlowItemComposition*(), NO_PARAMETER)
  
  				CLASS_MEMBER_PROPERTY_EVENT_FAST(Bounds, BoundsChanged)
  				CLASS_MEMBER_PROPERTY_FAST(ExtraMargin)
  				CLASS_MEMBER_PROPERTY_FAST(FlowOption)
  			END_CLASS_MEMBER(GuiFlowItemComposition)
  
  			BEGIN_CLASS_MEMBER(GuiSideAlignedComposition)
  				CLASS_MEMBER_BASE(GuiGraphicsSite)
  				CLASS_MEMBER_CONSTRUCTOR(GuiSideAlignedComposition*(), NO_PARAMETER)
  				
  				CLASS_MEMBER_PROPERTY_FAST(Direction)
  				CLASS_MEMBER_PROPERTY_FAST(MaxLength)
  				CLASS_MEMBER_PROPERTY_FAST(MaxRatio)
  			END_CLASS_MEMBER(GuiSideAlignedComposition)
  
  			BEGIN_CLASS_MEMBER(GuiPartialViewComposition)
  				CLASS_MEMBER_BASE(GuiGraphicsSite)
  				CLASS_MEMBER_CONSTRUCTOR(GuiPartialViewComposition*(), NO_PARAMETER)
  				
  				CLASS_MEMBER_PROPERTY_FAST(WidthRatio)
  				CLASS_MEMBER_PROPERTY_FAST(WidthPageSize)
  				CLASS_MEMBER_PROPERTY_FAST(HeightRatio)
  				CLASS_MEMBER_PROPERTY_FAST(HeightPageSize)
  			END_CLASS_MEMBER(GuiPartialViewComposition)
  
  			BEGIN_CLASS_MEMBER(GuiSharedSizeItemComposition)
  				CLASS_MEMBER_BASE(GuiBoundsComposition)
  				CLASS_MEMBER_CONSTRUCTOR(GuiSharedSizeItemComposition*(), NO_PARAMETER)
  
  				CLASS_MEMBER_PROPERTY_FAST(Group)
  				CLASS_MEMBER_PROPERTY_FAST(SharedWidth)
  				CLASS_MEMBER_PROPERTY_FAST(SharedHeight)
  			END_CLASS_MEMBER(GuiSubComponentMeasurer)
  
  			BEGIN_CLASS_MEMBER(GuiSharedSizeRootComposition)
  				CLASS_MEMBER_BASE(GuiBoundsComposition)
  				CLASS_MEMBER_CONSTRUCTOR(GuiSharedSizeRootComposition*(), NO_PARAMETER)
  			END_CLASS_MEMBER(GuiSubComponentMeasurerSource)
  
  			BEGIN_CLASS_MEMBER(GuiRepeatCompositionBase)
  				CLASS_MEMBER_GUIEVENT(ItemInserted)
  				CLASS_MEMBER_GUIEVENT(ItemRemoved)
  				CLASS_MEMBER_PROPERTY_FAST(ItemTemplate)
  				CLASS_MEMBER_PROPERTY_FAST(ItemSource)
  			END_CLASS_MEMBER(GuiRepeatCompositionBase)
  
  			BEGIN_CLASS_MEMBER(GuiRepeatStackComposition)
  				CLASS_MEMBER_BASE(GuiStackComposition)
  				CLASS_MEMBER_BASE(GuiRepeatCompositionBase)
  				CLASS_MEMBER_CONSTRUCTOR(GuiRepeatStackComposition*(), NO_PARAMETER)
  			END_CLASS_MEMBER(GuiRepeatStackComposition)
  
  			BEGIN_CLASS_MEMBER(GuiRepeatFlowComposition)
  				CLASS_MEMBER_BASE(GuiFlowComposition)
  				CLASS_MEMBER_BASE(GuiRepeatCompositionBase)
  				CLASS_MEMBER_CONSTRUCTOR(GuiRepeatFlowComposition*(), NO_PARAMETER)
  			END_CLASS_MEMBER(GuiRepeatFlowComposition)
  
  			BEGIN_CLASS_MEMBER(GuiResponsiveCompositionBase)
  				CLASS_MEMBER_BASE(GuiBoundsComposition)
  
  				CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(LevelCount)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(CurrentLevel)
  				CLASS_MEMBER_PROPERTY_FAST(Direction)
  				CLASS_MEMBER_METHOD(LevelDown, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(LevelUp, NO_PARAMETER)
  			END_CLASS_MEMBER(GuiResponsiveCompositionBase)
  
  			BEGIN_CLASS_MEMBER(GuiResponsiveSharedComposition)
  				CLASS_MEMBER_BASE(GuiBoundsComposition)
  				CLASS_MEMBER_CONSTRUCTOR(GuiResponsiveSharedComposition*(), NO_PARAMETER)
  				CLASS_MEMBER_PROPERTY_FAST(Shared)
  			END_CLASS_MEMBER(GuiResponsiveSharedComposition)
  
  			BEGIN_CLASS_MEMBER(GuiResponsiveViewComposition)
  				CLASS_MEMBER_BASE(GuiResponsiveCompositionBase)
  				CLASS_MEMBER_CONSTRUCTOR(GuiResponsiveViewComposition*(), NO_PARAMETER)
  
  				CLASS_MEMBER_GUIEVENT(BeforeSwitchingView)
  					
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(CurrentView)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(SharedControls)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Views)
  			END_CLASS_MEMBER(GuiResponsiveViewComposition)
  
  			BEGIN_CLASS_MEMBER(GuiResponsiveFixedComposition)
  				CLASS_MEMBER_BASE(GuiResponsiveCompositionBase)
  				CLASS_MEMBER_CONSTRUCTOR(GuiResponsiveFixedComposition*(), NO_PARAMETER)
  			END_CLASS_MEMBER(GuiResponsiveFixedComposition)
  
  			BEGIN_CLASS_MEMBER(GuiResponsiveStackComposition)
  				CLASS_MEMBER_BASE(GuiResponsiveCompositionBase)
  				CLASS_MEMBER_CONSTRUCTOR(GuiResponsiveStackComposition*(), NO_PARAMETER)
  			END_CLASS_MEMBER(GuiResponsiveStackComposition)
  
  			BEGIN_CLASS_MEMBER(GuiResponsiveGroupComposition)
  				CLASS_MEMBER_BASE(GuiResponsiveCompositionBase)
  				CLASS_MEMBER_CONSTRUCTOR(GuiResponsiveGroupComposition*(), NO_PARAMETER)
  			END_CLASS_MEMBER(GuiResponsiveGroupComposition)
  
  			BEGIN_CLASS_MEMBER(GuiResponsiveContainerComposition)
  				CLASS_MEMBER_BASE(GuiBoundsComposition)
  				CLASS_MEMBER_CONSTRUCTOR(GuiResponsiveContainerComposition*(), NO_PARAMETER)
  
  				CLASS_MEMBER_PROPERTY_FAST(ResponsiveTarget)
  			END_CLASS_MEMBER(GuiResponsiveContainerComposition)
  
  #undef INTERFACE_IDENTIFIER
  #undef _
  
  /***********************************************************************
  Type Loader
  ***********************************************************************/
  
  			class GuiCompositionTypeLoader : public Object, public ITypeLoader
  			{
  			public:
  				void Load(ITypeManager* manager)
  				{
  					GUIREFLECTIONCOMPOSITION_TYPELIST(ADD_TYPE_INFO)
  				}
  
  				void Unload(ITypeManager* manager)
  				{
  				}
  			};
  
  #endif
  
  			bool LoadGuiCompositionTypes()
  			{
  #ifndef VCZH_DEBUG_NO_REFLECTION
  				ITypeManager* manager=GetGlobalTypeManager();
  				if(manager)
  				{
  					Ptr<ITypeLoader> loader=new GuiCompositionTypeLoader;
  					return manager->AddTypeLoader(loader);
  				}
  #endif
  				return false;
  			}
  		}
  	}
  }
  
  /***********************************************************************
  .\TYPEDESCRIPTORS\GUIREFLECTIONCONTROLS.CPP
  ***********************************************************************/
  
  namespace vl
  {
  	namespace reflection
  	{
  		namespace description
  		{
  			using namespace presentation;
  			using namespace presentation::templates;
  			using namespace presentation::controls;
  			using namespace presentation::controls::list;
  			using namespace presentation::controls::tree;
  			using namespace presentation::elements::text;
  			using namespace presentation::theme;
  
  #ifndef VCZH_DEBUG_NO_REFLECTION
  
  #define _ ,
  
  #define CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(CONTROL)\
  	CLASS_MEMBER_CONSTRUCTOR(CONTROL*(ThemeName), {L"themeName"})\
  
  #define CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(CONTROL)\
  	CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(CONTROL)\
  	CLASS_MEMBER_PROPERTY_READONLY_FAST(ControlTemplateObject)\
  
  #define CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(CONTROL, TYPE2, PARAM2)\
  	CLASS_MEMBER_CONSTRUCTOR(CONTROL*(ThemeName, TYPE2), {L"themeName" _ L ## #PARAM2 })\
  
  #define CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2(CONTROL, TYPE2, PARAM2)\
  	CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(CONTROL, TYPE2, PARAM2)\
  	CLASS_MEMBER_PROPERTY_READONLY_FAST(ControlTemplateObject)\
  
  #define CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_3(CONTROL, TYPE2, PARAM2, TYPE3, PARAM3)\
  	CLASS_MEMBER_CONSTRUCTOR(CONTROL*(ThemeName, TYPE2, TYPE3), {L"themeName" _ L ## #PARAM2 _ L ## #PARAM3})\
  
  #define CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_3(CONTROL, TYPE2, PARAM2, TYPE3, PARAM3)\
  	CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_3(CONTROL, TYPE2, PARAM2, TYPE3, PARAM3)\
  	CLASS_MEMBER_PROPERTY_READONLY_FAST(ControlTemplateObject)\
  
  #define INTERFACE_IDENTIFIER(INTERFACE)\
  	CLASS_MEMBER_STATIC_EXTERNALMETHOD(GetIdentifier, NO_PARAMETER, WString(*)(), vl::presentation::controls::QueryServiceHelper<::INTERFACE>::GetIdentifier)
  
  /***********************************************************************
  Type Declaration (Extra)
  ***********************************************************************/
  
  			BEGIN_CLASS_MEMBER(GuiApplication)
  				CLASS_MEMBER_STATIC_EXTERNALMETHOD(GetApplication, NO_PARAMETER, GuiApplication*(*)(), vl::presentation::controls::GetApplication)
  
  				CLASS_MEMBER_EVENT(LocaleChanged)
  				CLASS_MEMBER_PROPERTY_EVENT_FAST(Locale, LocaleChanged)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(MainWindow)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(TooltipOwner)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ExecutablePath)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ExecutableFolder)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Windows)
  				
  				CLASS_MEMBER_METHOD(Run, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ShowTooltip, {L"owner" _ L"tooltip" _ L"preferredContentWidth" _ L"location"})
  				CLASS_MEMBER_METHOD(CloseTooltip, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(IsInMainThread, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(InvokeAsync, {L"proc"})
  				CLASS_MEMBER_METHOD(InvokeInMainThread, {L"controlHost" _ L"proc"})
  				CLASS_MEMBER_METHOD(InvokeInMainThreadAndWait, {L"controlHost" _ L"proc" _ L"milliseconds"})
  				CLASS_MEMBER_METHOD(DelayExecute, {L"proc" _ L"milliseconds"})
  				CLASS_MEMBER_METHOD(DelayExecuteInMainThread, {L"proc" _ L"milliseconds"})
  				CLASS_MEMBER_METHOD(RunGuiTask, { L"controlHost" _ L"proc" })
  			END_CLASS_MEMBER(GuiApplication)
  
  			BEGIN_ENUM_ITEM(ThemeName)
  #define GUI_DEFINE_THEME_NAME(TEMPLATE, CONTROL) ENUM_CLASS_ITEM(CONTROL)
  				GUI_CONTROL_TEMPLATE_TYPES(GUI_DEFINE_THEME_NAME)
  #undef GUI_DEFINE_THEME_NAME
  			END_ENUM_ITEM(ThemeName)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(ITheme)
  				CLASS_MEMBER_STATIC_EXTERNALMETHOD(GetCurrentTheme, NO_PARAMETER, ITheme*(*)(), vl::presentation::theme::GetCurrentTheme)
  				CLASS_MEMBER_STATIC_EXTERNALMETHOD(RegisterTheme, {L"name" _ L"theme"}, bool(*)(const WString&, Ptr<ThemeTemplates>), vl::presentation::theme::RegisterTheme)
  				CLASS_MEMBER_STATIC_EXTERNALMETHOD(UnrgisterTheme, {L"name"}, Ptr<ThemeTemplates>(*)(const WString&), vl::presentation::theme::UnregisterTheme)
  
  				CLASS_MEMBER_METHOD(CreateStyle, {L"themeName"})
  			END_INTERFACE_MEMBER(ITheme)
  
  			BEGIN_CLASS_MEMBER(ThemeTemplates)
  				CLASS_MEMBER_BASE(GuiInstanceRootObject)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<ThemeTemplates>(), NO_PARAMETER)
  
  				CLASS_MEMBER_FIELD(Name)
  #define GUI_DEFINE_ITEM_PROPERTY(TEMPLATE, CONTROL) CLASS_MEMBER_FIELD(CONTROL)
  				GUI_CONTROL_TEMPLATE_TYPES(GUI_DEFINE_ITEM_PROPERTY)
  #undef GUI_DEFINE_ITEM_PROPERTY
  			END_CLASS_MEMBER(ThemeTemplates)
  
  			BEGIN_CLASS_MEMBER(GuiDialogBase)
  				CLASS_MEMBER_BASE(GuiComponent)
  			END_CLASS_MEMBER(GuiDialogBase)
  
  			BEGIN_CLASS_MEMBER(GuiMessageDialog)
  				CLASS_MEMBER_BASE(GuiDialogBase)
  				CLASS_MEMBER_CONSTRUCTOR(GuiMessageDialog*(), NO_PARAMETER)
  
  				CLASS_MEMBER_PROPERTY_FAST(Input)
  				CLASS_MEMBER_PROPERTY_FAST(DefaultButton)
  				CLASS_MEMBER_PROPERTY_FAST(Icon)
  				CLASS_MEMBER_PROPERTY_FAST(ModalOption)
  				CLASS_MEMBER_PROPERTY_FAST(Text)
  				CLASS_MEMBER_PROPERTY_FAST(Title)
  
  				CLASS_MEMBER_METHOD(ShowDialog, NO_PARAMETER)
  			END_CLASS_MEMBER(GuiMessageDialog)
  
  			BEGIN_CLASS_MEMBER(GuiColorDialog)
  				CLASS_MEMBER_BASE(GuiDialogBase)
  				CLASS_MEMBER_CONSTRUCTOR(GuiColorDialog*(), NO_PARAMETER)
  
  				CLASS_MEMBER_PROPERTY_FAST(EnabledCustomColor)
  				CLASS_MEMBER_PROPERTY_FAST(OpenedCustomColor)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SelectedColor)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(CustomColors)
  
  				CLASS_MEMBER_METHOD(ShowDialog, NO_PARAMETER)
  			END_CLASS_MEMBER(GuiColorDialog)
  
  			BEGIN_CLASS_MEMBER(GuiFontDialog)
  				CLASS_MEMBER_BASE(GuiDialogBase)
  				CLASS_MEMBER_CONSTRUCTOR(GuiFontDialog*(), NO_PARAMETER)
  
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SelectedFont)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SelectedColor)
  				CLASS_MEMBER_PROPERTY_FAST(ShowSelection)
  				CLASS_MEMBER_PROPERTY_FAST(ShowEffect)
  				CLASS_MEMBER_PROPERTY_FAST(ForceFontExist)
  
  				CLASS_MEMBER_METHOD(ShowDialog, NO_PARAMETER)
  			END_CLASS_MEMBER(GuiFontDialog)
  
  			BEGIN_CLASS_MEMBER(GuiFileDialogBase)
  				CLASS_MEMBER_BASE(GuiDialogBase)
  
  				CLASS_MEMBER_PROPERTY_FAST(Filter)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(FilterIndex)
  				CLASS_MEMBER_PROPERTY_FAST(EnabledPreview)
  				CLASS_MEMBER_PROPERTY_FAST(Title)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(FileName)
  				CLASS_MEMBER_PROPERTY_FAST(Directory)
  				CLASS_MEMBER_PROPERTY_FAST(DefaultExtension)
  				CLASS_MEMBER_PROPERTY_FAST(Options)
  			END_CLASS_MEMBER(GuiFileDialogBase)
  
  			BEGIN_CLASS_MEMBER(GuiOpenFileDialog)
  				CLASS_MEMBER_BASE(GuiFileDialogBase)
  				CLASS_MEMBER_CONSTRUCTOR(GuiOpenFileDialog*(), NO_PARAMETER)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(FileNames)
  				CLASS_MEMBER_METHOD(ShowDialog, NO_PARAMETER)
  			END_CLASS_MEMBER(GuiOpenFileDialog)
  
  			BEGIN_CLASS_MEMBER(GuiSaveFileDialog)
  				CLASS_MEMBER_BASE(GuiFileDialogBase)
  				CLASS_MEMBER_CONSTRUCTOR(GuiSaveFileDialog*(), NO_PARAMETER)
  				
  				CLASS_MEMBER_METHOD(ShowDialog, NO_PARAMETER)
  			END_CLASS_MEMBER(GuiSaveFileDialog)
  
  			BEGIN_CLASS_MEMBER(GuiSelectableButton::GroupController)
  				CLASS_MEMBER_BASE(GuiComponent)
  
  				CLASS_MEMBER_METHOD(Attach, {L"button"})
  				CLASS_MEMBER_METHOD(Detach, {L"button"})
  				CLASS_MEMBER_METHOD(OnSelectedChanged, {L"button"})
  			END_CLASS_MEMBER(GuiSelectableButton::GroupController)
  
  			BEGIN_CLASS_MEMBER(GuiSelectableButton::MutexGroupController)
  				CLASS_MEMBER_BASE(GuiSelectableButton::GroupController)
  				CLASS_MEMBER_CONSTRUCTOR(GuiSelectableButton::MutexGroupController*(), NO_PARAMETER)
  			END_CLASS_MEMBER(GuiSelectableButton::MutexGroupController)
  
  			BEGIN_INTERFACE_MEMBER(GuiListControl::IItemProviderCallback)
  				CLASS_MEMBER_BASE(IDescriptable)
  
  				CLASS_MEMBER_METHOD(OnAttached, {L"provider"})
  				CLASS_MEMBER_METHOD(OnItemModified, {L"start" _ L"count" _ L"newCount"})
  			END_INTERFACE_MEMBER(GuiListControl::IItemProviderCallback)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(GuiListControl::IItemArrangerCallback)
  				CLASS_MEMBER_BASE(IDescriptable)
  				CLASS_MEMBER_METHOD(RequestItem, {L"itemIndex" _ L"itemComposition"})
  				CLASS_MEMBER_METHOD(ReleaseItem, {L"style"})
  				CLASS_MEMBER_METHOD(SetViewLocation, {L"value"})
  				CLASS_MEMBER_METHOD(GetStylePreferredSize, {L"style"})
  				CLASS_MEMBER_METHOD(SetStyleAlignmentToParent, {L"style" _ L"margin"})
  				CLASS_MEMBER_METHOD(GetStyleBounds, {L"style"})
  				CLASS_MEMBER_METHOD(SetStyleBounds, {L"style" _ L"bounds"})
  				CLASS_MEMBER_METHOD(GetContainerComposition, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(OnTotalSizeChanged, NO_PARAMETER)
  			END_INTERFACE_MEMBER(GuiListControl::IItemArrangerCallback)
  
  			BEGIN_INTERFACE_MEMBER(GuiListControl::IItemProvider)
  				CLASS_MEMBER_BASE(IDescriptable)
  
  				CLASS_MEMBER_METHOD(AttachCallback, {L"value"})
  				CLASS_MEMBER_METHOD(DetachCallback, {L"value"})
  				CLASS_MEMBER_METHOD(PushEditing, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(PopEditing, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(IsEditing, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Count, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetTextValue, { L"itemIndex" })
  				CLASS_MEMBER_METHOD(GetBindingValue, { L"itemIndex" })
  				CLASS_MEMBER_METHOD(RequestView, {L"identifier"})
  			END_INTERFACE_MEMBER(GuiListControl::IItemProvider)
  
  			BEGIN_INTERFACE_MEMBER(GuiListControl::IItemArranger)
  				CLASS_MEMBER_BASE(GuiListControl::IItemProviderCallback)
  
  				CLASS_MEMBER_PROPERTY_FAST(Callback)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(TotalSize)
  				
  				CLASS_MEMBER_METHOD(AttachListControl, {L"value"})
  				CLASS_MEMBER_METHOD(DetachListControl, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetVisibleStyle, {L"itemIndex"})
  				CLASS_MEMBER_METHOD(GetVisibleIndex, {L"style"})
  				CLASS_MEMBER_METHOD(ReloadVisibleStyles, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(OnViewChanged, {L"bounds"})
  				CLASS_MEMBER_METHOD(FindItem, {L"itemIndex" _ L"key"})
  				CLASS_MEMBER_METHOD(EnsureItemVisible, {L"itemIndex"})
  				CLASS_MEMBER_METHOD(GetAdoptedSize, {L"expectedSize"})
  			END_INTERFACE_MEMBER(GuiListControl::IItemArranger)
  
  			BEGIN_CLASS_MEMBER(ItemProviderBase)
  				CLASS_MEMBER_BASE(GuiListControl::IItemProvider)
  			END_CLASS_MEMBER(ItemProviderBase)
  
  			BEGIN_CLASS_MEMBER(RangedItemArrangerBase)
  				CLASS_MEMBER_BASE(GuiListControl::IItemArranger)
  			END_CLASS_MEMBER(RangedItemArrangerBase)
  
  			BEGIN_CLASS_MEMBER(FixedHeightItemArranger)
  				CLASS_MEMBER_BASE(RangedItemArrangerBase)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<FixedHeightItemArranger>(), NO_PARAMETER)
  			END_CLASS_MEMBER(FixedHeightItemArranger)
  
  			BEGIN_CLASS_MEMBER(FixedSizeMultiColumnItemArranger)
  				CLASS_MEMBER_BASE(RangedItemArrangerBase)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<FixedSizeMultiColumnItemArranger>(), NO_PARAMETER)
  			END_CLASS_MEMBER(FixedSizeMultiColumnItemArranger)
  
  			BEGIN_CLASS_MEMBER(FixedHeightMultiColumnItemArranger)
  				CLASS_MEMBER_BASE(RangedItemArrangerBase)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<FixedHeightMultiColumnItemArranger>(), NO_PARAMETER)
  			END_CLASS_MEMBER(FixedHeightMultiColumnItemArranger)
  
  			BEGIN_INTERFACE_MEMBER(ITextItemView)
  				INTERFACE_IDENTIFIER(vl::presentation::controls::list::ITextItemView)
  
  				CLASS_MEMBER_METHOD(GetChecked, {L"itemIndex"})
  				CLASS_MEMBER_METHOD(SetChecked, {L"itemIndex" _ L"value"})
  			END_INTERFACE_MEMBER(ITextItemView)
  
  			BEGIN_CLASS_MEMBER(TextItem)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<TextItem>(), NO_PARAMETER)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<TextItem>(const WString&), {L"text"})
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<TextItem>(const WString&, bool), {L"text" _ L"checked"})
  
  				CLASS_MEMBER_PROPERTY_FAST(Text)
  				CLASS_MEMBER_PROPERTY_FAST(Checked)
  			END_CLASS_MEMBER(TextItem)
  
  			BEGIN_CLASS_MEMBER(TextItemProvider)
  				CLASS_MEMBER_BASE(ITextItemView)
  			END_CLASS_MEMBER(TextItemProvider)
  
  			BEGIN_ENUM_ITEM(TextListView)
  				ENUM_CLASS_ITEM(Text)
  				ENUM_CLASS_ITEM(Check)
  				ENUM_CLASS_ITEM(Radio)
  				ENUM_CLASS_ITEM(Unknown)
  			END_ENUM_ITEM(TextListView)
  
  			BEGIN_INTERFACE_MEMBER(IListViewItemView)
  				INTERFACE_IDENTIFIER(vl::presentation::controls::list::IListViewItemView)
  
  				CLASS_MEMBER_METHOD(GetSmallImage, {L"itemIndex"})
  				CLASS_MEMBER_METHOD(GetLargeImage, {L"itemIndex"})
  				CLASS_MEMBER_METHOD(GetText, {L"itemIndex"})
  				CLASS_MEMBER_METHOD(GetSubItem, {L"itemIndex" _ L"index"})
  				CLASS_MEMBER_METHOD(GetDataColumnCount, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetDataColumn, {L"index"})
  				CLASS_MEMBER_METHOD(GetColumnCount, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetColumnText, {L"index"})
  			END_INTERFACE_MEMBER(ListViewItemStyleProvider::IListViewItemView)
  
  			BEGIN_CLASS_MEMBER(ListViewColumnItemArranger)
  				CLASS_MEMBER_BASE(FixedHeightItemArranger)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<ListViewColumnItemArranger>(), NO_PARAMETER)
  			END_CLASS_MEMBER(ListViewColumnItemArranger)
  
  			BEGIN_CLASS_MEMBER(ListViewColumnItemArranger::IColumnItemViewCallback)
  				CLASS_MEMBER_METHOD(OnColumnChanged, NO_PARAMETER)
  			END_CLASS_MEMBER(ListViewColumnItemArranger::IColumnItemViewCallback)
  
  			BEGIN_INTERFACE_MEMBER(ListViewColumnItemArranger::IColumnItemView)
  				CLASS_MEMBER_BASE(IDescriptable)
  				INTERFACE_IDENTIFIER(vl::presentation::controls::list::ListViewColumnItemArranger::IColumnItemView)
  
  				CLASS_MEMBER_METHOD(AttachCallback, {L"value"})
  				CLASS_MEMBER_METHOD(DetachCallback, {L"value"})
  				CLASS_MEMBER_METHOD(GetColumnSize, {L"index"})
  				CLASS_MEMBER_METHOD(SetColumnSize, {L"index" _ L"value"})
  				CLASS_MEMBER_METHOD(GetDropdownPopup, {L"index"})
  				CLASS_MEMBER_METHOD(GetSortingState, {L"index"})
  			END_INTERFACE_MEMBER(ListViewColumnItemArranger::IColumnItemView)
  
  			BEGIN_CLASS_MEMBER(ListViewItem)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<ListViewItem>(), NO_PARAMETER)
  
  				CLASS_MEMBER_PROPERTY_FAST(SmallImage)
  				CLASS_MEMBER_PROPERTY_FAST(LargeImage)
  				CLASS_MEMBER_PROPERTY_FAST(Text)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(SubItems)
  				CLASS_MEMBER_PROPERTY_FAST(Tag)
  			END_CLASS_MEMBER(ListViewItem)
  
  			BEGIN_CLASS_MEMBER(ListViewColumn)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<ListViewColumn>(), NO_PARAMETER)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<ListViewColumn>(const WString&), {L"text"})
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<ListViewColumn>(const WString&, vint), {L"text" _ L"size"})
  
  				CLASS_MEMBER_PROPERTY_FAST(Text)
  				CLASS_MEMBER_PROPERTY_FAST(TextProperty)
  				CLASS_MEMBER_PROPERTY_FAST(Size)
  				CLASS_MEMBER_PROPERTY_FAST(OwnPopup)
  				CLASS_MEMBER_PROPERTY_FAST(DropdownPopup)
  				CLASS_MEMBER_PROPERTY_FAST(SortingState)
  			END_CLASS_MEMBER(ListViewColumn)
  
  			BEGIN_CLASS_MEMBER(ListViewItemProvider)
  				CLASS_MEMBER_BASE(IListViewItemView)
  				CLASS_MEMBER_BASE(ListViewColumnItemArranger::IColumnItemView)
  			END_CLASS_MEMBER(ListViewItemProvider)
  
  			BEGIN_ENUM_ITEM(ListViewView)
  				ENUM_CLASS_ITEM(BigIcon)
  				ENUM_CLASS_ITEM(SmallIcon)
  				ENUM_CLASS_ITEM(List)
  				ENUM_CLASS_ITEM(Tile)
  				ENUM_CLASS_ITEM(Information)
  				ENUM_CLASS_ITEM(Detail)
  				ENUM_CLASS_ITEM(Unknown)
  			END_ENUM_ITEM(ListViewView)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiMenuService)
  				INTERFACE_IDENTIFIER(vl::presentation::controls::IGuiMenuService)
  
  				CLASS_MEMBER_METHOD(GetParentMenuService, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetPreferredDirection, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(IsActiveState, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(IsSubMenuActivatedByMouseDown, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(MenuItemExecuted, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetOpeningMenu, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(MenuOpened, {L"menu"})
  				CLASS_MEMBER_METHOD(MenuClosed, {L"menu"})
  			END_INTERFACE_MEMBER(IGuiMenuService)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiMenuDropdownProvider)
  				INTERFACE_IDENTIFIER(vl::presentation::controls::IGuiMenuDropdownProvider)
  
  				CLASS_MEMBER_METHOD(ProvideDropdownMenu, NO_PARAMETER)
  			END_INTERFACE_MEMBER(IGuiMenuDropdownProvider)
  
  			BEGIN_ENUM_ITEM(IGuiMenuService::Direction)
  				ENUM_ITEM_NAMESPACE(IGuiMenuService)
  				ENUM_NAMESPACE_ITEM(Horizontal)
  				ENUM_NAMESPACE_ITEM(Vertical)
  			END_ENUM_ITEM(IGuiMenuService::Direction)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(INodeProviderCallback)
  				CLASS_MEMBER_BASE(IDescriptable)
  
  				CLASS_MEMBER_METHOD(OnAttached, {L"provider"})
  				CLASS_MEMBER_METHOD(OnBeforeItemModified, {L"parentNode" _ L"start" _ L"count" _ L"newCount"})
  				CLASS_MEMBER_METHOD(OnAfterItemModified, {L"parentNode" _ L"start" _ L"count" _ L"newCount"})
  				CLASS_MEMBER_METHOD(OnItemExpanded, {L"node"})
  				CLASS_MEMBER_METHOD(OnItemCollapsed, {L"node"})
  			END_INTERFACE_MEMBER(INodeProviderCallback)
  
  			BEGIN_INTERFACE_MEMBER(INodeProvider)
  				CLASS_MEMBER_BASE(IDescriptable)
  
  				CLASS_MEMBER_PROPERTY_FAST(Expanding)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ChildCount)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Parent)
  
  				CLASS_MEMBER_METHOD(CalculateTotalVisibleNodes, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetChild, {L"index"})
  			END_INTERFACE_MEMBER(INodeProvider)
  
  			BEGIN_INTERFACE_MEMBER(INodeRootProvider)
  				CLASS_MEMBER_BASE(IDescriptable)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(RootNode)
  
  				CLASS_MEMBER_METHOD(CanGetNodeByVisibleIndex, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetNodeByVisibleIndex, {L"index"})
  				CLASS_MEMBER_METHOD(AttachCallback, {L"value"})
  				CLASS_MEMBER_METHOD(DetachCallback, {L"value"})
  				CLASS_MEMBER_METHOD(GetTextValue, { L"node" })
  				CLASS_MEMBER_METHOD(GetBindingValue, { L"node" })
  				CLASS_MEMBER_METHOD(RequestView, {L"identifier"})
  			END_INTERFACE_MEMBER(INodeRootProvider)
  
  			BEGIN_INTERFACE_MEMBER(INodeItemView)
  				INTERFACE_IDENTIFIER(vl::presentation::controls::tree::INodeItemView)
  
  				CLASS_MEMBER_METHOD(RequestNode, {L"index"})
  				CLASS_MEMBER_METHOD(CalculateNodeVisibilityIndex, {L"node"})
  			END_INTERFACE_MEMBER(INodeItemView)
  
  			BEGIN_CLASS_MEMBER(NodeItemProvider)
  				CLASS_MEMBER_BASE(ItemProviderBase)
  				CLASS_MEMBER_BASE(INodeItemView)
  			END_CLASS_MEMBER(NodeItemProvider)
  
  			BEGIN_CLASS_MEMBER(MemoryNodeProvider)
  				CLASS_MEMBER_BASE(INodeProvider)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<MemoryNodeProvider>(), NO_PARAMETER)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<MemoryNodeProvider>(Ptr<DescriptableObject>), {L"data"})
  
  				CLASS_MEMBER_PROPERTY_FAST(Data)
  
  				CLASS_MEMBER_METHOD(NotifyDataModified, NO_PARAMETER)
  				CLASS_MEMBER_METHOD_RENAME(GetChildren, Children, NO_PARAMETER)
  				CLASS_MEMBER_PROPERTY_READONLY(Children, GetChildren)
  			END_CLASS_MEMBER(MemoryNodeProvider)
  
  			BEGIN_CLASS_MEMBER(NodeRootProviderBase)
  				CLASS_MEMBER_BASE(INodeRootProvider)
  			END_CLASS_MEMBER(NodeRootProviderBase)
  
  			BEGIN_CLASS_MEMBER(MemoryNodeRootProvider)
  				CLASS_MEMBER_BASE(MemoryNodeProvider)
  				CLASS_MEMBER_BASE(NodeRootProviderBase)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(RootNode)
  
  				CLASS_MEMBER_METHOD(GetMemoryNode, {L"node"})
  			END_CLASS_MEMBER(MemoryNodeRootProvider)
  
  			BEGIN_INTERFACE_MEMBER(ITreeViewItemView)
  				INTERFACE_IDENTIFIER(vl::presentation::controls::tree::ITreeViewItemView)
  
  				CLASS_MEMBER_METHOD(GetNodeImage, {L"node"})
  			END_INTERFACE_MEMBER(ITreeViewItemView)
  
  			BEGIN_CLASS_MEMBER(TreeViewItem)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<TreeViewItem>(), NO_PARAMETER)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<TreeViewItem>(const Ptr<GuiImageData>&, const WString&), {L"image" _ L"text"})
  
  				CLASS_MEMBER_FIELD(image)
  				CLASS_MEMBER_FIELD(text)
  				CLASS_MEMBER_FIELD(tag)
  			END_CLASS_MEMBER(TreeViewItem)
  
  			BEGIN_CLASS_MEMBER(TreeViewItemRootProvider)
  				CLASS_MEMBER_BASE(MemoryNodeRootProvider)
  				CLASS_MEMBER_BASE(ITreeViewItemView)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<TreeViewItemRootProvider>(), NO_PARAMETER)
  
  				CLASS_MEMBER_METHOD(GetTreeViewData, {L"node"})
  				CLASS_MEMBER_METHOD(SetTreeViewData, {L"node" _ L"value"})
  				CLASS_MEMBER_METHOD(UpdateTreeViewData, {L"node"})
  			END_CLASS_MEMBER(TreeViewItemRootProvider)
  
  			BEGIN_CLASS_MEMBER(GuiToolstripCommand)
  				CLASS_MEMBER_BASE(GuiComponent)
  				CLASS_MEMBER_CONSTRUCTOR(GuiToolstripCommand*(), NO_PARAMETER)
  
  				CLASS_MEMBER_GUIEVENT(Executed)
  				CLASS_MEMBER_GUIEVENT(DescriptionChanged)
  
  				CLASS_MEMBER_PROPERTY_EVENT_FAST(LargeImage, DescriptionChanged)
  				CLASS_MEMBER_PROPERTY_EVENT_FAST(Image, DescriptionChanged)
  				CLASS_MEMBER_PROPERTY_EVENT_FAST(Text, DescriptionChanged)
  				CLASS_MEMBER_PROPERTY_EVENT_FAST(Shortcut, DescriptionChanged)
  				CLASS_MEMBER_PROPERTY_EVENT_FAST(ShortcutBuilder, DescriptionChanged)
  				CLASS_MEMBER_PROPERTY_EVENT_FAST(Enabled, DescriptionChanged)
  				CLASS_MEMBER_PROPERTY_EVENT_FAST(Selected, DescriptionChanged)
  			END_CLASS_MEMBER(GuiToolstripCommand)
  
  			BEGIN_ENUM_ITEM(RibbonButtonSize)
  				ENUM_CLASS_ITEM(Large)
  				ENUM_CLASS_ITEM(Small)
  				ENUM_CLASS_ITEM(Icon)
  			END_ENUM_ITEM(RibbonButtonSize)
  
  			BEGIN_STRUCT_MEMBER(GalleryPos)
  				STRUCT_MEMBER(group)
  				STRUCT_MEMBER(item)
  			END_STRUCT_MEMBER(GalleryPos)
  
  			BEGIN_CLASS_MEMBER(GalleryGroup)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Name)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ItemValues)
  			END_CLASS_MEMBER(GalleryGroup)
  
  			BEGIN_CLASS_MEMBER(GroupedDataSource)
  				CLASS_MEMBER_PROPERTY_FAST(ItemSource)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(GroupEnabled)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(GroupTitleProperty)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(GroupChildrenProperty)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Groups)
  			END_CLASS_MEMBER(GroupedDataSource)
  
  			BEGIN_CLASS_MEMBER(GuiDocumentItem)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<GuiDocumentItem>(const WString&), { L"name" })
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Container)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Name)
  			END_CLASS_MEMBER(GuiDocumentItem)
  
  			BEGIN_ENUM_ITEM(GuiDocumentCommonInterface::EditMode)
  				ENUM_ITEM_NAMESPACE(GuiDocumentCommonInterface)
  				ENUM_NAMESPACE_ITEM(ViewOnly)
  				ENUM_NAMESPACE_ITEM(Selectable)
  				ENUM_NAMESPACE_ITEM(Editable)
  			END_ENUM_ITEM(GuiDocumentCommonInterface::EditMode)
  
  			BEGIN_INTERFACE_MEMBER(IDataGridContext)
  				CLASS_MEMBER_BASE(IDescriptable)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ItemProvider)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ListViewControlTemplate)
  				CLASS_MEMBER_METHOD(RequestSaveData, NO_PARAMETER)
  			END_INTERFACE_MEMBER(IDataGridContext)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IDataVisualizerFactory)
  				CLASS_MEMBER_BASE(IDescriptable)
  
  				CLASS_MEMBER_METHOD(CreateVisualizer, {L"dataGridContext"})
  			END_INTERFACE_MEMBER(IDataVisualizerFactory)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IDataVisualizer)
  				CLASS_MEMBER_BASE(IDescriptable)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Factory)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Template)
  
  				CLASS_MEMBER_METHOD(BeforeVisualizeCell, {L"itemProvider" _ L"row" _ L"column"})
  				CLASS_MEMBER_METHOD(SetSelected, {L"value"})
  			END_INTERFACE_MEMBER(IDataVisualizer)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IDataEditorFactory)
  				CLASS_MEMBER_BASE(IDescriptable)
  
  				CLASS_MEMBER_METHOD(CreateEditor, {L"dataGridContext"})
  			END_INTERFACE_MEMBER(IDataEditorFactory)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IDataEditor)
  				CLASS_MEMBER_BASE(IDescriptable)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Factory)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Template)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(CellValueSaved)
  
  				CLASS_MEMBER_METHOD(BeforeEditCell, {L"itemProvider" _ L"row" _ L"column"})
  			END_INTERFACE_MEMBER(IDataEditor)
  
  			BEGIN_INTERFACE_MEMBER(IDataGridView)
  				CLASS_MEMBER_BASE(IDescriptable)
  				INTERFACE_IDENTIFIER(vl::presentation::controls::list::IDataGridView)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(SortedColumn)
  				CLASS_MEMBER_METHOD(IsColumnSortable, {L"column"})
  				CLASS_MEMBER_METHOD(SortByColumn, {L"column" _ L"ascending"})
  				CLASS_MEMBER_METHOD(IsSortOrderAscending, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetCellSpan, {L"row" _ L"column"})
  				CLASS_MEMBER_METHOD(GetCellDataVisualizerFactory, {L"row" _ L"column"})
  				CLASS_MEMBER_METHOD(GetCellDataEditorFactory, {L"row" _ L"column"})
  				CLASS_MEMBER_METHOD(GetBindingCellValue, {L"row" _ L"column"})
  				CLASS_MEMBER_METHOD(SetBindingCellValue, {L"row" _ L"column" _ L"value"})
  			END_INTERFACE_MEMBER(IDataGridView)
  
  			BEGIN_CLASS_MEMBER(DataVisualizerBase)
  				CLASS_MEMBER_BASE(IDataVisualizer)
  			END_CLASS_MEMBER(DataVisualizerBase)
  
  			BEGIN_CLASS_MEMBER(DataVisualizerFactory)
  				CLASS_MEMBER_BASE(IDataVisualizerFactory)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DataVisualizerFactory>(TemplateProperty<templates::GuiGridVisualizerTemplate>, Ptr<DataVisualizerFactory>), { L"templateFactory" _ L"decoratedFactory"})
  			END_CLASS_MEMBER(DataVisualizerFactory)
  
  			BEGIN_CLASS_MEMBER(DataEditorBase)
  				CLASS_MEMBER_BASE(IDataEditor)
  			END_CLASS_MEMBER(DataEditorBase)
  
  			BEGIN_CLASS_MEMBER(DataEditorFactory)
  				CLASS_MEMBER_BASE(IDataEditorFactory)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DataEditorFactory>(TemplateProperty<templates::GuiGridEditorTemplate>), { L"templateFactory" })
  			END_CLASS_MEMBER(DataEditorFactory)
  
  			BEGIN_INTERFACE_MEMBER(IDataProcessorCallback)
  				CLASS_MEMBER_BASE(IDescriptable)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ItemProvider)
  				CLASS_MEMBER_METHOD(OnProcessorChanged, NO_PARAMETER)
  			END_INTERFACE_MEMBER(IDataProcessorCallback)
  
  			BEGIN_INTERFACE_MEMBER(IDataFilter)
  				CLASS_MEMBER_BASE(IDescriptable)
  
  				CLASS_MEMBER_METHOD(SetCallback, { L"value" })
  				CLASS_MEMBER_METHOD(Filter, { L"row" })
  			END_INTERFACE_MEMBER(IDataFilter)
  
  			BEGIN_INTERFACE_MEMBER(IDataSorter)
  				CLASS_MEMBER_BASE(IDescriptable)
  
  				CLASS_MEMBER_METHOD(SetCallback, { L"value" })
  				CLASS_MEMBER_METHOD(Compare, { L"row1" _ L"row2" })
  			END_INTERFACE_MEMBER(IDataSorter)
  
  			BEGIN_CLASS_MEMBER(DataFilterBase)
  				CLASS_MEMBER_BASE(IDataFilter)
  			END_CLASS_MEMBER(DataFilterBase)
  
  			BEGIN_CLASS_MEMBER(DataMultipleFilter)
  				CLASS_MEMBER_BASE(DataFilterBase)
  
  				CLASS_MEMBER_METHOD(AddSubFilter, {L"value"})
  				CLASS_MEMBER_METHOD(RemoveSubFilter, {L"value"})
  			END_CLASS_MEMBER(DataMultipleFilter)
  
  			BEGIN_CLASS_MEMBER(DataAndFilter)
  				CLASS_MEMBER_BASE(DataMultipleFilter)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DataAndFilter>(), NO_PARAMETER)
  			END_CLASS_MEMBER(DataAndFilter)
  
  			BEGIN_CLASS_MEMBER(DataOrFilter)
  				CLASS_MEMBER_BASE(DataMultipleFilter)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DataOrFilter>(), NO_PARAMETER)
  			END_CLASS_MEMBER(DataOrFilter)
  
  			BEGIN_CLASS_MEMBER(DataNotFilter)
  				CLASS_MEMBER_BASE(DataFilterBase)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DataNotFilter>(), NO_PARAMETER)
  
  				CLASS_MEMBER_METHOD(SetSubFilter, {L"value"})
  			END_CLASS_MEMBER(DataNotFilter)
  
  			BEGIN_CLASS_MEMBER(DataSorterBase)
  				CLASS_MEMBER_BASE(IDataSorter)
  			END_CLASS_MEMBER(DataSorterBase)
  
  			BEGIN_CLASS_MEMBER(DataMultipleSorter)
  				CLASS_MEMBER_BASE(DataSorterBase)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DataMultipleSorter>(), NO_PARAMETER)
  
  				CLASS_MEMBER_METHOD(SetLeftSorter, {L"value"})
  				CLASS_MEMBER_METHOD(SetRightSorter, {L"value"})
  			END_CLASS_MEMBER(DataMultipleSorter)
  
  			BEGIN_CLASS_MEMBER(DataReverseSorter)
  				CLASS_MEMBER_BASE(DataSorterBase)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DataReverseSorter>(), NO_PARAMETER)
  				
  				CLASS_MEMBER_METHOD(SetSubSorter, {L"value"})
  			END_CLASS_MEMBER(DataReverseSorter)
  
  			BEGIN_CLASS_MEMBER(DataColumn)
  				CLASS_MEMBER_CONSTRUCTOR(Ptr<DataColumn>(), NO_PARAMETER)
  
  				CLASS_MEMBER_PROPERTY_FAST(Text)
  				CLASS_MEMBER_PROPERTY_FAST(Size)
  				CLASS_MEMBER_PROPERTY_FAST(OwnPopup)
  				CLASS_MEMBER_PROPERTY_FAST(Popup)
  				CLASS_MEMBER_PROPERTY_FAST(Filter)
  				CLASS_MEMBER_PROPERTY_FAST(Sorter)
  				CLASS_MEMBER_PROPERTY_FAST(VisualizerFactory)
  				CLASS_MEMBER_PROPERTY_FAST(EditorFactory)
  
  				CLASS_MEMBER_METHOD(GetCellText, { L"row" })
  				CLASS_MEMBER_METHOD(GetCellValue, { L"row" })
  				CLASS_MEMBER_METHOD(SetCellValue, { L"row" _ L"value" })
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(TextProperty)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ValueProperty)
  			END_CLASS_MEMBER(DataColumn)
  
  			BEGIN_CLASS_MEMBER(DataProvider)
  				CLASS_MEMBER_BASE(ItemProviderBase)
  				CLASS_MEMBER_BASE(IListViewItemView)
  				CLASS_MEMBER_BASE(ListViewColumnItemArranger::IColumnItemView)
  				CLASS_MEMBER_BASE(IDataGridView)
  				CLASS_MEMBER_BASE(IDataProcessorCallback)
  			END_CLASS_MEMBER(DataProvider)
  
  /***********************************************************************
  Type Declaration (Class)
  ***********************************************************************/
  
  			BEGIN_CLASS_MEMBER(GuiControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiControl)
  
  				CLASS_MEMBER_EXTERNALMETHOD(SafeDelete, NO_PARAMETER, void(GuiControl::*)(), vl::presentation::compositions::SafeDeleteControl)
  
  				CLASS_MEMBER_GUIEVENT(ControlSignalTrigerred)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ControlThemeName)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ControlTemplate)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(BoundsComposition)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ContainerComposition)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(FocusableComposition)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Parent)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ChildrenCount)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(RelatedControlHost, RenderTargetChanged)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(VisuallyEnabled)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(Focused)
  				CLASS_MEMBER_PROPERTY_FAST(AcceptTabInput)
  				CLASS_MEMBER_PROPERTY_FAST(TabPriority)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Enabled)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Visible)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Alt)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Text)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Font)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Context)
  				CLASS_MEMBER_PROPERTY_FAST(Tag)
  				CLASS_MEMBER_PROPERTY_FAST(TooltipControl)
  				CLASS_MEMBER_PROPERTY_FAST(TooltipWidth)
  
  				CLASS_MEMBER_METHOD(SetControlThemeNameAndTemplate, { L"themeNameValue" _ L"controlTemplateValue" })
  				CLASS_MEMBER_METHOD(SetActivatingAltHost, { L"host" })
  				CLASS_MEMBER_METHOD(GetChild, {L"index"})
  				CLASS_MEMBER_METHOD(AddChild, {L"control"})
  				CLASS_MEMBER_METHOD(HasChild, {L"control"})
  				CLASS_MEMBER_METHOD(SetFocus, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(DisplayTooltip, {L"location"})
  				CLASS_MEMBER_METHOD(CloseTooltip, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(QueryService, {L"identifier"})
  				CLASS_MEMBER_METHOD(AddService, { L"identifier" _ L"value" })
  			END_CLASS_MEMBER(GuiControl)
  
  			BEGIN_CLASS_MEMBER(GuiCustomControl)
  				CLASS_MEMBER_BASE(GuiControl)
  				CLASS_MEMBER_BASE(GuiInstanceRootObject)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiCustomControl)
  			END_CLASS_MEMBER(GuiCustomControl)
  
  			BEGIN_CLASS_MEMBER(GuiLabel)
  				CLASS_MEMBER_BASE(GuiControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiLabel)
  
  				CLASS_MEMBER_PROPERTY_FAST(TextColor)
  			END_CLASS_MEMBER(GuiLabel)
  
  			BEGIN_CLASS_MEMBER(GuiButton)
  				CLASS_MEMBER_BASE(GuiControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiButton)
  
  				CLASS_MEMBER_GUIEVENT(Clicked)
  
  				CLASS_MEMBER_PROPERTY_FAST(ClickOnMouseUp)
  				CLASS_MEMBER_PROPERTY_FAST(AutoFocus)
  			END_CLASS_MEMBER(GuiButton)
  
  			BEGIN_CLASS_MEMBER(GuiSelectableButton)
  				CLASS_MEMBER_BASE(GuiButton)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiSelectableButton)
  
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(GroupController)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(AutoSelection)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Selected)
  			END_CLASS_MEMBER(GuiSelectableButton)
  
  			BEGIN_CLASS_MEMBER(GuiScroll)
  				CLASS_MEMBER_BASE(GuiControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiScroll)
  
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(TotalSize)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(PageSize)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Position)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SmallMove)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(BigMove)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(MinPosition)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(MaxPosition)
  				CLASS_MEMBER_PROPERTY_FAST(AutoFocus)
  			END_CLASS_MEMBER(GuiScroll)
  
  			BEGIN_CLASS_MEMBER(GuiTabPage)
  				CLASS_MEMBER_BASE(GuiCustomControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiTabPage)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(OwnerTab)
  			END_CLASS_MEMBER(GuiTabPage)
  
  			BEGIN_CLASS_MEMBER(GuiTab)
  				CLASS_MEMBER_BASE(GuiControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiTab)
  
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SelectedPage)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Pages)
  			END_CLASS_MEMBER(GuiTab)
  
  			BEGIN_CLASS_MEMBER(GuiScrollView)
  				CLASS_MEMBER_BASE(GuiControl)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ViewSize)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ViewBounds)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ViewPosition)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(HorizontalScroll)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(VerticalScroll)
  				CLASS_MEMBER_PROPERTY_FAST(HorizontalAlwaysVisible)
  				CLASS_MEMBER_PROPERTY_FAST(VerticalAlwaysVisible)
  
  				CLASS_MEMBER_METHOD(CalculateView, NO_PARAMETER)
  			END_CLASS_MEMBER(GuiScrollView)
  
  			BEGIN_CLASS_MEMBER(GuiScrollContainer)
  				CLASS_MEMBER_BASE(GuiScrollView)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiScrollContainer)
  
  				CLASS_MEMBER_PROPERTY_FAST(ExtendToFullWidth)
  				CLASS_MEMBER_PROPERTY_FAST(ExtendToFullHeight)
  			END_CLASS_MEMBER(GuiScrollContainer)
  
  			BEGIN_CLASS_MEMBER(GuiControlHost)
  				CLASS_MEMBER_BASE(GuiControl)
  				CLASS_MEMBER_BASE(GuiInstanceRootObject)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiControlHost)
  
  				CLASS_MEMBER_GUIEVENT(WindowGotFocus)
  				CLASS_MEMBER_GUIEVENT(WindowLostFocus)
  				CLASS_MEMBER_GUIEVENT(WindowActivated)
  				CLASS_MEMBER_GUIEVENT(WindowDeactivated)
  				CLASS_MEMBER_GUIEVENT(WindowOpened)
  				CLASS_MEMBER_GUIEVENT(WindowClosing)
  				CLASS_MEMBER_GUIEVENT(WindowClosed)
  				CLASS_MEMBER_GUIEVENT(WindowDestroying)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(MainComposition)
  				CLASS_MEMBER_PROPERTY_FAST(ShowInTaskBar)
  				CLASS_MEMBER_PROPERTY_FAST(EnabledActivate)
  				CLASS_MEMBER_PROPERTY_FAST(TopMost)
  				CLASS_MEMBER_PROPERTY_FAST(ClientSize)
  				CLASS_MEMBER_PROPERTY_FAST(Bounds)
  				CLASS_MEMBER_PROPERTY_FAST(ShortcutKeyManager)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(RelatedScreen)
  
  				CLASS_MEMBER_METHOD(DeleteAfterProcessingAllEvents, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ForceCalculateSizeImmediately, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetFocused, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(SetFocused, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetActivated, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(SetActivated, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Show, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ShowDeactivated, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ShowRestored, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ShowMaximized, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ShowMinimized, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Hide, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Close, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(GetOpening, NO_PARAMETER)
  			END_CLASS_MEMBER(GuiControlHost)
  
  			BEGIN_CLASS_MEMBER(GuiWindow)
  				CLASS_MEMBER_BASE(GuiControlHost)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiWindow)
  
  				CLASS_MEMBER_GUIEVENT(ClipboardUpdated)
  
  				CLASS_MEMBER_PROPERTY_FAST(MaximizedBox)
  				CLASS_MEMBER_PROPERTY_FAST(MinimizedBox)
  				CLASS_MEMBER_PROPERTY_FAST(Border)
  				CLASS_MEMBER_PROPERTY_FAST(SizeBox)
  				CLASS_MEMBER_PROPERTY_FAST(IconVisible)
  				CLASS_MEMBER_PROPERTY_FAST(TitleBar)
  
  				CLASS_MEMBER_METHOD_OVERLOAD(MoveToScreenCenter, NO_PARAMETER, void(GuiWindow::*)())
  				CLASS_MEMBER_METHOD_OVERLOAD(MoveToScreenCenter, { L"screen" }, void(GuiWindow::*)(INativeScreen*))
  				CLASS_MEMBER_METHOD(ShowModal, { L"owner" _ L"callback" })
  				CLASS_MEMBER_METHOD(ShowModalAndDelete, { L"owner" _ L"callback" })
  				CLASS_MEMBER_METHOD(ShowModalAsync, { L"owner" })
  			END_CLASS_MEMBER(GuiWindow)
  
  			BEGIN_CLASS_MEMBER(GuiPopup)
  				CLASS_MEMBER_BASE(GuiWindow)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiPopup)
  
  				CLASS_MEMBER_METHOD_OVERLOAD(ShowPopup, {L"location" _ L"screen"}, void(GuiPopup::*)(Point _ INativeScreen*))
  				CLASS_MEMBER_METHOD_OVERLOAD(ShowPopup, {L"control" _ L"bounds" _ L"preferredTopBottomSide"}, void(GuiPopup::*)(GuiControl* _ Rect _ bool))
  				CLASS_MEMBER_METHOD_OVERLOAD(ShowPopup, {L"control" _ L"location"}, void(GuiPopup::*)(GuiControl* _ Point))
  				CLASS_MEMBER_METHOD_OVERLOAD(ShowPopup, {L"control" _ L"preferredTopBottomSide"}, void(GuiPopup::*)(GuiControl* _ bool))
  			END_CLASS_MEMBER(GuiPopup)
  
  			BEGIN_CLASS_MEMBER(GuiTooltip)
  				CLASS_MEMBER_BASE(GuiPopup)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiTooltip)
  				
  				CLASS_MEMBER_PROPERTY_FAST(PreferredContentWidth)
  				CLASS_MEMBER_PROPERTY_FAST(TemporaryContentControl)
  			END_CLASS_MEMBER(GuiTooltip)
  
  			BEGIN_CLASS_MEMBER(GuiListControl)
  				CLASS_MEMBER_BASE(GuiScrollView)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_3(GuiListControl, GuiListControl::IItemProvider*, itemProvider, bool, acceptFocus)
  
  				CLASS_MEMBER_GUIEVENT(AdoptedSizeInvalidated)
  				CLASS_MEMBER_GUIEVENT(ItemLeftButtonDown)
  				CLASS_MEMBER_GUIEVENT(ItemLeftButtonUp)
  				CLASS_MEMBER_GUIEVENT(ItemLeftButtonDoubleClick)
  				CLASS_MEMBER_GUIEVENT(ItemMiddleButtonDown)
  				CLASS_MEMBER_GUIEVENT(ItemMiddleButtonUp)
  				CLASS_MEMBER_GUIEVENT(ItemMiddleButtonDoubleClick)
  				CLASS_MEMBER_GUIEVENT(ItemRightButtonDown)
  				CLASS_MEMBER_GUIEVENT(ItemRightButtonUp)
  				CLASS_MEMBER_GUIEVENT(ItemRightButtonDoubleClick)
  				CLASS_MEMBER_GUIEVENT(ItemMouseMove)
  				CLASS_MEMBER_GUIEVENT(ItemMouseEnter)
  				CLASS_MEMBER_GUIEVENT(ItemMouseLeave)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ItemProvider)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ItemTemplate)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Arranger)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Axis)
  				CLASS_MEMBER_PROPERTY_FAST(DisplayItemBackground)
  
  				CLASS_MEMBER_METHOD(EnsureItemVisible, {L"itemIndex"})
  				CLASS_MEMBER_METHOD(GetAdoptedSize, {L"expectedSize"})
  			END_CLASS_MEMBER(GuiListControl)
  
  			BEGIN_CLASS_MEMBER(GuiSelectableListControl)
  				CLASS_MEMBER_BASE(GuiListControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiSelectableListControl, GuiListControl::IItemProvider*, itemProvider)
  
  				CLASS_MEMBER_GUIEVENT(SelectionChanged)
  
  				CLASS_MEMBER_PROPERTY_FAST(MultiSelect)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItems, SelectionChanged)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItemIndex, SelectionChanged)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItemText, SelectionChanged)
  
  				CLASS_MEMBER_METHOD(GetSelected, {L"itemIndex"})
  				CLASS_MEMBER_METHOD(SetSelected, {L"itemIndex" _ L"value"})
  				CLASS_MEMBER_METHOD(SelectItemsByClick, {L"itemIndex" _ L"ctrl" _ L"shift" _ L"leftButton"})
  				CLASS_MEMBER_METHOD(SelectItemsByKey, {L"code" _ L"ctrl" _ L"shift"})
  				CLASS_MEMBER_METHOD(ClearSelection, NO_PARAMETER)
  			END_CLASS_MEMBER(GuiSelectableListControl)
  
  			BEGIN_CLASS_MEMBER(GuiVirtualTextList)
  				CLASS_MEMBER_BASE(GuiSelectableListControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2(GuiVirtualTextList, GuiListControl::IItemProvider*, L"itemProvider")
  
  				CLASS_MEMBER_GUIEVENT(ItemChecked)
  				CLASS_MEMBER_PROPERTY_FAST(View)
  			END_CLASS_MEMBER(GuiVirtualTextList)
  
  			BEGIN_CLASS_MEMBER(GuiTextList)
  				CLASS_MEMBER_BASE(GuiVirtualTextList)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiTextList)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Items)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItem, SelectionChanged)
  			END_CLASS_MEMBER(GuiTextList)
  
  			BEGIN_CLASS_MEMBER(GuiListViewColumnHeader)
  				CLASS_MEMBER_BASE(GuiMenuButton)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiListViewColumnHeader)
  
  				CLASS_MEMBER_PROPERTY_FAST(ColumnSortingState)
  			END_CLASS_MEMBER(GuiListViewColumnHeader)
  
  			BEGIN_CLASS_MEMBER(GuiListViewBase)
  				CLASS_MEMBER_BASE(GuiSelectableListControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2(GuiListViewBase, GuiListControl::IItemProvider*, itemProvider)
  
  				CLASS_MEMBER_GUIEVENT(ColumnClicked)
  			END_CLASS_MEMBER(GuiListViewBase)
  
  			BEGIN_CLASS_MEMBER(GuiVirtualListView)
  				CLASS_MEMBER_BASE(GuiListViewBase)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiVirtualListView, GuiListControl::IItemProvider*, itemProvider)
  
  				CLASS_MEMBER_PROPERTY_FAST(View)
  			END_CLASS_MEMBER(GuiVirtualListView)
  
  			BEGIN_CLASS_MEMBER(GuiListView)
  				CLASS_MEMBER_BASE(GuiVirtualListView)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiListView)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(DataColumns)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Columns)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Items)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItem, SelectionChanged)
  			END_CLASS_MEMBER(GuiListView)
  
  			BEGIN_CLASS_MEMBER(GuiMenu)
  				CLASS_MEMBER_BASE(GuiPopup)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2(GuiMenu, GuiControl*, owner)
  
  				CLASS_MEMBER_PROPERTY_FAST(HideOnDeactivateAltHost)
  				CLASS_MEMBER_METHOD(UpdateMenuService, NO_PARAMETER)
  			END_CLASS_MEMBER(GuiMenu)
  
  			BEGIN_CLASS_MEMBER(GuiMenuBar)
  				CLASS_MEMBER_BASE(GuiControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiMenuBar)
  			END_CLASS_MEMBER(GuiMenuBar)
  
  			BEGIN_CLASS_MEMBER(GuiMenuButton)
  				CLASS_MEMBER_BASE(GuiSelectableButton)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiMenuButton)
  
  				CLASS_MEMBER_GUIEVENT(BeforeSubMenuOpening)
  				CLASS_MEMBER_GUIEVENT(AfterSubMenuOpening)
  
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(LargeImage)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Image)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ShortcutText)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(SubMenu)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(OwnedSubMenu)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SubMenuOpening)
  				CLASS_MEMBER_PROPERTY_FAST(PreferredMenuClientSize)
  				CLASS_MEMBER_PROPERTY_FAST(CascadeAction)
  
  				CLASS_MEMBER_METHOD(IsSubMenuExists, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(CreateSubMenu, {L"subMenuStyleController"})
  				CLASS_MEMBER_METHOD(SetSubMenu, {L"value" _ L"owned"})
  			END_CLASS_MEMBER(GuiMenuButton)
  
  			BEGIN_CLASS_MEMBER(GuiVirtualTreeListControl)
  				CLASS_MEMBER_BASE(GuiSelectableListControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2(GuiVirtualTreeListControl, Ptr<INodeRootProvider>, rootNodeProvider)
  
  				CLASS_MEMBER_GUIEVENT(NodeLeftButtonDown)
  				CLASS_MEMBER_GUIEVENT(NodeLeftButtonUp)
  				CLASS_MEMBER_GUIEVENT(NodeLeftButtonDoubleClick)
  				CLASS_MEMBER_GUIEVENT(NodeMiddleButtonDown)
  				CLASS_MEMBER_GUIEVENT(NodeMiddleButtonUp)
  				CLASS_MEMBER_GUIEVENT(NodeMiddleButtonDoubleClick)
  				CLASS_MEMBER_GUIEVENT(NodeRightButtonDown)
  				CLASS_MEMBER_GUIEVENT(NodeRightButtonUp)
  				CLASS_MEMBER_GUIEVENT(NodeRightButtonDoubleClick)
  				CLASS_MEMBER_GUIEVENT(NodeMouseMove)
  				CLASS_MEMBER_GUIEVENT(NodeMouseEnter)
  				CLASS_MEMBER_GUIEVENT(NodeMouseLeave)
  				CLASS_MEMBER_GUIEVENT(NodeExpanded)
  				CLASS_MEMBER_GUIEVENT(NodeCollapsed)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(NodeItemView)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(NodeRootProvider)
  			END_CLASS_MEMBER(GuiVirtualTreeListControl)
  
  			BEGIN_CLASS_MEMBER(GuiVirtualTreeView)
  				CLASS_MEMBER_BASE(GuiVirtualTreeListControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiVirtualTreeView, Ptr<INodeRootProvider>, rootNodeProvider)
  
  			END_CLASS_MEMBER(GuiVirtualTreeView)
  
  			BEGIN_CLASS_MEMBER(GuiTreeView)
  				CLASS_MEMBER_BASE(GuiVirtualTreeView)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiTreeView)
  
  				CLASS_MEMBER_METHOD_RENAME(GetNodes, Nodes, NO_PARAMETER)
  				CLASS_MEMBER_PROPERTY_READONLY(Nodes, GetNodes)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItem, SelectionChanged)
  			END_CLASS_MEMBER(GuiTreeView)
  
  			BEGIN_CLASS_MEMBER(GuiComboBoxBase)
  				CLASS_MEMBER_BASE(GuiMenuButton)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiComboBoxBase)
  			END_CLASS_MEMBER(GuiComboBoxBase)
  
  			BEGIN_CLASS_MEMBER(GuiComboBoxListControl)
  				CLASS_MEMBER_BASE(GuiComboBoxBase)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiComboBoxListControl, GuiSelectableListControl*, containedListControl)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ContainedListControl)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ItemTemplate)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SelectedIndex)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItem, SelectedIndexChanged)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ItemProvider)
  			END_CLASS_MEMBER(GuiComboBoxListControl)
  
  			BEGIN_CLASS_MEMBER(GuiToolstripMenu)
  				CLASS_MEMBER_BASE(GuiMenu)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiToolstripMenu, GuiControl*, owner)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ToolstripItems)
  			END_CLASS_MEMBER(GuiToolstripMenu)
  
  			BEGIN_CLASS_MEMBER(GuiToolstripMenuBar)
  				CLASS_MEMBER_BASE(GuiMenuBar)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiToolstripMenuBar)
  				
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ToolstripItems)
  			END_CLASS_MEMBER(GuiToolstripMenuBar)
  
  			BEGIN_CLASS_MEMBER(GuiToolstripToolBar)
  				CLASS_MEMBER_BASE(GuiControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiToolstripToolBar)
  				
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ToolstripItems)
  			END_CLASS_MEMBER(GuiToolstripToolBar)
  
  			BEGIN_CLASS_MEMBER(GuiToolstripButton)
  				CLASS_MEMBER_BASE(GuiMenuButton)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiToolstripButton)
  
  				CLASS_MEMBER_PROPERTY_FAST(Command)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ToolstripSubMenu)
  
  				CLASS_MEMBER_METHOD(EnsureToolstripSubMenu, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(CreateToolstripSubMenu, {L"subMenuStyleController"})
  			END_CLASS_MEMBER(GuiToolstripButton)
  
  			BEGIN_CLASS_MEMBER(GuiToolstripNestedContainer)
  				CLASS_MEMBER_BASE(GuiControl)
  			END_CLASS_MEMBER(GuiToolstripGroupContainer)
  
  			BEGIN_CLASS_MEMBER(GuiToolstripGroupContainer)
  				CLASS_MEMBER_BASE(GuiToolstripNestedContainer)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiToolstripGroupContainer)
  
  				CLASS_MEMBER_PROPERTY_FAST(SplitterTemplate)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ToolstripItems)
  			END_CLASS_MEMBER(GuiToolstripGroupContainer)
  
  			BEGIN_CLASS_MEMBER(GuiToolstripGroup)
  				CLASS_MEMBER_BASE(GuiToolstripNestedContainer)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiToolstripGroup)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ToolstripItems)
  			END_CLASS_MEMBER(GuiToolstripGroup)
  
  			BEGIN_CLASS_MEMBER(GuiRibbonTab)
  				CLASS_MEMBER_BASE(GuiTab)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiRibbonTab)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(BeforeHeaders)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(AfterHeaders)
  			END_CLASS_MEMBER(GuiRibbonTab)
  
  			BEGIN_CLASS_MEMBER(GuiRibbonTabPage)
  				CLASS_MEMBER_BASE(GuiTabPage)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiRibbonTabPage)
  
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Highlighted)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Groups)
  			END_CLASS_MEMBER(GuiRibbonTabPage)
  
  			BEGIN_CLASS_MEMBER(GuiRibbonGroup)
  				CLASS_MEMBER_BASE(GuiControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiRibbonGroup)
  
  				CLASS_MEMBER_GUIEVENT(ExpandButtonClicked)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Expandable)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(LargeImage)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Items)
  			END_CLASS_MEMBER(GuiRibbonGroup)
  
  			BEGIN_CLASS_MEMBER(GuiRibbonIconLabel)
  				CLASS_MEMBER_BASE(GuiControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiRibbonIconLabel)
  
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Image)
  			END_CLASS_MEMBER(GuiRibbonIconLabel)
  
  			BEGIN_CLASS_MEMBER(GuiRibbonButtons)
  				CLASS_MEMBER_BASE(GuiControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_3(GuiRibbonButtons, RibbonButtonSize, maxSize, RibbonButtonSize, minSize)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Buttons)
  			END_CLASS_MEMBER(GuiRibbonButtons)
  
  			BEGIN_CLASS_MEMBER(GuiRibbonToolstrips)
  				CLASS_MEMBER_BASE(GuiControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiRibbonToolstrips)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Groups)
  			END_CLASS_MEMBER(GuiRibbonToolstrips)
  
  			BEGIN_CLASS_MEMBER(GuiRibbonGallery)
  				CLASS_MEMBER_BASE(GuiControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiRibbonGallery)
  
  				CLASS_MEMBER_GUIEVENT(RequestedScrollUp)
  				CLASS_MEMBER_GUIEVENT(RequestedScrollDown)
  				CLASS_MEMBER_GUIEVENT(RequestedDropdown)
  
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ScrollUpEnabled)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ScrollDownEnabled)
  			END_CLASS_MEMBER(GuiRibbonGallery)
  
  			BEGIN_CLASS_MEMBER(GuiRibbonToolstripMenu)
  				CLASS_MEMBER_BASE(GuiToolstripMenu)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiRibbonToolstripMenu, GuiControl*, owner)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ContentComposition)
  			END_CLASS_MEMBER(GuiRibbonToolstripMenu)
  
  			BEGIN_CLASS_MEMBER(GuiBindableRibbonGalleryList)
  				CLASS_MEMBER_BASE(GuiRibbonGallery)
  				CLASS_MEMBER_BASE(GroupedDataSource)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiBindableRibbonGalleryList)
  					
  				CLASS_MEMBER_GUIEVENT(SelectionChanged)
  				CLASS_MEMBER_GUIEVENT(PreviewStarted)
  				CLASS_MEMBER_GUIEVENT(PreviewStopped)
  				CLASS_MEMBER_GUIEVENT(ItemApplied)
  
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ItemTemplate)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(SubMenu)
  				CLASS_MEMBER_PROPERTY_FAST(MinCount)
  				CLASS_MEMBER_PROPERTY_FAST(MaxCount)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedIndex, SelectionChanged)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItem, SelectionChanged)
  				CLASS_MEMBER_PROPERTY_FAST(VisibleItemCount)
  
  				CLASS_MEMBER_METHOD(IndexToGalleryPos, { L"index" })
  				CLASS_MEMBER_METHOD(GalleryPosToIndex, { L"pos" })
  				CLASS_MEMBER_METHOD(ApplyItem, { L"index" })
  				CLASS_MEMBER_METHOD(SelectItem, { L"index" })
  			END_CLASS_MEMBER(GuiBindableRibbonGalleryList)
  
  			BEGIN_CLASS_MEMBER(GuiDocumentCommonInterface)
  				CLASS_MEMBER_PROPERTY_FAST(Document)
  				CLASS_MEMBER_PROPERTY_FAST(EditMode)
  
  				CLASS_MEMBER_GUIEVENT(ActiveHyperlinkChanged)
  				CLASS_MEMBER_GUIEVENT(ActiveHyperlinkExecuted)
  				CLASS_MEMBER_GUIEVENT(SelectionChanged)
  				CLASS_MEMBER_GUIEVENT(UndoRedoChanged)
  
  				CLASS_MEMBER_METHOD(AddDocumentItem, { L"value" })
  				CLASS_MEMBER_METHOD(RemoveDocumentItem, { L"value" })
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(DocumentItems)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(CaretBegin)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(CaretEnd)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ActiveHyperlinkReference)
  				CLASS_MEMBER_PROPERTY_EVENT_FAST(SelectionText, SelectionChanged)
  				CLASS_MEMBER_PROPERTY_EVENT_FAST(SelectionModel, SelectionChanged)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(Modified)
  
  				CLASS_MEMBER_METHOD(SetCaret, {L"begin" _ L"end" _ L"frontSide"})
  				CLASS_MEMBER_METHOD(CalculateCaretFromPoint, {L"point"})
  				CLASS_MEMBER_METHOD(GetCaretBounds, {L"caret" _ L"frontSide"})
  				CLASS_MEMBER_METHOD(NotifyParagraphUpdated, {L"index" _ L"oldCount" _ L"newCount" _ L"updatedText"})
  				CLASS_MEMBER_METHOD(EditRun, {L"begin" _ L"end" _ L"model" _ L"copy"})
  				CLASS_MEMBER_METHOD(EditText, {L"begin" _ L"end" _ L"frontSide" _ L"text"})
  				CLASS_MEMBER_METHOD(EditStyle, {L"begin" _ L"end" _ L"style"})
  				CLASS_MEMBER_METHOD(EditImage, {L"begin" _ L"end" _ L"image"})
  				CLASS_MEMBER_METHOD(EditHyperlink, {L"paragraphIndex" _ L"begin" _ L"end" _ L"reference" _ L"normalStyleName" _ L"activeStyleName"})
  				CLASS_MEMBER_METHOD(RemoveHyperlink, {L"paragraphIndex" _ L"begin" _ L"end"})
  				CLASS_MEMBER_METHOD(EditStyleName, {L"begin" _ L"end" _ L"styleName"})
  				CLASS_MEMBER_METHOD(RemoveStyleName, {L"begin" _ L"end" _ L"image"})
  				CLASS_MEMBER_METHOD(RenameStyle, {L"oldStyleName" _ L"newStyleName"})
  				CLASS_MEMBER_METHOD(ClearStyle, {L"begin" _ L"end"})
  				CLASS_MEMBER_METHOD(SummarizeStyle, {L"begin" _ L"end"})
  				CLASS_MEMBER_METHOD(SummarizeStyleName, { L"begin" _ L"end" })
  				CLASS_MEMBER_METHOD(SetParagraphAlignments, { L"begin" _ L"end" _ L"alignments" })
  				CLASS_MEMBER_METHOD(SetParagraphAlignment, { L"begin" _ L"end" _ L"alignment" })
  				CLASS_MEMBER_METHOD(SummarizeParagraphAlignment, { L"begin" _ L"end" })
  				CLASS_MEMBER_METHOD(SelectAll, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(CanCut, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(CanCopy, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(CanPaste, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Cut, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Copy, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Paste, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(CanUndo, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(CanRedo, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ClearUndoRedo, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(NotifyModificationSaved, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Undo, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Redo, NO_PARAMETER)
  			END_CLASS_MEMBER(GuiDocumentCommonInterface)
  
  			BEGIN_CLASS_MEMBER(GuiDocumentViewer)
  				CLASS_MEMBER_BASE(GuiScrollContainer)
  				CLASS_MEMBER_BASE(GuiDocumentCommonInterface)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiDocumentViewer)
  			END_CLASS_MEMBER(GuiDocumentViewer)
  
  			BEGIN_CLASS_MEMBER(GuiDocumentLabel)
  				CLASS_MEMBER_BASE(GuiControl)
  				CLASS_MEMBER_BASE(GuiDocumentCommonInterface)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiDocumentLabel)
  			END_CLASS_MEMBER(GuiDocumentLabel)
  
  			BEGIN_CLASS_MEMBER(GuiTextBoxCommonInterface)
  				CLASS_MEMBER_GUIEVENT(SelectionChanged)
  				CLASS_MEMBER_GUIEVENT(UndoRedoChanged)
  				
  				CLASS_MEMBER_PROPERTY_FAST(Readonly)
  				CLASS_MEMBER_PROPERTY_EVENT_FAST(SelectionText, SelectionChanged)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(CaretBegin, SelectionChanged)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(CaretEnd, SelectionChanged)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(CaretSmall, SelectionChanged)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(CaretLarge, SelectionChanged)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(RowCount)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(RowHeight)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(MaxWidth)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(MaxHeight)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(EditVersion)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(Modified)
  
  				CLASS_MEMBER_METHOD(CanCut, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(CanCopy, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(CanPaste, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Cut, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Copy, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Paste, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(SelectAll, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Select, {L"begin" _ L"end"})
  				CLASS_MEMBER_METHOD(SetSelectionTextAsKeyInput, {L"value"})
  				CLASS_MEMBER_METHOD(GetRowText, {L"row"})
  				CLASS_MEMBER_METHOD(GetFragmentText, {L"start" _ L"end"})
  				CLASS_MEMBER_METHOD(GetRowWidth, {L"row"})
  				CLASS_MEMBER_METHOD(GetTextPosFromPoint, {L"point"})
  				CLASS_MEMBER_METHOD(GetPointFromTextPos, {L"pos"})
  				CLASS_MEMBER_METHOD(GetRectFromTextPos, {L"pos"})
  				CLASS_MEMBER_METHOD(GetNearestTextPos, {L"point"})
  				CLASS_MEMBER_METHOD(CanUndo, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(CanRedo, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ClearUndoRedo, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(NotifyModificationSaved, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Undo, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Redo, NO_PARAMETER)
  			END_CLASS_MEMBER(GuiTextBoxCommonInterface)
  
  			BEGIN_CLASS_MEMBER(GuiMultilineTextBox)
  				CLASS_MEMBER_BASE(GuiScrollView)
  				CLASS_MEMBER_BASE(GuiTextBoxCommonInterface)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiMultilineTextBox)
  			END_CLASS_MEMBER(GuiMultilineTextBox)
  
  			BEGIN_CLASS_MEMBER(GuiSinglelineTextBox)
  				CLASS_MEMBER_BASE(GuiControl)
  				CLASS_MEMBER_BASE(GuiTextBoxCommonInterface)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiSinglelineTextBox)
  
  				CLASS_MEMBER_PROPERTY_FAST(PasswordChar)
  			END_CLASS_MEMBER(GuiSinglelineTextBox)
  
  			BEGIN_CLASS_MEMBER(GuiVirtualDataGrid)
  				CLASS_MEMBER_BASE(GuiVirtualListView)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiVirtualDataGrid, GuiListControl::IItemProvider*, itemProvider)
  
  				CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(SelectedCell)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ItemProvider)
  
  				CLASS_MEMBER_METHOD(SetViewToDefault, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(SelectCell, { L"value" _ L"openEditor" })
  			END_CLASS_MEMBER(GuiVirtualDataGrid)
  
  			BEGIN_CLASS_MEMBER(GuiDatePicker)
  				CLASS_MEMBER_BASE(GuiControl)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiDatePicker)
  
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Date)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(DateFormat)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(DateLocale)
  
  				CLASS_MEMBER_GUIEVENT(DateSelected);
  				CLASS_MEMBER_GUIEVENT(DateNavigated);
  			END_CLASS_MEMBER(GuiDatePicker)
  
  			BEGIN_CLASS_MEMBER(GuiDateComboBox)
  				CLASS_MEMBER_BASE(GuiComboBoxBase)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiDateComboBox)
  
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SelectedDate)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(DatePicker)
  			END_CLASS_MEMBER(GuiDateComboBox)
  
  			BEGIN_CLASS_MEMBER(GuiBindableTextList)
  				CLASS_MEMBER_BASE(GuiVirtualTextList)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiBindableTextList)
  
  				CLASS_MEMBER_PROPERTY_FAST(ItemSource)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(TextProperty)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(CheckedProperty)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItem, SelectionChanged)
  			END_CLASS_MEMBER(GuiBindableTextList)
  
  			BEGIN_CLASS_MEMBER(GuiBindableListView)
  				CLASS_MEMBER_BASE(GuiVirtualListView)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiBindableListView)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(DataColumns)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Columns)
  				CLASS_MEMBER_PROPERTY_FAST(ItemSource)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(LargeImageProperty)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SmallImageProperty)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItem, SelectionChanged)
  			END_CLASS_MEMBER(GuiBindableListView)
  
  			BEGIN_CLASS_MEMBER(GuiBindableTreeView)
  				CLASS_MEMBER_BASE(GuiVirtualTreeView)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiBindableTreeView)
  				
  				CLASS_MEMBER_PROPERTY_FAST(ItemSource)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(TextProperty)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ImageProperty)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ChildrenProperty)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItem, SelectionChanged)
  			END_CLASS_MEMBER(GuiBindableTreeView)
  
  			BEGIN_CLASS_MEMBER(GuiBindableDataGrid)
  				CLASS_MEMBER_BASE(GuiVirtualDataGrid)
  				CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiBindableDataGrid)
  
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(DataColumns)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Columns)
  				CLASS_MEMBER_PROPERTY_FAST(ItemSource)
  				CLASS_MEMBER_PROPERTY_FAST(AdditionalFilter)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(LargeImageProperty)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SmallImageProperty)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedRowValue, SelectedCellChanged)
  				CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedCellValue, SelectedCellChanged)
  			END_CLASS_MEMBER(GuiBindableDataGrid)
  
  #undef INTERFACE_IDENTIFIER
  #undef CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_3
  #undef CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_3
  #undef CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2
  #undef CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2
  #undef CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE
  #undef CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE
  #undef _
  
  /***********************************************************************
  Type Loader
  ***********************************************************************/
  
  			class GuiControlsTypeLoader : public Object, public ITypeLoader
  			{
  			public:
  				void Load(ITypeManager* manager)
  				{
  					GUIREFLECTIONCONTROLS_TYPELIST(ADD_TYPE_INFO)
  				}
  
  				void Unload(ITypeManager* manager)
  				{
  				}
  			};
  
  #endif
  
  			bool LoadGuiControlTypes()
  			{
  #ifndef VCZH_DEBUG_NO_REFLECTION
  				ITypeManager* manager=GetGlobalTypeManager();
  				if(manager)
  				{
  					Ptr<ITypeLoader> loader=new GuiControlsTypeLoader;
  					return manager->AddTypeLoader(loader);
  				}
  #endif
  				return false;
  			}
  		}
  	}
  }
  
  
  /***********************************************************************
  .\TYPEDESCRIPTORS\GUIREFLECTIONELEMENTS.CPP
  ***********************************************************************/
  
  namespace vl
  {
  	namespace reflection
  	{
  		namespace description
  		{
  			using namespace presentation;
  			using namespace presentation::elements;
  
  #ifndef VCZH_DEBUG_NO_REFLECTION
  
  #define _ ,
  
  #define ELEMENT_CONSTRUCTOR(ELEMENT)\
  			CLASS_MEMBER_EXTERNALCTOR(Ptr<ELEMENT>(), NO_PARAMETER, vl::reflection::description::Element_Constructor<::vl::presentation::elements::ELEMENT>)
  
  /***********************************************************************
  Type Declaration (Extra)
  ***********************************************************************/
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiGraphicsElement)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(OwnerComposition)
  			END_INTERFACE_MEMBER(IGuiGraphicsElement)
  
  			BEGIN_CLASS_MEMBER(IGuiGraphicsParagraph)
  				CLASS_MEMBER_BASE(IDescriptable)
  			END_CLASS_MEMBER(IGuiGraphicsParagraph)
  
  			BEGIN_ENUM_ITEM(IGuiGraphicsParagraph::CaretRelativePosition)
  				ENUM_ITEM_NAMESPACE(IGuiGraphicsParagraph)
  				ENUM_NAMESPACE_ITEM(CaretFirst)
  				ENUM_NAMESPACE_ITEM(CaretLast)
  				ENUM_NAMESPACE_ITEM(CaretLineFirst)
  				ENUM_NAMESPACE_ITEM(CaretLineLast)
  				ENUM_NAMESPACE_ITEM(CaretMoveLeft)
  				ENUM_NAMESPACE_ITEM(CaretMoveRight)
  				ENUM_NAMESPACE_ITEM(CaretMoveUp)
  				ENUM_NAMESPACE_ITEM(CaretMoveDown)
  			END_ENUM_ITEM(IGuiGraphicsParagraph::CaretRelativePosition)
  
  			BEGIN_ENUM_ITEM(ElementShapeType)
  				ENUM_CLASS_ITEM(Rectangle)
  				ENUM_CLASS_ITEM(Ellipse)
  				ENUM_CLASS_ITEM(RoundRect)
  			END_ENUM_ITEM(ElementShapeType)
  
  			BEGIN_STRUCT_MEMBER(ElementShape)
  				STRUCT_MEMBER(shapeType)
  				STRUCT_MEMBER(radiusX)
  				STRUCT_MEMBER(radiusY)
  			END_STRUCT_MEMBER(ElementShape)
  
  			BEGIN_ENUM_ITEM(Gui3DSplitterElement::Direction)
  				ENUM_ITEM_NAMESPACE(Gui3DSplitterElement)
  				ENUM_NAMESPACE_ITEM(Horizontal)
  				ENUM_NAMESPACE_ITEM(Vertical)
  			END_ENUM_ITEM(Gui3DSplitterElement::Direction)
  
  			BEGIN_ENUM_ITEM(GuiGradientBackgroundElement::Direction)
  				ENUM_ITEM_NAMESPACE(GuiGradientBackgroundElement)
  				ENUM_NAMESPACE_ITEM(Horizontal)
  				ENUM_NAMESPACE_ITEM(Vertical)
  				ENUM_NAMESPACE_ITEM(Slash)
  				ENUM_NAMESPACE_ITEM(Backslash)
  			END_ENUM_ITEM(GuiGradientBackgroundElement::Direction)
  
  			BEGIN_CLASS_MEMBER(text::TextLines)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Count)
  				CLASS_MEMBER_PROPERTY_FAST(TabSpaceCount)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(RowHeight)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(MaxWidth)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(MaxHeight)
  				CLASS_MEMBER_PROPERTY_FAST(PasswordChar)
  
  				CLASS_MEMBER_METHOD_OVERLOAD(GetText, NO_PARAMETER, WString(text::TextLines::*)())
  				CLASS_MEMBER_METHOD_OVERLOAD(GetText, {L"start" _ L"end"}, WString(text::TextLines::*)(TextPos _ TextPos))
  				CLASS_MEMBER_METHOD(SetText, {L"value"})
  				CLASS_MEMBER_METHOD(RemoveLines, {L"start" _ L"end"})
  				CLASS_MEMBER_METHOD(IsAvailable, {L"pos"})
  				CLASS_MEMBER_METHOD(Normalize, {L"pos"})
  				CLASS_MEMBER_METHOD_OVERLOAD(Modify, {L"start" _ L"end" _ L"input"}, TextPos(text::TextLines::*)(TextPos _ TextPos _ const WString&))
  				CLASS_MEMBER_METHOD(Clear, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(ClearMeasurement, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(MeasureRow, {L"row"})
  				CLASS_MEMBER_METHOD(GetRowWidth, {L"row"})
  				CLASS_MEMBER_METHOD(GetTextPosFromPoint, {L"point"})
  				CLASS_MEMBER_METHOD(GetPointFromTextPos, {L"pos"})
  				CLASS_MEMBER_METHOD(GetRectFromTextPos, {L"pos"})
  			END_CLASS_MEMBER(text::TextLines)
  
  			BEGIN_STRUCT_MEMBER(text::ColorItem)
  				STRUCT_MEMBER(text)
  				STRUCT_MEMBER(background)
  			END_STRUCT_MEMBER(text::ColorItem)
  
  			BEGIN_STRUCT_MEMBER(text::ColorEntry)
  				STRUCT_MEMBER(normal)
  				STRUCT_MEMBER(selectedFocused)
  				STRUCT_MEMBER(selectedUnfocused)
  			END_STRUCT_MEMBER(text::ColorEntry)
  
  /***********************************************************************
  Type Declaration (Class)
  ***********************************************************************/
  
  			BEGIN_CLASS_MEMBER(GuiFocusRectangleElement)
  				CLASS_MEMBER_BASE(IGuiGraphicsElement)
  				ELEMENT_CONSTRUCTOR(GuiFocusRectangleElement)
  			END_CLASS_MEMBER(GuiFocusRectangleElement)
  
  			BEGIN_CLASS_MEMBER(GuiSolidBorderElement)
  				CLASS_MEMBER_BASE(IGuiGraphicsElement)
  				ELEMENT_CONSTRUCTOR(GuiSolidBorderElement)
  
  				CLASS_MEMBER_PROPERTY_FAST(Color)
  				CLASS_MEMBER_PROPERTY_FAST(Shape)
  			END_CLASS_MEMBER(GuiSolidBorderElement)
  
  			BEGIN_CLASS_MEMBER(Gui3DBorderElement)
  				CLASS_MEMBER_BASE(IGuiGraphicsElement)
  				ELEMENT_CONSTRUCTOR(Gui3DBorderElement)
  				
  				CLASS_MEMBER_METHOD(SetColors, {L"value1" _ L"value2"})
  
  				CLASS_MEMBER_PROPERTY_FAST(Color1)
  				CLASS_MEMBER_PROPERTY_FAST(Color2)
  			END_CLASS_MEMBER(Gui3DBorderElement)
  
  			BEGIN_CLASS_MEMBER(Gui3DSplitterElement)
  				CLASS_MEMBER_BASE(IGuiGraphicsElement)
  				ELEMENT_CONSTRUCTOR(Gui3DSplitterElement)
  				
  				CLASS_MEMBER_METHOD(SetColors, {L"value1" _ L"value2"})
  
  				CLASS_MEMBER_PROPERTY_FAST(Color1)
  				CLASS_MEMBER_PROPERTY_FAST(Color2)
  				CLASS_MEMBER_PROPERTY_FAST(Direction)
  			END_CLASS_MEMBER(Gui3DSplitterElement)
  
  			BEGIN_CLASS_MEMBER(GuiSolidBackgroundElement)
  				CLASS_MEMBER_BASE(IGuiGraphicsElement)
  				ELEMENT_CONSTRUCTOR(GuiSolidBackgroundElement)
  				
  				CLASS_MEMBER_PROPERTY_FAST(Color)
  				CLASS_MEMBER_PROPERTY_FAST(Shape)
  			END_CLASS_MEMBER(GuiSolidBackgroundElement)
  
  			BEGIN_CLASS_MEMBER(GuiGradientBackgroundElement)
  				CLASS_MEMBER_BASE(IGuiGraphicsElement)
  				ELEMENT_CONSTRUCTOR(GuiGradientBackgroundElement)
  				
  				CLASS_MEMBER_METHOD(SetColors, {L"value1" _ L"value2"})
  
  				CLASS_MEMBER_PROPERTY_FAST(Color1)
  				CLASS_MEMBER_PROPERTY_FAST(Color2)
  				CLASS_MEMBER_PROPERTY_FAST(Direction)
  				CLASS_MEMBER_PROPERTY_FAST(Shape)
  			END_CLASS_MEMBER(GuiGradientBackgroundElement)
  
  			BEGIN_CLASS_MEMBER(GuiInnerShadowElement)
  				CLASS_MEMBER_BASE(IGuiGraphicsElement)
  				ELEMENT_CONSTRUCTOR(GuiInnerShadowElement)
  
  				CLASS_MEMBER_PROPERTY_FAST(Color)
  				CLASS_MEMBER_PROPERTY_FAST(Thickness)
  			END_CLASS_MEMBER(GuiInnerShadowElement)
  
  			BEGIN_CLASS_MEMBER(GuiSolidLabelElement)
  				CLASS_MEMBER_BASE(IGuiGraphicsElement)
  				ELEMENT_CONSTRUCTOR(GuiSolidLabelElement)
  				
  				CLASS_MEMBER_METHOD(SetAlignments, {L"horizontal" _ L"vertical"})
  
  				CLASS_MEMBER_PROPERTY_FAST(Color)
  				CLASS_MEMBER_PROPERTY_FAST(Font)
  				CLASS_MEMBER_PROPERTY_FAST(Text)
  				CLASS_MEMBER_PROPERTY_FAST(HorizontalAlignment)
  				CLASS_MEMBER_PROPERTY_FAST(VerticalAlignment)
  				CLASS_MEMBER_PROPERTY_FAST(WrapLine)
  				CLASS_MEMBER_PROPERTY_FAST(Ellipse)
  				CLASS_MEMBER_PROPERTY_FAST(Multiline)
  				CLASS_MEMBER_PROPERTY_FAST(WrapLineHeightCalculation)
  			END_CLASS_MEMBER(GuiSolidLabelElement)
  
  			BEGIN_CLASS_MEMBER(GuiImageFrameElement)
  				CLASS_MEMBER_BASE(IGuiGraphicsElement)
  				ELEMENT_CONSTRUCTOR(GuiImageFrameElement)
  
  				CLASS_MEMBER_METHOD(GetImage, NO_PARAMETER)
  				CLASS_MEMBER_METHOD_OVERLOAD(SetImage, {L"value"}, void(GuiImageFrameElement::*)(Ptr<INativeImage>))
  				CLASS_MEMBER_METHOD_OVERLOAD(SetImage, {L"image" _  L"frameIndex"}, void(GuiImageFrameElement::*)(Ptr<INativeImage> _ vint))
  				CLASS_MEMBER_PROPERTY(Image, GetImage, SetImage)
  
  				CLASS_MEMBER_PROPERTY_FAST(FrameIndex)
  				CLASS_MEMBER_PROPERTY_FAST(HorizontalAlignment)
  				CLASS_MEMBER_PROPERTY_FAST(VerticalAlignment)
  				CLASS_MEMBER_PROPERTY_FAST(Stretch)
  				CLASS_MEMBER_PROPERTY_FAST(Enabled)
  			END_CLASS_MEMBER(GuiImageFrameElement)
  
  			BEGIN_CLASS_MEMBER(GuiPolygonElement)
  				CLASS_MEMBER_BASE(IGuiGraphicsElement)
  				ELEMENT_CONSTRUCTOR(GuiPolygonElement)
  
  				CLASS_MEMBER_METHOD_RENAME(GetPoints, GetPointsArray, NO_PARAMETER);
  				CLASS_MEMBER_METHOD_RENAME(SetPoints, SetPointsArray, {L"points"});
  				CLASS_MEMBER_PROPERTY(Points, GetPoints, SetPoints);
  				CLASS_MEMBER_PROPERTY_FAST(Size)
  				CLASS_MEMBER_PROPERTY_FAST(BorderColor)
  				CLASS_MEMBER_PROPERTY_FAST(BackgroundColor)
  			END_CLASS_MEMBER(GuiPolygonElement)
  
  			BEGIN_CLASS_MEMBER(GuiColorizedTextElement)
  				CLASS_MEMBER_BASE(IGuiGraphicsElement)
  				ELEMENT_CONSTRUCTOR(GuiColorizedTextElement)
  
  				CLASS_MEMBER_PROPERTY_FAST(Font)
  				CLASS_MEMBER_PROPERTY_FAST(PasswordChar)
  				CLASS_MEMBER_PROPERTY_FAST(ViewPosition)
  				CLASS_MEMBER_PROPERTY_FAST(VisuallyEnabled)
  				CLASS_MEMBER_PROPERTY_FAST(Focused)
  				CLASS_MEMBER_PROPERTY_FAST(CaretBegin)
  				CLASS_MEMBER_PROPERTY_FAST(CaretEnd)
  				CLASS_MEMBER_PROPERTY_FAST(CaretVisible)
  				CLASS_MEMBER_PROPERTY_FAST(CaretColor)
  
  				CLASS_MEMBER_EXTERNALMETHOD(GetLines, NO_PARAMETER, text::TextLines*(GuiColorizedTextElement::*)(), vl::reflection::description::GuiColorizedTextElement_GetLines)
  				CLASS_MEMBER_PROPERTY_READONLY(Lines, GetLines)
  				CLASS_MEMBER_PROPERTY_FAST(Colors)
  			END_CLASS_MEMBER(GuiColorizedTextElement)
  
  			BEGIN_CLASS_MEMBER(GuiDocumentElement)
  				CLASS_MEMBER_BASE(IGuiGraphicsElement)
  				ELEMENT_CONSTRUCTOR(GuiDocumentElement)
  
  				CLASS_MEMBER_PROPERTY_FAST(Document)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(CaretBegin)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(CaretEnd)
  				CLASS_MEMBER_PROPERTY_FAST(CaretVisible)
  				CLASS_MEMBER_PROPERTY_FAST(CaretColor)
  
  				CLASS_MEMBER_METHOD(IsCaretEndPreferFrontSide, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(SetCaret, {L"begin" _ L"end" _ L"frontSide"})
  				CLASS_MEMBER_METHOD(CalculateCaret, {L"comparingCaret" _ L"position" _ L"preferFrontSide"})
  				CLASS_MEMBER_METHOD(CalculateCaretFromPoint, {L"point"})
  				CLASS_MEMBER_METHOD(GetCaretBounds, {L"caret" _ L"frontSide"})
  				CLASS_MEMBER_METHOD(NotifyParagraphUpdated, {L"index" _ L"oldCount" _ L"newCount" _ L"updatedText"})
  				CLASS_MEMBER_METHOD(EditRun, {L"begin" _ L"end" _ L"model" _ L"copy"})
  				CLASS_MEMBER_METHOD(EditText, {L"begin" _ L"end" _ L"frontSide" _ L"text"})
  				CLASS_MEMBER_METHOD(EditStyle, {L"begin" _ L"end" _ L"style"})
  				CLASS_MEMBER_METHOD(EditImage, {L"begin" _ L"end" _ L"image"})
  				CLASS_MEMBER_METHOD(EditImage, {L"paragraphIndex" _ L"begin" _ L"end" _ L"reference" _ L"normalStyleName" _ L"activeStyleName"})
  				CLASS_MEMBER_METHOD(RemoveHyperlink, {L"paragraphIndex" _ L"begin" _ L"end"})
  				CLASS_MEMBER_METHOD(EditStyleName, {L"begin" _ L"end" _ L"styleName"})
  				CLASS_MEMBER_METHOD(RemoveStyleName, {L"begin" _ L"end" _ L"image"})
  				CLASS_MEMBER_METHOD(RenameStyle, {L"oldStyleName" _ L"newStyleName"})
  				CLASS_MEMBER_METHOD(ClearStyle, {L"begin" _ L"end"})
  				CLASS_MEMBER_METHOD(SummarizeStyle, {L"begin" _ L"end"})
  				CLASS_MEMBER_METHOD(SummarizeStyleName, { L"begin" _ L"end" })
  				CLASS_MEMBER_METHOD(SetParagraphAlignment, {L"begin" _ L"end" _ L"alignments"})
  				CLASS_MEMBER_METHOD(SummarizeParagraphAlignment, { L"begin" _ L"end" })
  				CLASS_MEMBER_METHOD(GetHyperlinkFromPoint, {L"point"})
  			END_CLASS_MEMBER(GuiDocumentElement)
  
  #undef ELEMENT_CONSTRUCTOR
  #undef _
  
  /***********************************************************************
  Type Loader
  ***********************************************************************/
  
  			class GuiElementTypeLoader : public Object, public ITypeLoader
  			{
  			public:
  				void Load(ITypeManager* manager)
  				{
  					GUIREFLECTIONELEMENT_TYPELIST(ADD_TYPE_INFO)
  				}
  
  				void Unload(ITypeManager* manager)
  				{
  				}
  			};
  
  #endif
  
  			bool LoadGuiElementTypes()
  			{
  #ifndef VCZH_DEBUG_NO_REFLECTION
  				ITypeManager* manager=GetGlobalTypeManager();
  				if(manager)
  				{
  					Ptr<ITypeLoader> loader=new GuiElementTypeLoader;
  					return manager->AddTypeLoader(loader);
  				}
  #endif
  				return false;
  			}
  		}
  	}
  }
  
  /***********************************************************************
  .\TYPEDESCRIPTORS\GUIREFLECTIONEVENTS.CPP
  ***********************************************************************/
  
  namespace vl
  {
  	namespace reflection
  	{
  		namespace description
  		{
  			using namespace presentation::compositions;
  
  #ifndef VCZH_DEBUG_NO_REFLECTION
  
  /***********************************************************************
  Type Declaration
  ***********************************************************************/
  
  #define _ ,
  
  #define EVENTARGS_CONSTRUCTOR(EVENTARGS)\
  	CLASS_MEMBER_CONSTRUCTOR(Ptr<EVENTARGS>(), NO_PARAMETER)\
  	CLASS_MEMBER_CONSTRUCTOR(Ptr<EVENTARGS>(GuiGraphicsComposition*), {L"composition"})
  
  			BEGIN_CLASS_MEMBER(GuiEventArgs)
  				EVENTARGS_CONSTRUCTOR(GuiEventArgs)
  
  				CLASS_MEMBER_FIELD(compositionSource)
  				CLASS_MEMBER_FIELD(eventSource)
  				CLASS_MEMBER_FIELD(handled)
  			END_CLASS_MEMBER(GuiEventArgs)
  
  			BEGIN_CLASS_MEMBER(GuiRequestEventArgs)
  				CLASS_MEMBER_BASE(GuiEventArgs)
  				EVENTARGS_CONSTRUCTOR(GuiRequestEventArgs)
  
  				CLASS_MEMBER_FIELD(cancel)
  			END_CLASS_MEMBER(GuiRequestEventArgs)
  
  			BEGIN_CLASS_MEMBER(GuiKeyEventArgs)
  				CLASS_MEMBER_BASE(GuiEventArgs)
  				EVENTARGS_CONSTRUCTOR(GuiKeyEventArgs)
  				
  				CLASS_MEMBER_FIELD(code)
  				CLASS_MEMBER_FIELD(ctrl)
  				CLASS_MEMBER_FIELD(shift)
  				CLASS_MEMBER_FIELD(alt)
  				CLASS_MEMBER_FIELD(capslock)
  				CLASS_MEMBER_FIELD(autoRepeatKeyDown)
  			END_CLASS_MEMBER(GuiKeyEventArgs)
  
  			BEGIN_CLASS_MEMBER(GuiCharEventArgs)
  				CLASS_MEMBER_BASE(GuiEventArgs)
  				EVENTARGS_CONSTRUCTOR(GuiCharEventArgs)
  				
  				CLASS_MEMBER_FIELD(code)
  				CLASS_MEMBER_FIELD(ctrl)
  				CLASS_MEMBER_FIELD(shift)
  				CLASS_MEMBER_FIELD(alt)
  				CLASS_MEMBER_FIELD(capslock)
  			END_CLASS_MEMBER(GuiCharEventArgs)
  
  			BEGIN_CLASS_MEMBER(GuiMouseEventArgs)
  				CLASS_MEMBER_BASE(GuiEventArgs)
  				EVENTARGS_CONSTRUCTOR(GuiMouseEventArgs)
  				
  				CLASS_MEMBER_FIELD(ctrl)
  				CLASS_MEMBER_FIELD(shift)
  				CLASS_MEMBER_FIELD(left)
  				CLASS_MEMBER_FIELD(middle)
  				CLASS_MEMBER_FIELD(right)
  				CLASS_MEMBER_FIELD(x)
  				CLASS_MEMBER_FIELD(y)
  				CLASS_MEMBER_FIELD(wheel)
  				CLASS_MEMBER_FIELD(nonClient)
  			END_CLASS_MEMBER(GuiMouseEventArgs)
  
  			BEGIN_ENUM_ITEM(ControlSignal)
  				ENUM_CLASS_ITEM(RenderTargetChanged)
  				ENUM_CLASS_ITEM(ParentLineChanged)
  				ENUM_CLASS_ITEM(ServiceAdded)
  			END_ENUM_ITEM(ControlSignal)
  
  			BEGIN_CLASS_MEMBER(GuiControlSignalEventArgs)
  				CLASS_MEMBER_BASE(GuiEventArgs)
  				
  				CLASS_MEMBER_FIELD(controlSignal)
  			END_CLASS_MEMBER(GuiControlSignalEventArgs)
  
  			BEGIN_CLASS_MEMBER(GuiItemEventArgs)
  				CLASS_MEMBER_BASE(GuiEventArgs)
  				EVENTARGS_CONSTRUCTOR(GuiItemEventArgs)
  
  				CLASS_MEMBER_FIELD(itemIndex)
  			END_CLASS_MEMBER(GuiItemEventArgs)
  
  			BEGIN_CLASS_MEMBER(GuiItemMouseEventArgs)
  				CLASS_MEMBER_BASE(GuiMouseEventArgs)
  				EVENTARGS_CONSTRUCTOR(GuiItemMouseEventArgs)
  
  				CLASS_MEMBER_FIELD(itemIndex)
  			END_CLASS_MEMBER(GuiItemMouseEventArgs)
  
  			BEGIN_CLASS_MEMBER(GuiNodeEventArgs)
  				CLASS_MEMBER_BASE(GuiEventArgs)
  				EVENTARGS_CONSTRUCTOR(GuiNodeEventArgs)
  
  				CLASS_MEMBER_FIELD(node)
  			END_CLASS_MEMBER(GuiNodeEventArgs)
  
  			BEGIN_CLASS_MEMBER(GuiNodeMouseEventArgs)
  				CLASS_MEMBER_BASE(GuiMouseEventArgs)
  				EVENTARGS_CONSTRUCTOR(GuiNodeMouseEventArgs)
  
  				CLASS_MEMBER_FIELD(node)
  			END_CLASS_MEMBER(GuiNodeMouseEventArgs)
  
  #undef EVENTARGS_CONSTRUCTOR
  #undef _
  
  /***********************************************************************
  Type Loader
  ***********************************************************************/
  
  			class GuiEventTypeLoader : public Object, public ITypeLoader
  			{
  			public:
  				void Load(ITypeManager* manager)
  				{
  					GUIREFLECTIONEVENT_TYPELIST(ADD_TYPE_INFO)
  				}
  
  				void Unload(ITypeManager* manager)
  				{
  				}
  			};
  
  #endif
  
  			bool LoadGuiEventTypes()
  			{
  #ifndef VCZH_DEBUG_NO_REFLECTION
  				ITypeManager* manager=GetGlobalTypeManager();
  				if(manager)
  				{
  					Ptr<ITypeLoader> loader=new GuiEventTypeLoader;
  					return manager->AddTypeLoader(loader);
  				}
  #endif
  				return false;
  			}
  		}
  	}
  }
  
  /***********************************************************************
  .\TYPEDESCRIPTORS\GUIREFLECTIONPLUGIN.CPP
  ***********************************************************************/
  
  /***********************************************************************
  Plugin
  ***********************************************************************/
  
  namespace vl
  {
  	namespace reflection
  	{
  		namespace description
  		{
  #define GUIREFLECTIONTEMPLATES_IMPL_VL_TYPE_INFO(NAME, BASE) IMPL_VL_TYPE_INFO(presentation::templates::NAME)
  
  			GUIREFLECTIONBASIC_TYPELIST(IMPL_VL_TYPE_INFO)
  			GUIREFLECTIONELEMENT_TYPELIST(IMPL_VL_TYPE_INFO)
  			GUIREFLECTIONCOMPOSITION_TYPELIST(IMPL_VL_TYPE_INFO)
  			GUIREFLECTIONEVENT_TYPELIST(IMPL_VL_TYPE_INFO)
  			GUIREFLECTIONTEMPLATES_TYPELIST(IMPL_VL_TYPE_INFO)
  			GUIREFLECTIONCONTROLS_TYPELIST(IMPL_VL_TYPE_INFO)
  
  #undef GUIREFLECTIONTEMPLATES_IMPL_VL_TYPE_INFO
  
  			extern bool LoadGuiBasicTypes();
  			extern bool LoadGuiElementTypes();
  			extern bool LoadGuiCompositionTypes();
  			extern bool LoadGuiEventTypes();
  			extern bool LoadGuiTemplateTypes();
  			extern bool LoadGuiControlTypes();
  
  			using namespace presentation::controls;
  
  			class GuiReflectionPlugin : public Object, public IGuiPlugin
  			{
  			public:
  
  				GUI_PLUGIN_NAME(GacUI_Instance_Reflection)
  				{
  				}
  
  				void Load()override
  				{
  					LoadPredefinedTypes();
  					LoadParsingTypes();
  					XmlLoadTypes();
  					JsonLoadTypes();
  					WfLoadLibraryTypes();
  					LoadGuiBasicTypes();
  					LoadGuiElementTypes();
  					LoadGuiCompositionTypes();
  					LoadGuiEventTypes();
  					LoadGuiTemplateTypes();
  					LoadGuiControlTypes();
  				}
  
  				void Unload()override
  				{
  				}
  			};
  			GUI_REGISTER_PLUGIN(GuiReflectionPlugin)
  		}
  	}
  }
  
  /***********************************************************************
  .\TYPEDESCRIPTORS\GUIREFLECTIONTEMPLATES.CPP
  ***********************************************************************/
  
  namespace vl
  {
  	namespace reflection
  	{
  		namespace description
  		{
  			using namespace presentation;
  			using namespace presentation::compositions;
  			using namespace presentation::controls;
  			using namespace presentation::controls::list;
  			using namespace presentation::templates;
  
  #ifndef VCZH_DEBUG_NO_REFLECTION
  
  #define _ ,
  
  #define GUI_TEMPLATE_PROPERTY_REFLECTION(CLASS, TYPE, NAME, VALUE)\
  	CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(NAME)
  
  /***********************************************************************
  Type Declaration (Extra)
  ***********************************************************************/
  
  			BEGIN_ENUM_ITEM(ButtonState)
  				ENUM_CLASS_ITEM(Normal)
  				ENUM_CLASS_ITEM(Active)
  				ENUM_CLASS_ITEM(Pressed)
  			END_ENUM_ITEM(ButtonState)
  
  			BEGIN_ENUM_ITEM(ColumnSortingState)
  				ENUM_CLASS_ITEM(NotSorted)
  				ENUM_CLASS_ITEM(Ascending)
  				ENUM_CLASS_ITEM(Descending)
  			END_ENUM_ITEM(ColumnSortingState)
  
  			BEGIN_ENUM_ITEM(TabPageOrder)
  				ENUM_CLASS_ITEM(Unknown)
  				ENUM_CLASS_ITEM(LeftToRight)
  				ENUM_CLASS_ITEM(RightToLeft)
  				ENUM_CLASS_ITEM(TopToBottom)
  				ENUM_CLASS_ITEM(BottomToTop)
  			END_ENUM_ITEM(TabPageOrder)
  
  			BEGIN_ENUM_ITEM(BoolOption)
  				ENUM_CLASS_ITEM(AlwaysTrue)
  				ENUM_CLASS_ITEM(AlwaysFalse)
  				ENUM_CLASS_ITEM(Customizable)
  			END_ENUM_ITEM(BoolOption)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(ITextBoxCommandExecutor)
  				CLASS_MEMBER_BASE(IDescriptable)
  
  				CLASS_MEMBER_METHOD(UnsafeSetText, { L"value" })
  			END_INTERFACE_MEMBER(ITextBoxCommandExecutor)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IScrollCommandExecutor)
  				CLASS_MEMBER_METHOD(SmallDecrease, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(SmallIncrease, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(BigDecrease, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(BigIncrease, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(SetTotalSize, { L"value" })
  				CLASS_MEMBER_METHOD(SetPageSize, { L"value" })
  				CLASS_MEMBER_METHOD(SetPosition, { L"value" })
  			END_INTERFACE_MEMBER(IScrollCommandExecutor)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(ITabCommandExecutor)
  				CLASS_MEMBER_BASE(IDescriptable)
  				CLASS_MEMBER_METHOD(ShowTab, { L"index" _ L"setFocus" })
  			END_INTERFACE_MEMBER(ITabCommandExecutor)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IDatePickerCommandExecutor)
  				CLASS_MEMBER_BASE(IDescriptable)
  				CLASS_MEMBER_METHOD(NotifyDateChanged, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(NotifyDateNavigated, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(NotifyDateSelected, NO_PARAMETER)
  			END_INTERFACE_MEMBER(IDatePickerCommandExecutor)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IRibbonGroupCommandExecutor)
  				CLASS_MEMBER_BASE(IDescriptable)
  				CLASS_MEMBER_METHOD(NotifyExpandButtonClicked, NO_PARAMETER)
  			END_INTERFACE_MEMBER(IRibbonGroupCommandExecutor)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IRibbonGalleryCommandExecutor)
  				CLASS_MEMBER_BASE(IDescriptable)
  				CLASS_MEMBER_METHOD(NotifyScrollUp, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(NotifyScrollDown, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(NotifyDropdown, NO_PARAMETER)
  			END_INTERFACE_MEMBER(IRibbonGalleryCommandExecutor)
  
  			BEGIN_CLASS_MEMBER(GuiComponent)
  			END_CLASS_MEMBER(GuiComponent)
  
  			BEGIN_INTERFACE_MEMBER(IGuiAnimation)
  				CLASS_MEMBER_BASE(IDescriptable)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(Stopped)
  
  				CLASS_MEMBER_METHOD(Start, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Pause, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Resume, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(Run, NO_PARAMETER)
  
  				CLASS_MEMBER_STATIC_METHOD_OVERLOAD(CreateAnimation, { L"run" _ L"milliseconds" }, Ptr<IGuiAnimation>(*)(const Func<void(vuint64_t)>&, vuint64_t))
  				CLASS_MEMBER_STATIC_METHOD_OVERLOAD(CreateAnimation, { L"run" }, Ptr<IGuiAnimation>(*)(const Func<void(vuint64_t)>&))
  			END_INTERFACE_MEMBER(IGuiAnimation)
  
  			BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiAnimationCoroutine::IImpl)
  				CLASS_MEMBER_BASE(IGuiAnimation)
  			END_INTERFACE_MEMBER(IGuiAnimationCoroutine::IImpl)
  
  			BEGIN_CLASS_MEMBER(IGuiAnimationCoroutine)
  				CLASS_MEMBER_STATIC_METHOD(WaitAndPause, { L"impl" _ L"milliseconds" })
  				CLASS_MEMBER_STATIC_METHOD(PlayAndWaitAndPause, { L"impl" _ L"animation" })
  				CLASS_MEMBER_STATIC_METHOD(PlayInGroupAndPause, { L"impl" _ L"animation" _ L"groupId" })
  				CLASS_MEMBER_STATIC_METHOD(WaitForGroupAndPause, { L"impl" _ L"groupId" })
  				CLASS_MEMBER_STATIC_METHOD(ReturnAndExit, { L"impl" })
  				CLASS_MEMBER_STATIC_METHOD(Create, { L"creator" })
  			END_CLASS_MEMBER(IGuiAnimationCoroutine)
  
  			BEGIN_CLASS_MEMBER(GuiInstanceRootObject)
  				CLASS_MEMBER_METHOD_OVERLOAD(FinalizeInstanceRecursively, {L"thisObject"}, void(GuiInstanceRootObject::*)(GuiTemplate*))
  				CLASS_MEMBER_METHOD_OVERLOAD(FinalizeInstanceRecursively, {L"thisObject"}, void(GuiInstanceRootObject::*)(GuiCustomControl*))
  				CLASS_MEMBER_METHOD_OVERLOAD(FinalizeInstanceRecursively, {L"thisObject"}, void(GuiInstanceRootObject::*)(GuiControlHost*))
  				CLASS_MEMBER_METHOD(FinalizeGeneralInstance, {L"thisObject"})
  				CLASS_MEMBER_METHOD(SetResourceResolver, {L"resolver"})
  				CLASS_MEMBER_METHOD(ResolveResource, {L"protocol" _ L"path" _ L"ensureExist"})
  
  				CLASS_MEMBER_METHOD(AddSubscription, {L"subscription"})
  				CLASS_MEMBER_METHOD(UpdateSubscriptions, NO_PARAMETER)
  				CLASS_MEMBER_METHOD(AddComponent, {L"component"})
  				CLASS_MEMBER_METHOD(AddControlHostComponent, {L"controlHost"})
  				CLASS_MEMBER_METHOD(AddAnimation, { L"animation" })
  				CLASS_MEMBER_METHOD(KillAnimation, { L"animation" })
  			END_CLASS_MEMBER(GuiInstanceRootObject)
  
  			BEGIN_CLASS_MEMBER(GuiCommonScrollBehavior)
  				CLASS_MEMBER_BASE(GuiComponent)
  				CLASS_MEMBER_CONSTRUCTOR(GuiCommonScrollBehavior*(), NO_PARAMETER)
  				
  				CLASS_MEMBER_METHOD(AttachScrollTemplate, { L"value" })
  				CLASS_MEMBER_METHOD(AttachDecreaseButton, { L"button" })
  				CLASS_MEMBER_METHOD(AttachIncreaseButton, { L"button" })
  				CLASS_MEMBER_METHOD(AttachHorizontalScrollHandle, { L"partialView" })
  				CLASS_MEMBER_METHOD(AttachVerticalScrollHandle, { L"partialView" })
  				CLASS_MEMBER_METHOD(AttachHorizontalTrackerHandle, { L"partialView" })
  				CLASS_MEMBER_METHOD(AttachVerticalTrackerHandle, { L"partialView" })
  				CLASS_MEMBER_METHOD(GetHorizontalTrackerHandlerPosition, { L"handle" _ L"totalSize" _ L"pageSize" _ L"position" })
  				CLASS_MEMBER_METHOD(GetVerticalTrackerHandlerPosition, { L"handle" _ L"totalSize" _ L"pageSize" _ L"position" })
  			END_CLASS_MEMBER(GuiCommonScrollBehavior)
  
  /***********************************************************************
  Type Declaration (Class)
  ***********************************************************************/
  
  			BEGIN_CLASS_MEMBER(GuiTemplate)
  				CLASS_MEMBER_BASE(GuiBoundsComposition)
  				CLASS_MEMBER_BASE(GuiInstanceRootObject)
  				CLASS_MEMBER_CONSTRUCTOR(GuiTemplate*(), NO_PARAMETER)
  
  				GuiTemplate_PROPERTIES(GUI_TEMPLATE_PROPERTY_REFLECTION)
  			END_CLASS_MEMBER(GuiTemplate)
  
  #define GUI_CONTROL_TEMPLATE(NAME, BASE)\
  			BEGIN_CLASS_MEMBER(NAME)\
  				CLASS_MEMBER_BASE(BASE)\
  				CLASS_MEMBER_CONSTRUCTOR(NAME*(), NO_PARAMETER)\
  				NAME ## _PROPERTIES(GUI_TEMPLATE_PROPERTY_REFLECTION)\
  			END_CLASS_MEMBER(NAME)\
  
  			GUI_CONTROL_TEMPLATE(GuiListItemTemplate, GuiTemplate)
  			GUI_CONTROL_TEMPLATE_DECL(GUI_CONTROL_TEMPLATE)
  			GUI_ITEM_TEMPLATE_DECL(GUI_CONTROL_TEMPLATE)
  
  			BEGIN_CLASS_MEMBER(GuiCommonDatePickerLook)
  				CLASS_MEMBER_BASE(GuiTemplate)
  				CLASS_MEMBER_CONSTRUCTOR(GuiCommonDatePickerLook*(Color, Color, Color), { L"backgroundColor" _ L"primaryTextColor" _ L"secondaryTextColor" })
  
  				CLASS_MEMBER_PROPERTY_FAST(Commands)
  				CLASS_MEMBER_PROPERTY_FAST(DateButtonTemplate)
  				CLASS_MEMBER_PROPERTY_FAST(DateTextListTemplate)
  				CLASS_MEMBER_PROPERTY_FAST(DateComboBoxTemplate)
  				CLASS_MEMBER_PROPERTY_FAST(DateLocale)
  				CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Date)
  				CLASS_MEMBER_PROPERTY_FAST(Font)
  			END_CLASS_MEMBER(GuiCommonDatePickerLook)
  
  			BEGIN_CLASS_MEMBER(GuiCommonScrollViewLook)
  				CLASS_MEMBER_BASE(GuiTemplate)
  				CLASS_MEMBER_CONSTRUCTOR(GuiCommonScrollViewLook*(vint), { L"defaultScrollSize" })
  				
  				CLASS_MEMBER_PROPERTY_FAST(HScrollTemplate)
  				CLASS_MEMBER_PROPERTY_FAST(VScrollTemplate)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(HScroll)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(VScroll)
  				CLASS_MEMBER_PROPERTY_READONLY_FAST(ContainerComposition)
  			END_CLASS_MEMBER(GuiCommonScrollViewLook)
  
  			BEGIN_CLASS_MEMBER(MainColumnVisualizerTemplate)
  				CLASS_MEMBER_BASE(GuiGridVisualizerTemplate)
  				CLASS_MEMBER_CONSTRUCTOR(MainColumnVisualizerTemplate*(), NO_PARAMETER)
  			END_CLASS_MEMBER(MainColumnVisualizerTemplate)
  
  			BEGIN_CLASS_MEMBER(SubColumnVisualizerTemplate)
  				CLASS_MEMBER_BASE(GuiGridVisualizerTemplate)
  				CLASS_MEMBER_CONSTRUCTOR(SubColumnVisualizerTemplate*(), NO_PARAMETER)
  			END_CLASS_MEMBER(SubColumnVisualizerTemplate)
  
  			BEGIN_CLASS_MEMBER(HyperlinkVisualizerTemplate)
  				CLASS_MEMBER_BASE(SubColumnVisualizerTemplate)
  				CLASS_MEMBER_CONSTRUCTOR(HyperlinkVisualizerTemplate*(), NO_PARAMETER)
  			END_CLASS_MEMBER(HyperlinkVisualizerTemplate)
  
  			BEGIN_CLASS_MEMBER(FocusRectangleVisualizerTemplate)
  				CLASS_MEMBER_BASE(GuiGridVisualizerTemplate)
  				CLASS_MEMBER_CONSTRUCTOR(FocusRectangleVisualizerTemplate*(), NO_PARAMETER)
  			END_CLASS_MEMBER(FocusRectangleVisualizerTemplate)
  
  			BEGIN_CLASS_MEMBER(CellBorderVisualizerTemplate)
  				CLASS_MEMBER_BASE(GuiGridVisualizerTemplate)
  				CLASS_MEMBER_CONSTRUCTOR(CellBorderVisualizerTemplate*(), NO_PARAMETER)
  			END_CLASS_MEMBER(CellBorderVisualizerTemplate)
  
  #undef GUI_CONTROL_TEMPLATE
  #undef GUI_TEMPLATE_PROPERTY_REFLECTION
  #undef _
  
  /***********************************************************************
  Type Loader
  ***********************************************************************/
  
  			class GuiTemplateTypeLoader : public Object, public ITypeLoader
  			{
  			public:
  				void Load(ITypeManager* manager)
  				{
  #define GUIREFLECTIONTEMPLATES_ADD_TYPE_INFO(NAME, BASE) ADD_TYPE_INFO(presentation::templates::NAME)
  
  					GUIREFLECTIONTEMPLATES_TYPELIST(ADD_TYPE_INFO)
  
  #undef GUIREFLECTIONTEMPLATES_ADD_TYPE_INFO
  				}
  
  				void Unload(ITypeManager* manager)
  				{
  				}
  			};
  
  #endif
  
  			bool LoadGuiTemplateTypes()
  			{
  #ifndef VCZH_DEBUG_NO_REFLECTION
  				ITypeManager* manager=GetGlobalTypeManager();
  				if(manager)
  				{
  					Ptr<ITypeLoader> loader=new GuiTemplateTypeLoader;
  					return manager->AddTypeLoader(loader);
  				}
  #endif
  				return false;
  			}
  		}
  	}
  }
  