[gmime] Project files for MSVC 2017. (#79)



commit 2366b3741844362e53abd251d22d0dffac6b6109
Author: Vitaliy Didik <ariman inbox ru>
Date:   Tue Feb 11 17:48:38 2020 +0300

    Project files for MSVC 2017. (#79)
    
    * Added VS2017 projects for library and example programs.

 build/vs2017/.gitignore                    |   6 +
 build/vs2017/basic-example.vcxproj         | 297 ++++++++++++++
 build/vs2017/basic-example.vcxproj.filters |  22 +
 build/vs2017/config.h                      |   7 +
 build/vs2017/gmime.def                     | 636 +++++++++++++++++++++++++++++
 build/vs2017/gmime.sln                     | 115 ++++++
 build/vs2017/gmime.vcxproj                 | 452 ++++++++++++++++++++
 build/vs2017/gmime.vcxproj.filters         | 458 +++++++++++++++++++++
 build/vs2017/imap-example.vcxproj          | 297 ++++++++++++++
 build/vs2017/imap-example.vcxproj.filters  |  22 +
 build/vs2017/unistd.h                      |  21 +
 build/vs2017/uudecode.vcxproj              | 297 ++++++++++++++
 build/vs2017/uudecode.vcxproj.filters      |  22 +
 build/vs2017/uuencode.vcxproj              | 297 ++++++++++++++
 build/vs2017/uuencode.vcxproj.filters      |  22 +
 examples/uudecode.c                        |   5 +-
 examples/uuencode.c                        |   2 +-
 gmime/gmime-charset.c                      |   5 +-
 18 files changed, 2980 insertions(+), 3 deletions(-)
---
diff --git a/build/vs2017/.gitignore b/build/vs2017/.gitignore
new file mode 100644
index 00000000..92384618
--- /dev/null
+++ b/build/vs2017/.gitignore
@@ -0,0 +1,6 @@
+.vs/
+Debug*/
+Release*/
+*.user
+
+!config.h
diff --git a/build/vs2017/basic-example.vcxproj b/build/vs2017/basic-example.vcxproj
new file mode 100644
index 00000000..e807c248
--- /dev/null
+++ b/build/vs2017/basic-example.vcxproj
@@ -0,0 +1,297 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug-DLL|Win32">
+      <Configuration>Debug-DLL</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug-Static|Win32">
+      <Configuration>Debug-Static</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug-Static|x64">
+      <Configuration>Debug-Static</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-DLL|Win32">
+      <Configuration>Release-DLL</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug-DLL|x64">
+      <Configuration>Debug-DLL</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-DLL|x64">
+      <Configuration>Release-DLL</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-Static|Win32">
+      <Configuration>Release-Static</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-Static|x64">
+      <Configuration>Release-Static</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="gmime.vcxproj">
+      <Project>{391c605f-9a65-42c4-87fa-55cfaf35cca2}</Project>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\examples\basic-example.c" />
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <VCProjectVersion>15.0</VCProjectVersion>
+    <ProjectGuid>{B90CBC59-A11F-4DAA-9A99-976CB673B9DF}</ProjectGuid>
+    <RootNamespace>gmime</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/build/vs2017/basic-example.vcxproj.filters b/build/vs2017/basic-example.vcxproj.filters
new file mode 100644
index 00000000..9ad2616a
--- /dev/null
+++ b/build/vs2017/basic-example.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;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;mfcribbon-ms</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\examples\basic-example.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/build/vs2017/config.h b/build/vs2017/config.h
new file mode 100644
index 00000000..867095b4
--- /dev/null
+++ b/build/vs2017/config.h
@@ -0,0 +1,7 @@
+#define HAVE_GETHOSTNAME 1
+#define HAVE_GETADDRINFO 1
+
+#define LIBIDN 1
+
+#define mode_t int
+#define ssize_t intptr_t
diff --git a/build/vs2017/gmime.def b/build/vs2017/gmime.def
new file mode 100644
index 00000000..3f04d4e0
--- /dev/null
+++ b/build/vs2017/gmime.def
@@ -0,0 +1,636 @@
+EXPORTS
+
+g_mime_application_pkcs7_mime_decrypt
+g_mime_application_pkcs7_mime_encrypt
+g_mime_application_pkcs7_mime_get_smime_type
+g_mime_application_pkcs7_mime_get_type
+g_mime_application_pkcs7_mime_new
+g_mime_application_pkcs7_mime_sign
+g_mime_application_pkcs7_mime_verify
+g_mime_certificate_get_created
+g_mime_certificate_get_digest_algo
+g_mime_certificate_get_email
+g_mime_certificate_get_expires
+g_mime_certificate_get_fingerprint
+g_mime_certificate_get_id_validity
+g_mime_certificate_get_issuer_name
+g_mime_certificate_get_issuer_serial
+g_mime_certificate_get_key_id
+g_mime_certificate_get_name
+g_mime_certificate_get_pubkey_algo
+g_mime_certificate_get_trust
+g_mime_certificate_get_type
+g_mime_certificate_get_user_id
+g_mime_certificate_list_add
+g_mime_certificate_list_clear
+g_mime_certificate_list_contains
+g_mime_certificate_list_get_certificate
+g_mime_certificate_list_get_type
+g_mime_certificate_list_index_of
+g_mime_certificate_list_insert
+g_mime_certificate_list_length
+g_mime_certificate_list_new
+g_mime_certificate_list_remove
+g_mime_certificate_list_remove_at
+g_mime_certificate_list_set_certificate
+g_mime_certificate_new
+g_mime_certificate_set_created
+g_mime_certificate_set_digest_algo
+g_mime_certificate_set_email
+g_mime_certificate_set_expires
+g_mime_certificate_set_fingerprint
+g_mime_certificate_set_id_validity
+g_mime_certificate_set_issuer_name
+g_mime_certificate_set_issuer_serial
+g_mime_certificate_set_key_id
+g_mime_certificate_set_name
+g_mime_certificate_set_pubkey_algo
+g_mime_certificate_set_trust
+g_mime_certificate_set_user_id
+g_mime_charset_best
+g_mime_charset_best_name
+g_mime_charset_can_encode
+g_mime_charset_canon_name
+g_mime_charset_iconv_name
+g_mime_charset_init
+g_mime_charset_iso_to_windows
+g_mime_charset_language
+g_mime_charset_locale_name
+g_mime_charset_map_init
+g_mime_charset_map_shutdown
+g_mime_charset_name
+g_mime_charset_step
+g_mime_check_version
+g_mime_content_disposition_encode
+g_mime_content_disposition_get_disposition
+g_mime_content_disposition_get_parameter
+g_mime_content_disposition_get_parameters
+g_mime_content_disposition_get_type
+g_mime_content_disposition_is_attachment
+g_mime_content_disposition_new
+g_mime_content_disposition_parse
+g_mime_content_disposition_set_disposition
+g_mime_content_disposition_set_parameter
+g_mime_content_encoding_from_string
+g_mime_content_encoding_to_string
+g_mime_content_type_encode
+g_mime_content_type_get_media_subtype
+g_mime_content_type_get_media_type
+g_mime_content_type_get_mime_type
+g_mime_content_type_get_parameter
+g_mime_content_type_get_parameters
+g_mime_content_type_get_type
+g_mime_content_type_is_type
+g_mime_content_type_new
+g_mime_content_type_parse
+g_mime_content_type_set_media_subtype
+g_mime_content_type_set_media_type
+g_mime_content_type_set_parameter
+g_mime_crypto_context_decrypt
+g_mime_crypto_context_digest_id
+g_mime_crypto_context_digest_name
+g_mime_crypto_context_encrypt
+g_mime_crypto_context_export_keys
+g_mime_crypto_context_get_encryption_protocol
+g_mime_crypto_context_get_key_exchange_protocol
+g_mime_crypto_context_get_request_password
+g_mime_crypto_context_get_signature_protocol
+g_mime_crypto_context_get_type
+g_mime_crypto_context_import_keys
+g_mime_crypto_context_new
+g_mime_crypto_context_register
+g_mime_crypto_context_set_request_password
+g_mime_crypto_context_shutdown
+g_mime_crypto_context_sign
+g_mime_crypto_context_verify
+g_mime_data_wrapper_get_encoding
+g_mime_data_wrapper_get_stream
+g_mime_data_wrapper_get_type
+g_mime_data_wrapper_new
+g_mime_data_wrapper_new_with_stream
+g_mime_data_wrapper_set_encoding
+g_mime_data_wrapper_set_stream
+g_mime_data_wrapper_write_to_stream
+g_mime_decrypt_result_get_cipher
+g_mime_decrypt_result_get_mdc
+g_mime_decrypt_result_get_recipients
+g_mime_decrypt_result_get_session_key
+g_mime_decrypt_result_get_signatures
+g_mime_decrypt_result_get_type
+g_mime_decrypt_result_new
+g_mime_decrypt_result_set_cipher
+g_mime_decrypt_result_set_mdc
+g_mime_decrypt_result_set_recipients
+g_mime_decrypt_result_set_session_key
+g_mime_decrypt_result_set_signatures
+g_mime_encoding_base64_decode_step
+g_mime_encoding_base64_encode_close
+g_mime_encoding_base64_encode_step
+g_mime_encoding_flush
+g_mime_encoding_init_decode
+g_mime_encoding_init_encode
+g_mime_encoding_outlen
+g_mime_encoding_quoted_decode_step
+g_mime_encoding_quoted_encode_close
+g_mime_encoding_quoted_encode_step
+g_mime_encoding_reset
+g_mime_encoding_step
+g_mime_encoding_uudecode_step
+g_mime_encoding_uuencode_close
+g_mime_encoding_uuencode_step
+g_mime_filter_backup
+g_mime_filter_basic_get_type
+g_mime_filter_basic_new
+g_mime_filter_best_charset
+g_mime_filter_best_encoding
+g_mime_filter_best_get_type
+g_mime_filter_best_new
+g_mime_filter_charset_get_type
+g_mime_filter_charset_new
+g_mime_filter_checksum_get_digest
+g_mime_filter_checksum_get_string
+g_mime_filter_checksum_get_type
+g_mime_filter_checksum_new
+g_mime_filter_complete
+g_mime_filter_copy
+g_mime_filter_dos2unix_get_type
+g_mime_filter_dos2unix_new
+g_mime_filter_enriched_get_type
+g_mime_filter_enriched_new
+g_mime_filter_filter
+g_mime_filter_from_get_type
+g_mime_filter_from_new
+g_mime_filter_get_type
+g_mime_filter_gzip_get_comment
+g_mime_filter_gzip_get_filename
+g_mime_filter_gzip_get_type
+g_mime_filter_gzip_new
+g_mime_filter_gzip_set_comment
+g_mime_filter_gzip_set_filename
+g_mime_filter_html_get_type
+g_mime_filter_html_new
+g_mime_filter_openpgp_new
+g_mime_filter_openpgp_get_data_type
+g_mime_filter_openpgp_get_begin_offset
+g_mime_filter_openpgp_get_end_offset
+g_mime_filter_openpgp_get_type
+g_mime_filter_reset
+g_mime_filter_set_size
+g_mime_filter_smtp_data_get_type
+g_mime_filter_smtp_data_new
+g_mime_filter_strip_get_type
+g_mime_filter_strip_new
+g_mime_filter_unix2dos_get_type
+g_mime_filter_unix2dos_new
+g_mime_filter_windows_get_type
+g_mime_filter_windows_is_windows_charset
+g_mime_filter_windows_new
+g_mime_filter_windows_real_charset
+g_mime_filter_yenc_get_crc
+g_mime_filter_yenc_get_pcrc
+g_mime_filter_yenc_get_type
+g_mime_filter_yenc_new
+g_mime_filter_yenc_set_crc
+g_mime_filter_yenc_set_state
+g_mime_format_options_add_hidden_header
+g_mime_format_options_clear_hidden_headers
+g_mime_format_options_clone
+g_mime_format_options_create_newline_filter
+g_mime_format_options_free
+g_mime_format_options_get_default
+g_mime_format_options_get_newline
+g_mime_format_options_get_newline_format
+g_mime_format_options_get_param_encoding_method
+g_mime_format_options_get_type
+g_mime_format_options_is_hidden_header
+g_mime_format_options_new
+g_mime_format_options_remove_hidden_header
+g_mime_format_options_set_newline_format
+g_mime_format_options_set_param_encoding_method
+g_mime_gpg_context_get_type
+g_mime_gpg_context_new
+g_mime_header_format_addrlist
+g_mime_header_format_content_disposition
+g_mime_header_format_content_type
+g_mime_header_format_default
+g_mime_header_format_message_id
+g_mime_header_format_received
+g_mime_header_format_references
+g_mime_header_get_name
+g_mime_header_get_offset
+g_mime_header_get_raw_name
+g_mime_header_get_raw_value
+g_mime_header_get_type
+g_mime_header_get_value
+g_mime_header_list_append
+g_mime_header_list_clear
+g_mime_header_list_contains
+g_mime_header_list_get_count
+g_mime_header_list_get_header
+g_mime_header_list_get_header_at
+g_mime_header_list_get_type
+g_mime_header_list_new
+g_mime_header_list_prepend
+g_mime_header_list_remove
+g_mime_header_list_remove_at
+g_mime_header_list_set
+g_mime_header_list_to_string
+g_mime_header_list_write_to_stream
+g_mime_header_set_raw_value
+g_mime_header_set_value
+g_mime_header_write_to_stream
+g_mime_iconv_close
+g_mime_iconv_locale_to_utf8
+g_mime_iconv_locale_to_utf8_length
+g_mime_iconv_open
+g_mime_iconv_strdup
+g_mime_iconv_strndup
+g_mime_iconv_utf8_to_locale
+g_mime_iconv_utf8_to_locale_length
+g_mime_init
+g_mime_locale_charset
+g_mime_locale_language
+g_mime_message_add_mailbox
+g_mime_message_foreach
+g_mime_message_get_addresses
+g_mime_message_get_all_recipients
+g_mime_message_get_autocrypt_gossip_headers
+g_mime_message_get_autocrypt_gossip_headers_from_inner_part
+g_mime_message_get_autocrypt_header
+g_mime_message_get_bcc
+g_mime_message_get_body
+g_mime_message_get_cc
+g_mime_message_get_date
+g_mime_message_get_from
+g_mime_message_get_message_id
+g_mime_message_get_mime_part
+g_mime_message_get_reply_to
+g_mime_message_get_sender
+g_mime_message_get_subject
+g_mime_message_get_to
+g_mime_message_get_type
+g_mime_message_new
+g_mime_message_part_get_message
+g_mime_message_part_get_type
+g_mime_message_part_new
+g_mime_message_part_new_with_message
+g_mime_message_part_set_message
+g_mime_message_partial_get_id
+g_mime_message_partial_get_number
+g_mime_message_partial_get_total
+g_mime_message_partial_get_type
+g_mime_message_partial_new
+g_mime_message_partial_reconstruct_message
+g_mime_message_partial_split_message
+g_mime_message_set_date
+g_mime_message_set_message_id
+g_mime_message_set_mime_part
+g_mime_message_set_subject
+g_mime_multipart_add
+g_mime_multipart_clear
+g_mime_multipart_contains
+g_mime_multipart_encrypted_decrypt
+g_mime_multipart_encrypted_encrypt
+g_mime_multipart_encrypted_get_type
+g_mime_multipart_encrypted_new
+g_mime_multipart_foreach
+g_mime_multipart_get_boundary
+g_mime_multipart_get_count
+g_mime_multipart_get_epilogue
+g_mime_multipart_get_part
+g_mime_multipart_get_prologue
+g_mime_multipart_get_subpart_from_content_id
+g_mime_multipart_get_type
+g_mime_multipart_index_of
+g_mime_multipart_insert
+g_mime_multipart_new
+g_mime_multipart_new_with_subtype
+g_mime_multipart_remove
+g_mime_multipart_remove_at
+g_mime_multipart_replace
+g_mime_multipart_set_boundary
+g_mime_multipart_set_epilogue
+g_mime_multipart_set_prologue
+g_mime_multipart_signed_get_type
+g_mime_multipart_signed_new
+g_mime_multipart_signed_sign
+g_mime_multipart_signed_verify
+g_mime_object_append_header
+g_mime_object_encode
+g_mime_object_get_content_disposition
+g_mime_object_get_content_disposition_parameter
+g_mime_object_get_content_id
+g_mime_object_get_content_type
+g_mime_object_get_content_type_parameter
+g_mime_object_get_disposition
+g_mime_object_get_header
+g_mime_object_get_header_list
+g_mime_object_get_headers
+g_mime_object_get_type
+g_mime_object_new
+g_mime_object_new_type
+g_mime_object_prepend_header
+g_mime_object_register_type
+g_mime_object_remove_header
+g_mime_object_set_content_disposition
+g_mime_object_set_content_disposition_parameter
+g_mime_object_set_content_id
+g_mime_object_set_content_type
+g_mime_object_set_content_type_parameter
+g_mime_object_set_disposition
+g_mime_object_set_header
+g_mime_object_to_string
+g_mime_object_write_to_stream
+g_mime_param_get_charset
+g_mime_param_get_encoding_method
+g_mime_param_get_lang
+g_mime_param_get_name
+g_mime_param_get_type
+g_mime_param_get_value
+g_mime_param_list_clear
+g_mime_param_list_encode
+g_mime_param_list_get_parameter
+g_mime_param_list_get_parameter_at
+g_mime_param_list_get_type
+g_mime_param_list_length
+g_mime_param_list_new
+g_mime_param_list_parse
+g_mime_param_list_remove
+g_mime_param_list_remove_at
+g_mime_param_list_set_parameter
+g_mime_param_set_charset
+g_mime_param_set_encoding_method
+g_mime_param_set_lang
+g_mime_param_set_value
+g_mime_parser_construct_message
+g_mime_parser_construct_part
+g_mime_parser_eos
+g_mime_parser_get_format
+g_mime_parser_get_headers_begin
+g_mime_parser_get_headers_end
+g_mime_parser_get_mbox_marker
+g_mime_parser_get_mbox_marker_offset
+g_mime_parser_get_persist_stream
+g_mime_parser_get_respect_content_length
+g_mime_parser_get_type
+g_mime_parser_init_with_stream
+g_mime_parser_new
+g_mime_parser_new_with_stream
+g_mime_parser_options_clone
+g_mime_parser_options_free
+g_mime_parser_options_get_address_compliance_mode
+g_mime_parser_options_get_allow_addresses_without_domain
+g_mime_parser_options_get_default
+g_mime_parser_options_get_fallback_charsets
+g_mime_parser_options_get_parameter_compliance_mode
+g_mime_parser_options_get_rfc2047_compliance_mode
+g_mime_parser_options_get_type
+g_mime_parser_options_get_warning_callback
+g_mime_parser_options_new
+g_mime_parser_options_set_address_compliance_mode
+g_mime_parser_options_set_allow_addresses_without_domain
+g_mime_parser_options_set_fallback_charsets
+g_mime_parser_options_set_parameter_compliance_mode
+g_mime_parser_options_set_rfc2047_compliance_mode
+g_mime_parser_options_set_warning_callback
+g_mime_parser_set_format
+g_mime_parser_set_header_regex
+g_mime_parser_set_persist_stream
+g_mime_parser_set_respect_content_length
+g_mime_parser_tell
+g_mime_part_get_best_content_encoding
+g_mime_part_get_content
+g_mime_part_get_content_description
+g_mime_part_get_content_encoding
+g_mime_part_get_content_id
+g_mime_part_get_content_location
+g_mime_part_get_content_md5
+g_mime_part_get_filename
+g_mime_part_get_openpgp_data
+g_mime_part_get_type
+g_mime_part_is_attachment
+g_mime_part_iter_clone
+g_mime_part_iter_free
+g_mime_part_iter_get_current
+g_mime_part_iter_get_parent
+g_mime_part_iter_get_path
+g_mime_part_iter_get_toplevel
+g_mime_part_iter_get_type
+g_mime_part_iter_is_valid
+g_mime_part_iter_jump_to
+g_mime_part_iter_new
+g_mime_part_iter_next
+g_mime_part_iter_prev
+g_mime_part_iter_remove
+g_mime_part_iter_replace
+g_mime_part_iter_reset
+g_mime_part_new
+g_mime_part_new_with_type
+g_mime_part_openpgp_decrypt
+g_mime_part_openpgp_encrypt
+g_mime_part_openpgp_sign
+g_mime_part_openpgp_verify
+g_mime_part_set_content
+g_mime_part_set_content_description
+g_mime_part_set_content_encoding
+g_mime_part_set_content_id
+g_mime_part_set_content_location
+g_mime_part_set_content_md5
+g_mime_part_set_filename
+g_mime_part_set_openpgp_data
+g_mime_part_verify_content_md5
+g_mime_pkcs7_context_get_type
+g_mime_pkcs7_context_new
+g_mime_references_append
+g_mime_references_clear
+g_mime_references_copy
+g_mime_references_free
+g_mime_references_get_message_id
+g_mime_references_get_type
+g_mime_references_length
+g_mime_references_new
+g_mime_references_parse
+g_mime_references_set_message_id
+g_mime_shutdown
+g_mime_signature_get_certificate
+g_mime_signature_get_created
+g_mime_signature_get_expires
+g_mime_signature_get_status
+g_mime_signature_get_type
+g_mime_signature_list_add
+g_mime_signature_list_clear
+g_mime_signature_list_contains
+g_mime_signature_list_get_signature
+g_mime_signature_list_get_type
+g_mime_signature_list_index_of
+g_mime_signature_list_insert
+g_mime_signature_list_length
+g_mime_signature_list_new
+g_mime_signature_list_remove
+g_mime_signature_list_remove_at
+g_mime_signature_list_set_signature
+g_mime_signature_new
+g_mime_signature_set_certificate
+g_mime_signature_set_created
+g_mime_signature_set_expires
+g_mime_signature_set_status
+g_mime_stream_buffer_get_type
+g_mime_stream_buffer_gets
+g_mime_stream_buffer_new
+g_mime_stream_buffer_readln
+g_mime_stream_cat_add_source
+g_mime_stream_cat_get_type
+g_mime_stream_cat_new
+g_mime_stream_close
+g_mime_stream_construct
+g_mime_stream_eos
+g_mime_stream_file_get_owner
+g_mime_stream_file_get_type
+g_mime_stream_file_new
+g_mime_stream_file_new_with_bounds
+g_mime_stream_file_open
+g_mime_stream_file_set_owner
+g_mime_stream_filter_add
+g_mime_stream_filter_get_owner
+g_mime_stream_filter_get_type
+g_mime_stream_filter_new
+g_mime_stream_filter_remove
+g_mime_stream_filter_set_owner
+g_mime_stream_flush
+g_mime_stream_fs_get_owner
+g_mime_stream_fs_get_type
+g_mime_stream_fs_new
+g_mime_stream_fs_new_with_bounds
+g_mime_stream_fs_open
+g_mime_stream_fs_set_owner
+g_mime_stream_get_type
+g_mime_stream_gio_get_owner
+g_mime_stream_gio_get_type
+g_mime_stream_gio_new
+g_mime_stream_gio_new_with_bounds
+g_mime_stream_gio_set_owner
+g_mime_stream_length
+g_mime_stream_mem_get_byte_array
+g_mime_stream_mem_get_owner
+g_mime_stream_mem_get_type
+g_mime_stream_mem_new
+g_mime_stream_mem_new_with_buffer
+g_mime_stream_mem_new_with_byte_array
+g_mime_stream_mem_set_byte_array
+g_mime_stream_mem_set_owner
+g_mime_stream_mmap_get_owner
+g_mime_stream_mmap_get_type
+g_mime_stream_mmap_new
+g_mime_stream_mmap_new_with_bounds
+g_mime_stream_mmap_set_owner
+g_mime_stream_null_set_count_newlines
+g_mime_stream_null_get_count_newlines
+g_mime_stream_null_get_type
+g_mime_stream_null_new
+g_mime_stream_pipe_get_owner
+g_mime_stream_pipe_get_type
+g_mime_stream_pipe_new
+g_mime_stream_pipe_set_owner
+g_mime_stream_printf
+g_mime_stream_read
+g_mime_stream_reset
+g_mime_stream_seek
+g_mime_stream_set_bounds
+g_mime_stream_substream
+g_mime_stream_tell
+g_mime_stream_write
+g_mime_stream_write_string
+g_mime_stream_write_to_stream
+g_mime_stream_writev
+g_mime_text_part_get_charset
+g_mime_text_part_get_text
+g_mime_text_part_get_type
+g_mime_text_part_new
+g_mime_text_part_new_with_subtype
+g_mime_text_part_set_charset
+g_mime_text_part_set_text
+g_mime_utils_best_encoding
+g_mime_utils_decode_8bit
+g_mime_utils_decode_message_id
+g_mime_utils_generate_message_id
+g_mime_utils_header_decode_date
+g_mime_utils_header_decode_phrase
+g_mime_utils_header_decode_text
+g_mime_utils_header_encode_phrase
+g_mime_utils_header_encode_text
+g_mime_utils_header_format_date
+g_mime_utils_header_printf
+g_mime_utils_header_unfold
+g_mime_utils_quote_string
+g_mime_utils_structured_header_fold
+g_mime_utils_text_is_8bit
+g_mime_utils_unquote_string
+g_mime_utils_unstructured_header_fold
+g_mime_ydecode_step
+g_mime_yencode_close
+g_mime_yencode_step
+gmime_binary_age
+gmime_error_quark
+gmime_gpgme_error_quark
+gmime_interface_age
+gmime_major_version
+gmime_micro_version
+gmime_minor_version
+internet_address_get_charset
+internet_address_get_name
+internet_address_get_type
+internet_address_group_add_member
+internet_address_group_get_members
+internet_address_group_get_type
+internet_address_group_new
+internet_address_group_set_members
+internet_address_list_add
+internet_address_list_append
+internet_address_list_clear
+internet_address_list_contains
+internet_address_list_encode
+internet_address_list_get_address
+internet_address_list_get_type
+internet_address_list_index_of
+internet_address_list_insert
+internet_address_list_length
+internet_address_list_new
+internet_address_list_parse
+internet_address_list_prepend
+internet_address_list_remove
+internet_address_list_remove_at
+internet_address_list_set_address
+internet_address_list_to_string
+internet_address_mailbox_get_addr
+internet_address_mailbox_get_idn_addr
+internet_address_mailbox_get_type
+internet_address_mailbox_new
+internet_address_mailbox_set_addr
+internet_address_set_charset
+internet_address_set_name
+internet_address_to_string
+g_mime_autocrypt_header_new
+g_mime_autocrypt_header_new_from_string
+g_mime_autocrypt_header_get_address
+g_mime_autocrypt_header_set_address
+g_mime_autocrypt_header_set_address_from_string
+g_mime_autocrypt_header_get_address_as_string
+g_mime_autocrypt_header_get_prefer_encrypt
+g_mime_autocrypt_header_set_prefer_encrypt
+g_mime_autocrypt_header_get_keydata
+g_mime_autocrypt_header_set_keydata
+g_mime_autocrypt_header_get_effective_date
+g_mime_autocrypt_header_set_effective_date
+g_mime_autocrypt_header_is_complete
+g_mime_autocrypt_header_to_string
+g_mime_autocrypt_header_compare
+g_mime_autocrypt_header_clone
+g_mime_autocrypt_header_list_new
+g_mime_autocrypt_header_list_add_missing_addresses
+g_mime_autocrypt_header_list_add
+g_mime_autocrypt_header_list_get_count
+g_mime_autocrypt_header_list_get_header_at
+g_mime_autocrypt_header_list_get_header_for_address
+g_mime_autocrypt_header_list_remove_incomplete
+g_mime_autocrypt_header_get_type
+g_mime_autocrypt_header_list_get_type
diff --git a/build/vs2017/gmime.sln b/build/vs2017/gmime.sln
new file mode 100644
index 00000000..c08670b1
--- /dev/null
+++ b/build/vs2017/gmime.sln
@@ -0,0 +1,115 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.28307.1000
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gmime", "gmime.vcxproj", 
"{391C605F-9A65-42C4-87FA-55CFAF35CCA2}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uuencode", "uuencode.vcxproj", 
"{E72B0399-A930-4B33-9E2C-6E120E8A1434}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uudecode", "uudecode.vcxproj", 
"{D19ED6E1-E2D6-450E-A33D-324F85F02D8C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "basic-example", "basic-example.vcxproj", 
"{B90CBC59-A11F-4DAA-9A99-976CB673B9DF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "imap-example", "imap-example.vcxproj", 
"{F43D5E68-E39F-4C88-B8E6-7401309CC05F}"
+EndProject
+Global
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution
+               Debug-DLL|x64 = Debug-DLL|x64
+               Debug-DLL|x86 = Debug-DLL|x86
+               Debug-Static|x64 = Debug-Static|x64
+               Debug-Static|x86 = Debug-Static|x86
+               Release-DLL|x64 = Release-DLL|x64
+               Release-DLL|x86 = Release-DLL|x86
+               Release-Static|x64 = Release-Static|x64
+               Release-Static|x86 = Release-Static|x86
+       EndGlobalSection
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {391C605F-9A65-42C4-87FA-55CFAF35CCA2}.Debug-DLL|x64.ActiveCfg = Debug-DLL|x64
+               {391C605F-9A65-42C4-87FA-55CFAF35CCA2}.Debug-DLL|x64.Build.0 = Debug-DLL|x64
+               {391C605F-9A65-42C4-87FA-55CFAF35CCA2}.Debug-DLL|x86.ActiveCfg = Debug-DLL|Win32
+               {391C605F-9A65-42C4-87FA-55CFAF35CCA2}.Debug-DLL|x86.Build.0 = Debug-DLL|Win32
+               {391C605F-9A65-42C4-87FA-55CFAF35CCA2}.Debug-Static|x64.ActiveCfg = Debug-Static|x64
+               {391C605F-9A65-42C4-87FA-55CFAF35CCA2}.Debug-Static|x64.Build.0 = Debug-Static|x64
+               {391C605F-9A65-42C4-87FA-55CFAF35CCA2}.Debug-Static|x86.ActiveCfg = Debug-Static|Win32
+               {391C605F-9A65-42C4-87FA-55CFAF35CCA2}.Debug-Static|x86.Build.0 = Debug-Static|Win32
+               {391C605F-9A65-42C4-87FA-55CFAF35CCA2}.Release-DLL|x64.ActiveCfg = Release-DLL|x64
+               {391C605F-9A65-42C4-87FA-55CFAF35CCA2}.Release-DLL|x64.Build.0 = Release-DLL|x64
+               {391C605F-9A65-42C4-87FA-55CFAF35CCA2}.Release-DLL|x86.ActiveCfg = Release-DLL|Win32
+               {391C605F-9A65-42C4-87FA-55CFAF35CCA2}.Release-DLL|x86.Build.0 = Release-DLL|Win32
+               {391C605F-9A65-42C4-87FA-55CFAF35CCA2}.Release-Static|x64.ActiveCfg = Release-Static|x64
+               {391C605F-9A65-42C4-87FA-55CFAF35CCA2}.Release-Static|x64.Build.0 = Release-Static|x64
+               {391C605F-9A65-42C4-87FA-55CFAF35CCA2}.Release-Static|x86.ActiveCfg = Release-Static|Win32
+               {391C605F-9A65-42C4-87FA-55CFAF35CCA2}.Release-Static|x86.Build.0 = Release-Static|Win32
+               {E72B0399-A930-4B33-9E2C-6E120E8A1434}.Debug-DLL|x64.ActiveCfg = Debug-DLL|x64
+               {E72B0399-A930-4B33-9E2C-6E120E8A1434}.Debug-DLL|x64.Build.0 = Debug-DLL|x64
+               {E72B0399-A930-4B33-9E2C-6E120E8A1434}.Debug-DLL|x86.ActiveCfg = Debug-DLL|Win32
+               {E72B0399-A930-4B33-9E2C-6E120E8A1434}.Debug-DLL|x86.Build.0 = Debug-DLL|Win32
+               {E72B0399-A930-4B33-9E2C-6E120E8A1434}.Debug-Static|x64.ActiveCfg = Debug-Static|x64
+               {E72B0399-A930-4B33-9E2C-6E120E8A1434}.Debug-Static|x64.Build.0 = Debug-Static|x64
+               {E72B0399-A930-4B33-9E2C-6E120E8A1434}.Debug-Static|x86.ActiveCfg = Debug-Static|Win32
+               {E72B0399-A930-4B33-9E2C-6E120E8A1434}.Debug-Static|x86.Build.0 = Debug-Static|Win32
+               {E72B0399-A930-4B33-9E2C-6E120E8A1434}.Release-DLL|x64.ActiveCfg = Release-DLL|x64
+               {E72B0399-A930-4B33-9E2C-6E120E8A1434}.Release-DLL|x64.Build.0 = Release-DLL|x64
+               {E72B0399-A930-4B33-9E2C-6E120E8A1434}.Release-DLL|x86.ActiveCfg = Release-DLL|Win32
+               {E72B0399-A930-4B33-9E2C-6E120E8A1434}.Release-DLL|x86.Build.0 = Release-DLL|Win32
+               {E72B0399-A930-4B33-9E2C-6E120E8A1434}.Release-Static|x64.ActiveCfg = Release-Static|x64
+               {E72B0399-A930-4B33-9E2C-6E120E8A1434}.Release-Static|x64.Build.0 = Release-Static|x64
+               {E72B0399-A930-4B33-9E2C-6E120E8A1434}.Release-Static|x86.ActiveCfg = Release-Static|Win32
+               {E72B0399-A930-4B33-9E2C-6E120E8A1434}.Release-Static|x86.Build.0 = Release-Static|Win32
+               {D19ED6E1-E2D6-450E-A33D-324F85F02D8C}.Debug-DLL|x64.ActiveCfg = Debug-DLL|x64
+               {D19ED6E1-E2D6-450E-A33D-324F85F02D8C}.Debug-DLL|x64.Build.0 = Debug-DLL|x64
+               {D19ED6E1-E2D6-450E-A33D-324F85F02D8C}.Debug-DLL|x86.ActiveCfg = Debug-DLL|Win32
+               {D19ED6E1-E2D6-450E-A33D-324F85F02D8C}.Debug-DLL|x86.Build.0 = Debug-DLL|Win32
+               {D19ED6E1-E2D6-450E-A33D-324F85F02D8C}.Debug-Static|x64.ActiveCfg = Debug-Static|x64
+               {D19ED6E1-E2D6-450E-A33D-324F85F02D8C}.Debug-Static|x64.Build.0 = Debug-Static|x64
+               {D19ED6E1-E2D6-450E-A33D-324F85F02D8C}.Debug-Static|x86.ActiveCfg = Debug-Static|Win32
+               {D19ED6E1-E2D6-450E-A33D-324F85F02D8C}.Debug-Static|x86.Build.0 = Debug-Static|Win32
+               {D19ED6E1-E2D6-450E-A33D-324F85F02D8C}.Release-DLL|x64.ActiveCfg = Release-DLL|x64
+               {D19ED6E1-E2D6-450E-A33D-324F85F02D8C}.Release-DLL|x64.Build.0 = Release-DLL|x64
+               {D19ED6E1-E2D6-450E-A33D-324F85F02D8C}.Release-DLL|x86.ActiveCfg = Release-DLL|Win32
+               {D19ED6E1-E2D6-450E-A33D-324F85F02D8C}.Release-DLL|x86.Build.0 = Release-DLL|Win32
+               {D19ED6E1-E2D6-450E-A33D-324F85F02D8C}.Release-Static|x64.ActiveCfg = Release-Static|x64
+               {D19ED6E1-E2D6-450E-A33D-324F85F02D8C}.Release-Static|x64.Build.0 = Release-Static|x64
+               {D19ED6E1-E2D6-450E-A33D-324F85F02D8C}.Release-Static|x86.ActiveCfg = Release-Static|Win32
+               {D19ED6E1-E2D6-450E-A33D-324F85F02D8C}.Release-Static|x86.Build.0 = Release-Static|Win32
+               {B90CBC59-A11F-4DAA-9A99-976CB673B9DF}.Debug-DLL|x64.ActiveCfg = Debug-DLL|x64
+               {B90CBC59-A11F-4DAA-9A99-976CB673B9DF}.Debug-DLL|x64.Build.0 = Debug-DLL|x64
+               {B90CBC59-A11F-4DAA-9A99-976CB673B9DF}.Debug-DLL|x86.ActiveCfg = Debug-DLL|Win32
+               {B90CBC59-A11F-4DAA-9A99-976CB673B9DF}.Debug-DLL|x86.Build.0 = Debug-DLL|Win32
+               {B90CBC59-A11F-4DAA-9A99-976CB673B9DF}.Debug-Static|x64.ActiveCfg = Debug-Static|x64
+               {B90CBC59-A11F-4DAA-9A99-976CB673B9DF}.Debug-Static|x64.Build.0 = Debug-Static|x64
+               {B90CBC59-A11F-4DAA-9A99-976CB673B9DF}.Debug-Static|x86.ActiveCfg = Debug-Static|Win32
+               {B90CBC59-A11F-4DAA-9A99-976CB673B9DF}.Debug-Static|x86.Build.0 = Debug-Static|Win32
+               {B90CBC59-A11F-4DAA-9A99-976CB673B9DF}.Release-DLL|x64.ActiveCfg = Release-DLL|x64
+               {B90CBC59-A11F-4DAA-9A99-976CB673B9DF}.Release-DLL|x64.Build.0 = Release-DLL|x64
+               {B90CBC59-A11F-4DAA-9A99-976CB673B9DF}.Release-DLL|x86.ActiveCfg = Release-DLL|Win32
+               {B90CBC59-A11F-4DAA-9A99-976CB673B9DF}.Release-DLL|x86.Build.0 = Release-DLL|Win32
+               {B90CBC59-A11F-4DAA-9A99-976CB673B9DF}.Release-Static|x64.ActiveCfg = Release-Static|x64
+               {B90CBC59-A11F-4DAA-9A99-976CB673B9DF}.Release-Static|x64.Build.0 = Release-Static|x64
+               {B90CBC59-A11F-4DAA-9A99-976CB673B9DF}.Release-Static|x86.ActiveCfg = Release-Static|Win32
+               {B90CBC59-A11F-4DAA-9A99-976CB673B9DF}.Release-Static|x86.Build.0 = Release-Static|Win32
+               {F43D5E68-E39F-4C88-B8E6-7401309CC05F}.Debug-DLL|x64.ActiveCfg = Debug-DLL|x64
+               {F43D5E68-E39F-4C88-B8E6-7401309CC05F}.Debug-DLL|x64.Build.0 = Debug-DLL|x64
+               {F43D5E68-E39F-4C88-B8E6-7401309CC05F}.Debug-DLL|x86.ActiveCfg = Debug-DLL|Win32
+               {F43D5E68-E39F-4C88-B8E6-7401309CC05F}.Debug-DLL|x86.Build.0 = Debug-DLL|Win32
+               {F43D5E68-E39F-4C88-B8E6-7401309CC05F}.Debug-Static|x64.ActiveCfg = Debug-Static|x64
+               {F43D5E68-E39F-4C88-B8E6-7401309CC05F}.Debug-Static|x64.Build.0 = Debug-Static|x64
+               {F43D5E68-E39F-4C88-B8E6-7401309CC05F}.Debug-Static|x86.ActiveCfg = Debug-Static|Win32
+               {F43D5E68-E39F-4C88-B8E6-7401309CC05F}.Debug-Static|x86.Build.0 = Debug-Static|Win32
+               {F43D5E68-E39F-4C88-B8E6-7401309CC05F}.Release-DLL|x64.ActiveCfg = Release-DLL|x64
+               {F43D5E68-E39F-4C88-B8E6-7401309CC05F}.Release-DLL|x64.Build.0 = Release-DLL|x64
+               {F43D5E68-E39F-4C88-B8E6-7401309CC05F}.Release-DLL|x86.ActiveCfg = Release-DLL|Win32
+               {F43D5E68-E39F-4C88-B8E6-7401309CC05F}.Release-DLL|x86.Build.0 = Release-DLL|Win32
+               {F43D5E68-E39F-4C88-B8E6-7401309CC05F}.Release-Static|x64.ActiveCfg = Release-Static|x64
+               {F43D5E68-E39F-4C88-B8E6-7401309CC05F}.Release-Static|x64.Build.0 = Release-Static|x64
+               {F43D5E68-E39F-4C88-B8E6-7401309CC05F}.Release-Static|x86.ActiveCfg = Release-Static|Win32
+               {F43D5E68-E39F-4C88-B8E6-7401309CC05F}.Release-Static|x86.Build.0 = Release-Static|Win32
+       EndGlobalSection
+       GlobalSection(SolutionProperties) = preSolution
+               HideSolutionNode = FALSE
+       EndGlobalSection
+       GlobalSection(ExtensibilityGlobals) = postSolution
+               SolutionGuid = {E52F884B-5D30-4711-8B72-9430F9C49D01}
+       EndGlobalSection
+EndGlobal
diff --git a/build/vs2017/gmime.vcxproj b/build/vs2017/gmime.vcxproj
new file mode 100644
index 00000000..62135863
--- /dev/null
+++ b/build/vs2017/gmime.vcxproj
@@ -0,0 +1,452 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug-DLL|Win32">
+      <Configuration>Debug-DLL</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug-Static|Win32">
+      <Configuration>Debug-Static</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug-Static|x64">
+      <Configuration>Debug-Static</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-DLL|Win32">
+      <Configuration>Release-DLL</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug-DLL|x64">
+      <Configuration>Debug-DLL</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-DLL|x64">
+      <Configuration>Release-DLL</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-Static|Win32">
+      <Configuration>Release-Static</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-Static|x64">
+      <Configuration>Release-Static</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <VCProjectVersion>15.0</VCProjectVersion>
+    <ProjectGuid>{391C605F-9A65-42C4-87FA-55CFAF35CCA2}</ProjectGuid>
+    <RootNamespace>gmime</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'">
+    <TargetName>$(ProjectName)-3</TargetName>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'">
+    <TargetName>$(ProjectName)-3</TargetName>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'">
+    <TargetName>$(ProjectName)-3</TargetName>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'">
+    <TargetName>$(ProjectName)-3</TargetName>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'">
+    <TargetName>$(ProjectName)-3</TargetName>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'">
+    <TargetName>$(ProjectName)-3</TargetName>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">
+    <TargetName>$(ProjectName)-3</TargetName>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'">
+    <TargetName>$(ProjectName)-3</TargetName>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      
<AdditionalIncludeDirectories>.;../..;../../util;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;GMIME_EXPORTS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ModuleDefinitionFile>gmime.def</ModuleDefinitionFile>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      
<AdditionalIncludeDirectories>.;../..;../../util;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;GMIME_EXPORTS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ModuleDefinitionFile>gmime.def</ModuleDefinitionFile>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      
<AdditionalIncludeDirectories>.;../..;../../util;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;GMIME_EXPORTS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ModuleDefinitionFile>gmime.def</ModuleDefinitionFile>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      
<AdditionalIncludeDirectories>.;../..;../../util;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;GMIME_EXPORTS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ModuleDefinitionFile>gmime.def</ModuleDefinitionFile>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      
<AdditionalIncludeDirectories>.;../..;../../util;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;GMIME_EXPORTS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ModuleDefinitionFile>gmime.def</ModuleDefinitionFile>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      
<AdditionalIncludeDirectories>.;../..;../../util;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;GMIME_EXPORTS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ModuleDefinitionFile>gmime.def</ModuleDefinitionFile>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      
<AdditionalIncludeDirectories>.;../..;../../util;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;GMIME_EXPORTS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ModuleDefinitionFile>gmime.def</ModuleDefinitionFile>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      
<AdditionalIncludeDirectories>.;../..;../../util;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;GMIME_EXPORTS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ModuleDefinitionFile>gmime.def</ModuleDefinitionFile>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\gmime\gmime-application-pkcs7-mime.c" />
+    <ClCompile Include="..\..\gmime\gmime-autocrypt.c" />
+    <ClCompile Include="..\..\gmime\gmime-certificate.c" />
+    <ClCompile Include="..\..\gmime\gmime-charset.c" />
+    <ClCompile Include="..\..\gmime\gmime-common.c" />
+    <ClCompile Include="..\..\gmime\gmime-content-type.c" />
+    <ClCompile Include="..\..\gmime\gmime-crypto-context.c" />
+    <ClCompile Include="..\..\gmime\gmime-data-wrapper.c" />
+    <ClCompile Include="..\..\gmime\gmime-disposition.c" />
+    <ClCompile Include="..\..\gmime\gmime-encodings.c" />
+    <ClCompile Include="..\..\gmime\gmime-events.c" />
+    <ClCompile Include="..\..\gmime\gmime-filter-basic.c" />
+    <ClCompile Include="..\..\gmime\gmime-filter-best.c" />
+    <ClCompile Include="..\..\gmime\gmime-filter-charset.c" />
+    <ClCompile Include="..\..\gmime\gmime-filter-checksum.c" />
+    <ClCompile Include="..\..\gmime\gmime-filter-dos2unix.c" />
+    <ClCompile Include="..\..\gmime\gmime-filter-enriched.c" />
+    <ClCompile Include="..\..\gmime\gmime-filter-from.c" />
+    <ClCompile Include="..\..\gmime\gmime-filter-gzip.c" />
+    <ClCompile Include="..\..\gmime\gmime-filter-html.c" />
+    <ClCompile Include="..\..\gmime\gmime-filter-openpgp.c" />
+    <ClCompile Include="..\..\gmime\gmime-filter-smtp-data.c" />
+    <ClCompile Include="..\..\gmime\gmime-filter-strip.c" />
+    <ClCompile Include="..\..\gmime\gmime-filter-unix2dos.c" />
+    <ClCompile Include="..\..\gmime\gmime-filter-windows.c" />
+    <ClCompile Include="..\..\gmime\gmime-filter-yenc.c" />
+    <ClCompile Include="..\..\gmime\gmime-filter.c" />
+    <ClCompile Include="..\..\gmime\gmime-format-options.c" />
+    <ClCompile Include="..\..\gmime\gmime-gpg-context.c" />
+    <ClCompile Include="..\..\gmime\gmime-gpgme-utils.c" />
+    <ClCompile Include="..\..\gmime\gmime-header.c" />
+    <ClCompile Include="..\..\gmime\gmime-iconv-utils.c" />
+    <ClCompile Include="..\..\gmime\gmime-iconv.c" />
+    <ClCompile Include="..\..\gmime\gmime-message-part.c" />
+    <ClCompile Include="..\..\gmime\gmime-message-partial.c" />
+    <ClCompile Include="..\..\gmime\gmime-message.c" />
+    <ClCompile Include="..\..\gmime\gmime-multipart-encrypted.c" />
+    <ClCompile Include="..\..\gmime\gmime-multipart-signed.c" />
+    <ClCompile Include="..\..\gmime\gmime-multipart.c" />
+    <ClCompile Include="..\..\gmime\gmime-object.c" />
+    <ClCompile Include="..\..\gmime\gmime-param.c" />
+    <ClCompile Include="..\..\gmime\gmime-parse-utils.c" />
+    <ClCompile Include="..\..\gmime\gmime-parser-options.c" />
+    <ClCompile Include="..\..\gmime\gmime-parser.c" />
+    <ClCompile Include="..\..\gmime\gmime-part-iter.c" />
+    <ClCompile Include="..\..\gmime\gmime-part.c" />
+    <ClCompile Include="..\..\gmime\gmime-pkcs7-context.c" />
+    <ClCompile Include="..\..\gmime\gmime-references.c" />
+    <ClCompile Include="..\..\gmime\gmime-signature.c" />
+    <ClCompile Include="..\..\gmime\gmime-stream-buffer.c" />
+    <ClCompile Include="..\..\gmime\gmime-stream-cat.c" />
+    <ClCompile Include="..\..\gmime\gmime-stream-file.c" />
+    <ClCompile Include="..\..\gmime\gmime-stream-filter.c" />
+    <ClCompile Include="..\..\gmime\gmime-stream-fs.c" />
+    <ClCompile Include="..\..\gmime\gmime-stream-gio.c" />
+    <ClCompile Include="..\..\gmime\gmime-stream-mem.c" />
+    <ClCompile Include="..\..\gmime\gmime-stream-mmap.c" />
+    <ClCompile Include="..\..\gmime\gmime-stream-null.c" />
+    <ClCompile Include="..\..\gmime\gmime-stream-pipe.c" />
+    <ClCompile Include="..\..\gmime\gmime-stream.c" />
+    <ClCompile Include="..\..\gmime\gmime-text-part.c" />
+    <ClCompile Include="..\..\gmime\gmime-utils.c" />
+    <ClCompile Include="..\..\gmime\gmime.c" />
+    <ClCompile Include="..\..\gmime\internet-address.c" />
+    <ClCompile Include="..\..\util\gtrie.c" />
+    <ClCompile Include="..\..\util\packed.c" />
+    <ClCompile Include="..\..\util\url-scanner.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\gmime\gmime-application-pkcs7-mime.h" />
+    <ClInclude Include="..\..\gmime\gmime-autocrypt.h" />
+    <ClInclude Include="..\..\gmime\gmime-certificate.h" />
+    <ClInclude Include="..\..\gmime\gmime-charset-map-private.h" />
+    <ClInclude Include="..\..\gmime\gmime-charset.h" />
+    <ClInclude Include="..\..\gmime\gmime-common.h" />
+    <ClInclude Include="..\..\gmime\gmime-content-type.h" />
+    <ClInclude Include="..\..\gmime\gmime-crypto-context.h" />
+    <ClInclude Include="..\..\gmime\gmime-data-wrapper.h" />
+    <ClInclude Include="..\..\gmime\gmime-disposition.h" />
+    <ClInclude Include="..\..\gmime\gmime-encodings.h" />
+    <ClInclude Include="..\..\gmime\gmime-error.h" />
+    <ClInclude Include="..\..\gmime\gmime-events.h" />
+    <ClInclude Include="..\..\gmime\gmime-filter-basic.h" />
+    <ClInclude Include="..\..\gmime\gmime-filter-best.h" />
+    <ClInclude Include="..\..\gmime\gmime-filter-charset.h" />
+    <ClInclude Include="..\..\gmime\gmime-filter-checksum.h" />
+    <ClInclude Include="..\..\gmime\gmime-filter-dos2unix.h" />
+    <ClInclude Include="..\..\gmime\gmime-filter-enriched.h" />
+    <ClInclude Include="..\..\gmime\gmime-filter-from.h" />
+    <ClInclude Include="..\..\gmime\gmime-filter-gzip.h" />
+    <ClInclude Include="..\..\gmime\gmime-filter-html.h" />
+    <ClInclude Include="..\..\gmime\gmime-filter-openpgp.h" />
+    <ClInclude Include="..\..\gmime\gmime-filter-smtp-data.h" />
+    <ClInclude Include="..\..\gmime\gmime-filter-strip.h" />
+    <ClInclude Include="..\..\gmime\gmime-filter-unix2dos.h" />
+    <ClInclude Include="..\..\gmime\gmime-filter-windows.h" />
+    <ClInclude Include="..\..\gmime\gmime-filter-yenc.h" />
+    <ClInclude Include="..\..\gmime\gmime-filter.h" />
+    <ClInclude Include="..\..\gmime\gmime-format-options.h" />
+    <ClInclude Include="..\..\gmime\gmime-gpg-context.h" />
+    <ClInclude Include="..\..\gmime\gmime-gpgme-utils.h" />
+    <ClInclude Include="..\..\gmime\gmime-header.h" />
+    <ClInclude Include="..\..\gmime\gmime-iconv-utils.h" />
+    <ClInclude Include="..\..\gmime\gmime-iconv.h" />
+    <ClInclude Include="..\..\gmime\gmime-internal.h" />
+    <ClInclude Include="..\..\gmime\gmime-message-part.h" />
+    <ClInclude Include="..\..\gmime\gmime-message-partial.h" />
+    <ClInclude Include="..\..\gmime\gmime-message.h" />
+    <ClInclude Include="..\..\gmime\gmime-multipart-encrypted.h" />
+    <ClInclude Include="..\..\gmime\gmime-multipart-signed.h" />
+    <ClInclude Include="..\..\gmime\gmime-multipart.h" />
+    <ClInclude Include="..\..\gmime\gmime-object.h" />
+    <ClInclude Include="..\..\gmime\gmime-param.h" />
+    <ClInclude Include="..\..\gmime\gmime-parse-utils.h" />
+    <ClInclude Include="..\..\gmime\gmime-parser-options.h" />
+    <ClInclude Include="..\..\gmime\gmime-parser.h" />
+    <ClInclude Include="..\..\gmime\gmime-part-iter.h" />
+    <ClInclude Include="..\..\gmime\gmime-part.h" />
+    <ClInclude Include="..\..\gmime\gmime-pkcs7-context.h" />
+    <ClInclude Include="..\..\gmime\gmime-references.h" />
+    <ClInclude Include="..\..\gmime\gmime-signature.h" />
+    <ClInclude Include="..\..\gmime\gmime-stream-buffer.h" />
+    <ClInclude Include="..\..\gmime\gmime-stream-cat.h" />
+    <ClInclude Include="..\..\gmime\gmime-stream-file.h" />
+    <ClInclude Include="..\..\gmime\gmime-stream-filter.h" />
+    <ClInclude Include="..\..\gmime\gmime-stream-fs.h" />
+    <ClInclude Include="..\..\gmime\gmime-stream-gio.h" />
+    <ClInclude Include="..\..\gmime\gmime-stream-mem.h" />
+    <ClInclude Include="..\..\gmime\gmime-stream-mmap.h" />
+    <ClInclude Include="..\..\gmime\gmime-stream-null.h" />
+    <ClInclude Include="..\..\gmime\gmime-stream-pipe.h" />
+    <ClInclude Include="..\..\gmime\gmime-stream.h" />
+    <ClInclude Include="..\..\gmime\gmime-table-private.h" />
+    <ClInclude Include="..\..\gmime\gmime-text-part.h" />
+    <ClInclude Include="..\..\gmime\gmime-utils.h" />
+    <ClInclude Include="..\..\gmime\gmime.h" />
+    <ClInclude Include="..\..\gmime\internet-address.h" />
+    <ClInclude Include="..\..\util\gtrie.h" />
+    <ClInclude Include="..\..\util\packed.h" />
+    <ClInclude Include="..\..\util\url-scanner.h" />
+    <ClInclude Include="config.h" />
+    <ClInclude Include="unistd.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="gmime.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/build/vs2017/gmime.vcxproj.filters b/build/vs2017/gmime.vcxproj.filters
new file mode 100644
index 00000000..b51731f2
--- /dev/null
+++ b/build/vs2017/gmime.vcxproj.filters
@@ -0,0 +1,458 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;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;mfcribbon-ms</Extensions>
+    </Filter>
+    <Filter Include="Header Files\gmime">
+      <UniqueIdentifier>{51090496-2b5a-4542-8a38-cdab05292acb}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\gmime">
+      <UniqueIdentifier>{551f1b15-f36e-4d50-a856-ef4a548b441f}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\util">
+      <UniqueIdentifier>{ec39e5e3-e11b-4402-b7be-3b1c78b170ab}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\util">
+      <UniqueIdentifier>{4d8fd383-da8c-4271-b7c0-ee470ed3bccf}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\gmime\gmime.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-application-pkcs7-mime.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-autocrypt.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-certificate.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-charset.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-common.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-content-type.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-crypto-context.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-data-wrapper.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-disposition.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-encodings.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-events.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-filter.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-filter-basic.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-filter-best.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-filter-charset.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-filter-checksum.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-filter-dos2unix.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-filter-enriched.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-filter-from.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-filter-gzip.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-filter-html.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-filter-openpgp.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-filter-smtp-data.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-filter-strip.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-filter-unix2dos.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-filter-windows.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-filter-yenc.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-format-options.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-gpg-context.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-gpgme-utils.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-header.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-iconv.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-iconv-utils.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-message.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-message-part.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-message-partial.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-multipart.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-multipart-encrypted.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-multipart-signed.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-object.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-param.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-parser.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-parser-options.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-parse-utils.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-part.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-part-iter.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-pkcs7-context.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-references.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-signature.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-stream.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-stream-buffer.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-stream-cat.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-stream-file.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-stream-filter.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-stream-fs.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-stream-gio.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-stream-mem.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-stream-mmap.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-stream-null.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-stream-pipe.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-text-part.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\gmime-utils.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\gmime\internet-address.c">
+      <Filter>Source Files\gmime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\util\packed.c">
+      <Filter>Source Files\util</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\util\url-scanner.c">
+      <Filter>Source Files\util</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\util\gtrie.c">
+      <Filter>Source Files\util</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\gmime\gmime.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-application-pkcs7-mime.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-autocrypt.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-certificate.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-charset.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-charset-map-private.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-common.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-content-type.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-crypto-context.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-data-wrapper.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-disposition.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-encodings.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-error.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-events.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-filter.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-filter-basic.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-filter-best.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-filter-charset.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-filter-checksum.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-filter-dos2unix.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-filter-enriched.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-filter-from.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-filter-gzip.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-filter-html.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-filter-openpgp.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-filter-smtp-data.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-filter-strip.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-filter-unix2dos.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-filter-windows.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-filter-yenc.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-format-options.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-gpg-context.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-gpgme-utils.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-header.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-iconv.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-iconv-utils.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-internal.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-message.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-message-part.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-message-partial.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-multipart.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-multipart-encrypted.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-multipart-signed.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-object.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-param.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-parser.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-parser-options.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-parse-utils.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-part.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-part-iter.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-pkcs7-context.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-references.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-signature.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-stream.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-stream-buffer.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-stream-cat.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-stream-file.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-stream-filter.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-stream-fs.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-stream-gio.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-stream-mem.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-stream-mmap.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-stream-null.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-stream-pipe.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-table-private.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-text-part.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\gmime-utils.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\gmime\internet-address.h">
+      <Filter>Header Files\gmime</Filter>
+    </ClInclude>
+    <ClInclude Include="config.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="unistd.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\util\packed.h">
+      <Filter>Header Files\util</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\util\url-scanner.h">
+      <Filter>Header Files\util</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\util\gtrie.h">
+      <Filter>Header Files\util</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="gmime.def">
+      <Filter>Source Files</Filter>
+    </None>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/build/vs2017/imap-example.vcxproj b/build/vs2017/imap-example.vcxproj
new file mode 100644
index 00000000..27e485c4
--- /dev/null
+++ b/build/vs2017/imap-example.vcxproj
@@ -0,0 +1,297 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug-DLL|Win32">
+      <Configuration>Debug-DLL</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug-Static|Win32">
+      <Configuration>Debug-Static</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug-Static|x64">
+      <Configuration>Debug-Static</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-DLL|Win32">
+      <Configuration>Release-DLL</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug-DLL|x64">
+      <Configuration>Debug-DLL</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-DLL|x64">
+      <Configuration>Release-DLL</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-Static|Win32">
+      <Configuration>Release-Static</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-Static|x64">
+      <Configuration>Release-Static</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="gmime.vcxproj">
+      <Project>{391c605f-9a65-42c4-87fa-55cfaf35cca2}</Project>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\examples\imap-example.c" />
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <VCProjectVersion>15.0</VCProjectVersion>
+    <ProjectGuid>{F43D5E68-E39F-4C88-B8E6-7401309CC05F}</ProjectGuid>
+    <RootNamespace>gmime</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/build/vs2017/imap-example.vcxproj.filters b/build/vs2017/imap-example.vcxproj.filters
new file mode 100644
index 00000000..1d580cdc
--- /dev/null
+++ b/build/vs2017/imap-example.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;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;mfcribbon-ms</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\examples\imap-example.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/build/vs2017/unistd.h b/build/vs2017/unistd.h
new file mode 100644
index 00000000..2b7d1ac8
--- /dev/null
+++ b/build/vs2017/unistd.h
@@ -0,0 +1,21 @@
+/**
+ * unistd.h: Emulation of some standard UNIX APIs
+ **/
+
+#include <process.h>
+#include <io.h>
+
+/* Map the Windows equivalents to the POSIX function names */
+#define open(path,flags,mode) _open(path,flags,mode)
+#define close(fd) _close(fd)
+#define read(fd,buf,n) _read(fd,buf,n)
+#define write(fd,buf,n) _write(fd,buf,n)
+#define lseek(fd,offset,whence) _lseek(fd,offset,whence)
+#define fdopen(fd,mode) _fdopen(fd,mode)
+#define unlink(path) _unlink(path)
+#define dup(fd) _dup(fd)
+#define getpid() _getpid()
+
+/* Implement some useful sys/stat.h macros that Windows doesn't seem to have */
+#define S_ISDIR(mode) ((mode) & _S_IFDIR)
+#define S_ISREG(mode) ((mode) & _S_IFREG)
diff --git a/build/vs2017/uudecode.vcxproj b/build/vs2017/uudecode.vcxproj
new file mode 100644
index 00000000..4043f32f
--- /dev/null
+++ b/build/vs2017/uudecode.vcxproj
@@ -0,0 +1,297 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug-DLL|Win32">
+      <Configuration>Debug-DLL</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug-Static|Win32">
+      <Configuration>Debug-Static</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug-Static|x64">
+      <Configuration>Debug-Static</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-DLL|Win32">
+      <Configuration>Release-DLL</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug-DLL|x64">
+      <Configuration>Debug-DLL</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-DLL|x64">
+      <Configuration>Release-DLL</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-Static|Win32">
+      <Configuration>Release-Static</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-Static|x64">
+      <Configuration>Release-Static</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="gmime.vcxproj">
+      <Project>{391c605f-9a65-42c4-87fa-55cfaf35cca2}</Project>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\examples\uudecode.c" />
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <VCProjectVersion>15.0</VCProjectVersion>
+    <ProjectGuid>{D19ED6E1-E2D6-450E-A33D-324F85F02D8C}</ProjectGuid>
+    <RootNamespace>gmime</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/build/vs2017/uudecode.vcxproj.filters b/build/vs2017/uudecode.vcxproj.filters
new file mode 100644
index 00000000..6809d32b
--- /dev/null
+++ b/build/vs2017/uudecode.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;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;mfcribbon-ms</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\examples\uudecode.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/build/vs2017/uuencode.vcxproj b/build/vs2017/uuencode.vcxproj
new file mode 100644
index 00000000..870b3ddf
--- /dev/null
+++ b/build/vs2017/uuencode.vcxproj
@@ -0,0 +1,297 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug-DLL|Win32">
+      <Configuration>Debug-DLL</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug-Static|Win32">
+      <Configuration>Debug-Static</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug-Static|x64">
+      <Configuration>Debug-Static</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-DLL|Win32">
+      <Configuration>Release-DLL</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug-DLL|x64">
+      <Configuration>Debug-DLL</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-DLL|x64">
+      <Configuration>Release-DLL</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-Static|Win32">
+      <Configuration>Release-Static</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release-Static|x64">
+      <Configuration>Release-Static</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\examples\uuencode.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="gmime.vcxproj">
+      <Project>{391c605f-9a65-42c4-87fa-55cfaf35cca2}</Project>
+    </ProjectReference>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <VCProjectVersion>15.0</VCProjectVersion>
+    <ProjectGuid>{E72B0399-A930-4B33-9E2C-6E120E8A1434}</ProjectGuid>
+    <RootNamespace>gmime</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" 
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'">
+    <OutDir>$(SolutionDir)bin\$(Configuration)-$(PlatformTarget)\</OutDir>
+    <IntDir>$(SolutionDir)obj\$(Configuration)-$(PlatformTarget)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Static|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Static|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      
<PreprocessorDefinitions>WIN32;_NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_LOG_DOMAIN="GMime";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <DisableSpecificWarnings>4018;4244;4267;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <AdditionalIncludeDirectories>.;../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/build/vs2017/uuencode.vcxproj.filters b/build/vs2017/uuencode.vcxproj.filters
new file mode 100644
index 00000000..c11b919e
--- /dev/null
+++ b/build/vs2017/uuencode.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;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;mfcribbon-ms</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\examples\uuencode.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/examples/uudecode.c b/examples/uudecode.c
index 83ac512b..e5cb4c89 100644
--- a/examples/uudecode.c
+++ b/examples/uudecode.c
@@ -80,6 +80,9 @@ uudecode (const char *progname, int argc, char **argv)
        int state = 0;
        mode_t mode;
        size_t n;
+#ifdef WIN32
+       int optind = 1;
+#endif
        
        context = g_option_context_new ("[FILE]...");
        g_option_context_add_main_entries (context, options, progname);
@@ -94,7 +97,7 @@ uudecode (const char *progname, int argc, char **argv)
        g_option_context_free (context);
        
        if (version) {
-               printf ("%s - GMime %s\n", progname, GMIME_VERSION);
+               printf ("%s - GMime %u.%u.%u\n", progname, GMIME_MAJOR_VERSION, GMIME_MINOR_VERSION, 
GMIME_MICRO_VERSION);
                return 0;
        }
        
diff --git a/examples/uuencode.c b/examples/uuencode.c
index 8164e11a..f43d2bc9 100644
--- a/examples/uuencode.c
+++ b/examples/uuencode.c
@@ -98,7 +98,7 @@ uuencode (const char *progname, int argc, char **argv)
        g_option_context_free (context);
        
        if (version) {
-               printf ("%s - GMime %s\n", progname, GMIME_VERSION);
+               printf ("%s - GMime %u.%u.%u\n", progname, GMIME_MAJOR_VERSION, GMIME_MINOR_VERSION, 
GMIME_MICRO_VERSION);
                return 0;
        }
        
diff --git a/gmime/gmime-charset.c b/gmime/gmime-charset.c
index 37a8c3d4..12f919ff 100644
--- a/gmime/gmime-charset.c
+++ b/gmime/gmime-charset.c
@@ -263,8 +263,11 @@ locale_parse_lang (const char *locale)
 void
 g_mime_charset_map_init (void)
 {
-       char *charset, *iconv_name, *locale;
+       char *charset, *iconv_name;
        int i;
+#ifndef WIN32
+       char *locale;
+#endif
        
        initialized = MAX (initialized, 0);
        


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]