#include "GuiReflectionPlugin.h"
namespace
 
{
	
namespace
 
	{
		
namespace
 
		{
			
using
 namespace
 presentation
::
compositions
;
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
#define _ ,
#define EVENTARGS_CONSTRUCTOR(EVENTARGS)\
	CLASS_MEMBER_CONSTRUCTOR(Ptr<EVENTARGS>(), NO_PARAMETER)\
	CLASS_MEMBER_CONSTRUCTOR(Ptr<EVENTARGS>(GuiGraphicsComposition*), {L"composition"})
			BEGIN_CLASS_MEMBER(GuiEventArgs)
			template
<> 
struct
 CustomTypeDescriptorSelector
<
> { 
public
: 
class
  : 
public
  { 
typedef
  ; 
static
 const
   = 
::
; 
public
: 
() :
(
, &
<
>::
) { 
<
>::
SetAssociatedTypeDescriptor
(
this
); } 
~
CustomTypeDescriptorImpl
() { 
<
>::
SetAssociatedTypeDescriptor
(
0
); } 
protected
: 
bool
 ()
override
 { 
return
 <
typename
 <
, 
<
>>::
>::
; } 
void
 ()
override
 {
 				EVENTARGS_CONSTRUCTOR(GuiEventArgs)
				{ 
const
 wchar_t
* 
[]={
L""
}; 
(
new
 CustomConstructorInfoImpl
<
<
>()>(
parameterNames
)); } { 
const
 wchar_t
* 
[]={
L"composition"
}; 
(
new
 CustomConstructorInfoImpl
<
<
>(
*)>(
parameterNames
)); }
				CLASS_MEMBER_FIELD(compositionSource)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"compositionSource"
, &
::
) );
 				CLASS_MEMBER_FIELD(eventSource)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"eventSource"
, &
::
) );
 				CLASS_MEMBER_FIELD(handled)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"handled"
, &
::
) );
 			END_CLASS_MEMBER(GuiEventArgs)
			if
 (
GetBaseTypeDescriptorCount
() == 
0
) 
(
description
::
<
>()); } }; };
 			BEGIN_CLASS_MEMBER(GuiRequestEventArgs)
			template
<> 
struct
 CustomTypeDescriptorSelector
<
> { 
public
: 
class
  : 
public
  { 
typedef
  ; 
static
 const
   = 
::
; 
public
: 
() :
(
, &
<
>::
) { 
<
>::
SetAssociatedTypeDescriptor
(
this
); } 
~
CustomTypeDescriptorImpl
() { 
<
>::
SetAssociatedTypeDescriptor
(
0
); } 
protected
: 
bool
 ()
override
 { 
return
 <
typename
 <
, 
<
>>::
>::
; } 
void
 ()
override
 {
 				CLASS_MEMBER_BASE(GuiEventArgs)
				EVENTARGS_CONSTRUCTOR(GuiRequestEventArgs)
				{ 
const
 wchar_t
* 
[]={
L""
}; 
(
new
 CustomConstructorInfoImpl
<
<
>()>(
parameterNames
)); } { 
const
 wchar_t
* 
[]={
L"composition"
}; 
(
new
 CustomConstructorInfoImpl
<
<
>(
*)>(
parameterNames
)); }
				CLASS_MEMBER_FIELD(cancel)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"cancel"
, &
::
) );
 			END_CLASS_MEMBER(GuiRequestEventArgs)
			if
 (
GetBaseTypeDescriptorCount
() == 
0
) 
(
description
::
<
>()); } }; };
 			BEGIN_CLASS_MEMBER(GuiKeyEventArgs)
			template
<> 
struct
 CustomTypeDescriptorSelector
<
> { 
public
: 
class
  : 
public
  { 
typedef
  ; 
static
 const
   = 
::
; 
public
: 
() :
(
, &
<
>::
) { 
<
>::
SetAssociatedTypeDescriptor
(
this
); } 
~
CustomTypeDescriptorImpl
() { 
<
>::
SetAssociatedTypeDescriptor
(
0
); } 
protected
: 
bool
 ()
override
 { 
return
 <
typename
 <
, 
<
>>::
>::
; } 
void
 ()
override
 {
 				CLASS_MEMBER_BASE(GuiEventArgs)
				EVENTARGS_CONSTRUCTOR(GuiKeyEventArgs)
				{ 
const
 wchar_t
* 
[]={
L""
}; 
(
new
 CustomConstructorInfoImpl
<
<
>()>(
parameterNames
)); } { 
const
 wchar_t
* 
[]={
L"composition"
}; 
(
new
 CustomConstructorInfoImpl
<
<
>(
*)>(
parameterNames
)); }
				CLASS_MEMBER_FIELD(code)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"code"
, &
::
) );
 				CLASS_MEMBER_FIELD(ctrl)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"ctrl"
, &
::
) );
 				CLASS_MEMBER_FIELD(shift)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"shift"
, &
::
) );
 				CLASS_MEMBER_FIELD(alt)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"alt"
, &
::
) );
 				CLASS_MEMBER_FIELD(capslock)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"capslock"
, &
::
) );
 				CLASS_MEMBER_FIELD(autoRepeatKeyDown)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"autoRepeatKeyDown"
, &
::
) );
 			END_CLASS_MEMBER(GuiKeyEventArgs)
			if
 (
GetBaseTypeDescriptorCount
() == 
0
) 
(
description
::
<
>()); } }; };
 			BEGIN_CLASS_MEMBER(GuiCharEventArgs)
			template
<> 
struct
 CustomTypeDescriptorSelector
<
> { 
public
: 
class
  : 
public
  { 
typedef
  ; 
static
 const
   = 
::
; 
public
: 
() :
(
, &
<
>::
) { 
<
>::
SetAssociatedTypeDescriptor
(
this
); } 
~
CustomTypeDescriptorImpl
() { 
<
>::
SetAssociatedTypeDescriptor
(
0
); } 
protected
: 
bool
 ()
override
 { 
return
 <
typename
 <
, 
<
>>::
>::
; } 
void
 ()
override
 {
 				CLASS_MEMBER_BASE(GuiEventArgs)
				EVENTARGS_CONSTRUCTOR(GuiCharEventArgs)
				{ 
const
 wchar_t
* 
[]={
L""
}; 
(
new
 CustomConstructorInfoImpl
<
<
>()>(
parameterNames
)); } { 
const
 wchar_t
* 
[]={
L"composition"
}; 
(
new
 CustomConstructorInfoImpl
<
<
>(
*)>(
parameterNames
)); }
				CLASS_MEMBER_FIELD(code)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"code"
, &
::
) );
 				CLASS_MEMBER_FIELD(ctrl)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"ctrl"
, &
::
) );
 				CLASS_MEMBER_FIELD(shift)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"shift"
, &
::
) );
 				CLASS_MEMBER_FIELD(alt)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"alt"
, &
::
) );
 				CLASS_MEMBER_FIELD(capslock)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"capslock"
, &
::
) );
 			END_CLASS_MEMBER(GuiCharEventArgs)
			if
 (
GetBaseTypeDescriptorCount
() == 
0
) 
(
description
::
<
>()); } }; };
 			BEGIN_CLASS_MEMBER(GuiMouseEventArgs)
			template
<> 
struct
 CustomTypeDescriptorSelector
<
> { 
public
: 
class
  : 
public
  { 
typedef
  ; 
static
 const
   = 
::
; 
public
: 
() :
(
, &
<
>::
) { 
<
>::
SetAssociatedTypeDescriptor
(
this
); } 
~
CustomTypeDescriptorImpl
() { 
<
>::
SetAssociatedTypeDescriptor
(
0
); } 
protected
: 
bool
 ()
override
 { 
return
 <
typename
 <
, 
<
>>::
>::
; } 
void
 ()
override
 {
 				CLASS_MEMBER_BASE(GuiEventArgs)
				EVENTARGS_CONSTRUCTOR(GuiMouseEventArgs)
				{ 
const
 wchar_t
* 
[]={
L""
}; 
(
new
 CustomConstructorInfoImpl
<
<
>()>(
parameterNames
)); } { 
const
 wchar_t
* 
[]={
L"composition"
}; 
(
new
 CustomConstructorInfoImpl
<
<
>(
*)>(
parameterNames
)); }
				CLASS_MEMBER_FIELD(ctrl)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"ctrl"
, &
::
) );
 				CLASS_MEMBER_FIELD(shift)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"shift"
, &
::
) );
 				CLASS_MEMBER_FIELD(left)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"left"
, &
::
) );
 				CLASS_MEMBER_FIELD(middle)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"middle"
, &
::
) );
 				CLASS_MEMBER_FIELD(right)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"right"
, &
::
) );
 				CLASS_MEMBER_FIELD(x)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"x"
, &
::
) );
 				CLASS_MEMBER_FIELD(y)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"y"
, &
::
) );
 				CLASS_MEMBER_FIELD(wheel)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"wheel"
, &
::
) );
 				CLASS_MEMBER_FIELD(nonClient)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"nonClient"
, &
::
) );
 			END_CLASS_MEMBER(GuiMouseEventArgs)
			if
 (
GetBaseTypeDescriptorCount
() == 
0
) 
(
description
::
<
>()); } }; };
 			BEGIN_ENUM_ITEM(ControlSignal)
			template
<> 
struct
 CustomTypeDescriptorSelector
<
> { 
public
: 
class
  : 
public
 <
, 
::
> { 
typedef
  ; 
public
: 
void
 ()
override
 { 
<
, 
::
>::
();
 				ENUM_CLASS_ITEM(RenderTargetChanged)
				->AddItem(
L"RenderTargetChanged"
, 
::
);
 				ENUM_CLASS_ITEM(ParentLineChanged)
				->AddItem(
L"ParentLineChanged"
, 
::
);
 				ENUM_CLASS_ITEM(ServiceAdded)
				->AddItem(
L"ServiceAdded"
, 
::
);
 			END_ENUM_ITEM(ControlSignal)
			} }; };
			BEGIN_CLASS_MEMBER(GuiControlSignalEventArgs)
			template
<> 
struct
 CustomTypeDescriptorSelector
<
GuiControlSignalEventArgs
> { 
public
: 
class
  : 
public
  { 
typedef
 GuiControlSignalEventArgs
; 
static
 const
   = 
::
; 
public
: 
() :
(
, &
<
GuiControlSignalEventArgs
>::
) { 
<
GuiControlSignalEventArgs
>::
SetAssociatedTypeDescriptor
(
this
); } 
~
CustomTypeDescriptorImpl
() { 
<
GuiControlSignalEventArgs
>::
SetAssociatedTypeDescriptor
(
0
); } 
protected
: 
bool
 ()
override
 { 
return
 <
typename
 <
GuiControlSignalEventArgs
, 
<
GuiControlSignalEventArgs
>>::
>::
; } 
void
 ()
override
 {
 				CLASS_MEMBER_BASE(GuiEventArgs)
				CLASS_MEMBER_FIELD(controlSignal)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"controlSignal"
, &
::
) );
 			END_CLASS_MEMBER(GuiControlSignalEventArgs)
			if
 (
GetBaseTypeDescriptorCount
() == 
0
) 
(
description
::
<
>()); } }; };
 			BEGIN_CLASS_MEMBER(GuiItemEventArgs)
			template
<> 
struct
 CustomTypeDescriptorSelector
<
> { 
public
: 
class
  : 
public
  { 
typedef
  ; 
static
 const
   = 
::
; 
public
: 
() :
(
, &
<
>::
) { 
<
>::
SetAssociatedTypeDescriptor
(
this
); } 
~
CustomTypeDescriptorImpl
() { 
<
>::
SetAssociatedTypeDescriptor
(
0
); } 
protected
: 
bool
 ()
override
 { 
return
 <
typename
 <
, 
<
>>::
>::
; } 
void
 ()
override
 {
 				CLASS_MEMBER_BASE(GuiEventArgs)
				EVENTARGS_CONSTRUCTOR(GuiItemEventArgs)
				{ 
const
 wchar_t
* 
[]={
L""
}; 
(
new
 CustomConstructorInfoImpl
<
<
>()>(
parameterNames
)); } { 
const
 wchar_t
* 
[]={
L"composition"
}; 
(
new
 CustomConstructorInfoImpl
<
<
>(
*)>(
parameterNames
)); }
				CLASS_MEMBER_FIELD(itemIndex)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"itemIndex"
, &
::
) );
 			END_CLASS_MEMBER(GuiItemEventArgs)
			if
 (
GetBaseTypeDescriptorCount
() == 
0
) 
(
description
::
<
>()); } }; };
 			BEGIN_CLASS_MEMBER(GuiItemMouseEventArgs)
			template
<> 
struct
 CustomTypeDescriptorSelector
<
> { 
public
: 
class
  : 
public
  { 
typedef
  ; 
static
 const
   = 
::
; 
public
: 
() :
(
, &
<
>::
) { 
<
>::
SetAssociatedTypeDescriptor
(
this
); } 
~
CustomTypeDescriptorImpl
() { 
<
>::
SetAssociatedTypeDescriptor
(
0
); } 
protected
: 
bool
 ()
override
 { 
return
 <
typename
 <
, 
<
>>::
>::
; } 
void
 ()
override
 {
 				CLASS_MEMBER_BASE(GuiMouseEventArgs)
				EVENTARGS_CONSTRUCTOR(GuiItemMouseEventArgs)
				{ 
const
 wchar_t
* 
[]={
L""
}; 
(
new
 CustomConstructorInfoImpl
<
<
>()>(
parameterNames
)); } { 
const
 wchar_t
* 
[]={
L"composition"
}; 
(
new
 CustomConstructorInfoImpl
<
<
>(
*)>(
parameterNames
)); }
				CLASS_MEMBER_FIELD(itemIndex)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"itemIndex"
, &
::
) );
 			END_CLASS_MEMBER(GuiItemMouseEventArgs)
			if
 (
GetBaseTypeDescriptorCount
() == 
0
) 
(
description
::
<
>()); } }; };
 			BEGIN_CLASS_MEMBER(GuiNodeEventArgs)
			template
<> 
struct
 CustomTypeDescriptorSelector
<
> { 
public
: 
class
  : 
public
  { 
typedef
  ; 
static
 const
   = 
::
; 
public
: 
() :
(
, &
<
>::
) { 
<
>::
SetAssociatedTypeDescriptor
(
this
); } 
~
CustomTypeDescriptorImpl
() { 
<
>::
SetAssociatedTypeDescriptor
(
0
); } 
protected
: 
bool
 ()
override
 { 
return
 <
typename
 <
, 
<
>>::
>::
; } 
void
 ()
override
 {
 				CLASS_MEMBER_BASE(GuiEventArgs)
				EVENTARGS_CONSTRUCTOR(GuiNodeEventArgs)
				{ 
const
 wchar_t
* 
[]={
L""
}; 
(
new
 CustomConstructorInfoImpl
<
<
>()>(
parameterNames
)); } { 
const
 wchar_t
* 
[]={
L"composition"
}; 
(
new
 CustomConstructorInfoImpl
<
<
>(
*)>(
parameterNames
)); }
				CLASS_MEMBER_FIELD(node)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"node"
, &
::
) );
 			END_CLASS_MEMBER(GuiNodeEventArgs)
			if
 (
GetBaseTypeDescriptorCount
() == 
0
) 
(
description
::
<
>()); } }; };
 			BEGIN_CLASS_MEMBER(GuiNodeMouseEventArgs)
			template
<> 
struct
 CustomTypeDescriptorSelector
<
> { 
public
: 
class
  : 
public
  { 
typedef
  ; 
static
 const
   = 
::
; 
public
: 
() :
(
, &
<
>::
) { 
<
>::
SetAssociatedTypeDescriptor
(
this
); } 
~
CustomTypeDescriptorImpl
() { 
<
>::
SetAssociatedTypeDescriptor
(
0
); } 
protected
: 
bool
 ()
override
 { 
return
 <
typename
 <
, 
<
>>::
>::
; } 
void
 ()
override
 {
 				CLASS_MEMBER_BASE(GuiMouseEventArgs)
				EVENTARGS_CONSTRUCTOR(GuiNodeMouseEventArgs)
				{ 
const
 wchar_t
* 
[]={
L""
}; 
(
new
 CustomConstructorInfoImpl
<
<
>()>(
parameterNames
)); } { 
const
 wchar_t
* 
[]={
L"composition"
}; 
(
new
 CustomConstructorInfoImpl
<
<
>(
*)>(
parameterNames
)); }
				CLASS_MEMBER_FIELD(node)
				( 
new
 < 
, 
decltype
(((
*)
0
)->
) >(
this
, 
L"node"
, &
::
) );
 			END_CLASS_MEMBER(GuiNodeMouseEventArgs)
			if
 (
GetBaseTypeDescriptorCount
() == 
0
) 
(
description
::
<
>()); } }; };
 #undef EVENTARGS_CONSTRUCTOR
#undef _
			class
  : 
public
 , 
public
 
			{
			
public
:
				
void
 (
* 
)
				{
					GUIREFLECTIONEVENT_TYPELIST(ADD_TYPE_INFO)
					{ 
<
> 
=
new
 CustomTypeDescriptorSelector
<
presentation
::
compositions
::
>::
(); 
->
(
<
presentation
::
compositions
::
>::
.typeName, 
type
); } { 
<
> 
=
new
 CustomTypeDescriptorSelector
<
presentation
::
compositions
::
>::
(); 
->
(
<
presentation
::
compositions
::
>::
.typeName, 
type
); } { 
<
> 
=
new
 CustomTypeDescriptorSelector
<
presentation
::
compositions
::
>::
(); 
->
(
<
presentation
::
compositions
::
>::
.typeName, 
type
); } { 
<
> 
=
new
 CustomTypeDescriptorSelector
<
presentation
::
compositions
::
>::
(); 
->
(
<
presentation
::
compositions
::
>::
.typeName, 
type
); } { 
<
> 
=
new
 CustomTypeDescriptorSelector
<
presentation
::
compositions
::
>::
(); 
->
(
<
presentation
::
compositions
::
>::
.typeName, 
type
); } { 
<
> 
=
new
 CustomTypeDescriptorSelector
<
presentation
::
compositions
::
>::
(); 
->
(
<
presentation
::
compositions
::
>::
.typeName, 
type
); } { 
<
> 
=
new
 CustomTypeDescriptorSelector
<
presentation
::
compositions
::
GuiControlSignalEventArgs
>::
(); 
->
(
<
presentation
::
compositions
::
GuiControlSignalEventArgs
>::
.typeName, 
type
); } { 
<
> 
=
new
 CustomTypeDescriptorSelector
<
presentation
::
compositions
::
>::
(); 
->
(
<
presentation
::
compositions
::
>::
.typeName, 
type
); } { 
<
> 
=
new
 CustomTypeDescriptorSelector
<
presentation
::
compositions
::
>::
(); 
->
(
<
presentation
::
compositions
::
>::
.typeName, 
type
); } { 
<
> 
=
new
 CustomTypeDescriptorSelector
<
presentation
::
compositions
::
>::
(); 
->
(
<
presentation
::
compositions
::
>::
.typeName, 
type
); } { 
<
> 
=
new
 CustomTypeDescriptorSelector
<
presentation
::
compositions
::
>::
(); 
->
(
<
presentation
::
compositions
::
>::
.typeName, 
type
); }
				}
				
void
 (
* 
)
				{
				}
			};
#endif
			bool
 ()
			{
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
				* 
=
();
				
if
(
manager
)
				{
					
<
> 
=
new
 ;
					
return
 manager
->
(
loader
);
				}
#endif
				return
 false
;
			}
		}
	}
}