in Source/Tx.Windows.TypeGeneration/ManifestParser.cs [619:700]
internal static string CleanType(string typeName)
{
switch (typeName)
{
case "win:Pointer":
case "trace:SizeT":
return "ulong"; // Address in the VS generation code
case "win:Boolean":
return "bool";
case "win:Int8":
return "sbyte";
case "win:UInt8":
return "byte";
case "win:HexInt8":
return "uint";
case "win:Int16":
return "short";
case "win:UInt16":
case "win:HexInt16":
case "trace:Port":
return "ushort";
case "win:Int32":
return "int";
case "win:UInt32":
case "win:HexInt32":
case "trace:IPAddr":
case "trace:IPAddrV4":
return "uint";
case "win:Double":
return "double";
case "win:Float":
return "float";
case "win:Int64":
return "long";
case "win:SYSTEMTIME":
return "DateTime";
case "trace:WmiTime":
case "win:FILETIME":
return "DateTime";
case "win:HexInt64":
case "win:UInt64":
return "ulong";
case "trace:UnicodeChar":
return "string";
case "win:UnicodeString":
case "win:UnicodeStringPref":
return "string";
case "win:AnsiString":
case "win:AnsiStringPref":
return "string";
case "win:GUID":
case "trace:WBEMSid":
return "Guid";
case "win:Binary":
return "byte[]";
case "win:SID":
return "string";
default:
throw new InvalidOperationException("unknown type " + typeName);
}
}