MSVC Projects: Build widget factory demo

Build the widget factory demo in the Visual Studio projects, and install
the icon files that it needs.
diff --git a/win32/install-msvc.mak b/win32/install-msvc.mak
index 4bd136f..46d8ff6 100644
--- a/win32/install-msvc.mak
+++ b/win32/install-msvc.mak
@@ -29,7 +29,7 @@
 LIBGAIL_UTIL_DLL_FILENAME = gailutil-$(GTK_API_VERSION)-vs$(VSVER)
 LIBGAIL_UTIL_LIB = $(BASE_BUILT_BIN_DIR)\gailutil-$(IMPLIB_SUFFIX)
 GTK_PROGRAMS_NAMES = builder-tool encode-symbolic-svg query-settings update-icon-cache
-GTK3_PROGRAMS_NAMES = demo demo-application icon-browser
+GTK3_PROGRAMS_NAMES = demo demo-application icon-browser widget-factory
 GDK_GIR_FILE = $(BASE_BUILT_BIN_DIR)\Gdk-$(IMPLIB_SUFFIX:.lib=.gir)
 GDKWIN32_GIR_FILE = $(BASE_BUILT_BIN_DIR)\GdkWin32-$(IMPLIB_SUFFIX:.lib=.gir)
 GTK_GIR_FILE = $(BASE_BUILT_BIN_DIR)\Gtk-$(IMPLIB_SUFFIX:.lib=.gir)
@@ -123,4 +123,5 @@
 	@-$(GLIB_COMPILE_SCHEMAS) $(PREFIX)\share\glib-2.0\schemas
 # Demo icons
 	@for %t in (16 22 24 32 48 256) do @for %d in ($(PREFIX)\share\icons\hicolor\%tx%t\apps) do @((if not exist %d\ mkdir %d) & copy /b ..\demos\gtk-demo\data\%tx%t\gtk3-demo.png "%d")
+	@for %t in (16 22 24 32 48 256) do @for %d in ($(PREFIX)\share\icons\hicolor\%tx%t\apps) do @((if not exist %d\ mkdir %d) & copy /b ..\demos\widget-factory\data\%tx%t\gtk3-widget-factory*.png "%d")
 	@-$(BASE_BUILT_BIN_DIR)\gtk-update-icon-cache.exe --ignore-theme-index --force "$(PREFIX)\share\icons\hicolor"
diff --git a/win32/vs10/Makefile.am b/win32/vs10/Makefile.am
index e0967aa..37346a8 100644
--- a/win32/vs10/Makefile.am
+++ b/win32/vs10/Makefile.am
@@ -44,6 +44,8 @@
 	gtk3-demo-application.vcxproj.filters	\
 	gtk3-icon-browser.vcxproj		\
 	gtk3-icon-browser.vcxproj.filters	\
+	gtk3-widget-factory.vcxproj		\
+	gtk3-widget-factory.vcxproj.filters	\
 	gailutil-3.vcxprojin			\
 	gailutil-3.vcxproj.filtersin		\
 	gtk3-install.vcxproj			\
diff --git a/win32/vs10/gtk+.sln b/win32/vs10/gtk+.sln
index 841f723..7fadabd 100644
--- a/win32/vs10/gtk+.sln
+++ b/win32/vs10/gtk+.sln
@@ -18,6 +18,8 @@
 EndProject

 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-icon-browser", "gtk3-icon-browser.vcxproj", "{343333C4-D46C-4C97-A986-959CCA6F1DE0}"

 EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-widget-factory", "gtk3-widget-factory.vcxproj", "{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}"

+EndProject

 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk-encode-symbolic-svg", "gtk-encode-symbolic-svg.vcxproj", "{F280BF1A-777A-4FB5-8005-DFBE04621EDB}"

 EndProject

 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gailutil-3", "gailutil-3.vcxproj", "{A1FCED61-4E51-4015-A70C-5373404D1BA0}"
@@ -228,6 +230,22 @@
 		{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release_Broadway|Win32.Build.0 = Release|Win32

 		{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release_Broadway|x64.ActiveCfg = Release|x64

 		{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release_Broadway|x64.Build.0 = Release|x64

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Debug|Win32.ActiveCfg = Debug|Win32

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Debug|Win32.Build.0 = Debug|Win32

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Debug|x64.ActiveCfg = Debug|x64

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Debug|x64.Build.0 = Debug|x64

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Release|Win32.ActiveCfg = Release|Win32

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Release|Win32.Build.0 = Release|Win32

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Release|x64.ActiveCfg = Release|x64

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Release|x64.Build.0 = Release|x64

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Debug_Broadway|Win32.Build.0 = Debug|Win32

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Debug_Broadway|x64.ActiveCfg = Debug|x64

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Debug_Broadway|x64.Build.0 = Debug|x64

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Release_Broadway|Win32.ActiveCfg = Release|Win32

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Release_Broadway|Win32.Build.0 = Release|Win32

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Release_Broadway|x64.ActiveCfg = Release|x64

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Release_Broadway|x64.Build.0 = Release|x64

 		{FC98AF16-4C68-42DF-906B-93A6804C198A}.Debug|Win32.ActiveCfg = Debug|Win32

 		{FC98AF16-4C68-42DF-906B-93A6804C198A}.Debug|Win32.Build.0 = Debug|Win32

 		{FC98AF16-4C68-42DF-906B-93A6804C198A}.Debug|x64.ActiveCfg = Debug|x64

diff --git a/win32/vs10/gtk3-install.vcxproj b/win32/vs10/gtk3-install.vcxproj
index 588515d..c2b2725 100644
--- a/win32/vs10/gtk3-install.vcxproj
+++ b/win32/vs10/gtk3-install.vcxproj
@@ -84,6 +84,10 @@
       <Project>{343333c4-d46c-4c97-a986-959cca6f1de0}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="gtk3-widget-factory.vcxproj">
+      <Project>{be6b4973-c6ff-4c8f-8e97-a70793c50f44}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
     <ProjectReference Include="broadwayd.vcxproj">
       <Project>{e9687d21-e214-4a0c-9eb4-8b38ebb783e5}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
diff --git a/win32/vs10/gtk3-widget-factory.vcxproj b/win32/vs10/gtk3-widget-factory.vcxproj
new file mode 100644
index 0000000..00d3d0b
--- /dev/null
+++ b/win32/vs10/gtk3-widget-factory.vcxproj
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}</ProjectGuid>
+    <RootNamespace>gtk3widgetfactory</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization Condition="'$(Configuration)' == 'Release'">true</WholeProgramOptimization>
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\vs1x-props\gtk3-build-defines.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <LinkIncremental Condition="'$(Configuration)' == 'Debug'">true</LinkIncremental>
+    <LinkIncremental Condition="'$(Configuration)' == 'Release'">false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(BaseConfigIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PrecompiledHeader></PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+
+      <!-- For Debug -->
+      <Optimization Condition="'$(Configuration)' == 'Debug'">Disabled</Optimization>
+      <PreprocessorDefinitions Condition="'$(Configuration)' == 'Debug'">_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild Condition="'$(Configuration)' == 'Debug'">true</MinimalRebuild>
+      <BasicRuntimeChecks Condition="'$(Configuration)' == 'Debug'">EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary Condition="'$(Configuration)' == 'Debug'">MultiThreadedDebugDLL</RuntimeLibrary>
+      <DebugInformationFormat Condition="'$(Configuration)|$(Platform)'== 'Debug|Win32'">EditAndContinue</DebugInformationFormat>
+      <DebugInformationFormat Condition="'$(Configuration)|$(Platform)'== 'Debug|x64'">ProgramDatabase</DebugInformationFormat>
+
+      <!-- For Release -->
+      <Optimization Condition="'$(Configuration)' == 'Release'">MaxSpeed</Optimization>
+      <IntrinsicFunctions Condition="'$(Configuration)' == 'Release'">true</IntrinsicFunctions>
+      <PreprocessorDefinitions Condition="'$(Configuration)' == 'Release'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary Condition="'$(Configuration)' == 'Release'">MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking Condition="'$(Configuration)' == 'Release'">false</FunctionLevelLinking>
+      <DebugInformationFormat Condition="'$(Configuration)' == 'Release'">ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <AdditionalDependencies>atk-1.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
+
+      <!-- For Release -->
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+
+      <TargetMachine Condition="'$(Platform)'=='Win32'">MachineX86</TargetMachine>
+      <TargetMachine Condition="'$(Platform)'=='x64'">MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\demos\widget-factory\widget-factory.c" />
+    <ClCompile Include=".\$(Configuration)\$(Platform)\obj\gtk3-widget-factory\widget_factory_resources.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="gdk-3.vcxproj">
+      <Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+    <ProjectReference Include="gtk-3.vcxproj">
+      <Project>{95a4b53d-2773-4406-a2c1-8fd2840bbad8}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
diff --git a/win32/vs10/gtk3-widget-factory.vcxproj.filters b/win32/vs10/gtk3-widget-factory.vcxproj.filters
new file mode 100644
index 0000000..dd38d00
--- /dev/null
+++ b/win32/vs10/gtk3-widget-factory.vcxproj.filters
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Sources">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Headers">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\demos\widget-factory\widget-factory.c"><Filter>Source Files</Filter></ClCompile>
+  </ItemGroup>
+</Project>
diff --git a/win32/vs11/Makefile.am b/win32/vs11/Makefile.am
index c95331e..064aa41 100644
--- a/win32/vs11/Makefile.am
+++ b/win32/vs11/Makefile.am
@@ -24,6 +24,8 @@
 	gtk3-demo-application.vcxproj.filters	\
 	gtk3-icon-browser.vcxproj	\
 	gtk3-icon-browser.vcxproj.filters	\
+	gtk3-widget-factory.vcxproj		\
+	gtk3-widget-factory.vcxproj.filters	\
 	gailutil-3.vcxproj	\
 	gailutil-3.vcxproj.filters	\
 	gtk3-install.vcxproj	\
diff --git a/win32/vs12/Makefile.am b/win32/vs12/Makefile.am
index 4e66986..89221cf 100644
--- a/win32/vs12/Makefile.am
+++ b/win32/vs12/Makefile.am
@@ -24,6 +24,8 @@
 	gtk3-demo-application.vcxproj.filters	\
 	gtk3-icon-browser.vcxproj	\
 	gtk3-icon-browser.vcxproj.filters	\
+	gtk3-widget-factory.vcxproj		\
+	gtk3-widget-factory.vcxproj.filters	\
 	gailutil-3.vcxproj	\
 	gailutil-3.vcxproj.filters	\
 	gtk3-install.vcxproj	\
diff --git a/win32/vs14/Makefile.am b/win32/vs14/Makefile.am
index ac09994..a4d8b1c 100644
--- a/win32/vs14/Makefile.am
+++ b/win32/vs14/Makefile.am
@@ -24,6 +24,8 @@
 	gtk3-demo-application.vcxproj.filters	\
 	gtk3-icon-browser.vcxproj	\
 	gtk3-icon-browser.vcxproj.filters	\
+	gtk3-widget-factory.vcxproj		\
+	gtk3-widget-factory.vcxproj.filters	\
 	gailutil-3.vcxproj	\
 	gailutil-3.vcxproj.filters	\
 	gtk3-install.vcxproj	\
diff --git a/win32/vs15/Makefile.am b/win32/vs15/Makefile.am
index 8a95e9e..93fd1fb 100644
--- a/win32/vs15/Makefile.am
+++ b/win32/vs15/Makefile.am
@@ -24,6 +24,8 @@
 	gtk3-demo-application.vcxproj.filters	\
 	gtk3-icon-browser.vcxproj	\
 	gtk3-icon-browser.vcxproj.filters	\
+	gtk3-widget-factory.vcxproj		\
+	gtk3-widget-factory.vcxproj.filters	\
 	gailutil-3.vcxproj	\
 	gailutil-3.vcxproj.filters	\
 	gtk3-install.vcxproj	\
diff --git a/win32/vs16/Makefile.am b/win32/vs16/Makefile.am
index 6bdff16..9ddd5f0 100644
--- a/win32/vs16/Makefile.am
+++ b/win32/vs16/Makefile.am
@@ -24,6 +24,8 @@
 	gtk3-demo-application.vcxproj.filters	\
 	gtk3-icon-browser.vcxproj	\
 	gtk3-icon-browser.vcxproj.filters	\
+	gtk3-widget-factory.vcxproj		\
+	gtk3-widget-factory.vcxproj.filters	\
 	gailutil-3.vcxproj	\
 	gailutil-3.vcxproj.filters	\
 	gtk3-install.vcxproj	\
diff --git a/win32/vs17/Makefile.am b/win32/vs17/Makefile.am
index 0ddde0d..98118ea 100644
--- a/win32/vs17/Makefile.am
+++ b/win32/vs17/Makefile.am
@@ -24,6 +24,8 @@
 	gtk3-demo-application.vcxproj.filters	\
 	gtk3-icon-browser.vcxproj	\
 	gtk3-icon-browser.vcxproj.filters	\
+	gtk3-widget-factory.vcxproj		\
+	gtk3-widget-factory.vcxproj.filters	\
 	gailutil-3.vcxproj	\
 	gailutil-3.vcxproj.filters	\
 	gtk3-install.vcxproj	\
diff --git a/win32/vs9/Makefile.am b/win32/vs9/Makefile.am
index 063c579..7fafa1f 100644
--- a/win32/vs9/Makefile.am
+++ b/win32/vs9/Makefile.am
@@ -24,6 +24,7 @@
 	gtk3-demo.vcprojin		\
 	gtk3-demo-application.vcproj	\
 	gtk3-icon-browser.vcproj	\
+	gtk3-widget-factory.vcproj	\
 	gailutil-3.vcprojin		\
 	gtk3-install.vcproj		\
 	gtk3-introspect.vcproj		\
diff --git a/win32/vs9/gtk+.sln b/win32/vs9/gtk+.sln
index d86ef9a..675836f 100644
--- a/win32/vs9/gtk+.sln
+++ b/win32/vs9/gtk+.sln
@@ -51,6 +51,12 @@
 		{95A4B53D-2773-4406-A2C1-8FD2840BBAD8} = {95A4B53D-2773-4406-A2C1-8FD2840BBAD8}

 	EndProjectSection

 EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-widget-factory", "gtk3-widget-factory.vcproj", "{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}"

+	ProjectSection(ProjectDependencies) = postProject

+		{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8} = {5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}

+		{95A4B53D-2773-4406-A2C1-8FD2840BBAD8} = {95A4B53D-2773-4406-A2C1-8FD2840BBAD8}

+	EndProjectSection

+EndProject

 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gailutil-3", "gailutil-3.vcproj", "{A1FCED61-4E51-4015-A70C-5373404D1BA0}"
 	ProjectSection(ProjectDependencies) = postProject

 		{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8} = {5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}

@@ -84,6 +90,7 @@
 		{343333C4-D46C-4C97-A986-959CCA6F1DE0} = {343333C4-D46C-4C97-A986-959CCA6F1DE0}

 		{E9687D21-E214-4A0C-9EB4-8B38EBB783E5} = {E9687D21-E214-4A0C-9EB4-8B38EBB783E5}

 		{F280BF1A-777A-4FB5-8005-DFBE04621EDB} = {F280BF1A-777A-4FB5-8005-DFBE04621EDB}

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44} = {BE6B4973-C6FF-4C8F-8E97-A70793C50F44}

 		{FC98AF16-4C68-42DF-906B-93A6804C198A} = {FC98AF16-4C68-42DF-906B-93A6804C198A}

 		{7D2397CF-4C25-45BC-A1BB-CB4B6E154BBD} = {7D2397CF-4C25-45BC-A1BB-CB4B6E154BBD}

 		{9F22107A-3EF7-4B52-B269-747B65307F36} = {9F22107A-3EF7-4B52-B269-747B65307F36}

@@ -283,6 +290,22 @@
 		{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release_Broadway|Win32.Build.0 = Release|Win32

 		{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release_Broadway|x64.ActiveCfg = Release|x64

 		{F280BF1A-777A-4FB5-8005-DFBE04621EDB}.Release_Broadway|x64.Build.0 = Release|x64

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Debug|Win32.ActiveCfg = Debug|Win32

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Debug|Win32.Build.0 = Debug|Win32

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Debug|x64.ActiveCfg = Debug|x64

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Debug|x64.Build.0 = Debug|x64

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Release|Win32.ActiveCfg = Release|Win32

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Release|Win32.Build.0 = Release|Win32

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Release|x64.ActiveCfg = Release|x64

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Release|x64.Build.0 = Release|x64

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Debug_Broadway|Win32.Build.0 = Debug|Win32

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Debug_Broadway|x64.ActiveCfg = Debug|x64

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Debug_Broadway|x64.Build.0 = Debug|x64

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Release_Broadway|Win32.ActiveCfg = Release|Win32

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Release_Broadway|Win32.Build.0 = Release|Win32

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Release_Broadway|x64.ActiveCfg = Release|x64

+		{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}.Release_Broadway|x64.Build.0 = Release|x64

 		{FC98AF16-4C68-42DF-906B-93A6804C198A}.Debug|Win32.ActiveCfg = Debug|Win32

 		{FC98AF16-4C68-42DF-906B-93A6804C198A}.Debug|Win32.Build.0 = Debug|Win32

 		{FC98AF16-4C68-42DF-906B-93A6804C198A}.Debug|x64.ActiveCfg = Debug|x64

diff --git a/win32/vs9/gtk3-widget-factory.vcproj b/win32/vs9/gtk3-widget-factory.vcproj
new file mode 100644
index 0000000..7efb335
--- /dev/null
+++ b/win32/vs9/gtk3-widget-factory.vcproj
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9.00"
+	Name="gtk3-widget-factory"
+	ProjectGUID="{BE6B4973-C6FF-4C8F-8E97-A70793C50F44}"
+	RootNamespace="gtk3widgetfactory"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+		<Platform
+			Name="x64"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			InheritedPropertySheets=".\gtk3-build-defines.vsprops"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(BaseIncludesDebug)"
+				PreprocessorDefinitions="_DEBUG"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="atk-1.0.lib"
+				LinkIncremental="2"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="1"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			InheritedPropertySheets=".\gtk3-build-defines.vsprops"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				AdditionalIncludeDirectories="$(BaseIncludesRelease)"
+				EnableIntrinsicFunctions="true"
+				PreprocessorDefinitions=""
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="atk-1.0.lib"
+				LinkIncremental="1"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			InheritedPropertySheets=".\gtk3-build-defines.vsprops"
+			ConfigurationType="1"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="$(BaseIncludesDebug)"
+				PreprocessorDefinitions="_DEBUG"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="atk-1.0.lib"
+				LinkIncremental="2"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				TargetMachine="17"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			InheritedPropertySheets=".\gtk3-build-defines.vsprops"
+			ConfigurationType="1"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				AdditionalIncludeDirectories="$(BaseIncludesRelease)"
+				EnableIntrinsicFunctions="true"
+				PreprocessorDefinitions=""
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="atk-1.0.lib"
+				LinkIncremental="1"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="17"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Sources"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File RelativePath="..\..\demos\widget-factory\widget-factory.c" />
+			<File RelativePath=".\Release\$(PlatformName)\obj\gtk3-widget-factory\widget_factory_resources.c">
+				<FileConfiguration Name="Debug|Win32" ExcludedFromBuild="true" ><Tool Name="VCCLCompilerTool" /></FileConfiguration>
+				<FileConfiguration Name="Debug|x64" ExcludedFromBuild="true" ><Tool Name="VCCLCompilerTool" /></FileConfiguration>
+			</File>
+			<File RelativePath=".\Debug\$(PlatformName)\obj\gtk3-widget-factory\widget_factory_resources.c" >
+				<FileConfiguration Name="Release|Win32" ExcludedFromBuild="true" ><Tool Name="VCCLCompilerTool" /></FileConfiguration>
+				<FileConfiguration Name="Release|x64" ExcludedFromBuild="true" ><Tool Name="VCCLCompilerTool" /></FileConfiguration>
+			</File>
+		</Filter>
+		<Filter
+			Name="Headers"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+			>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>