← Back to team overview

linuxdcpp-team team mailing list archive

[Branch ~dcplusplus-team/dc-plugin-sdk/trunk] Rev 27: Adding some Python 34 support (may not work)

 

------------------------------------------------------------
revno: 27
committer: Fredrik Ullner <ullner@xxxxxxxxx>
branch nick: dc-plugin-sdk
timestamp: Sun 2014-06-29 23:56:27 +0200
message:
  Adding some Python 34 support (may not work)
added:
  Examples/Python-Skeleton/copy_34.bat
  Examples/Python-Skeleton/info_34.xml
  Libraries/PythonPlugin/PythonPlugin_34.vcxproj
  Libraries/PythonPlugin/PythonPlugin_34.vcxproj.filters
renamed:
  Libraries/PythonPlugin/PythonPlugin.vcxproj => Libraries/PythonPlugin/PythonPlugin_27.vcxproj
  Libraries/PythonPlugin/PythonPlugin.vcxproj.filters => Libraries/PythonPlugin/PythonPlugin_27.vcxproj.filters
modified:
  Examples/Python-Skeleton/info.xml
  Libraries/PythonPlugin/Marshalling.cpp
  Libraries/PythonPlugin/PythonManagement.cpp
  Libraries/PythonPlugin/version.h


--
lp:dc-plugin-sdk
https://code.launchpad.net/~dcplusplus-team/dc-plugin-sdk/trunk

Your team Dcplusplus-team is subscribed to branch lp:dc-plugin-sdk.
To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dc-plugin-sdk/trunk/+edit-subscription
=== added file 'Examples/Python-Skeleton/copy_34.bat'
--- Examples/Python-Skeleton/copy_34.bat	1970-01-01 00:00:00 +0000
+++ Examples/Python-Skeleton/copy_34.bat	2014-06-29 21:56:27 +0000
@@ -0,0 +1,6 @@
+mkdir MyPlugin
+xcopy /y info.xml MyPlugin\
+xcopy /y MyPlugin.py MyPlugin\
+xcopy /y ..\..\Libraries\PythonPlugin\Release\PythonPlugin.dll MyPlugin\
+xcopy /y ..\..\Libraries\PyPlugin.DataTypes\* MyPlugin\
+xcopy /y C:\Windows\SysWOW64\Python34.dll MyPlugin\

=== modified file 'Examples/Python-Skeleton/info.xml'
--- Examples/Python-Skeleton/info.xml	2014-06-29 17:06:46 +0000
+++ Examples/Python-Skeleton/info.xml	2014-06-29 21:56:27 +0000
@@ -36,7 +36,7 @@
     		<File Platform="pe-x86">IDCPlugin.py</File>
     		<File Platform="pe-x86">IDCPluginSink.py</File>
 
-		<File Platform="pe-x86">Python27.dll</File>
+		    <File Platform="pe-x86">Python27.dll</File>
   
     		<File Platform="pe-x86">MyPlugin.py</File>
 	</Files>

=== added file 'Examples/Python-Skeleton/info_34.xml'
--- Examples/Python-Skeleton/info_34.xml	1970-01-01 00:00:00 +0000
+++ Examples/Python-Skeleton/info_34.xml	2014-06-29 21:56:27 +0000
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+
+<!--
+This file is an example info.xml to be included in the dcext package. For more
+information, read "Plugin format (dcext).txt" in the "Doc" directory.
+
+This file has been generated using the information filled in the src/version.h file.
+
+Edit the <Plugin> tags to include your plugin files.
+If you support Windows, include pe-x64 and pe-x86 platforms.
+If you support Linux, include elf-x64 and elf-x86 platforms.
+
+The <Files> tag is empty; should you want to distribute additional files, include them
+in there within <File> tags (again, more information in the above doc file).
+It is recommended you provide a .pdb file to ease debugging.
+
+When you are done editing this file, rename it to "info.xml", move the relevant files
+to this directory and zip them; rename that .zip to .dcext and you are done!
+-->
+
+<dcext>
+	<UUID>...</UUID>
+	<Name>MyExamplePlugin</Name>
+	<Version>1</Version>
+	<ApiVersion>8</ApiVersion>
+	<Author>...</Author>
+	<Description>...</Description>
+	<Website>N/A</Website>
+	<Plugin Platform="pe-x86">PythonPlugin.dll</Plugin>
+	<Files>
+    		<File Platform="pe-x86">__init__.py</File>
+    		<File Platform="pe-x86">DataTypes.py</File>
+    		<File Platform="pe-x86">DCPluginBase.py</File>
+    		<File Platform="pe-x86">DCPluginSinkProxy.py</File>
+    		<File Platform="pe-x86">Enumerations.py</File>
+    		<File Platform="pe-x86">IDCPlugin.py</File>
+    		<File Platform="pe-x86">IDCPluginSink.py</File>
+
+        <File Platform="pe-x86">Python34.dll</File>
+  
+    		<File Platform="pe-x86">MyPlugin.py</File>
+	</Files>
+</dcext>

=== modified file 'Libraries/PythonPlugin/Marshalling.cpp'
--- Libraries/PythonPlugin/Marshalling.cpp	2014-06-29 15:38:28 +0000
+++ Libraries/PythonPlugin/Marshalling.cpp	2014-06-29 21:56:27 +0000
@@ -10,12 +10,20 @@
 
 PyObject* CMarshalling::GetStringValue(const std::string& strValue)
 {
+#if PY_MAJOR_VERSION >= 3
+	return PyUnicode_FromString(strValue.c_str());
+#else
 	return PyString_FromString(strValue.c_str());
+#endif
 }
 
 std::string CMarshalling::GetStringValue(PyObject* pObj)
 {
+#if PY_MAJOR_VERSION >= 3
+	return PyUnicode_AsUTF8(pObj);
+#else
 	return PyString_AsString(pObj);
+#endif
 }
 
 short CMarshalling::GetInt16Value(PyObject* pObj)
@@ -25,7 +33,11 @@
 
 PyObject* CMarshalling::GetInt32Value(const long& nValue)
 {
+#if PY_MAJOR_VERSION >= 3
+	return PyLong_FromLong(nValue);
+#else
 	return PyInt_FromLong(nValue);
+#endif
 }
 
 long CMarshalling::GetInt32Value(PyObject* pObj)

=== modified file 'Libraries/PythonPlugin/PythonManagement.cpp'
--- Libraries/PythonPlugin/PythonManagement.cpp	2014-06-29 15:38:28 +0000
+++ Libraries/PythonPlugin/PythonManagement.cpp	2014-06-29 21:56:27 +0000
@@ -3,6 +3,7 @@
 
 #include "DCPluginSink.h"
 #include "PythonCallbacks.h"
+#include "Marshalling.h"
 
 #include "Python.h"
 
@@ -68,11 +69,38 @@
 	{NULL, NULL, 0, NULL}        /* Sentinel */
 };
 
+#if PY_MAJOR_VERSION >= 3
+static struct PyModuleDef StaticPythonModule = 
+{
+	PyModuleDef_HEAD_INIT,
+	"DCPluginSink",
+	NULL,
+	-1,
+	StaticPythonMethods
+};
+
+PyMODINIT_FUNC PyInit_PythonPlugin()
+{
+	return PyModule_Create(&StaticPythonModule);
+}
+#endif
+
 void CPythonManagement::InitializePython()
 {
-	Py_Initialize();
-	
+#if PY_MAJOR_VERSION >= 3
+	//PyModule_Create(&StaticPythonModule);
+
+	PyImport_AppendInittab("DCPluginSink", PyInit_PythonPlugin);
+
+	Py_Initialize();
+
+	//PyModule_Create(&StaticPythonModule);
+
+#else
+	Py_Initialize();
+
 	Py_InitModule("DCPluginSink", CPythonManagement::GetStaticMethods());
+#endif
 }
 
 void CPythonManagement::UninitalizePython()
@@ -83,8 +111,7 @@
 PyObject* CPythonManagement::GetObjectInstance(const std::string& strModuleName, const std::string& strObjectType, PyObject* pArgs )
 {
 	// todo: Add error checking
-
-	PyObject* pModuleName = PyString_FromString(strModuleName.c_str());
+	PyObject* pModuleName = CMarshalling::GetStringValue(strModuleName);
 
 	PyObject* pModule = PyImport_Import(pModuleName);
 

=== renamed file 'Libraries/PythonPlugin/PythonPlugin.vcxproj' => 'Libraries/PythonPlugin/PythonPlugin_27.vcxproj'
=== renamed file 'Libraries/PythonPlugin/PythonPlugin.vcxproj.filters' => 'Libraries/PythonPlugin/PythonPlugin_27.vcxproj.filters'
=== added file 'Libraries/PythonPlugin/PythonPlugin_34.vcxproj'
--- Libraries/PythonPlugin/PythonPlugin_34.vcxproj	1970-01-01 00:00:00 +0000
+++ Libraries/PythonPlugin/PythonPlugin_34.vcxproj	2014-06-29 21:56:27 +0000
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{471BB329-FEAF-4A74-B99A-FF5E69DAD596}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <RootNamespace>PythonPlugin</RootNamespace>
+    <ProjectName>PythonPlugin</ProjectName>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v110</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v110</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v110</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v110</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|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|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|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|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|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LinkIncremental>false</LinkIncremental>
+    <IntDir>$(Configuration)\Temp\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>DCAPI_HOST;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>C:\Python34\include;..\;.\</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalLibraryDirectories>C:\Python34\libs</AdditionalLibraryDirectories>
+      <AdditionalDependencies>python34.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>DCAPI_HOST;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>C:\Python34\include;..\;.\</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalLibraryDirectories>C:\Python34\libs</AdditionalLibraryDirectories>
+      <AdditionalDependencies>python34.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>DCAPI_HOST;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>C:\Python34\include;..\;.\</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalLibraryDirectories>C:\Python34\libs</AdditionalLibraryDirectories>
+      <AdditionalDependencies>python34.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>DCAPI_HOST;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>C:\Python34\include;..\;.\</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalLibraryDirectories>C:\Python34\libs</AdditionalLibraryDirectories>
+      <AdditionalDependencies>python34.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClInclude Include="DataTypes.h" />
+    <ClInclude Include="DCPluginSink.h" />
+    <ClInclude Include="Marshalling.h" />
+    <ClInclude Include="Plugin.h" />
+    <ClInclude Include="PluginBase.h" />
+    <ClInclude Include="PluginHelper.h" />
+    <ClInclude Include="PluginInformation.h" />
+    <ClInclude Include="PythonCallbacks.h" />
+    <ClInclude Include="PythonManagement.h" />
+    <ClInclude Include="targetver.h" />
+    <ClInclude Include="Utilities.h" />
+    <ClInclude Include="version.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\dcapi\Config.cpp" />
+    <ClCompile Include="..\dcapi\Connections.cpp" />
+    <ClCompile Include="..\dcapi\Core.cpp" />
+    <ClCompile Include="..\dcapi\Hooks.cpp" />
+    <ClCompile Include="..\dcapi\Hubs.cpp" />
+    <ClCompile Include="..\dcapi\Logger.cpp" />
+    <ClCompile Include="..\dcapi\Queue.cpp" />
+    <ClCompile Include="..\dcapi\Tagger.cpp" />
+    <ClCompile Include="..\dcapi\UI.cpp" />
+    <ClCompile Include="..\dcapi\Util.cpp" />
+    <ClCompile Include="DCPluginSink.cpp" />
+    <ClCompile Include="Marshalling.cpp" />
+    <ClCompile Include="Plugin.cpp" />
+    <ClCompile Include="PluginBase.cpp" />
+    <ClCompile Include="PluginHelper.cpp" />
+    <ClCompile Include="PythonCallbacks.cpp" />
+    <ClCompile Include="PythonManagement.cpp" />
+    <ClCompile Include="main.cpp" />
+    <ClCompile Include="Utilities.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file

=== added file 'Libraries/PythonPlugin/PythonPlugin_34.vcxproj.filters'
--- Libraries/PythonPlugin/PythonPlugin_34.vcxproj.filters	1970-01-01 00:00:00 +0000
+++ Libraries/PythonPlugin/PythonPlugin_34.vcxproj.filters	2014-06-29 21:56:27 +0000
@@ -0,0 +1,117 @@
+<?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;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+    </Filter>
+    <Filter Include="dcapi">
+      <UniqueIdentifier>{6d61d347-8e59-4c86-87ef-ff9bb24074eb}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="targetver.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Utilities.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="DataTypes.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="DCPluginSink.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Marshalling.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Plugin.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="PluginBase.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="PluginHelper.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="PluginInformation.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="PythonCallbacks.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="PythonManagement.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="version.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="DCPluginSink.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Marshalling.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="PythonCallbacks.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="PythonManagement.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="PluginBase.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="PluginHelper.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\dcapi\Config.cpp">
+      <Filter>dcapi</Filter>
+    </ClCompile>
+    <ClCompile Include="..\dcapi\Connections.cpp">
+      <Filter>dcapi</Filter>
+    </ClCompile>
+    <ClCompile Include="..\dcapi\Core.cpp">
+      <Filter>dcapi</Filter>
+    </ClCompile>
+    <ClCompile Include="..\dcapi\Hooks.cpp">
+      <Filter>dcapi</Filter>
+    </ClCompile>
+    <ClCompile Include="..\dcapi\Hubs.cpp">
+      <Filter>dcapi</Filter>
+    </ClCompile>
+    <ClCompile Include="..\dcapi\Logger.cpp">
+      <Filter>dcapi</Filter>
+    </ClCompile>
+    <ClCompile Include="..\dcapi\Queue.cpp">
+      <Filter>dcapi</Filter>
+    </ClCompile>
+    <ClCompile Include="..\dcapi\Tagger.cpp">
+      <Filter>dcapi</Filter>
+    </ClCompile>
+    <ClCompile Include="..\dcapi\UI.cpp">
+      <Filter>dcapi</Filter>
+    </ClCompile>
+    <ClCompile Include="..\dcapi\Util.cpp">
+      <Filter>dcapi</Filter>
+    </ClCompile>
+    <ClCompile Include="Plugin.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="main.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Utilities.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file

=== modified file 'Libraries/PythonPlugin/version.h'
--- Libraries/PythonPlugin/version.h	2014-06-29 16:08:52 +0000
+++ Libraries/PythonPlugin/version.h	2014-06-29 21:56:27 +0000
@@ -5,7 +5,7 @@
 #define PLUGIN_VERSION_H
 
 /* UUID/GUID for this plugin project */
-#define PLUGIN_GUID "..."
+#define PLUGIN_GUID "{4A7A90C0-3FEE-42A4-AE1E-F8A2FA0644D9}"
 
 /* Name of the plugin */
 #define PLUGIN_NAME "MyExamplePlugin"