diff --git a/ThePimp/AssemblyInfo.cs b/ThePimp/AssemblyInfo.cs
index 9768dc8..fd900c6 100644
--- a/ThePimp/AssemblyInfo.cs
+++ b/ThePimp/AssemblyInfo.cs
@@ -30,7 +30,7 @@ using System.Runtime.CompilerServices;
 // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
 // If the build and revision are set to '*' they will be updated automatically.
 
-[assembly: AssemblyVersion("1.0.*.*")]
+//[assembly: AssemblyVersion("1.0.*.*")]
 
 // The following attributes are used to specify the signing key for the assembly, 
 // if desired. See the Mono documentation for more information about signing.
diff --git a/ThePimp/ThePimp.csproj b/ThePimp/ThePimp.csproj
new file mode 100644
index 0000000..a007688
--- /dev/null
+++ b/ThePimp/ThePimp.csproj
@@ -0,0 +1,105 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.50727</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{D681A55E-B8E2-4741-87E6-49500109D6E0}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>ThePimp</RootNamespace>
+    <AssemblyName>Pimp</AssemblyName>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>.\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>.\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="atk-sharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\win32\assembly\atk-sharp.dll</HintPath>
+    </Reference>
+    <Reference Include="gdk-sharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\win32\assembly\gdk-sharp.dll</HintPath>
+    </Reference>
+    <Reference Include="glade-sharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\win32\assembly\glade-sharp.dll</HintPath>
+    </Reference>
+    <Reference Include="glib-sharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\win32\assembly\glib-sharp.dll</HintPath>
+    </Reference>
+    <Reference Include="gtk-sharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\win32\assembly\gtk-sharp.dll</HintPath>
+    </Reference>
+    <Reference Include="gtkglarea-sharp, Version=0.0.3.0, Culture=neutral, PublicKeyToken=7df758c0fb49fe62, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\win32\assembly\gtkglarea-sharp.dll</HintPath>
+    </Reference>
+    <Reference Include="Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\win32\assembly\Mono.Posix.dll</HintPath>
+    </Reference>
+    <Reference Include="pango-sharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\win32\assembly\pango-sharp.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="AboutWindow.cs" />
+    <Compile Include="AssemblyInfo.cs" />
+    <Compile Include="Main.cs" />
+    <Compile Include="MainWindow.cs" />
+    <Compile Include="NewFile.cs" />
+    <Compile Include="OpenFile.cs" />
+    <Compile Include="PictureView.cs" />
+    <Compile Include="SaveFile.cs" />
+    <Compile Include="ToolBox.cs" />
+    <Compile Include="gtk-gui\generated.cs" />
+    <Compile Include="gtk-gui\ThePimp.AboutWindow.cs" />
+    <Compile Include="gtk-gui\ThePimp.MainWindow.cs" />
+    <Compile Include="gtk-gui\ThePimp.NewFile.cs" />
+    <Compile Include="gtk-gui\ThePimp.OpenFile.cs" />
+    <Compile Include="gtk-gui\ThePimp.PictureView.cs" />
+    <Compile Include="gtk-gui\ThePimp.SaveFile.cs" />
+    <Compile Include="gtk-gui\ThePimp.ToolBox.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\pipi-sharp\pipi-sharp.csproj">
+      <Project>{FD11AF71-DCBE-4861-9DC6-EE4C6FD951C0}</Project>
+      <Name>pipi-sharp</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="images\about.png" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets. -->
+  <Target Name="BeforeBuild">
+    <CreateItem Include="..\win32\dist\**\*.*" Exclude="..\win32\**\.svn\**">
+      <Output TaskParameter="Include" ItemName="DistInclude" />
+    </CreateItem>
+    <Copy Sourcefiles="@(DistInclude)" DestinationFolder="$(OutDir)\%(RecursiveDir)" />
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+</Project>
diff --git a/libpipi.sln b/libpipi.sln
index 268c9b9..b35fae0 100644
--- a/libpipi.sln
+++ b/libpipi.sln
@@ -3,16 +3,68 @@ Microsoft Visual Studio Solution File, Format Version 9.00
 # Visual Studio 2005
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpipi", "pipi\libpipi.vcproj", "{48A34C3A-1E36-49B7-92C4-E982FDCB90C0}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pipi-sharp", "pipi-sharp\pipi-sharp.csproj", "{FD11AF71-DCBE-4861-9DC6-EE4C6FD951C0}"
+	ProjectSection(ProjectDependencies) = postProject
+		{48A34C3A-1E36-49B7-92C4-E982FDCB90C0} = {48A34C3A-1E36-49B7-92C4-E982FDCB90C0}
+	EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test-csharp", "pipi-sharp\test-csharp.csproj", "{2A062F77-ED16-4B74-B7B7-5ED93FAF300A}"
+	ProjectSection(ProjectDependencies) = postProject
+		{FD11AF71-DCBE-4861-9DC6-EE4C6FD951C0} = {FD11AF71-DCBE-4861-9DC6-EE4C6FD951C0}
+	EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ThePimp", "ThePimp\ThePimp.csproj", "{D681A55E-B8E2-4741-87E6-49500109D6E0}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Debug|Mixed Platforms = Debug|Mixed Platforms
 		Debug|Win32 = Debug|Win32
+		Release|Any CPU = Release|Any CPU
+		Release|Mixed Platforms = Release|Mixed Platforms
 		Release|Win32 = Release|Win32
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{48A34C3A-1E36-49B7-92C4-E982FDCB90C0}.Debug|Any CPU.ActiveCfg = Debug|Win32
+		{48A34C3A-1E36-49B7-92C4-E982FDCB90C0}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
+		{48A34C3A-1E36-49B7-92C4-E982FDCB90C0}.Debug|Mixed Platforms.Build.0 = Debug|Win32
 		{48A34C3A-1E36-49B7-92C4-E982FDCB90C0}.Debug|Win32.ActiveCfg = Debug|Win32
 		{48A34C3A-1E36-49B7-92C4-E982FDCB90C0}.Debug|Win32.Build.0 = Debug|Win32
+		{48A34C3A-1E36-49B7-92C4-E982FDCB90C0}.Release|Any CPU.ActiveCfg = Release|Win32
+		{48A34C3A-1E36-49B7-92C4-E982FDCB90C0}.Release|Mixed Platforms.ActiveCfg = Release|Win32
+		{48A34C3A-1E36-49B7-92C4-E982FDCB90C0}.Release|Mixed Platforms.Build.0 = Release|Win32
 		{48A34C3A-1E36-49B7-92C4-E982FDCB90C0}.Release|Win32.ActiveCfg = Release|Win32
 		{48A34C3A-1E36-49B7-92C4-E982FDCB90C0}.Release|Win32.Build.0 = Release|Win32
+		{FD11AF71-DCBE-4861-9DC6-EE4C6FD951C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{FD11AF71-DCBE-4861-9DC6-EE4C6FD951C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{FD11AF71-DCBE-4861-9DC6-EE4C6FD951C0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{FD11AF71-DCBE-4861-9DC6-EE4C6FD951C0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{FD11AF71-DCBE-4861-9DC6-EE4C6FD951C0}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{FD11AF71-DCBE-4861-9DC6-EE4C6FD951C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{FD11AF71-DCBE-4861-9DC6-EE4C6FD951C0}.Release|Any CPU.Build.0 = Release|Any CPU
+		{FD11AF71-DCBE-4861-9DC6-EE4C6FD951C0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{FD11AF71-DCBE-4861-9DC6-EE4C6FD951C0}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{FD11AF71-DCBE-4861-9DC6-EE4C6FD951C0}.Release|Win32.ActiveCfg = Release|Any CPU
+		{2A062F77-ED16-4B74-B7B7-5ED93FAF300A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2A062F77-ED16-4B74-B7B7-5ED93FAF300A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{2A062F77-ED16-4B74-B7B7-5ED93FAF300A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{2A062F77-ED16-4B74-B7B7-5ED93FAF300A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{2A062F77-ED16-4B74-B7B7-5ED93FAF300A}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{2A062F77-ED16-4B74-B7B7-5ED93FAF300A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2A062F77-ED16-4B74-B7B7-5ED93FAF300A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{2A062F77-ED16-4B74-B7B7-5ED93FAF300A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{2A062F77-ED16-4B74-B7B7-5ED93FAF300A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{2A062F77-ED16-4B74-B7B7-5ED93FAF300A}.Release|Win32.ActiveCfg = Release|Any CPU
+		{D681A55E-B8E2-4741-87E6-49500109D6E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D681A55E-B8E2-4741-87E6-49500109D6E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D681A55E-B8E2-4741-87E6-49500109D6E0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{D681A55E-B8E2-4741-87E6-49500109D6E0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{D681A55E-B8E2-4741-87E6-49500109D6E0}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{D681A55E-B8E2-4741-87E6-49500109D6E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D681A55E-B8E2-4741-87E6-49500109D6E0}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D681A55E-B8E2-4741-87E6-49500109D6E0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{D681A55E-B8E2-4741-87E6-49500109D6E0}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{D681A55E-B8E2-4741-87E6-49500109D6E0}.Release|Win32.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/pipi-sharp/AssemblyInfo.cs b/pipi-sharp/AssemblyInfo.cs
index ec315a1..dde3f10 100644
--- a/pipi-sharp/AssemblyInfo.cs
+++ b/pipi-sharp/AssemblyInfo.cs
@@ -30,7 +30,7 @@ using System.Runtime.CompilerServices;
 // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
 // If the build and revision are set to '*' they will be updated automatically.
 
-[assembly: AssemblyVersion("1.0.*.*")]
+//[assembly: AssemblyVersion("1.0.*.*")]
 
 // The following attributes are used to specify the signing key for the assembly, 
 // if desired. See the Mono documentation for more information about signing.
diff --git a/pipi-sharp/pipi-sharp.csproj b/pipi-sharp/pipi-sharp.csproj
new file mode 100644
index 0000000..d230dce
--- /dev/null
+++ b/pipi-sharp/pipi-sharp.csproj
@@ -0,0 +1,48 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.50727</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{FD11AF71-DCBE-4861-9DC6-EE4C6FD951C0}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <RootNamespace>pipi_sharp</RootNamespace>
+    <AssemblyName>pipi-sharp</AssemblyName>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>.\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>.\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="AssemblyInfo.cs" />
+    <Compile Include="Picture.cs" />
+    <Compile Include="Pipi.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
diff --git a/pipi-sharp/test-csharp.csproj b/pipi-sharp/test-csharp.csproj
new file mode 100644
index 0000000..2c59a91
--- /dev/null
+++ b/pipi-sharp/test-csharp.csproj
@@ -0,0 +1,50 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.50727</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{2A062F77-ED16-4B74-B7B7-5ED93FAF300A}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <RootNamespace>test_csharp</RootNamespace>
+    <AssemblyName>test</AssemblyName>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>.\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>.\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="test.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="pipi-sharp.csproj">
+      <Project>{FD11AF71-DCBE-4861-9DC6-EE4C6FD951C0}</Project>
+      <Name>pipi-sharp</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
diff --git a/pipi/libpipi.vcproj b/pipi/libpipi.vcproj
index b990b2c..21deaea 100644
--- a/pipi/libpipi.vcproj
+++ b/pipi/libpipi.vcproj
@@ -1,9 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <VisualStudioProject
 	ProjectType="Visual C++"
-	Version="8,00"
+	Version="8.00"
 	Name="libpipi"
 	ProjectGUID="{48A34C3A-1E36-49B7-92C4-E982FDCB90C0}"
+	RootNamespace="libpipi"
 	Keyword="Win32Proj"
 	>
 	<Platforms>
@@ -16,7 +17,7 @@
 	<Configurations>
 		<Configuration
 			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			OutputDirectory="."
 			IntermediateDirectory="$(ConfigurationName)"
 			ConfigurationType="2"
 			>
@@ -39,7 +40,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories="..\win32;.;.."
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBPIPI_EXPORTS;"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBPIPI_EXPORTS;__LIBPIPI__"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
 				RuntimeLibrary="3"
@@ -91,7 +92,7 @@
 		</Configuration>
 		<Configuration
 			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			OutputDirectory="."
 			IntermediateDirectory="$(ConfigurationName)"
 			ConfigurationType="2"
 			>
@@ -113,7 +114,7 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				AdditionalIncludeDirectories="..\win32;.;.."
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBPIPI_EXPORTS;"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBPIPI_EXPORTS;__LIBPIPI__"
 				RuntimeLibrary="2"
 				UsePrecompiledHeader="0"
 				WarningLevel="3"
diff --git a/pipi/pipi.h b/pipi/pipi.h
index 624fbb8..cd5d935 100644
--- a/pipi/pipi.h
+++ b/pipi/pipi.h
@@ -120,7 +120,7 @@ pipi_command_t;
 
 __extern pipi_pixel_t *pipi_get_color_from_string(const char* s);
 
-char const * pipi_get_version(void);
+__extern char const * pipi_get_version(void);
 
 __extern pipi_context_t *pipi_create_context(void);
 __extern void pipi_destroy_context(pipi_context_t *);