Commits

Nerzhul500 committed e6a83b8

Message loop fixed.
Nuspec added.
Sample project for testing added.

Comments (0)

Files changed (17)

 
 Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 2013
-VisualStudioVersion = 12.0.30219.0
+VisualStudioVersion = 12.0.21005.1
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Everything", "Everything\Everything\Everything.csproj", "{CA47C7B8-F65D-43BA-B46C-56C63782073E}"
+	ProjectSection(ProjectDependencies) = postProject
+		{7C90030E-6EDB-445E-A61B-5540B7355C59} = {7C90030E-6EDB-445E-A61B-5540B7355C59}
+	EndProjectSection
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Everything.Tests", "Everything\Everything.Tests\Everything.Tests.csproj", "{DD28DC6D-C37E-4B0B-B26D-6541DC67AD06}"
 EndProject
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll", "EverythingApi\dll.vcxproj", "{7C90030E-6EDB-445E-A61B-5540B7355C59}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EverythingSample", "EverythingSample\EverythingSample.csproj", "{62B309C9-0758-43A4-8BFE-B6DD33CD1735}"
+	ProjectSection(ProjectDependencies) = postProject
+		{7C90030E-6EDB-445E-A61B-5540B7355C59} = {7C90030E-6EDB-445E-A61B-5540B7355C59}
+	EndProjectSection
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
 		{7C90030E-6EDB-445E-A61B-5540B7355C59}.Release|x64.Build.0 = Release|x64
 		{7C90030E-6EDB-445E-A61B-5540B7355C59}.Release|x86.ActiveCfg = Release|Win32
 		{7C90030E-6EDB-445E-A61B-5540B7355C59}.Release|x86.Build.0 = Release|Win32
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Release ALPHA|Any CPU.ActiveCfg = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Release ALPHA|Any CPU.Build.0 = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Release ALPHA|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Release ALPHA|Mixed Platforms.Build.0 = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Release ALPHA|Win32.ActiveCfg = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Release ALPHA|x64.ActiveCfg = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Release ALPHA|x86.ActiveCfg = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.release BETA|Any CPU.ActiveCfg = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.release BETA|Any CPU.Build.0 = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.release BETA|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.release BETA|Mixed Platforms.Build.0 = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.release BETA|Win32.ActiveCfg = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.release BETA|x64.ActiveCfg = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.release BETA|x86.ActiveCfg = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Release|Any CPU.Build.0 = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Release|Win32.ActiveCfg = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Release|x64.ActiveCfg = Release|Any CPU
+		{62B309C9-0758-43A4-8BFE-B6DD33CD1735}.Release|x86.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

Everything/Everything/Everything.csproj

   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
     <DebugSymbols>true</DebugSymbols>
-    <OutputPath>bin\x86\Debug\</OutputPath>
+    <OutputPath>..\..\target\Debug\8.2\</OutputPath>
     <DefineConstants>JET_MODE_ASSERT;DEBUG;TRACE</DefineConstants>
     <DebugType>full</DebugType>
     <PlatformTarget>x86</PlatformTarget>
     <Prefer32Bit>false</Prefer32Bit>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
-    <OutputPath>bin\x86\Release\</OutputPath>
+    <OutputPath>..\..\target\Release\8.2\</OutputPath>
     <DefineConstants>TRACE</DefineConstants>
     <Optimize>true</Optimize>
     <DebugType>pdbonly</DebugType>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="Everything">
-      <HintPath>..\..\EverythingApi\Debug\Everything.dll</HintPath>
+      <HintPath>..\..\EverythingApi\$(Configuration)\Everything.dll</HintPath>
     </Reference>
     <Reference Include="PresentationCore" />
     <Reference Include="System" />

Everything/Everything/EverythingGotoFileProvider.cs

 using System;
 using System.Collections.Generic;
 using System.Text;
-using JetBrains.ProjectModel;
 using JetBrains.ReSharper.Feature.Services.Goto;
-using JetBrains.ReSharper.Feature.Services.Goto.ChainedProviders;
-using JetBrains.ReSharper.Feature.Services.Navigation.Goto;
-using JetBrains.ReSharper.Feature.Services.Navigation.Occurences;
 using JetBrains.ReSharper.Feature.Services.Navigation.Search;
-using JetBrains.ReSharper.Feature.Services.Occurences;
 using JetBrains.ReSharper.Psi;
 using JetBrains.Text;
 using JetBrains.Util;
 namespace Everything
 {
 
-  public class FolderNavigationScope : INavigationScope
-  {
-    public FileSystemPath Folder { get; private set; }
-    private readonly ISolution mySolution;
-
-    public FolderNavigationScope(ISolution solution, FileSystemPath folder)
-    {
-      Folder = folder;
-      mySolution = solution;
-    }
-
-    public ISolution GetSolution()
-    {
-      return mySolution;
-    }
-
-    public LibrariesFlag ExtendedSearchFlag { get; set; }
-
-
-  }
-
   [ShellFeaturePart]
   public class EverythingGotoFileProvider : IGotoEverythingProvider
   {
     public bool IsApplicable(INavigationScope scope, GotoContext gotoContext, IdentifierMatcher matcher)
     {
       return true;
-      //return scope is ProjectModelNavigationScope || scope is FolderNavigationScope;
-    }
-
-    public IEnumerable<Pair<IOccurence, MatchingInfo>> GetMatchingOccurences(IdentifierMatcher matcher, INavigationScope scope, GotoContext gotoContext,
-      Func<bool> checkForInterrupt)
-    {
-//      lock (this)
-//      {
-//
-//
-//        if (scope is SolutionNavigationScope)
-//        {
-//          EverythingApi.Reset();
-//          EverythingApi.SetMax(10000);
-//          EverythingApi.SetSearch(matcher.Filter);
-//          
-//          if (EverythingApi.Query())
-//          {
-//            var stringBuilder = new StringBuilder(5000);
-//            var count = EverythingApi.GetNumResults();
-//            for (int i = 0; i < count; i++)
-//            {
-////            if (checkForInterrupt())
-////              yield break;
-//              EverythingApi.GetResultFullPathName(i, stringBuilder, 260);
-//              var path = stringBuilder.ToString();
-//              var matches = matcher.MatchingIndicies(path);
-//              var matchingInfo = new MatchingInfo(path, matches);
-//              var fileSystemPath = FileSystemPath.Parse(path);
-//              if (fileSystemPath.Exists != FileSystemPath.Existence.Missing)
-//              {
-//                yield return
-//                new Pair<IOccurence, MatchingInfo>(
-//                  new ExternalFileOccurrence(fileSystemPath, scope.GetSolution()),  matchingInfo);
-//              }
-//            }
-//          }
-//        }
-//      }
-      yield break;
-    }
-
-    public IEnumerable<ChainedNavigationItemData> GetNextChainedScopes(GotoContext gotoContext, IdentifierMatcher matcher, INavigationScope containingScope,
-      Func<bool> checkForInterrupt)
-    {
-      if (containingScope is ProjectModelNavigationScope)
-      {
-        var query = matcher.Filter;
-        var result = GetFolderResultsByQuery(matcher, containingScope.GetSolution(), query, checkForInterrupt);
-        return result;
-      }
-      if (containingScope is FolderNavigationScope)
-      {
-        var folderNavigationScope = (FolderNavigationScope)containingScope;
-        var folder = folderNavigationScope.Folder;
-        var query = string.Format("{0} {1}", folder.FullPath, matcher.Filter);
-        var result = GetFolderResultsByQuery(matcher, containingScope.GetSolution(), query, checkForInterrupt);
-        return result;
-      }
-      return EmptyEnumerator<ChainedNavigationItemData>.INSTANCE;
-    }
-
-    private IEnumerable<ChainedNavigationItemData> GetFolderResultsByQuery(IdentifierMatcher matcher, ISolution solution, string searchString, Func<bool> checkForInterrupt)
-    {
-      //lock (this)
-      {
-        //EverythingApi.Reset();
-        EverythingApi.SetMax(1000);
-        EverythingApi.SetSearch(searchString);
-        if (EverythingApi.Query(true, new EverythingApi.CheckForInterrupt(checkForInterrupt)))
-        {
-          var count = EverythingApi.GetNumResults();
-          var result = new List<ChainedNavigationItemData>(count);
-
-          for (int i = 0; i < count; i++)
-          {
-            if (checkForInterrupt())
-              return EmptyEnumerator<ChainedNavigationItemData>.INSTANCE;
-            if (EverythingApi.IsFolderResult(i))
-            {
-              var path = EverythingApi.GetResultFullPathName(i);
-              //var path = mySb.ToString();
-              var indicies = matcher.MatchingIndicies(path);
-              var info = new MatchingInfo(path, indicies);
-              result.Add(
-               new ChainedNavigationItemData(info,
-                new FolderNavigationScope(solution, FileSystemPath.Parse(path))));
-            }
-          }          
-          return result;
-        }
-      }
-      return EmptyEnumerator<ChainedNavigationItemData>.INSTANCE;
     }
 
     public IEnumerable<MatchingInfo> FindMatchingInfos(IdentifierMatcher matcher, INavigationScope scope, GotoContext gotoContext,
       Func<bool> checkForInterrupt)
     {
-      string query = null;
-
-
-      if (scope is ProjectModelNavigationScope|| scope is SolutionNavigationScope)
+      var solutionDir = scope.GetSolution().SolutionFilePath.Directory;
+      var query = matcher.Filter;
+      query = query.Replace('*', ' ');
+      query = string.Format("\"{0}\" {1}", solutionDir, query);
+      //EverythingApi.Reset();
+      EverythingApi.SetMax(30);
+      EverythingApi.SetSearch(query);
+      if (EverythingApi.Query(true, new EverythingApi.CheckForInterrupt(checkForInterrupt)))
       {
-        var solutionDir = scope.GetSolution().SolutionFilePath.Directory;
-        query = matcher.Filter;
-        query = query.Replace('*', ' ');
-        query = string.Format("{0} {1}", solutionDir, query);
+        var count = EverythingApi.GetNumResults();
+        var result = new List<MatchingInfo>(count);
+        for (int i = 0; i < count; i++)
+        {
+          if (checkForInterrupt())
+            return EmptyEnumerator<MatchingInfo>.INSTANCE;
+          var path = EverythingApi.GetResultFullPathName(i);
+          var matches = matcher.MatchingIndicies(path);
+          var info = new MatchingInfo(path, matches);
+          result.Add(info);
+        }
+        return result;
       }
-      if (scope is FolderNavigationScope)
-      {
-        var folderNavigationScope = (FolderNavigationScope)scope;
-        query = string.Format("{0} {1}", folderNavigationScope.Folder.FullPath, matcher.Filter);
-      }
-      if (query != null)
-      {
-        //lock (this)
-        {
-
-
-          //EverythingApi.Reset();
-          EverythingApi.SetMax(30);
-          EverythingApi.SetSearch(query);
-          if (EverythingApi.Query(true, new EverythingApi.CheckForInterrupt(checkForInterrupt)))
-          {
-            //var sb = new StringBuilder(5000);
-            var count = EverythingApi.GetNumResults();
-            var result = new List<MatchingInfo>(count);
-            for (int i = 0; i < count; i++)
-            {
-              if (checkForInterrupt())
-                return EmptyEnumerator<MatchingInfo>.INSTANCE;
-              var path = EverythingApi.GetResultFullPathName(i);
-              //var path = mySb.ToString();
-              var matches = matcher.MatchingIndicies(path);
-              var info = new MatchingInfo(path, matches);
-              result.Add(info);
-            }
-            return result;
-          }
-        }
-      }      
       return EmptyEnumerator<MatchingInfo>.INSTANCE;
     }
 
       var fileSystemPath = FileSystemPath.Parse(navigationInfo.Identifier);
       if (fileSystemPath.Exists != FileSystemPath.Existence.Missing)
         yield return new ExternalFileOccurrence(fileSystemPath, scope.GetSolution());
-
-//      lock (gotoContext)
-//      {
-//
-//
-//        if (scope is ProjectModelNavigationScope)
-//        {
-//          EverythingApi.Reset();
-//          EverythingApi.SetMax(100);
-//          EverythingApi.SetSearch(navigationInfo.Identifier);
-//          if (EverythingApi.Query())
-//          {
-//            var stringBuilder = new StringBuilder(260);
-//            var count = EverythingApi.GetNumResults();
-//            for (int i = 0; i < count; i++)
-//            {
-////              if (checkForInterrupt())
-////                yield break;
-//              EverythingApi.GetResultFullPathName(i, stringBuilder, 260);
-//              var path = stringBuilder.ToString();
-//              var fileSystemPath = FileSystemPath.Parse(path);
-//              if (fileSystemPath.Exists != FileSystemPath.Existence.Missing)
-//              {
-//                var occurence = new ExternalFileOccurrence(fileSystemPath, scope.GetSolution()) { PresentationOptions = new OccurencePresentationOptions() };
-//                yield return occurence;
-//              }
-//            }
-//          }
-//        }
-//      }
     }
 
     public Func<int, int> ItemsPriorityFunc { get; private set; }

Everything/Everything/ExternalFileOccurrence.cs

       OccurencePresentationOptions occurencePresentationOptions)
     {
       var externalFileOccurrence = (ExternalFileOccurrence)occurence;
-      descriptor.Text = externalFileOccurrence.Path.FullPath;
+      var fileSystemPath = externalFileOccurrence.Path;
+      descriptor.Text = fileSystemPath.FullPath;
       descriptor.Style = MenuItemStyle.Enabled;
       var projectModelIcons = Shell.Instance.GetComponent<ProjectModelIcons>();
-      descriptor.Icon = projectModelIcons.DirectoryIcon;
-      
-        
+      descriptor.Icon = fileSystemPath.ExistsDirectory ? projectModelIcons.DirectoryIcon : projectModelIcons.UnknownIcon;
       return true;
     }
 

EverythingApi/Everything.cpp

 					//WaitMessage();
 					
 					// update windows
-					bool(*interrupt)() = (bool (*)())paramArr[1];
+					bool(*interruptCheck)() = (bool (*)())paramArr[1];
 					while (!::PeekMessage(&msg, NULL, NULL, NULL, PM_NOREMOVE)) {
-						if (interrupt())
-						{
-							_Everything_LastError = EVERYTHING_ERROR_INTERRUPTED;
-							goto exit;
-						}
+						if (interruptCheck())
+							goto interrupt;
 						Sleep(50);
 					}
 
 
-					//while(PeekMessage(&msg,NULL,0,0,0)) 
+					while(PeekMessage(&msg,NULL,0,0,0)) 
 					{
-						if (interrupt())
+						if (interruptCheck())
+							goto interrupt;
+						
+						ret = (int)GetMessage(&msg,0,0,0);
+						
+						if (ret == -1) 
 							goto exit;
-						ret = (int)GetMessage(&msg,0,0,0);
-						if (ret == -1) goto exit;
-						if (!ret) goto exit;
+						if (!ret) 
+							goto exit;
 						
 						// let windows handle it.
 						TranslateMessage(&msg);
 						DispatchMessage(&msg);
 					}			
-					if (interrupt())
-						goto exit;
-					//goto loop;
+					if (interruptCheck())
+						goto interrupt;
+
+					goto loop;
+
+	interrupt:
+					while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
+					}
+
+					_Everything_LastError = EVERYTHING_ERROR_INTERRUPTED;
 
 	exit:
 					

EverythingEverything.nuspec

+<?xml version="1.0"?>
+<package >
+  <metadata>
+    <id>EverythingEverything</id>
+    <version>0.1-alpha</version>
+    <title>Everything Everything</title>
+    <authors>Ethereal Code</authors>
+    <projectUrl>http://bitbucket.org/Nerzhul500/everything-everything</projectUrl>    
+    <requireLicenseAcceptance>false</requireLicenseAcceptance>
+    <description>
+      Goto provider (Ctrl-N) for search through all files under solution directory. Based on Everything search engine by voidtools.com.
+
+      ATTENTION!
+      To get this extension working properly you have to:
+      * Install and run Everything tool (download exactly 1.2.1.371 version from here http://www.voidtools.com/).
+      * Run your Visual Studio as Administrator
+
+    </description>
+    <copyright>Copyright © Ethereal Code, 2014</copyright>
+    <dependencies>
+      <dependency id="ReSharper" version="[8.2,8.3)" />
+    </dependencies>
+    <releaseNotes>First unstable build</releaseNotes>
+  </metadata>
+  <files>
+    <file src="target\Release\8.2\**\*.*" target="ReSharper\v8.2\plugins\" />
+  </files>
+</package>

EverythingSample/App.config

+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>

EverythingSample/EverythingSample.csproj

+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{62B309C9-0758-43A4-8BFE-B6DD33CD1735}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>EverythingSample</RootNamespace>
+    <AssemblyName>EverythingSample</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Everything, Version=0.0.0.0, Culture=neutral, processorArchitecture=x86">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\EverythingApi\Debug\Everything.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Deployment" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Form1.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Form1.designer.cs">
+      <DependentUpon>Form1.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <EmbeddedResource Include="Form1.resx">
+      <DependentUpon>Form1.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\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>

EverythingSample/Form1.cs

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+using System.Runtime.InteropServices;
+using Everything;
+
+namespace WindowsApplication1
+{
+	public partial class Form1 : Form
+	{
+//		const int EVERYTHING_OK	= 0;
+//		const int EVERYTHING_ERROR_MEMORY = 1;
+//		const int EVERYTHING_ERROR_IPC = 2;
+//		const int EVERYTHING_ERROR_REGISTERCLASSEX = 3;
+//		const int EVERYTHING_ERROR_CREATEWINDOW = 4;
+//		const int EVERYTHING_ERROR_CREATETHREAD = 5;
+//		const int EVERYTHING_ERROR_INVALIDINDEX = 6;
+//		const int EVERYTHING_ERROR_INVALIDCALL = 7;
+//
+//		[DllImport("Everything.dll")]
+//		public static extern int Everything_SetSearch(string lpSearchString);
+//		[DllImport("Everything.dll")]
+//		public static extern void Everything_SetMatchPath(bool bEnable);
+//		[DllImport("Everything.dll")]
+//		public static extern void Everything_SetMatchCase(bool bEnable);
+//		[DllImport("Everything.dll")]
+//		public static extern void Everything_SetMatchWholeWord(bool bEnable);
+//		[DllImport("Everything.dll")]
+//		public static extern void Everything_SetRegex(bool bEnable);
+//		[DllImport("Everything.dll")]
+//		public static extern void Everything_SetMax(int dwMax);
+//		[DllImport("Everything.dll")]
+//		public static extern void Everything_SetOffset(int dwOffset);
+//
+//		[DllImport("Everything.dll")]
+//		public static extern bool Everything_GetMatchPath();
+//		[DllImport("Everything.dll")]
+//		public static extern bool Everything_GetMatchCase();
+//		[DllImport("Everything.dll")]
+//		public static extern bool Everything_GetMatchWholeWord();
+//		[DllImport("Everything.dll")]
+//		public static extern bool Everything_GetRegex();
+//		[DllImport("Everything.dll")]
+//		public static extern UInt32 Everything_GetMax();
+//		[DllImport("Everything.dll")]
+//		public static extern UInt32 Everything_GetOffset();
+//		[DllImport("Everything.dll")]
+//		public static extern string Everything_GetSearch();
+//		[DllImport("Everything.dll")]
+//		public static extern int Everything_GetLastError();
+//
+//		[DllImport("Everything.dll")]
+//		public static extern bool Everything_Query();
+//
+//		[DllImport("Everything.dll")]
+//		public static extern void Everything_SortResultsByPath();
+//
+//		[DllImport("Everything.dll")]
+//		public static extern int Everything_GetNumFileResults();
+//		[DllImport("Everything.dll")]
+//		public static extern int Everything_GetNumFolderResults();
+//		[DllImport("Everything.dll")]
+//		public static extern int Everything_GetNumResults();
+//		[DllImport("Everything.dll")]
+//		public static extern int Everything_GetTotFileResults();
+//		[DllImport("Everything.dll")]
+//		public static extern int Everything_GetTotFolderResults();
+//		[DllImport("Everything.dll")]
+//		public static extern int Everything_GetTotResults();
+//		[DllImport("Everything.dll")]
+//		public static extern bool Everything_IsVolumeResult(int nIndex);
+//		[DllImport("Everything.dll")]
+//		public static extern bool Everything_IsFolderResult(int nIndex);
+//		[DllImport("Everything.dll")]
+//		public static extern bool Everything_IsFileResult(int nIndex);
+//		[DllImport("Everything.dll")]
+//		public static extern void Everything_GetResultFullPathName(int nIndex, StringBuilder lpString, int nMaxCount);
+//		[DllImport("Everything.dll")]
+//		public static extern void Everything_Reset();
+
+		public Form1()
+		{
+			InitializeComponent();
+		}
+
+		private void button1_Click(object sender, EventArgs e)
+		{
+			int i;
+			const int bufsize = 260; 
+			StringBuilder buf = new StringBuilder(bufsize);
+      EverythingApi.SetSearch(textBox1.Text);
+			// set the search
+			 //Everything_SetSearch(textBox1.Text);
+
+			// use our own custom scrollbar... 			
+			// Everything_SetMax(listBox1.ClientRectangle.Height / listBox1.ItemHeight);
+			// Everything_SetOffset(VerticalScrollBarPosition...);
+			
+			// execute the query
+			EverythingApi.Query(true, () => false);
+      EverythingApi.SortResultsByPath();
+			// sort by path
+			// Everything_SortResultsByPath();
+
+			// clear the old list of results			
+			listBox1.Items.Clear();
+
+			// set the window title
+		  int numResults = EverythingApi.GetNumResults();
+		  Text = textBox1.Text + " - " + numResults + " Results";
+//			
+//			// loop through the results, adding each result to the listbox.
+			for (i = 0; i < numResults; i++)
+			{
+				// get the result's full path and file name.
+			  if (EverythingApi.IsFolderResult(i))
+			  {
+			    var path = EverythingApi.GetResultFullPathName(i);
+			    //var path = EverythingApi.Everything_GetResultPathA(i) + EverythingApi.Everything_GetResultFileNameA(i);
+
+
+			    // add it to the list box				
+			    listBox1.Items.Add(path);
+			  }
+			}
+		}
+	}
+}

EverythingSample/Form1.designer.cs

+namespace WindowsApplication1
+{
+	partial class Form1
+	{
+		/// <summary>
+		/// Required designer variable.
+		/// </summary>
+		private System.ComponentModel.IContainer components = null;
+
+		/// <summary>
+		/// Clean up any resources being used.
+		/// </summary>
+		/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+		protected override void Dispose(bool disposing)
+		{
+			if (disposing && (components != null))
+			{
+				components.Dispose();
+			}
+			base.Dispose(disposing);
+		}
+
+		#region Windows Form Designer generated code
+
+		/// <summary>
+		/// Required method for Designer support - do not modify
+		/// the contents of this method with the code editor.
+		/// </summary>
+		private void InitializeComponent()
+		{
+      this.button1 = new System.Windows.Forms.Button();
+      this.listBox1 = new System.Windows.Forms.ListBox();
+      this.textBox1 = new System.Windows.Forms.TextBox();
+      this.SuspendLayout();
+      // 
+      // button1
+      // 
+      this.button1.Location = new System.Drawing.Point(250, 12);
+      this.button1.Name = "button1";
+      this.button1.Size = new System.Drawing.Size(84, 20);
+      this.button1.TabIndex = 0;
+      this.button1.Text = "Search";
+      this.button1.UseVisualStyleBackColor = true;
+      this.button1.Click += new System.EventHandler(this.button1_Click);
+      // 
+      // listBox1
+      // 
+      this.listBox1.FormattingEnabled = true;
+      this.listBox1.Location = new System.Drawing.Point(12, 38);
+      this.listBox1.Name = "listBox1";
+      this.listBox1.Size = new System.Drawing.Size(944, 329);
+      this.listBox1.TabIndex = 2;
+      // 
+      // textBox1
+      // 
+      this.textBox1.Location = new System.Drawing.Point(12, 12);
+      this.textBox1.Name = "textBox1";
+      this.textBox1.Size = new System.Drawing.Size(232, 20);
+      this.textBox1.TabIndex = 3;
+      // 
+      // Form1
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.ClientSize = new System.Drawing.Size(1020, 455);
+      this.Controls.Add(this.textBox1);
+      this.Controls.Add(this.listBox1);
+      this.Controls.Add(this.button1);
+      this.Name = "Form1";
+      this.Text = "Form1";
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+		}
+
+		#endregion
+
+		private System.Windows.Forms.Button button1;
+		private System.Windows.Forms.ListBox listBox1;
+		private System.Windows.Forms.TextBox textBox1;
+	}
+}
+

EverythingSample/Form1.resx

+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>

EverythingSample/Program.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using WindowsApplication1;
+
+namespace EverythingSample
+{
+  static class Program
+  {
+    /// <summary>
+    /// The main entry point for the application.
+    /// </summary>
+    [STAThread]
+    static void Main()
+    {
+      Application.EnableVisualStyles();
+      Application.SetCompatibleTextRenderingDefault(false);
+      Application.Run(new Form1());
+    }
+  }
+}

EverythingSample/Properties/AssemblyInfo.cs

+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("EverythingSample")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("EverythingSample")]
+[assembly: AssemblyCopyright("Copyright ©  2014")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("e1506820-6226-4791-aea0-29ef06a9e32b")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

EverythingSample/Properties/Resources.Designer.cs

+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.18449
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace EverythingSample.Properties
+{
+
+
+  /// <summary>
+  ///   A strongly-typed resource class, for looking up localized strings, etc.
+  /// </summary>
+  // This class was auto-generated by the StronglyTypedResourceBuilder
+  // class via a tool like ResGen or Visual Studio.
+  // To add or remove a member, edit your .ResX file then rerun ResGen
+  // with the /str option, or rebuild your VS project.
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+  internal class Resources
+  {
+
+    private static global::System.Resources.ResourceManager resourceMan;
+
+    private static global::System.Globalization.CultureInfo resourceCulture;
+
+    [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+    internal Resources()
+    {
+    }
+
+    /// <summary>
+    ///   Returns the cached ResourceManager instance used by this class.
+    /// </summary>
+    [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+    internal static global::System.Resources.ResourceManager ResourceManager
+    {
+      get
+      {
+        if ((resourceMan == null))
+        {
+          global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EverythingSample.Properties.Resources", typeof(Resources).Assembly);
+          resourceMan = temp;
+        }
+        return resourceMan;
+      }
+    }
+
+    /// <summary>
+    ///   Overrides the current thread's CurrentUICulture property for all
+    ///   resource lookups using this strongly typed resource class.
+    /// </summary>
+    [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+    internal static global::System.Globalization.CultureInfo Culture
+    {
+      get
+      {
+        return resourceCulture;
+      }
+      set
+      {
+        resourceCulture = value;
+      }
+    }
+  }
+}

EverythingSample/Properties/Resources.resx

+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>

EverythingSample/Properties/Settings.Designer.cs

+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.18449
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace EverythingSample.Properties
+{
+
+
+  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+  internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+  {
+
+    private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+    public static Settings Default
+    {
+      get
+      {
+        return defaultInstance;
+      }
+    }
+  }
+}

EverythingSample/Properties/Settings.settings

+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+  <Settings />
+</SettingsFile>