Windows programming recipes

See also: all the recipes and the intro

 # How to: Convert Between Various String Types
https://msdn.microsoft.com/en-us/library/ms235631.aspx

# Project.json info for Core .NET build
https://github.com/aspnet/Home/wiki/Project.json-file
# To find the available CoreCLR packages, search on https://www.nuget.org/


# how to build for CoreCLR:
# pull the dependencies in a directory with project.json
dotnet restore # needed every time project.json changes
# do the actual build
dotnet build # gets automatically included in dotnet publish
dotnet publish

# add NuGet.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <!--To inherit the global NuGet package sources remove the <clear/> line below -->
    <clear />
    <add key="cli-deps" value="https://dotnet.myget.org/F/cli-deps/api/v3/index.json" />
    <add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
</configuration>

# a full example of project.json
{
  "version": "1.0.0-*",
  "compilationOptions": {
    "emitEntryPoint": true
  },
  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0-rc2-*"
    }
  },
  "frameworks": {
    "netcoreapp1.0": {}
  },
  "runtimes": {
    "win7-x64": {},
    "win8-x64": {}
  }
}

# JSON API for C++ (REST, codename Casablanca)
https://msdn.microsoft.com/en-us/library/jj969455.aspx
# Casablanca REST API tutorial
https://casablanca.codeplex.com/wikipage?title=Http%20Client%20Tutorial

# MSXML (SAX and DOM)
https://msdn.microsoft.com/en-us/library/ms763742%28v=vs.85%29.aspx
https://msdn.microsoft.com/en-us/library/ms765465%28v=vs.85%29.aspx
# MSXML HTTP client
https://msdn.microsoft.com/en-us/library/ms759148%28v=vs.85%29.aspx
# MSXML query by Xpath
https://msdn.microsoft.com/en-us/library/ms767594%28v=vs.85%29.aspx
# Writing REST server in .NET
https://www.codeproject.com/Articles/148762/NET-RESTful-Web-Service-Introduction
# Sending HTTL requests from msxml DLL (IServerXMLHTTPRequest/ServerXMLHTTP)
https://msdn.microsoft.com/en-us/library/ms762278%28v=vs.85%29.aspx


# task parallelism library for C++
https://msdn.microsoft.com/en-us/library/dd492427%28v=vs.110%29.aspx

# small JSON library for .NET
https://www.codeproject.com/Tips/397574/Use-Csharp-to-get-JSON-data-from-the-web-and-map-i


# Completion IO ports
https://msdn.microsoft.com/en-us/library/windows/desktop/ms740642(v=vs.85).aspx

# Rtl* functions
https://msdn.microsoft.com/en-us/library/windows/hardware/ff562046%28v=vs.85%29.aspx


# COM classes
https://msdn.microsoft.com/en-us/library/x1c35cc3.aspx

# Pageheap - memory corruption tool like valgrind
https://support.microsoft.com/kb/286470

# Thread pools
https://msdn.microsoft.com/en-us/library/windows/desktop/ms686766%28v=vs.85%29.aspx

# C#
# P/Invoke
https://msdn.microsoft.com/en-us/library/ef4c3t39.aspx
# P/Invoke with embedded pointers
https://msdn.microsoft.com/en-us/library/0szztey7.aspx

# pragmas
https://msdn.microsoft.com/en-us/library/d9x1s805.aspx
 # a simple HTTP server in dotnet
https://www.codeproject.com/Articles/25050/Embedded-NET-HTTP-Server