﻿<?xml version="1.0" encoding="utf-8"?>
<!--Copyright, Microsoft Corporation, All rights reserved.-->
<ProjectSchemaDefinitions
    xmlns="http://schemas.microsoft.com/build/2009/properties">

    <ContentType
        Name="HLSL"
        DisplayName="HLSL Compiler"
        ItemType="FxCompile">
    </ContentType>

    <ContentType
        Name="HLSLHeader"
        DisplayName="HLSL Header File"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="NoBuildShader"
        DisplayName="Shader"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="CppCode"
        DisplayName="C++ Code"
        ItemType="ClCompile">
    </ContentType>

    <ContentType
        Name="CCode"
        DisplayName="C Code"
        ItemType="ClCompile">
    </ContentType>

    <ContentType
        Name="CppHeader"
        DisplayName="C/C++ Header"
        ItemType="ClInclude">
    </ContentType>

    <ContentType
        Name="CppClass"
        DisplayName="C++ Class"
        ItemType="ClCompile">
    </ContentType>

    <ContentType
        Name="CppForm"
        DisplayName="C++ Form"
        ItemType="ClCompile">
    </ContentType>

    <ContentType
        Name="CppControl"
        DisplayName="C++ Control"
        ItemType="ClCompile">
    </ContentType>

    <ContentType
        Name="CppModule"
        DisplayName="C++ Module Interface Unit"
        ItemType="ClCompile">
    </ContentType>

    <ContentType
        Name="Text"
        DisplayName="Text file"
        ItemType="Text">
    </ContentType>

    <ContentType
        Name="DEF"
        DisplayName="DEF file"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="Midl"
        DisplayName="Idl file"
        ItemType="Midl">
    </ContentType>

    <ContentType
        Name="Makefile"
        DisplayName="Makefile"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="RGS"
        DisplayName="RGS file"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="RC"
        DisplayName="RC file"
        ItemType="ResourceCompile">
    </ContentType>

    <ContentType
        Name="RC2"
        DisplayName="RC2 file"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="RES"
        DisplayName="RES file"
        ItemType="Resource">
    </ContentType>

    <ContentType
        Name="XSD"
        DisplayName="XSD file"
        ItemType="Xsd">
    </ContentType>

    <ContentType
        Name="XML"
        DisplayName="Xml file"
        ItemType="Xml">
    </ContentType>

    <ContentType
        Name="HTML"
        DisplayName="Html file"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="CSS"
        DisplayName="Cascading style sheet"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="Resx"
        DisplayName="Resx file"
        ItemType="EmbeddedResource">
    </ContentType>

    <ContentType
        Name="Script"
        DisplayName="Script file"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="BSC"
        DisplayName="Bsc file"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="XSX"
        DisplayName="XSX file"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="CppWebService"
        DisplayName="C++ Web service"
        ItemType="ClInclude">
    </ContentType>

    <ContentType
        Name="Asax"
        DisplayName="Asax file"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="AspPage"
        DisplayName="ASP page"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="Document"
        DisplayName="Document"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="Discomap"
        DisplayName="Discovery file"
        ItemType="CustomBuild">
    </ContentType>

    <ContentType
        Name="CSharpFile"
        DisplayName="C# file"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="ClassDiagram"
        DisplayName="Class Diagram"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="MHT"
        DisplayName="MHT file"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="CUR"
        DisplayName="Cursor"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="Manifest"
        DisplayName="Manifest"
        ItemType="Manifest">
    </ContentType>

    <ContentType
        Name="RDLC"
        DisplayName="RDLC file"
        ItemType="None">
    </ContentType>

    <ContentType
        Name="OBJ"
        DisplayName="Object file"
        ItemType="Object">
    </ContentType>

    <ContentType
      Name="LIB"
      DisplayName="Library file"
      ItemType="Library">
    </ContentType>

    <ContentType
      Name="RSC"
      DisplayName="Resource"
      ItemType="Resource">
    </ContentType>

    <ContentType
      Name="Licenses"
      DisplayName="Compiled License"
      ItemType="_EmbedManagedResourceFile">
    </ContentType>

    <ContentType
      Name="PageXaml"
      DisplayName="XAML Page"
      ItemType="Page">
        <NameValuePair Name="DependentFileExtensions" Value=".cpp;.h"/>
    </ContentType>

    <ContentType
      Name="AppXaml"
      DisplayName="XAML Application Definition"
      ItemType="ApplicationDefinition">
        <NameValuePair Name="DependentFileExtensions" Value=".cpp;.h"/>
    </ContentType>

    <ContentType
      Name="PRIResource"
      DisplayName="PRI Resource"
      ItemType="PRIResource">
    </ContentType>

    <ContentType
      Name="Image"
      DisplayName="Image file"
      ItemType="Image">
    </ContentType>

    <ContentType
      Name="AppxManifest"
      DisplayName="App Package Manifest"
      ItemType="AppxManifest">
    </ContentType>

    <ContentType
      Name="PackageLayout"
      DisplayName="App Package Layout"
      ItemType="PackageLayout">
    </ContentType>

    <ContentType
      Name="Media"
      DisplayName="Media file"
      ItemType="Media">
    </ContentType>

    <ContentType
      Name="Font"
      DisplayName="Font file"
      ItemType="Font">
    </ContentType>

    <ContentType
      Name="Natvis"
      DisplayName="C++ debugger visualization file"
      ItemType="Natvis">
    </ContentType>

    <ItemType Name="PRIResource" DisplayName="PRI Resource"/>
    <ItemType Name="AppxManifest" DisplayName="App Package Manifest" />
    <ItemType Name="PackageLayout" DisplayName="App Package Layout" />
    <ItemType Name="Page" DisplayName="XAML Page"/>
    <ItemType Name="ApplicationDefinition" DisplayName="XAML Application Definition"/>
    <ItemType Name="ClCompile" DisplayName="C/C++ compiler"/>
    <ItemType Name="ClInclude" DisplayName="C/C++ header"/>
    <ItemType Name="Midl" DisplayName="MIDL tool"/>
    <ItemType Name="ResourceCompile" DisplayName="Resource compiler"/>
    <ItemType Name="EmbeddedResource" DisplayName="Managed resource compiler"/>
    <ItemType Name="Xsd" DisplayName="XML Data Generator Tool"/>
    <ItemType Name="CustomBuild" DisplayName="Custom Build Tool"/>
    <ItemType Name="None" DisplayName="Does not participate in build"/>
    <ItemType Name="Resource" DisplayName="Resource"/>
    <ItemType Name="Object" DisplayName="Object"/>
    <ItemType Name="Library" DisplayName="Library"/>
    <ItemType Name="Manifest" DisplayName="Manifest Tool"/>
    <ItemType Name="_EmbedManagedResourceFile" DisplayName="Compiled Managed Resource"/>
    <ItemType Name="FxCompile" DisplayName="HLSL Compiler" />
    <ItemType Name="Image" DisplayName="Image"/>
    <ItemType Name="Media" DisplayName="Media"/>
    <ItemType Name="Xml" DisplayName="Xml"/>
    <ItemType Name="Text" DisplayName="Text"/>
    <ItemType Name="Font" DisplayName="Font"/>
    <ItemType Name="Natvis" DisplayName="C++ debugger visualization file" />
    <ItemType Name="CopyFileToFolders" DisplayName="Copy file" />

    <FileExtension Name=".resw" ContentType="PRIResource"/>
    <FileExtension Name=".resjson" ContentType="PRIResource"/>
    <FileExtension Name=".appxmanifest" ContentType="AppxManifest" />
    <FileExtension Name=".packagelayout" ContentType="PackageLayout" />
    <FileExtension Name=".xaml" ContentType="PageXaml"/>
    <FileExtension Name=".c" ContentType="CCode"/>
    <FileExtension Name=".cc" ContentType="CppCode"/>
    <FileExtension Name=".c++" ContentType="CppCode"/>
    <FileExtension Name=".cpp" ContentType="CppCode"/>
    <FileExtension Name=".cppm" ContentType="CppModule"/>
    <FileExtension Name=".cxx" ContentType="CppCode"/>
    <FileExtension Name=".ixx" ContentType="CppModule"/>

    <FileExtension Name=".h" ContentType="CppHeader"/>
    <FileExtension Name=".h++" ContentType="CppHeader"/>
    <FileExtension Name=".hh" ContentType="CppHeader"/>
    <FileExtension Name=".hpp" ContentType="CppHeader"/>
    <FileExtension Name=".hxx" ContentType="CppHeader"/>
    <FileExtension Name=".ipp" ContentType="CppHeader"/>

    <FileExtension Name=".idl" ContentType="Midl"/>
    <FileExtension Name=".odl" ContentType="Midl"/>

    <FileExtension Name=".asax" ContentType="Asax"/>
    <FileExtension Name=".asmx" ContentType="HTML"/>
    <FileExtension Name=".asp" ContentType="AspPage"/>
    <FileExtension Name=".def" ContentType="DEF"/>
    <FileExtension Name=".mk" ContentType="MakeFile"/>
    <FileExtension Name=".mak" ContentType="MakeFile"/>
    <FileExtension Name=".txt" ContentType="Text"/>
    <FileExtension Name=".log" ContentType="Text"/>
    <FileExtension Name=".rgs" ContentType="RGS"/>
    <FileExtension Name=".rc" ContentType="RC"/>
    <FileExtension Name=".rc2" ContentType="RC2"/>
    <FileExtension Name=".res" ContentType="RES"/>
    <FileExtension Name=".resx" ContentType="RESX"/>
    <FileExtension Name=".html" ContentType="HTML"/>
    <FileExtension Name=".htm" ContentType="HTML"/>
    <FileExtension Name=".css" ContentType="CSS"/>
    <FileExtension Name=".cur" ContentType="CUR"/>
    <FileExtension Name=".vbS" ContentType="Script"/>
    <FileExtension Name=".jS" ContentType="Script"/>
    <FileExtension Name=".xml" ContentType="XML"/>
    <FileExtension Name=".xslt" ContentType="XML"/>
    <FileExtension Name=".xsl" ContentType="XML"/>
    <FileExtension Name=".xsd" ContentType="XSD"/>
    <FileExtension Name=".wsdl" ContentType="Discomap"/>
    <FileExtension Name=".disco" ContentType="Discomap"/>
    <FileExtension Name=".discomap" ContentType="Discomap"/>
    <FileExtension Name=".cs" ContentType="CSharpFile"/>
    <FileExtension Name=".bsc" ContentType="BSC"/>
    <FileExtension Name=".mht" ContentType="MHT"/>
    <FileExtension Name=".manifest" ContentType="Manifest"/>
    <FileExtension Name=".rdlc" ContentType="RDLC"/>
    <FileExtension Name=".cd" ContentType="ClassDiagram"/>
    <FileExtension Name=".obj" ContentType="OBJ"/>
    <FileExtension Name=".o" ContentType="OBJ"/>
    <FileExtension Name=".lib" ContentType="LIB"/>
    <FileExtension Name=".so" ContentType="LIB"/>
    <FileExtension Name=".a" ContentType="LIB"/>
    <FileExtension Name=".rsc" ContentType="RSC"/>
    <FileExtension Name=".licenses" ContentType="Licenses"/>

    <FileExtension Name=".fx" ContentType="HLSL"/>
    <FileExtension Name=".hlsl" ContentType="HLSL"/>
    <FileExtension Name=".hlsli" ContentType="HLSLHeader"/>
    <FileExtension Name=".csh" ContentType="HLSL"/>
    <FileExtension Name=".dsh" ContentType="HLSL"/>
    <FileExtension Name=".gsh" ContentType="HLSL"/>
    <FileExtension Name=".hsh" ContentType="HLSL"/>
    <FileExtension Name=".psh" ContentType="HLSL"/>
    <FileExtension Name=".vsh" ContentType="HLSL"/>
    <FileExtension Name=".cshader" ContentType="HLSL"/>
    <FileExtension Name=".dshader" ContentType="HLSL"/>
    <FileExtension Name=".gshader" ContentType="HLSL"/>
    <FileExtension Name=".hshader" ContentType="HLSL"/>
    <FileExtension Name=".pshader" ContentType="HLSL"/>
    <FileExtension Name=".vshader" ContentType="HLSL"/>
    <FileExtension Name=".compute" ContentType="HLSL"/>
    <!--The following shader extensions were added to support colorization of unity shader files. We cannot make them buildable because 
        while unity shaders are very similar to HLSL and colorization works well for them, they are not buildable by the fx compiler. 
        Because Unity includes these as part of projects it creates for VS, we need to make sure they aren't attempted to be built. -->
    <FileExtension Name=".shader" ContentType="NoBuildShader"/>
    <FileExtension Name=".cginc" ContentType="NoBuildShader"/>
    <FileExtension Name=".jpg" ContentType="Image"/>
    <FileExtension Name=".jpe" ContentType="Image"/>
    <FileExtension Name=".jpeg" ContentType="Image"/>
    <FileExtension Name=".jfif" ContentType="Image"/>
    <FileExtension Name=".png" ContentType="Image"/>
    <FileExtension Name=".bmp" ContentType="Image"/>
    <FileExtension Name=".dib" ContentType="Image"/>
    <FileExtension Name=".gif" ContentType="Image"/>
    <FileExtension Name=".ico" ContentType="Image"/>
    <FileExtension Name=".tif" ContentType="Image"/>
    <FileExtension Name=".tiff" ContentType="Image"/>
    <FileExtension Name=".dds" ContentType="Image"/>
    <FileExtension Name=".tga" ContentType="Image"/>

    <FileExtension Name=".mp3" ContentType="Media"/>
    <FileExtension Name=".wav" ContentType="Media"/>
    <FileExtension Name=".mov" ContentType="Media"/>
    <FileExtension Name=".mp4" ContentType="Media"/>
    <FileExtension Name=".wmv" ContentType="Media"/>
    <FileExtension Name=".webm" ContentType="Media"/>

    <FileExtension Name=".ttf" ContentType="Font"/>
    <FileExtension Name=".otf" ContentType="Font"/>
    <FileExtension Name=".compositefont" ContentType="Font"/>
    <FileExtension Name=".natvis" ContentType="Natvis" />

</ProjectSchemaDefinitions>

