diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 00000000..1ff0c423
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,63 @@
+###############################################################################
+# Set default behavior to automatically normalize line endings.
+###############################################################################
+* text=auto
+
+###############################################################################
+# Set default behavior for command prompt diff.
+#
+# This is need for earlier builds of msysgit that does not have it on by
+# default for csharp files.
+# Note: This is only used by command line
+###############################################################################
+#*.cs diff=csharp
+
+###############################################################################
+# Set the merge driver for project and solution files
+#
+# Merging from the command prompt will add diff markers to the files if there
+# are conflicts (Merging from VS is not affected by the settings below, in VS
+# the diff markers are never inserted). Diff markers may cause the following
+# file extensions to fail to load in VS. An alternative would be to treat
+# these files as binary and thus will always conflict and require user
+# intervention with every merge. To do so, just uncomment the entries below
+###############################################################################
+#*.sln merge=binary
+#*.csproj merge=binary
+#*.vbproj merge=binary
+#*.vcxproj merge=binary
+#*.vcproj merge=binary
+#*.dbproj merge=binary
+#*.fsproj merge=binary
+#*.lsproj merge=binary
+#*.wixproj merge=binary
+#*.modelproj merge=binary
+#*.sqlproj merge=binary
+#*.wwaproj merge=binary
+
+###############################################################################
+# behavior for image files
+#
+# image files are treated as binary by default.
+###############################################################################
+#*.jpg binary
+#*.png binary
+#*.gif binary
+
+###############################################################################
+# diff behavior for common document formats
+#
+# Convert binary document formats to text before diffing them. This feature
+# is only available from the command line. Turn it on by uncommenting the
+# entries below.
+###############################################################################
+#*.doc diff=astextplain
+#*.DOC diff=astextplain
+#*.docx diff=astextplain
+#*.DOCX diff=astextplain
+#*.dot diff=astextplain
+#*.DOT diff=astextplain
+#*.pdf diff=astextplain
+#*.PDF diff=astextplain
+#*.rtf diff=astextplain
+#*.RTF diff=astextplain
diff --git a/Tools/GacGen.exe b/Tools/GacGen.exe
index cc94504e..833527a1 100644
Binary files a/Tools/GacGen.exe and b/Tools/GacGen.exe differ
diff --git a/Tutorial/GacUI_HelloWorlds/Cpp/Cpp.vcxproj b/Tutorial/GacUI_HelloWorlds/Cpp/Cpp.vcxproj
new file mode 100644
index 00000000..73422394
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/Cpp/Cpp.vcxproj
@@ -0,0 +1,93 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {7FDFBF42-6E4A-4B29-A717-BB5522FE5AA5}
+ Win32Proj
+ Cpp
+
+
+
+ Application
+ true
+ v120
+ Unicode
+
+
+ Application
+ false
+ v120
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(ProjectDir)..\..\..\Import;$(IncludePath)
+
+
+ false
+ $(ProjectDir)..\..\..\Import;$(IncludePath)
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+ {96c559ca-9718-4bec-a053-28a0ab6a8ca2}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tutorial/GacUI_HelloWorlds/Cpp/Cpp.vcxproj.filters b/Tutorial/GacUI_HelloWorlds/Cpp/Cpp.vcxproj.filters
new file mode 100644
index 00000000..948faede
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/Cpp/Cpp.vcxproj.filters
@@ -0,0 +1,22 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+
\ No newline at end of file
diff --git a/Tutorial/GacUI_HelloWorlds/Cpp/Main.cpp b/Tutorial/GacUI_HelloWorlds/Cpp/Main.cpp
new file mode 100644
index 00000000..60df6c9e
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/Cpp/Main.cpp
@@ -0,0 +1,29 @@
+#include
+#include
+
+int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int CmdShow)
+{
+ return SetupWindowsDirect2DRenderer();
+}
+
+void GuiMain()
+{
+ GuiWindow* window = g::NewWindow();
+ window->SetText(L"Hello, world!");
+ window->SetClientSize(Size(480, 320));
+ window->GetBoundsComposition()->SetPreferredMinSize(Size(480, 320));
+ window->MoveToScreenCenter();
+
+ GuiControl* label = g::NewLabel();
+ label->SetText(L"Welcome to GacUI Library!");
+ {
+ FontProperties font;
+ font.fontFamily = L"Segoe UI";
+ font.size = 32;
+ font.antialias = true;
+ label->SetFont(font);
+ }
+ window->AddChild(label);
+ GetApplication()->Run(window);
+ delete window;
+}
\ No newline at end of file
diff --git a/Tutorial/GacUI_HelloWorlds/CppXml/CppXml.vcxproj b/Tutorial/GacUI_HelloWorlds/CppXml/CppXml.vcxproj
new file mode 100644
index 00000000..4e95507c
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/CppXml/CppXml.vcxproj
@@ -0,0 +1,101 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {1C4986FB-6988-4562-A5BA-CBB7D21FCE40}
+ Win32Proj
+ CppXml
+
+
+
+ Application
+ true
+ v120
+ Unicode
+
+
+ Application
+ false
+ v120
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(ProjectDir)..\..\..\Import;$(IncludePath)
+
+
+ false
+ $(ProjectDir)..\..\..\Import;$(IncludePath)
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ {8018d622-66ba-4e65-9d03-bdac37ea9a54}
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tutorial/GacUI_HelloWorlds/CppXml/CppXml.vcxproj.filters b/Tutorial/GacUI_HelloWorlds/CppXml/CppXml.vcxproj.filters
new file mode 100644
index 00000000..ce106fb3
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/CppXml/CppXml.vcxproj.filters
@@ -0,0 +1,41 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {26d44659-6f71-48d2-9892-3a6978b25485}
+
+
+
+
+ Source Files
+
+
+ UI
+
+
+
+
+ Resource Files
+
+
+
+
+ UI
+
+
+ UI
+
+
+
\ No newline at end of file
diff --git a/Tutorial/GacUI_HelloWorlds/CppXml/Main.cpp b/Tutorial/GacUI_HelloWorlds/CppXml/Main.cpp
new file mode 100644
index 00000000..3da25f71
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/CppXml/Main.cpp
@@ -0,0 +1,23 @@
+#include "UI/Source/HelloWorld.h"
+#include
+
+using namespace vl::collections;
+using namespace vl::stream;
+
+int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int CmdShow)
+{
+ return SetupWindowsDirect2DRenderer();
+}
+
+void GuiMain()
+{
+ {
+ List errors;
+ FileStream fileStream(L"../UIRes/CppXml.bin", FileStream::ReadOnly);
+ auto resource = GuiResource::LoadPrecompiledBinary(fileStream, errors);
+ GetInstanceLoaderManager()->SetResource(L"Resource", resource);
+ }
+ helloworld::MainWindow window;
+ window.MoveToScreenCenter();
+ GetApplication()->Run(&window);
+}
\ No newline at end of file
diff --git a/Tutorial/GacUI_HelloWorlds/CppXml/UI/Codegen.bat b/Tutorial/GacUI_HelloWorlds/CppXml/UI/Codegen.bat
new file mode 100644
index 00000000..27f6654b
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/CppXml/UI/Codegen.bat
@@ -0,0 +1 @@
+..\..\..\..\Tools\GacGen.exe Resource.xml
\ No newline at end of file
diff --git a/Tutorial/GacUI_HelloWorlds/CppXml/UI/Resource.xml b/Tutorial/GacUI_HelloWorlds/CppXml/UI/Resource.xml
new file mode 100644
index 00000000..d49dcbe2
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/CppXml/UI/Resource.xml
@@ -0,0 +1,27 @@
+
+
+
+
+ Source
+ GacUIReflection.h
+ HelloWorld
+
+
+
+ ..\..\UIRes
+ CppXml.bin
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tutorial/GacUI_HelloWorlds/CppXml/UI/Source/HelloWorld.h b/Tutorial/GacUI_HelloWorlds/CppXml/UI/Source/HelloWorld.h
new file mode 100644
index 00000000..d8a96791
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/CppXml/UI/Source/HelloWorld.h
@@ -0,0 +1,16 @@
+/***********************************************************************
+Vczh Library++ 3.0
+Developer: Zihan Chen(vczh)
+GacUI::HelloWorld
+
+This file is generated by: Vczh GacUI Resource Code Generator
+************************************************************************
+DO NOT MODIFY
+***********************************************************************/
+
+#ifndef VCZH_GACUI_RESOURCE_CODE_GENERATOR_HelloWorld
+#define VCZH_GACUI_RESOURCE_CODE_GENERATOR_HelloWorld
+
+#include "HelloWorldPartialClasses.h"
+
+#endif
diff --git a/Tutorial/GacUI_HelloWorlds/CppXml/UI/Source/HelloWorldPartialClasses.cpp b/Tutorial/GacUI_HelloWorlds/CppXml/UI/Source/HelloWorldPartialClasses.cpp
new file mode 100644
index 00000000..1c29cfab
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/CppXml/UI/Source/HelloWorldPartialClasses.cpp
@@ -0,0 +1,75 @@
+/***********************************************************************
+Vczh Library++ 3.0
+Developer: Zihan Chen(vczh)
+GacUI::Partial Classes
+
+This file is generated by: Vczh GacUI Resource Code Generator
+************************************************************************
+DO NOT MODIFY
+***********************************************************************/
+
+#include "HelloWorld.h"
+
+namespace helloworld
+{
+ // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.)
+
+ // #endregion CLASS_MEMBER_GUIEVENT_HANDLER
+
+ MainWindow::MainWindow()
+ {
+ InitializeComponents();
+ }
+}
+
+
+namespace vl
+{
+ namespace reflection
+ {
+ namespace description
+ {
+ #define _ ,
+ IMPL_CPP_TYPE_INFO(helloworld::MainWindow)
+
+ BEGIN_CLASS_MEMBER(helloworld::MainWindow)
+ CLASS_MEMBER_BASE(vl::presentation::controls::GuiWindow)
+ CLASS_MEMBER_CONSTRUCTOR(helloworld::MainWindow*(), NO_PARAMETER)
+ END_CLASS_MEMBER(helloworld::MainWindow)
+
+ #undef _
+
+ class HelloWorldResourceLoader : public Object, public ITypeLoader
+ {
+ public:
+ void Load(ITypeManager* manager)
+ {
+ ADD_TYPE_INFO(helloworld::MainWindow)
+ }
+
+ void Unload(ITypeManager* manager)
+ {
+ }
+ };
+
+ class HelloWorldResourcePlugin : public Object, public vl::presentation::controls::IGuiPlugin
+ {
+ public:
+ void Load()override
+ {
+ GetGlobalTypeManager()->AddTypeLoader(new HelloWorldResourceLoader);
+ }
+
+ void AfterLoad()override
+ {
+ }
+
+ void Unload()override
+ {
+ }
+ };
+ GUI_REGISTER_PLUGIN(HelloWorldResourcePlugin)
+ }
+ }
+}
+
diff --git a/Tutorial/GacUI_HelloWorlds/CppXml/UI/Source/HelloWorldPartialClasses.h b/Tutorial/GacUI_HelloWorlds/CppXml/UI/Source/HelloWorldPartialClasses.h
new file mode 100644
index 00000000..4d9963d7
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/CppXml/UI/Source/HelloWorldPartialClasses.h
@@ -0,0 +1,73 @@
+/***********************************************************************
+Vczh Library++ 3.0
+Developer: Zihan Chen(vczh)
+GacUI::Partial Classes
+
+This file is generated by: Vczh GacUI Resource Code Generator
+************************************************************************
+DO NOT MODIFY
+***********************************************************************/
+
+#ifndef VCZH_GACUI_RESOURCE_CODE_GENERATOR_HelloWorld_PARTIAL_CLASSES
+#define VCZH_GACUI_RESOURCE_CODE_GENERATOR_HelloWorld_PARTIAL_CLASSES
+
+#include "GacUIReflection.h"
+
+namespace helloworld
+{
+ class MainWindow;
+
+ template
+ class MainWindow_ : public vl::presentation::controls::GuiWindow, public vl::presentation::GuiInstancePartialClass, public vl::reflection::Description
+ {
+ friend struct vl::reflection::description::CustomTypeDescriptorSelector;
+ private:
+ protected:
+
+ void InitializeComponents()
+ {
+ if (InitializeFromResource())
+ {
+ }
+ else
+ {
+ }
+ }
+ public:
+ MainWindow_()
+ :vl::presentation::GuiInstancePartialClass(L"helloworld::MainWindow")
+ ,vl::presentation::controls::GuiWindow(vl::presentation::theme::GetCurrentTheme()->CreateWindowStyle())
+ {
+ }
+ };
+
+}
+namespace vl
+{
+ namespace reflection
+ {
+ namespace description
+ {
+ DECL_TYPE_INFO(helloworld::MainWindow)
+
+ }
+ }
+}
+namespace helloworld
+{
+ class MainWindow : public helloworld::MainWindow_
+ {
+ friend class helloworld::MainWindow_;
+ friend struct vl::reflection::description::CustomTypeDescriptorSelector;
+ protected:
+
+ // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.)
+ // #endregion CLASS_MEMBER_GUIEVENT_HANDLER
+ public:
+ MainWindow();
+ };
+}
+
+
+
+#endif
diff --git a/Tutorial/GacUI_HelloWorlds/GacUI_HelloWorlds.sln b/Tutorial/GacUI_HelloWorlds/GacUI_HelloWorlds.sln
new file mode 100644
index 00000000..21eb767f
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/GacUI_HelloWorlds.sln
@@ -0,0 +1,72 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.21005.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Cpp", "Cpp\Cpp.vcxproj", "{7FDFBF42-6E4A-4B29-A717-BB5522FE5AA5}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GacUILite", "..\Lib\GacUILite\GacUILite.vcxproj", "{96C559CA-9718-4BEC-A053-28A0AB6A8CA2}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Vlpp", "..\Lib\Vlpp\Vlpp.vcxproj", "{F081AD61-FE91-4044-B667-F83586D7CC5B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Workflow", "..\Lib\Workflow\Workflow.vcxproj", "{0EE1EA52-8ABA-40F3-B431-B7BCF8D6D520}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GacUI", "..\Lib\GacUI\GacUI.vcxproj", "{8018D622-66BA-4E65-9D03-BDAC37EA9A54}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Lib", "Lib", "{A01236E9-92C5-424F-B564-DBF1A9F94E7F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WorkflowScript", "WorkflowScript\WorkflowScript.vcxproj", "{F56E51BA-C13B-411D-841B-633AF07BB902}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CppXml", "CppXml\CppXml.vcxproj", "{1C4986FB-6988-4562-A5BA-CBB7D21FCE40}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MVVM", "MVVM\MVVM.vcxproj", "{3EC7E343-4D10-4E6B-B5EE-485B38AFAD85}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {7FDFBF42-6E4A-4B29-A717-BB5522FE5AA5}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7FDFBF42-6E4A-4B29-A717-BB5522FE5AA5}.Debug|Win32.Build.0 = Debug|Win32
+ {7FDFBF42-6E4A-4B29-A717-BB5522FE5AA5}.Release|Win32.ActiveCfg = Release|Win32
+ {7FDFBF42-6E4A-4B29-A717-BB5522FE5AA5}.Release|Win32.Build.0 = Release|Win32
+ {96C559CA-9718-4BEC-A053-28A0AB6A8CA2}.Debug|Win32.ActiveCfg = Debug|Win32
+ {96C559CA-9718-4BEC-A053-28A0AB6A8CA2}.Debug|Win32.Build.0 = Debug|Win32
+ {96C559CA-9718-4BEC-A053-28A0AB6A8CA2}.Release|Win32.ActiveCfg = Release|Win32
+ {96C559CA-9718-4BEC-A053-28A0AB6A8CA2}.Release|Win32.Build.0 = Release|Win32
+ {F081AD61-FE91-4044-B667-F83586D7CC5B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F081AD61-FE91-4044-B667-F83586D7CC5B}.Debug|Win32.Build.0 = Debug|Win32
+ {F081AD61-FE91-4044-B667-F83586D7CC5B}.Release|Win32.ActiveCfg = Release|Win32
+ {F081AD61-FE91-4044-B667-F83586D7CC5B}.Release|Win32.Build.0 = Release|Win32
+ {0EE1EA52-8ABA-40F3-B431-B7BCF8D6D520}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0EE1EA52-8ABA-40F3-B431-B7BCF8D6D520}.Debug|Win32.Build.0 = Debug|Win32
+ {0EE1EA52-8ABA-40F3-B431-B7BCF8D6D520}.Release|Win32.ActiveCfg = Release|Win32
+ {0EE1EA52-8ABA-40F3-B431-B7BCF8D6D520}.Release|Win32.Build.0 = Release|Win32
+ {8018D622-66BA-4E65-9D03-BDAC37EA9A54}.Debug|Win32.ActiveCfg = Debug|Win32
+ {8018D622-66BA-4E65-9D03-BDAC37EA9A54}.Debug|Win32.Build.0 = Debug|Win32
+ {8018D622-66BA-4E65-9D03-BDAC37EA9A54}.Release|Win32.ActiveCfg = Release|Win32
+ {8018D622-66BA-4E65-9D03-BDAC37EA9A54}.Release|Win32.Build.0 = Release|Win32
+ {F56E51BA-C13B-411D-841B-633AF07BB902}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F56E51BA-C13B-411D-841B-633AF07BB902}.Debug|Win32.Build.0 = Debug|Win32
+ {F56E51BA-C13B-411D-841B-633AF07BB902}.Release|Win32.ActiveCfg = Release|Win32
+ {F56E51BA-C13B-411D-841B-633AF07BB902}.Release|Win32.Build.0 = Release|Win32
+ {1C4986FB-6988-4562-A5BA-CBB7D21FCE40}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1C4986FB-6988-4562-A5BA-CBB7D21FCE40}.Debug|Win32.Build.0 = Debug|Win32
+ {1C4986FB-6988-4562-A5BA-CBB7D21FCE40}.Release|Win32.ActiveCfg = Release|Win32
+ {1C4986FB-6988-4562-A5BA-CBB7D21FCE40}.Release|Win32.Build.0 = Release|Win32
+ {3EC7E343-4D10-4E6B-B5EE-485B38AFAD85}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3EC7E343-4D10-4E6B-B5EE-485B38AFAD85}.Debug|Win32.Build.0 = Debug|Win32
+ {3EC7E343-4D10-4E6B-B5EE-485B38AFAD85}.Release|Win32.ActiveCfg = Release|Win32
+ {3EC7E343-4D10-4E6B-B5EE-485B38AFAD85}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {8018D622-66BA-4E65-9D03-BDAC37EA9A54} = {A01236E9-92C5-424F-B564-DBF1A9F94E7F}
+ {96C559CA-9718-4BEC-A053-28A0AB6A8CA2} = {A01236E9-92C5-424F-B564-DBF1A9F94E7F}
+ {F081AD61-FE91-4044-B667-F83586D7CC5B} = {A01236E9-92C5-424F-B564-DBF1A9F94E7F}
+ {0EE1EA52-8ABA-40F3-B431-B7BCF8D6D520} = {A01236E9-92C5-424F-B564-DBF1A9F94E7F}
+ EndGlobalSection
+EndGlobal
diff --git a/Tutorial/GacUI_HelloWorlds/MVVM/MVVM.vcxproj b/Tutorial/GacUI_HelloWorlds/MVVM/MVVM.vcxproj
new file mode 100644
index 00000000..864d5712
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/MVVM/MVVM.vcxproj
@@ -0,0 +1,93 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {3EC7E343-4D10-4E6B-B5EE-485B38AFAD85}
+ Win32Proj
+ MVVM
+
+
+
+ Application
+ true
+ v120
+ Unicode
+
+
+ Application
+ false
+ v120
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(ProjectDir)..\..\..\Import;$(IncludePath)
+
+
+ false
+ $(ProjectDir)..\..\..\Import;$(IncludePath)
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
+
+ {8018d622-66ba-4e65-9d03-bdac37ea9a54}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tutorial/GacUI_HelloWorlds/MVVM/MVVM.vcxproj.filters b/Tutorial/GacUI_HelloWorlds/MVVM/MVVM.vcxproj.filters
new file mode 100644
index 00000000..948faede
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/MVVM/MVVM.vcxproj.filters
@@ -0,0 +1,22 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+
\ No newline at end of file
diff --git a/Tutorial/GacUI_HelloWorlds/MVVM/Main.cpp b/Tutorial/GacUI_HelloWorlds/MVVM/Main.cpp
new file mode 100644
index 00000000..6b0c6809
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/MVVM/Main.cpp
@@ -0,0 +1,11 @@
+#include
+#include
+
+int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int CmdShow)
+{
+ return SetupWindowsDirect2DRenderer();
+}
+
+void GuiMain()
+{
+}
\ No newline at end of file
diff --git a/Tutorial/GacUI_HelloWorlds/UIRes/CppXml.bin b/Tutorial/GacUI_HelloWorlds/UIRes/CppXml.bin
new file mode 100644
index 00000000..035501d7
Binary files /dev/null and b/Tutorial/GacUI_HelloWorlds/UIRes/CppXml.bin differ
diff --git a/Tutorial/GacUI_HelloWorlds/WorkflowScript/Main.cpp b/Tutorial/GacUI_HelloWorlds/WorkflowScript/Main.cpp
new file mode 100644
index 00000000..6b0c6809
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/WorkflowScript/Main.cpp
@@ -0,0 +1,11 @@
+#include
+#include
+
+int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int CmdShow)
+{
+ return SetupWindowsDirect2DRenderer();
+}
+
+void GuiMain()
+{
+}
\ No newline at end of file
diff --git a/Tutorial/GacUI_HelloWorlds/WorkflowScript/WorkflowScript.vcxproj b/Tutorial/GacUI_HelloWorlds/WorkflowScript/WorkflowScript.vcxproj
new file mode 100644
index 00000000..6cd787e9
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/WorkflowScript/WorkflowScript.vcxproj
@@ -0,0 +1,93 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {F56E51BA-C13B-411D-841B-633AF07BB902}
+ Win32Proj
+ WorkflowScript
+
+
+
+ Application
+ true
+ v120
+ Unicode
+
+
+ Application
+ false
+ v120
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(ProjectDir)..\..\..\Import;$(IncludePath)
+
+
+ false
+ $(ProjectDir)..\..\..\Import;$(IncludePath)
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
+
+ {8018d622-66ba-4e65-9d03-bdac37ea9a54}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tutorial/GacUI_HelloWorlds/WorkflowScript/WorkflowScript.vcxproj.filters b/Tutorial/GacUI_HelloWorlds/WorkflowScript/WorkflowScript.vcxproj.filters
new file mode 100644
index 00000000..948faede
--- /dev/null
+++ b/Tutorial/GacUI_HelloWorlds/WorkflowScript/WorkflowScript.vcxproj.filters
@@ -0,0 +1,22 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+
\ No newline at end of file
diff --git a/Tutorial/Lib/GacUI/GacUI.vcxproj b/Tutorial/Lib/GacUI/GacUI.vcxproj
new file mode 100644
index 00000000..cb5c7426
--- /dev/null
+++ b/Tutorial/Lib/GacUI/GacUI.vcxproj
@@ -0,0 +1,95 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {8018D622-66BA-4E65-9D03-BDAC37EA9A54}
+ Win32Proj
+ GacUI
+
+
+
+ StaticLibrary
+ true
+ v120
+ Unicode
+
+
+ StaticLibrary
+ false
+ v120
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+ /bigobj %(AdditionalOptions)
+ /bigobj %(AdditionalOptions)
+
+
+
+
+
+
+
+ {96c559ca-9718-4bec-a053-28a0ab6a8ca2}
+
+
+ {0ee1ea52-8aba-40f3-b431-b7bcf8d6d520}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tutorial/Lib/GacUI/GacUI.vcxproj.filters b/Tutorial/Lib/GacUI/GacUI.vcxproj.filters
new file mode 100644
index 00000000..d3163bba
--- /dev/null
+++ b/Tutorial/Lib/GacUI/GacUI.vcxproj.filters
@@ -0,0 +1,27 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+
+
+ Header Files
+
+
+
\ No newline at end of file
diff --git a/Tutorial/Lib/GacUILite/GacUILite.vcxproj b/Tutorial/Lib/GacUILite/GacUILite.vcxproj
new file mode 100644
index 00000000..5cbce315
--- /dev/null
+++ b/Tutorial/Lib/GacUILite/GacUILite.vcxproj
@@ -0,0 +1,97 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {96C559CA-9718-4BEC-A053-28A0AB6A8CA2}
+ Win32Proj
+ GacUILite
+
+
+
+ StaticLibrary
+ true
+ v120
+ Unicode
+
+
+ StaticLibrary
+ false
+ v120
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+ /bigobj %(AdditionalOptions)
+ /bigobj %(AdditionalOptions)
+
+
+ /bigobj %(AdditionalOptions)
+ /bigobj %(AdditionalOptions)
+
+
+
+
+
+
+
+
+ {f081ad61-fe91-4044-b667-f83586d7cc5b}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tutorial/Lib/GacUILite/GacUILite.vcxproj.filters b/Tutorial/Lib/GacUILite/GacUILite.vcxproj.filters
new file mode 100644
index 00000000..91d8768f
--- /dev/null
+++ b/Tutorial/Lib/GacUILite/GacUILite.vcxproj.filters
@@ -0,0 +1,33 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+
+
+ Header Files
+
+
+ Header Files
+
+
+
\ No newline at end of file
diff --git a/Tutorial/Lib/Lib.sln b/Tutorial/Lib/Lib.sln
new file mode 100644
index 00000000..850e2086
--- /dev/null
+++ b/Tutorial/Lib/Lib.sln
@@ -0,0 +1,40 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.21005.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Vlpp", "Vlpp\Vlpp.vcxproj", "{F081AD61-FE91-4044-B667-F83586D7CC5B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Workflow", "Workflow\Workflow.vcxproj", "{0EE1EA52-8ABA-40F3-B431-B7BCF8D6D520}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GacUILite", "GacUILite\GacUILite.vcxproj", "{96C559CA-9718-4BEC-A053-28A0AB6A8CA2}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GacUI", "GacUI\GacUI.vcxproj", "{8018D622-66BA-4E65-9D03-BDAC37EA9A54}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F081AD61-FE91-4044-B667-F83586D7CC5B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F081AD61-FE91-4044-B667-F83586D7CC5B}.Debug|Win32.Build.0 = Debug|Win32
+ {F081AD61-FE91-4044-B667-F83586D7CC5B}.Release|Win32.ActiveCfg = Release|Win32
+ {F081AD61-FE91-4044-B667-F83586D7CC5B}.Release|Win32.Build.0 = Release|Win32
+ {0EE1EA52-8ABA-40F3-B431-B7BCF8D6D520}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0EE1EA52-8ABA-40F3-B431-B7BCF8D6D520}.Debug|Win32.Build.0 = Debug|Win32
+ {0EE1EA52-8ABA-40F3-B431-B7BCF8D6D520}.Release|Win32.ActiveCfg = Release|Win32
+ {0EE1EA52-8ABA-40F3-B431-B7BCF8D6D520}.Release|Win32.Build.0 = Release|Win32
+ {96C559CA-9718-4BEC-A053-28A0AB6A8CA2}.Debug|Win32.ActiveCfg = Debug|Win32
+ {96C559CA-9718-4BEC-A053-28A0AB6A8CA2}.Debug|Win32.Build.0 = Debug|Win32
+ {96C559CA-9718-4BEC-A053-28A0AB6A8CA2}.Release|Win32.ActiveCfg = Release|Win32
+ {96C559CA-9718-4BEC-A053-28A0AB6A8CA2}.Release|Win32.Build.0 = Release|Win32
+ {8018D622-66BA-4E65-9D03-BDAC37EA9A54}.Debug|Win32.ActiveCfg = Debug|Win32
+ {8018D622-66BA-4E65-9D03-BDAC37EA9A54}.Debug|Win32.Build.0 = Debug|Win32
+ {8018D622-66BA-4E65-9D03-BDAC37EA9A54}.Release|Win32.ActiveCfg = Release|Win32
+ {8018D622-66BA-4E65-9D03-BDAC37EA9A54}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Tutorial/Lib/Vlpp/Vlpp.vcxproj b/Tutorial/Lib/Vlpp/Vlpp.vcxproj
new file mode 100644
index 00000000..ab7151d7
--- /dev/null
+++ b/Tutorial/Lib/Vlpp/Vlpp.vcxproj
@@ -0,0 +1,92 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+
+ /bigobj %(AdditionalOptions)
+ /bigobj %(AdditionalOptions)
+
+
+
+
+
+
+ {F081AD61-FE91-4044-B667-F83586D7CC5B}
+ Win32Proj
+ Vlpp
+
+
+
+ StaticLibrary
+ true
+ v120
+ Unicode
+
+
+ StaticLibrary
+ false
+ v120
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+ $(IncludePath)
+
+
+ $(IncludePath)
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tutorial/Lib/Vlpp/Vlpp.vcxproj.filters b/Tutorial/Lib/Vlpp/Vlpp.vcxproj.filters
new file mode 100644
index 00000000..89917ec1
--- /dev/null
+++ b/Tutorial/Lib/Vlpp/Vlpp.vcxproj.filters
@@ -0,0 +1,27 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+
+
+ Header Files
+
+
+
\ No newline at end of file
diff --git a/Tutorial/Lib/Workflow/Workflow.vcxproj b/Tutorial/Lib/Workflow/Workflow.vcxproj
new file mode 100644
index 00000000..9dc84fcc
--- /dev/null
+++ b/Tutorial/Lib/Workflow/Workflow.vcxproj
@@ -0,0 +1,92 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+
+ /bigobj %(AdditionalOptions)
+ /bigobj %(AdditionalOptions)
+
+
+
+
+
+
+
+ {f081ad61-fe91-4044-b667-f83586d7cc5b}
+
+
+
+ {0EE1EA52-8ABA-40F3-B431-B7BCF8D6D520}
+ Win32Proj
+ Workflow
+
+
+
+ StaticLibrary
+ true
+ v120
+ Unicode
+
+
+ StaticLibrary
+ false
+ v120
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tutorial/Lib/Workflow/Workflow.vcxproj.filters b/Tutorial/Lib/Workflow/Workflow.vcxproj.filters
new file mode 100644
index 00000000..0febf757
--- /dev/null
+++ b/Tutorial/Lib/Workflow/Workflow.vcxproj.filters
@@ -0,0 +1,27 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+
+
+ Header Files
+
+
+
\ No newline at end of file